1974年6月26日,俄亥俄州特洛伊市的一家Marsh超市里,收银员 Sharon Buchanan 扫描了一包箭牌黄箭口香糖。收银机发出"滴"的一声,屏幕上显示出67美分的价格。这声清脆的提示音,标志着条形码时代的正式开启。
这包口香糖至今仍被史密森尼国家美国历史博物馆收藏。而条形码技术,从最初的专利申请到现在已经超过七十年,从首次商业应用到现在已经超过半个世纪。据行业统计,全球每天有超过50亿次条形码扫描,这意味着平均每秒有近6万次扫描在世界各地发生。
一组简单的黑白条纹,如何在毫秒间被准确识别?这背后的技术链条,远比大多数人想象的复杂。
从沙滩涂鸦到收银台:二十年的技术等待
条形码的发明故事常常被简化为"灵光一现"的传奇。但真实的历史要曲折得多。
1948年,费城的 Drexel 理工学院研究生 Bernard Silver 偶然听到一位食品公司高管抱怨:结账速度太慢,库存管理太乱,有没有什么技术能自动读取商品信息?Silver 把这个问题带回了学校,找到同学 Norman Joseph Woodland。
Woodland 的思考从莫尔斯电码开始。如果把点和划换成粗细不同的线条,就能用线条编码信息。1949年,他在迈阿密海滩上用手指在沙子里画出了第一批条形码——不是现在的平行线,而是同心圆构成的"牛眼"图案。这个设计的好处是扫描器可以从任何角度读取。
1952年,Woodland 和 Silver 获得了专利(美国专利号 2,612,994)。但专利只是纸上的构想,当时的硬件完全无法支撑这个想法落地。扫描需要光源、需要光电转换器、需要计算机处理数据——1950年代的计算机比房间还大,成本高达数十万美元,根本不可能装进超市。
技术冻结了整整二十年。
转折点出现在1960年代。激光技术的成熟提供了合适的光源,集成电路的发展让小型化处理成为可能。1966年,美国国家食品连锁协会开始推动自动结账系统的标准化。1970年,IBM 工程师 George Laurer 设计出了现在熟悉的 UPC(Universal Product Code)矩形条形码——他放弃了同心圆设计,改用更易印刷、更易扫描的平行线。
1974年6月26日那包口香糖的扫描,是技术成熟后的必然结果。但当时没人预料到,这个发明会如此深刻地改变零售业乃至整个供应链。
编码的数学:为什么是黑白条纹?
当扫描器的红光扫过条形码时,它看到的不是数字,而是反射光的强弱变化。黑色条纹吸收光线,反射率低;白色空隙反射光线,反射率高。这种差异被光电传感器转换为电信号的波动,再被解码器翻译成数字。
但问题是:如何用这种简单的黑白序列表示12位数字?
UPC-A 条形码采用了一套精妙的编码方案。每个数字由7个"模块"组成——模块是条形码最小的单位宽度。每个模块非黑即白,相邻的同色模块合并成一条粗线或细线。7个模块中总是包含2条黑条和2条白条,这意味着每个数字有4条线(粗细不等)。
关键的设计在于:左侧6个数字和右侧6个数字使用不同的编码表。左侧数字以空白开始、以黑条结束;右侧数字以黑条开始、以空白结束。这种设计有一个巧妙的效果——扫描器可以判断条形码的正反方向,即使把条形码倒着扫描,也能正确解码。

图片来源: www.101computing.net
UPC-A条形码的结构:左侧护轨、左侧数据区、中间护轨、右侧数据区、右侧护轨,共95个模块。
更精妙的是奇偶校验机制。左侧的6个数字中,每个数字可以选择"奇校验"或"偶校验"两种编码之一。奇校验编码中黑条的总宽度是奇数个模块,偶校验编码中是偶数个模块。这12位数字采用哪种奇偶组合,取决于第一个数字(系统码)。通过读取奇偶组合,扫描器就能推断出第一个数字——即使它因为打印质量问题被部分遮挡。
这种冗余设计大大提高了容错能力。单个模块的打印误差不会导致整位数字读错,因为解码算法会寻找最接近的有效模式。
三十年技术博弈:激光、CCD与CMOS的三种路径
条形码编码方案确定后,接下来就是如何读取的问题。过去五十年间,三种主要的扫描技术各有兴衰。
激光扫描器:速度的王者
激光扫描器是最早成熟的技术,至今仍在超市收银台广泛使用。它的核心是一个650纳米波长的红色激光二极管——为什么是红色?不是因为红色有什么神奇的光学特性,纯粹是因为红色激光二极管成本最低。
激光束打在一个高速振荡或旋转的镜子上,镜面的运动使光束在条形码上来回扫动。当光束扫过黑白条纹时,反射光的强度变化被光电二极管捕捉。光电二极管输出的是一个随时间变化的电压信号,这个信号的波形直接对应着条和空的宽度比例。

图片来源: scanbot.io
激光扫描器的工作原理:激光束通过振镜扫过条形码,反射光被光电二极管接收并转换为电信号。
全向激光扫描器更进一步,通过多个固定镜面和一个旋转多面镜的组合,产生复杂的交叉扫描图案。超市收银台那种"扫描枪往里一放就能读"的效果,就是靠这种多方向扫描实现的。高端全向扫描器可以达到每秒1500次扫描,意味着条形码被扫过的瞬间,已经有数十条扫描线穿过了它。
激光扫描器的优势很明显:速度快、成本低、对打印质量要求不高。但它也有致命短板:只能读取一维条形码,无法处理二维码。
CCD扫描器:无移动部件的方案
1990年代,电荷耦合器件(CCD)技术成熟,催生了新一代扫描器。CCD扫描器没有激光、没有振镜,只有一个LED照明阵列和一个线性CCD传感器。
工作时,LED照亮整个条形码,CCD传感器一次性捕获整行的图像,然后由内置处理器分析图像中的黑白边界。因为没有移动部件,CCD扫描器比激光扫描器更耐用,抗震性更好。但它的景深有限——通常只能在几厘米到几十厘米的距离内工作,而激光扫描器可以在两米外读取条形码。
CMOS成像器:二维时代的胜利者
2000年代以后,CMOS图像传感器的成本大幅下降,基于相机的扫描器开始崛起。这类扫描器本质上就是一个专门优化的相机:拍下条形码的照片,然后用图像处理算法定位、二值化、解码。
CMOS成像器的最大优势是可以读取二维码。QR码、Data Matrix、PDF417——这些二维条形码能存储数百倍于一维码的信息,而且有内置的纠错机制。二维码的普及直接推动了CMOS扫描器的市场份额增长。
GS1组织的 Sunrise 2027 计划提出,到2027年底,零售包装上的一维条形码将被二维码取代。这标志着条形码技术正在经历又一次代际更替。
解码算法:从光信号到数字
无论哪种扫描技术,最终输出的都是一个黑白边界的序列。解码器的任务是把这个序列翻译成数字。
解码算法的核心是边缘检测和宽度测量。算法首先找到所有从黑到白或从白到黑的跳变点,然后测量相邻跳变点之间的距离。由于条形码采用模块化设计,理论上所有宽度都应该是模块宽度的整数倍。
但现实远比理论复杂。打印误差、纸张变形、扫描角度偏差,都会导致宽度测量出现误差。解码器必须容忍一定程度的误差,同时保证不会把一个数字误判为另一个。
UPC条形码的解码使用了一种容错策略:将测量到的宽度与标准宽度比较,选择最接近的匹配。如果某个数字的测量宽度是 2.1:1.9:2.2:0.8 个模块(理论应该是 2:2:2:1),算法会将其四舍五入到最接近的整数组合。
更高级的解码器还使用多次扫描投票机制。在全向扫描器中,同一条形码可能被多条扫描线穿过。解码器会尝试解码每一条扫描线,然后比较结果。如果10次扫描中有9次得到相同结果,就以这个结果为准。这种机制大大降低了误读率。
校验位:最后一道防线
即使解码算法再可靠,也难免出错。纸张上的污渍、扫描时的抖动、打印时的墨晕,都可能导致单个模块被误读。UPC条形码的最后一位数字——校验位——就是为了捕捉这类错误而设计的。
校验位的计算采用模10算法:
1. 将12位数字中奇数位置的数字相加(第1、3、5、7、9、11位)
2. 将结果乘以3
3. 将偶数位置的数字相加(第2、4、6、8、10位)
4. 将步骤2和步骤3的结果相加
5. 取模10的余数
6. 用10减去这个余数(如果余数为0,则校验位为0)
以条形码 036000291452 为例:
- 奇数位数字之和:0 + 6 + 0 + 2 + 1 + 5 = 14
- 乘以3:42
- 偶数位数字之和:3 + 0 + 0 + 9 + 4 + 2 = 18
- 总和:42 + 18 = 60
- 模10余数:0
- 校验位:0
当扫描器完成解码后,它会用同样的算法验证校验位。如果计算出的校验位与读取到的校验位不符,扫描器会拒绝这次读取,要求重新扫描。这个简单的机制能检测出所有单个数字的错误,以及大多数相邻数字的交换错误。
静区:被忽视的设计细节
条形码两端必须保留一段空白区域,这段空白叫"静区"(Quiet Zone)。标准规定,静区的宽度至少应为条形码最窄条宽度的10倍。
静区的作用是告诉扫描器"条形码从这里开始"和"条形码到这里结束"。没有静区,扫描器无法区分条形码的边界和背景中的其他图案。很多条形码扫描失败的原因,不是条形码本身有问题,而是静区被文字、图案或其他条形码侵占了。
为什么红光?
回到最初的问题:为什么条形码扫描器都用红光?
原因有三个。首先是成本。650纳米的红色激光二极管是量产最成熟、成本最低的激光光源。蓝色、绿色激光二极管的成本要高得多。
其次是对比度。黑色墨水对红色光的吸收效率很高,白色纸张对红色光的反射效率也很高。这种高对比度使得红光在区分黑白边界时更加可靠。
第三是安全性。650纳米的红色激光通常属于 Class II 激光产品,功率低于1毫瓦,人眼看到时会本能地避开,不会造成伤害。更高功率的激光需要更严格的安全防护,会增加设备成本和复杂性。
条形码的未来:二维码的挑战
条形码统治了零售业五十年,但它的统治正在被二维码挑战。
二维码有几个条形码无法比拟的优势。首先是信息容量:一维条形码只能存储十几位数字,二维码可以存储数千个字符。其次是纠错能力:二维码采用Reed-Solomon纠错编码,即使30%的码区被损坏,仍然可以正确读取。第三是可读性:任何带有摄像头的智能手机都能读取二维码,不需要专用设备。
GS1的 Sunrise 2027 计划正在推动零售业从一维条形码向二维码迁移。新标准下,商品包装上的条形码将被二维码取代,一个二维码可以同时包含商品ID、批次号、有效期、可追溯信息等多种数据。
但这并不意味着条形码会消失。在简单的库存管理、图书馆图书管理、会员卡识别等场景中,一维条形码的低成本、高可靠性仍然有不可替代的优势。技术演进往往不是简单的替代,而是分层共存。
条形码的故事,是一个关于"合适的技术在合适的时间出现"的故事。1949年的专利构想,需要等待激光、集成电路、微型计算机三项技术成熟才能落地。而当它落地之后,又催生了供应链管理、库存追踪、快速结账等一系列业务模式的变革。
每天50亿次的扫描,是对这项技术最直接的肯定。下次听到收银台那声"滴"的时候,你会知道,那是一套运行了五十年的技术系统在正常工作。