1、第第2章章 条码的基础知识条码的基础知识 n 条码是由一组规则排列的条、空及其对应字符组成的标记,用以表示一定的信息。12n条码通常用来对物品进行标识,这个物品可以是用来进行交易的一个贸易项目,如一瓶啤酒或一箱可乐,也可以是一个物流单元,如一个托盘。n所谓对物品的标识,就是首先给某一物品分配一个代码,然后以条码的形式将这个代码表示出来,并且标识在物品上,以便识读设备通过扫描识读条码符号而对该物品进行识别。n图2-1即是标识在一瓶古井贡酒上的条码符号。条码不仅可以用来标识物品,还可以用来标识资产、位置和服务关系等。32.代码(代码(code)n代码即一组用来表征客观事物的一个或一组有序的符号。代
2、码必须具备鉴别功能,即在一个信息分类编码标准中,一个代码只能惟一地标识一个分类对象,而一个分类对象只能有一个惟一的代码,n比如按国家标准“人的性别代码”规定,代码“1”表示男性,代码“2”表示女性,而且这种表示是惟一的。n我们在对项目进行标识时,首先要根据一定的编码规则为其分配一个代码,然后再用相应的条码符号将其表示出来。4 3.码制码制n条码的码制是指条码符号的类型,每种类型的条码符号都是由符合特定编码规则的条和空组合而成。每种码制都具有固定的编码容量和所规定的条码字符集。条码字符中字符总数不能大于该种码制的编码容量。n常用的一维条码码制包括:EAN条码、UPC条码、UCC/EAN-128条
3、码、交插25条码、39条码、93条码、库德巴条码等。54.字符集字符集n字符集是指某种码制的条码符号可以表示的字母、数字和符号的集合。n有些码制仅能表示10个数字字符:0到9,如EANUPC条码;n有些码制除了能表示10个数字字符外,还可以表示几个特殊字符,如库德巴条码。n39条码可表示数字字符 09、26个英文字母 AZ以及一些特殊符号。几种常见码制的字符集如下:6n EAN条码的字符集:数字09 交插25条码的字符集:数字09 39条码的字符集:数字09 字母AZ 特殊字符:-$%空格/+起始符:/终止符:7 5.连续性与非连续性连续性与非连续性n条码符号的连续性是指每个条码字符之间不存在
4、间隔,相反,非连续性是指每个条码字符之间存在间隔,见图2-2。8该图为25条码的字符结构,从图中可以看出,字符与字符间存在着字符间隔,所以是非连续的。96.定长条码与非定长条码定长条码与非定长条码n定长条码是条码字符个数固定的条码,仅能表示固定字符个数的代码。非定长条码是指条码字符个数不固定的条码,能表示可变字符个数的代码。例如:EAN/UPC条码是定长条码,它们的标准版仅能表示12个字符,39条码则为非定长条码。10n定长条码由于限制了表示字符的个数,其译码的误识率相对较低,因为就一个完整的条码符号而言,任何信息的丢失总会导致译码的失败。非定长条码具有灵活、方便等优点,但受扫描器及印刷面积的
5、限制,它不能表示任意多个字符,并且在扫描阅读过程中可能产生因信息丢失而引起错误的错误译码。这些缺点在某些码制(如交插25条码)中出现的概率相对较大,可通过增强识读器或计算机系统的校验程度而克服。117.双向可读性双向可读性n条码符号的双向可读性,是指从左、右两侧开始扫描都可被识别的特性。绝大多数码制都可双向识读,所以都具有双向可读性。事实上,双向可读性不仅仅是条码符号本身的特性,也是条码符号和扫描设备的综合特性。对于双向可读的条码,识读过程中译码器需要判别扫描方向。n有些类型的条码符号,其扫描方向的判定是通过起始符与终止符来完成。例如39条码、交插25条码、库德巴条码。12n有些类型的条码,由
6、于从两个方向扫描起始符和终止符所产生的数字脉冲信号完全相同,所以无法用它们来判别扫描方向,如EAN和UPC条码。在这种情况下,扫描方向的判别则是通过条码数据符的特定组合来完成的。n对于某些非连续性条码符号,如39条码,由于其字符集中存在着条码字符的对称性(例如字符“*”与“P”,“M”与“”等),在条码字符间隔较大时,很可能出现因信息丢失而引起的译码错误。138.自校验特性自校验特性 n条码符号的自校验特性是指条码字符本身具有校验特性。若在一条码符号中,一个印刷缺陷(例如,因出现污点把一个窄条错认为宽条,而相邻宽空错认为窄空)不会导致替代错误,那么这种条码就具有自校验功能。n例如39条码、库德
7、巴条码、交插25条码都具有自校验功能;EAN和UPC条码、93条码等都没有自校验功能。14n自校验功能也能校验出一个印刷缺陷。对于大于一个的印刷缺陷,任何自校验功能的条码都不可能完全校验出来。n对于某种码制,是否具有自校验功能是由其编码结构决定的。码制设置者在设置条码符号时,均须考虑自校验功能。159.条码密度条码密度n条码密度是指单位长度条码所表示条码字符的个数。显然,对于任何一种码制来说,各单元的宽度越小,条码符号的密度就越高,也越节约印刷面积,但由于印刷条件及扫描条件的限制,我们很难把条码符号的密度做得太高。n39条码的最高密度为:9.4个25.4mm(9.4个英寸);库德巴条码的最高密
8、度为10.0个25.4mm(10.0个英寸);交插25条码的最高密度为:17.7个25.4mm(17.7个英寸)。条码密度越高,所需扫描设备的分辨率也就越高,这必然增加扫描设备对印刷缺陷的敏感性。1610.条码质量条码质量n条码质量指的是条码的印制质量,n其判定主要从外观、条(空)反射率、条(空)尺寸误差、空白区尺寸、条高、数字和字母的尺寸、校验码、译码正确性、放大系数、印刷厚度、印刷位置几个方面进行。17n 条码的质量是确保条码正确识读的关键,不符合条码国家标准技术要求的条码,不仅会因扫描仪器据读而影响扫描速度,降低工作效率,而且可能造成误读进而影响信息采集系统的正常运行。因此确保条码的质量
9、是十分重要的。18 212 条码的符号结构条码的符号结构n个完整的条码符号是由两侧空白区、起始字符、数据字符、校验字符(可选)和终止字符以及供人识读字符组成,如图2-3所示。1920相关术语的解释如下:相关术语的解释如下:n(1)空白区(clear area)条码起始符、终止符两端外侧与空的反射率相同的限定区域。(2)起始符(start character;start cipher;start code)位于条码起始位置的若干条与空。(3)终止符(stop character;stop cipher;stop code)位于条码终止位置的若干条与空。(4)条码数据符(bar code char
10、acter set)表示特定信息的条码字符。(5)条码校验符(bar code check character)表示校验码的条码字符。(6)供人识别的字符 位于条码字符的下方,与相应的条码字符相对应的、用于供人识别的字符。n 21 213 条码的分类条码的分类n条码按照不同的分类方法、不同的编码规则可以分成许多种,现在已知的世界上正在使用的条码就有250 种之多。条码的分类方法有许多种,主要依据条码的编码结构和条码的性质来决定。例如,就一维条码来说按条码的长度来分,可分为定长和非定长条码;按排列方式分,可分为连续型和非连续型条码;从校验方式分,又可分为自校验和非自校验型条码等。22n条码可分为
11、一维条码和二维条码。n一维条码是通常我们所说的传统条码。一维条码按照应用可分为商品条码和物流条码。商品条码包括EAN码和UPC码,物流条码包括128码、ITF码、39码、库德巴(Codabar)码等。n二维条码根据构成原理、结构形状的差异,可分为两大类型:一类是行排式二维条码(2D stacked bar code);另一类是矩阵式二维条码(2D matrix bar code)。232425 2.2 条码的编码理论概述条码的编码理论概述n条码技术涉及了两种类型的编码方式:一种是代码的编码方式;另一种是条码符号的编码方式。代码的编码规则规定了由数字、字母或其他字符组成的代码序列的结构,而条码符
12、号的编制规则规定了不同码制中条、空的编制规则及其二进制的逻辑表示设置。表示数字及字符的条码符号是按照编码规则组合排列的,故当各种码制的条码编码规则一旦确定,我们就可将代码转换成条码符号。26 2.2.1 代码的编码方法代码的编码方法n代码的编码系统是条码的基础,不同的编码系统规定了不同用途的代码的数据格式、含义及编码原则。编制代码须遵循有关标准或规范,根据应用系统的特点与需求选择适合的代码及数据格式,并且遵守相应的编码原则。比如,如果对商品进行标识,我们应该选用由国际物品编码协会(EAN)和统一代码委员会(UCC)规定的、用于标识商品的代码系统。该系统包括EAN/UCC-13、EAN/UCC-
13、8、UCC-12三种代码结构(详见第3章),厂商可根据具体情况选择合适的代码结构,并且按照惟一性、无含义性、稳定性的原则进行编制。27 2.2.2 条码符号的编码方法n条码是利用“条”和“空”构成二进制的“0”和“1”,并以它们的组合来表示某个数字或字符,反映某种信息的。但不同码制的条码在编码方式上却有所不同。一般有以下两种:28n宽度调节编码法即条码符号中的条和空由宽、窄两种单元组成的条码编码方法。按照这种方式编码时,是以窄单元(条或空)表示逻辑值“0”,宽单元(条或空)表示逻辑值“l”。n宽单元通常是窄单元的23倍。对于两个相邻的二进制数位,由条到空或由空到条,均存在着明显的印刷界限。39
14、条码、库德巴条码及交插25条码均属宽度调节型条码。29n交插25条码是一种条、空均表示信息的连续型、非定长、具有自校验功能的双向条码。它的每一个条码数据符由5个单元组成,其中两个是宽单元(表示二进制的“1”),三个窄单元(表示二进制的“0”)。图2-4是交插25码的一个示例。30312.模块组配编码法模块组配编码法n模块组配编码法即条码符号的字符由规定的若干个模块组成的条码编码方法。按照这种方式编码,条与空是由模块组合而成的。一个模块宽度的条模块表示二进制的“1”,而一个模块宽度的空模块表示二进制的“0”。32nEAN条码、UPC条码均属模块组配型条码。商品条码模块的标准宽度是0.33mm,它
15、的一个字符由2个条和2个空构成,每一个条或空由14个标准宽度的模块组成,每一个条码字符的总模块数为7。n凡是在字符间用间隔(位空)分开的条码,称为非连续性条码。凡是在条码字符间不存在间隔(位空)的条码,称为连续性条码。模块组配编码法条码字符的构成如图2-5所示。3334 2.2.4 条码的校验与纠错方式条码的校验与纠错方式n为了保证正确识读,条码一般具有校验功能或纠错功能。n一维码一般具有校验功能,即通过字符的校验来防止错误识读。n而二维条码则具有纠错功能,这种功能使得二维条码在有局部破损的情况下仍可被正确地识读出来。35n1.一维码的校验方法一维码的校验方法 一维码在纠错上主要采用校验码的方
16、法。即从代码位置序号第二位开始,所有的偶(奇)数的数字代码求和的方法来校验条码的正确性。校验的目的是保证条空比的正确性。校验码算法有很多种,本书将在后续章节中加以介绍。n 2.二维码的纠错功能二维码的纠错功能 二维码在保障识读正确方面采用了更为复杂、技术含量更高的方法。例如PDF417条码,在纠错方法上采用索罗门算法,见图2-6。不同二维条码可能采用不同的纠错算法。纠错是为了当二维条码存在一定局部破损情况下,还能采用替代运算还原出正确的码词信息,从而保证条码的正确识读。本书将在第5章详细介绍二维码的相关知识。363723 几种常见的条码n 125条码条码 25条码是一种只有条表示信息的非连续型
17、条码。每一个条码字符由规则排列的5个条组成,其中有两个条为宽单元,其余的条和空,字符间隔是窄单元,故称之为“25条码”。n 25条码的字符集为数字字符09。图2-7是表示“123458”的25条码结构。3839n从图2-7可以看出,25条码由左侧空白区、起始符、数据符、终止符及右侧空白区构成。空不表示信息,宽单元用二进制的“1”表示,窄单元用二进制的“0”表示,起始符用二进制“110”表示(二个宽单元和一个窄单元),终止符用二进制“101”表示(中间是窄单元,两边是宽单元)。因相邻字符之间有字符间隔,所以25条码是非连续型条码。n 25条码是最简单的条码,它研制于20世纪60年代后期,到199
18、0年由美国正式提出。这种条码只含数字09,应用比较方便。当时主要用于各种类型文件处理及仓库的分类管理、标识胶卷包装及机票的连续号等。但25条码不能有效地利用空间,人们在25条码的启迪下,将条表示信息,扩展到也用空表示信息。因此在25条码的基础上又研制出了条、空均表示信息的交插25条码。402交插交插25条码条码n 交插25条码(interleaved 2 of 5 bar code)是在25条码的基础上发展起来的,由美国的Intermec公司于1972年发明的。它弥补了25条码的许多不足之处,不仅增大了信息容量,而且由于自身具有校验功能,还提高了交插25条码的可靠性。交插25条码起初广泛应用于
19、仓储及重工业领域,1987年开始用于运输包装领域。1987年日本引入了交插25条码,用于储运单元的识别与管理。1997年我国也研究制定了交插25条码标准(GB/T 16829-1997),主要应用于运输、仓储、工业生产线、图书情报等领域的自动识别管理。交插25条码是一种条、空均表示信息的连续型、非定长、具有自校验功能的双向条码。它的字符集为数字字符09。图2-8是表示“3185”的交插25条码的结构。4142n从图中可以看出,交插25条码由左侧空白区、起始符、数据符、终止符及右侧空白区构成。它的每一个条码数据符由5个单元组成,其中两个是宽单元(表示二进制的“1”),三个窄单元(表示二进制的“0
20、”)。条码符号从左到右,表示奇数位数字符的条码数据符由条组成,表示偶数位数字符的条码数据符由空组成。组成条码符号的条码字符个数为偶数。当条码字符所表示的字符个数为奇数时,应在字符串左端添加“0”,如图2-9所示。4344n起始符包括两个窄条和两个窄空,终止符包括两个条(一个宽条、一个窄条)和一个窄空。它的字符集为数字字符09,字符的二进制表示见表2-1。4546 339条码条码n39条码(code 39)是1975年由美国的Intermec公司研制的一种条码,它能够对数字、英文字母及其他字符等44个字符进行编码。还由于它具有自检验功能,使得39条码具有误读率低等优点,首先在美国国防部得到应用。
21、目前广泛应用在汽车行业、材料管理、经济管理、医疗卫生和邮政、储运单元等领域。我国于1991年研究制定了39条码标准(GB/T 12908-2002),推荐在运输、仓储、工业生产线、图书情报、医疗卫生等领域应用39条码。39条码是一种条、空均表示信息的非连续型、非定长、具有自校验功能的双向条码。(1)符号特征)符号特征 由图2-10可以看出,39条码的每一个条码字符由9个单元组成(5个条单元和4个空单元),其中3个单元是宽单元(用二进制的“1”表示),其余是窄单元(用二进制的“0”表示),故称之为“39条码”。47(1)符号特征)符号特征 由图2-10可以看出,39条码的每一个条码字符由9个单元
22、组成(5个条单元和4个空单元),其中3个单元是宽单元(用二进制的“1”表示),其余是窄单元(用二进制的“0”表示),故称之为“39条码”。48n39条码可编码的字符集包括:AZ和09的所有数字字母;特殊字符:空格$%+-/;起始符/终止符。每个条码字符共9个单元,其中有3 个宽单元和6个窄单元,共包括5个条和4个空;非数据字符等于两个符号字符。49n(2)符号结构)符号结构 39条码符号包括:左右两侧空白区,起始符、条码数据符(包括符号校验字符)、终止符、如图2-11所示,条码字符间隔是一个空,它将条码字符分隔开。39条码字符集见表2-2。在供人识读的字符中,39条码的起始符和终止符通常用“*
23、”表示。此字符不能在符号的其他位置作为数据的一部分,并且译码器不应将它输出。(3)字符编码)字符编码 39条码的条码字符集见表2-2。504库德巴条码库德巴条码n 库德巴条码是1972年研制出来的,它广泛应用于医疗卫生和图书馆行业,也用于邮政快件上。美国输血协会还将库德巴条码规定为血袋标识的代码,以确保操作准确,保护人类生命安全。我国于1991年研究制定了库德巴条码国家标准(GB/T12909-1991)。库德巴条码是一种条、空均表示信息的非连续型、非定长、具有自校验功能的双向条码。它由条码字符及对应的供人识别字符组成。51n 它的字符集包括:(1)数字字符09(10个数字);(2)英文字母A
24、D(4个字母);(3)特殊字符-(减号)$(美元符号):(冒号)/(斜杠)(圆点)+(加号)52n由图2-11可以看出,库德巴条码由左侧空白区、起始符、数据符、终止符及右侧空白区构成。它的每一个字符由7个单元组成(4个条单元和3个空单元),其中两个或3个是宽单元(用二进制“1”表示),其余是窄单元(用二进制“0”表示)。53n 库德巴条码字符集中的字母A、B、C、D只用于起始字符和终止字符,其选择可任意组合。当A、B、C、D用作终止字符时,亦可分别用T、N、#、E来代替。库德巴条码的字符、条码字符及二进制表示见表2-3。表2-3 字符、条码字符及二进制表示对照表54 2.4 条码识读基本原理条
25、码识读基本原理n 2.4.1 条码符号的光学特性条码符号的光学特性 条码符号是由宽窄不同,反射率不同的条、空按照一定的编码规则组合起来的一种信息符号。常见的条码是黑条与白空(也叫白条)印制而成的。因为黑条对光的反射率最低,而白空对光的反射率最高。当光照射到条码符号上时,黑条与白空产生较强的对比度。条码识读器正是利用条和空对光的反射率不同来读取条码数据的。条码符号不一定必须是黑色和白色,也可以印制成其他颜色,但两种颜色对光必须有不同的反射率,保证有足够的对比度。条、空颜色的选择详见第3章。n 55 2.4.2 光电转换、信号放大及整形光电转换、信号放大及整形n扫描器接收到的光信号需要经光电转换器
26、转换成电信号并通过放大电路进行放大。由于扫描光斑具有一定尺寸、条码印刷时的边缘模糊性以及一些其他原因,经过电路放大的条码电信号是一种平滑的起伏信号,并不呈现像条码符号亮暗条之间泾渭分明的特征,这种信号边缘常被称为条码的“模拟电信号”,见图2-12条码的扫描信号。这种信号还须经整形电路尽可能准确地将边缘恢复出来,变成通常所说的“数字信号”。5657n各个条码识读设备都有自己的条码信号处理方法,随着条码识读设备的发展,判断条码符号条空边界的信号整形方法日趋科学、合理和准确。通常,信号整形是用硬件来完成的。在ISO 15416条码符号质量评价国际标准中,扫描反射率曲线分析法采用的确定条码信号条空边界的方法是一种标准化的方法。它是一种通过软件完成的方法,用于评价条码符号的尺寸,但它接近主流条码识读器中信号整形电路的性能。58