2. 一维码与二维码技术基础

工业读码系统的选型,本质上是在“码制能力”和“现场约束”之间做匹配。同样是黑白方块,Code128 与 QR 的编码逻辑、纠错机制、可承载信息量和抗污损能力完全不同。理解这些差异,才能在产线、仓储、追溯等场景中选对码、印对码、读对码。

一、一维码:用条空宽度承载数据

一维码把数据编码在条(黑)和空(白)的宽度组合中,沿一个方向排列,因此只能横向承载信息,纵向只是重复扫描线。三种常见一维码的差异如下。

Code39 是最容易理解的一种:每个字符由 9 个元素(5 条 4 空)组成,其中 3 个是宽元素、6 个是窄元素,故称“39”。它只支持数字、大写字母和少量符号(如 - . $ / + % 和空格),每个字符之间用窄空隔开,并以 * 作为起止符。Code39 不需要校验位也能工作,容错直观,但密度低——编码 10 位数字大约需要 60~70 mm 的标签宽度(视窄元素尺寸而定)。它适合资产标签、工具管理等对密度要求不高的场合。

Code128 是目前工业一维码的主力。它有 A、B、C 三套字符集:A 集含控制字符,B 集含大小写字母与符号,C 集专门用两位数字压缩编码。编码时通过起始符选择字符集,并可在码内用切换符(CODE A/B/C)动态换集。例如编码 12345678,用 C 集只需 4 个数据字符,而 B 集需要 8 个,密度提升近一倍。Code128 强制带一个模 103 校验位,校验值 =(起始符值 + Σ 数据字符值 × 位置权重)mod 103,权重从起始符后的第 1 位算起依次为 1、2、3……。校验位能发现单字符错误,但不能纠错,读错只能重读。Code128 的最小窄元素宽度常见为 0.25 mm,配合 300 dpi 以上打印可稳定识读。

EAN 是零售商品码,EAN-13 由 13 位数字组成:前 2~3 位国家/地区前缀、厂商代码、商品代码,最后 1 位是模 10 校验位。校验计算为:从右往左,奇数位(不含校验位)乘 3、偶数位乘 1,求和后取个位,用 10 减去该个位即为校验位(若结果为 10 则取 0)。EAN 的条空宽度只有 4 种,结构固定,识读速度快,但信息量小、无纠错,且对印刷位置和静区要求严格,主要用于零售结算而非工业追溯。

二、二维码:用矩阵与纠错换取鲁棒性

二维码把数据排成二维矩阵,信息容量和抗损能力都远高于一维码。工业上最常用的是 QR 和 DataMatrix。

QR 码 由日本 Denso Wave 发明,特征是在三个角上有“回”字形定位图案,第四个角有校正图案。它采用 Reed-Solomon 纠错,分 L、M、Q、H 四个等级,纠错能力分别约为 7%、15%、25%、30%。这意味着即使码面被遮挡或污损 30%,H 级 QR 仍可能被正确还原。QR 支持数字、字母数字、字节、汉字等多种模式,版本 1~40,最大可容纳约 7089 个数字或 4296 个字符。它的缺点是定位图案占面积,小尺寸下有效数据区比例偏低。

DataMatrix 由 RVSI Acuity CiMatrix 开发,特征是左侧和下侧的“L”形实线定位边,加上对侧的交替黑白模块作为时钟轨。它同样使用 Reed-Solomon 纠错,ECC 200 是工业主流版本,纠错能力可配置,通常可恢复约 25%~30% 的受损数据。DataMatrix 的优势是尺寸小、密度高,最小可做到 2~3 mm 见方,且不需要 QR 那样大的定位图案,因此在电子元件、PCB、医疗器械等微小零件上应用广泛。它支持数字、字母数字、字节等模式,最大可容纳约 3116 个数字或 1556 个字节。

三、对比选型与典型工业场景

选型时先问三个问题:要承载多少信息?码面能留多大?现场会经历什么损伤?

  • 信息量小、成本低、只需数字:EAN 或 Code39。零售结算选 EAN-13;内部资产标签选 Code39。
  • 信息量中等、需要字母数字混合、一维码空间有限:Code128。物流面单、托盘标签、线体工位码首选。
  • 信息量大、需要抗污损、需要方向无关识读:QR。适合设备铭牌、维修记录、需要手机或固定式读码器快速读取的场合。
  • 尺寸极小、需要高密度、需要直接标记在零件上:DataMatrix。适合 PCB、芯片、手术器械、汽车零部件等 DPM(直接零件标记)场景。

需要特别注意的是,一维码没有纠错能力,只有校验;二维码的纠错是“可恢复”,但纠错等级越高,同样面积下可用的数据容量越小。例如一个 10 mm × 10 mm 的 DataMatrix,ECC 200 在 20% 纠错下可存约 20 个数字,若提高到 30% 纠错,可存数字会降到约 14 个。因此不能盲目追求高纠错,而应根据实际污损概率和识读率要求平衡。

在工业现场,码制选择往往不是“哪个更先进”,而是“哪个在现有打印、贴标、读码器和环境条件下最稳定”。建议先用实际样品做识读率测试,再定码制和纠错等级。
一维码与二维码:编码结构、纠错与选型对照 一维码:条空宽度编码 Code128 A/B/C 字符集 + 模103校验 Code39 9元素/字符,3宽6窄,*起止 EAN-13 13位数字,模10校验,零售结算 二维码:矩阵 + Reed-Solomon 纠错 QR 码 三角定位 + 校正图案 纠错 L/M/Q/H:7/15/25/30% DataMatrix L形定位边 + 时钟轨 ECC 200,可恢复约25~30% 选型决策:按信息量、尺寸、损伤风险匹配 信息量小 纯数字 / 短码 信息量中 字母数字混合 信息量大 需抗污损 尺寸极小 DPM 直接标记 EAN / Code39 零售结算 / 资产标签 Code128 物流面单 / 托盘码 QR 设备铭牌 / 维修记录 DataMatrix PCB / 芯片 / 器械

最后强调一个工程细节:无论选哪种码,静区(码两侧或四周的空白区)都必须留足。一维码左右静区通常不小于 10 倍窄元素宽度,二维码四周静区不小于 1 个模块宽度。静区不足会导致读码器无法定位起止边界,表现为“码印得很清楚却读不出来”。在产线调试中,先确认静区、再调曝光和焦距,往往比反复更换码制更有效。