条形码
收银员把一盒牛奶从扫描窗上掠过,不到一瞬,收银机就嘀了一声。红色光束扫过30条和29空,光电二极管看到59次亮度跳变。解码器把它们拆成13位数字,并校验了最后一位。如果盒子被压皱,一道裂缝横穿某一条,跳变就变成61次,收银机便不作声。条码的设计原则是:宁可不读,也不读错。
条形码用深浅条纹的宽度来记录数字。宽度都是模块的整数倍,模块就是最窄的条纹。在EAN-13中,每位数字占7个模块:两条两空。第一位数字没有属于自己的条,它藏在左半部分用哪几种字符集书写之中。第十三位是校验码:由其余十二位算出。
| 说明 | 由平行的条和空组成的、可供机器读取的光学代码 |
| 码制 | 商品上的EAN-13和UPC-A,纸箱上的ITF-14,物流中的Code 128 |
| 模块 | X = 0.330 mm(100 %时);允许80–200 %,即0.264至0.660 mm |
| 电容 | 12位信息数字加一位校验码:10¹²个号码 |
| 防护 | 权重为1和3的校验码;能发现任何单个错误 |
| 用什么读 | 650 nm红色激光加光电二极管,或带补光的摄像头 |
词源
线条来自德语,书来自拉丁语
条码诞生于美国,因外形而得名:bar code,“条状的码”。其他语言要么借用了英语单词,要么用自己的词根翻译了它。俄语的“штрих-код”由德语和拉丁语的借词拼成;标准里写作“штриховой код”。
01 · 结构
95个模块里的十三位数字
码按模块从左到右读:1为深色,0为浅色。两侧是保护符101,中间是01010。其间左边六位、右边六位,每位7个模块。每位数字由两条两空组成,宽度从一个模块到四个模块不等。
一位数字可以用三种字符集书写。L集以浅色模块开头,深色模块数为奇数。G集是R集的镜像,深色模块数为偶数。R集是L集的反相,只出现在右半部分。扫描器根据左半部分L和G的交替认出第一位数字,同时也得知方向:码倒过来扫也可以。
数字如何变成条纹
选择一位数字。下面是它在三种字符集中各占7个模块的图案,以及该数字居首位时字符集的交替方式。
把码弄坏,看收银机何时投降
同一张标签上做三个实验。“编码”:改动数字,看哪些条纹重新排列。“扫描器”:移动光束、缩小印刷、让油墨洇开、划伤。“收银员出错”:输入有误的号码,看校验码能否发现。
02 · 码的演进
从沙地上的圆到包装上的方块
每一种新码都回应了旧码的一个问题。圆能从任何方向读,但不好印。车厢上的彩色条纹会褪色。数字码不会表示字母。线性码装不下超过二十几个字符,于是码长进了第二个维度。
03 · 压缩与容量
只有数字,五种长度
码通过选择字母表来压缩数据。Code 39对任何字符都花16个模块,因为它也能表示字母。Code 128的B集把一个字符放进11个模块,C集则一次放两位数字。ITF把一对数字中的第二位藏在第一位的空里。EAN-13最紧凑:它事先就知道数字恰好是13位。
04 · 编码的内容
是号码,不是描述
码中没有名称,没有价格,也没有保质期,只有GTIN号码,收银机凭它在自己的数据库里找到商品。前三位是国家GS1组织的前缀,该组织发放了公司号码。它并不表示生产国:中国的工厂可以在德国领取号码,阿根廷的公司也可以在美国领取。接着是公司号码和商品号码,二者的分界并不固定。最后一位是校验码。
05 · 印刷规则
06 · 相邻的码
07 · 历史部分
诺曼·伍德兰(Norman Woodland)自己说,他是在迈阿密的海滩上想出这个码的。他用手指在沙上画出莫尔斯电码的点和划,又把它们向下拉长,就得到了窄条和宽条。为了让标记能从任何方向读取,他把条纹卷成了环。1952年,他与伯纳德·西尔弗(Bernard Silver)获得了美国专利2 612 994。
那时没有什么能读这个圆:试验需要一盏强力灯和电影放映机上的光电倍增管。这个码等了二十年,等来了廉价的激光器和芯片。1973年,美国的零售连锁企业选定了矩形的UPC,它由IBM在伍德兰的参与下研制。圆输在了印刷上:在高速运转的印刷机纸带上,油墨把它们朝一个方向抹开了。
量的目录
完整目录 →国际单位制的七个基本单位
一滴酸改变果汁的颜色,盐给火焰染色,水被轻敲一下就结冰。下面是 Simetrium 的全部页面,按学科和字母顺序排列。
打开目录 →





