条形码识别技术
- 格式:doc
- 大小:246.00 KB
- 文档页数:13
一维条形码生成与识别技术
一、引言
条形码(简称条码)技术是集条码理论、光电技术、计算机技术、通信技术、条码印制技术于一体的一种自动识别技术。条形码是由宽度不同、反射率不同的条(黑色)和空(白色),按照一定的编码规则编制而成,用以表达一组数字或字母符号信息的图形标识符。条形码符号也可印成其它颜色,但两种颜色对光必须有不同的反射率,保证有足够的对比度。条码技术具有速度快、准确率高、可靠性强、寿命长、成本低廉等特点,因而广泛应用于商品流通、工业生产、图书管理、仓储标证管理、信息服务等领域。
二、EAN-13条形码简介
一维条码主要有EAN和UPC两种,其中EAN码是我国主要采取的编码标准。EAN是欧洲物品条码(European Article Number Bar Code)的英文缩写,是以消费资料为使用对象的国际统一商品代码。只要用条形码阅读器扫描该条码,便可以了解该商品的名称、型号、规格、生产厂商、所属国家或地区等丰富信息。
EAN通用商品条码是模块组合型条码,模块是组成条码的最基本宽度单位,每个模块的宽度为毫米。在条码符号中,表示数字的每个条码字符均由两个条和两个空组成,它是多值符号码的一种,即在一个字符中有多种宽度的条和空参与编码。条和空分别由1~4个同一宽度的深、浅颜色的模块组成,一个模块的条表示二进制的“1”,一个模块的空表示二进制的“0”,每个条码字符共有7个模块。即一个条码字符条空宽度之和为单位元素的7倍,每个字符含条或空个数各为2,相邻元素如果相同,则从外观上合并为一个条或空,并规定每个字符在外观上包含的条和空的个数必须各为2个,所以EAN码是一种(7,2)码。
EAN条码字符包括0~9共10个数字字符,但对应的每个数字字符有三种编码形式,左侧数据符奇排列、左侧数据符偶排列以及右侧数据符偶排列。这样十个数字将有30种编码,数据字符的编码图案也有三十种,至于从这30个数据字符中选哪十个字符要视具体情况而定。在这里所谓的奇或偶是指所含二进制“1”的个数为偶数或奇数[2]。
EAN-13码的格式
EAN条形码有两个版本,一个是13位标准条码(EAN-13条码),另一个是8位缩短条码(EAN-8条码)。EAN-13条码由代表13位数字码的条码符号组成,如图1所示[1]。
图 1
前2位( ~ ,欧共体12国采用)或前3位( ~ ,其他国家采用)数字为国家或地区代码,称为前缀码或前缀号。例如:我国为690,日本为49*,澳大利亚为93*等(其中的“*”表示0~9的任意数字)。前缀后面的5位( ~ )或4位( ~ )数字为商品制造商的代码,是由该国编码管理局审查批准并登记注册的。厂商代码后面的5位( ~ )数字为商品代码或商品项目代码,用以表示具体的商品项目,即具有相同包装和价格的同一种商品。最后一位数字为校验码,用以提高数据的可靠性和校验数据输入的正确性,校验码的数值按国际物品编码协会规定的方法计算。
EAN-13条形码的构成
EAN-13条形码的构成如图2所示。
左侧
空白 起始符 左侧数据符
6位数字 中间
分隔符 右侧数据符
6位数字 校验符
1位数字 终止符 右侧空 白
图2 典型EAN-13条形码的构成
(1)左、右侧空白:没有任何印刷符号,通常是空白,位于条码符号的两侧。用以提示阅读,准备扫描条码符号,共有18个模块组成(其中左侧空白不得少于9个模块宽度),一般左侧空白11个模块,右侧空白7个模块。
(2)起始符:条形码符号的第一位字符是起始符,它特殊的条空结构用于识别条形码符号的开始。由3个模块组成。
(3)左侧数据符:位于中间分隔符左侧,表示一定信息的条码字符,由42个模块组成。
(4)中间分隔符:位于条码中间位置的若干条与空,用以区分左、右侧数据符,由5个模块组成。
(5)右侧数据符:位于中间分隔符右侧,表示一定信息的条码字符,由35个模块组成。
(6)条码校验符:表示校验码的条码字符,用以校验条码符号的正确与否,由7个模块组成。
(7)终止符:条形码符号的最后一位字符是终止符,它特殊的条空结构用于识别条形码符号的结束。由3个模块组成。
一个条形码图案是数条黑色和白色线条组成,如图3所示。
图3 条形码图案实例
图案分成五个部分,从左至右分别为:起始部分、第一数据部分、中间部分、第二数据部分和结束部分。
(1)起始部分:由11条线组成,从左至右分别是8条白线,一条黑线,一条白线和一条黑线。
(2)第一数据部分:由42条线组成,是按照一定的算法形成的,包含了左侧数据符( ~ )这些数字的信息。
(3)中间部分:由5条线组成,从左到右依次是白线,黑线,白线,黑线,白线。
(4)第二数据部分:由42条线组成,是按照一定的算法形成的,包含了右侧数据符( ~ ) 这些数字的信息。
(5)结尾部分:由11条线组成,从左至右分别是一条黑线,一条白线和一条黑线,8条白线。
EAN-13的编码规则
EAN-13的编码是由二进制表示的。它的数据符、起始符、终止符、中间分隔符编码见表1。
表1 EAN-13编码
字符 二进制表示
左侧数据符 右侧数据符
奇性字符(A组) 偶性字符(B组) 偶性字符(C组)
0 0001101 0100111 1110010
1 0011001 0110011 1100110
2 0010011 0011011 1101100
3 0111101 0100001 1000010
4 0100011 0011101 1011100
5 0110001 0111001 1001110
6 0101111 0000101 1010000
7 0111011 0001001 1000100
8 0110111 0001001 1001000
9 0001011 0010111 1110100
起始符 101
中间分隔1010 符
终止符 101
左侧数据符有奇偶性,它的奇偶排列取决于前置符,所谓前置符是国别识别码的第一位 ,该位以消影的形式隐含在左侧六位字符的奇偶性排列中,这是国际物品编码标准版的突出特点。前置符与左侧六位字符的奇偶排列组合方式的对应关系见表2,实际上由表2这种编码规定可看出, 与这种组合方式是一一对应固定不变的。例如:中国的国别识别码为“690”,因此它的前置符为“6”,左侧数据符的奇偶排列为 “OEEEOO”[3],“E”表示偶字符,“O”表示奇字符。
表2 左侧数据符奇偶排列结合方式
前置符 左侧数据符奇、偶排列 前置符 左侧数据符奇、偶排列
0 OOOOOO 5 OEEOOE
1 OOEOEE 6 OEEEOO
2 OOEEOE 7 OEOEOE
3 OOEEEO 8 OEOEEO
4 OEOOEE 9 OEEOEO
EAN-13条形码的校验方法
校验码的主要作用是防止条形码标志因印刷质量低劣或包装运输中引起标志破损而造成扫描设备误读信息。作为确保商品条形码识别正确性的必要手段,条形码用户在标志设计完成后,代码的正确与否直接关系到用户的自身利益。对代码的验证,校验码的计算是标志商品质量检验的重要内容之一,应该谨慎严格,需确定代码无误后才可用于产品包装上。
下面是EAN-13条形码的校验码验算方法,步骤如下[3]:
(1)以未知校验位为第1位,由右至左将各位数据顺序排队(包括校验码);
(2)由第2位开始,求出偶数位数据之和,然后将和乘以3,得积 ;
(3)由第3位开始,求出奇数位数据之和,得 ;
(4)将 和 相加得和 ;
(5)用 除以10,求得余数,并以10为模,取余数的补码,即得校验位数据值 ;
(6)比较第1位的数据值与C的大小,若相等,则译码正确,否则进行纠错处理。 例如,设EAN-13码中数字码为00578(其中校验码值为8),该条码字符校验过程为:,
, = + =82, 除以10的余数为2,故 ,译码正确。
3 EAN-13条形码的生成
条形码的生成方法如下[3]:
(1)由 根据表3产生和 ~ 匹配的字母码,该字母码有6个字母组成,字母限于A和B。
表3
映射表
0 AAAAAA 5 ABBAAB
1 AABABB 6 ABBBAA
2 AABBAB 7 ABABAB
3 AABBBA 8 ABABBA
4 ABAABB 9 ABBABA
(2
0 AAAAAA 5 ABBAAB
1 AABABB 6 ABBBAA
2 AABBAB 7 ABABAB
3 AABBBA 8 ABABBA
4 ABAABB 9 ABBABA
)将 ~ 和 产生的字母码按位进行搭配,来产生一个数字--字母匹配对。并通过查表4生成条形码的第一数据部分。
表4 数字--字母映射表
数字-字母匹配对 二进制信息 数字-字母匹配对 二进制信息
0A 0001101 0B 0100111
0C 1110010 1A 0011001
1B 0110011 1C 1100110
2A 0010011 2B 0011011 2C 1101100 3A 0111101
3B 0100001 3C 1000010
4A 0100011 4B 0011101
4C 1011100 5A 0110001
5B 0111001 5C 1001110
6A 0101111 6B 0000101
6C 1010000 7A 0111011
7B 0010001 7C 1000100
8A 0110111 8B 0001001
8C 1001000 9A 0001011
9B 0010111 9C 1110100
(3)将 ~ 和C进行搭配,并通过查表4生成条形码的第二数据部分。
(4)按照两部分数据绘制条形码:1对应黑线,0对应白线。
例如,假设一个条形码的数据码为:00578。 =6,对应的字母码为ABBBAA, ~ 和 产生的字母码按位进行搭配结果为9A、0B、1B、0B、3A、8A,查表4得第一部分数据的编码分别为0001011、0100111、0110011、0100111、0111101、0110111; ~ 和C进行搭配结果为1C、0C、0C、5C、7C、8C,查表4得第二部分数据的编码分别为1100110、1110010、1110010、1001110、1000100、1001000。
4 条形码识别
条码识别的基本原理
EAN-13是一种(7, 2)码,即每个字符的总宽度为7个模块宽,交替由两个条和两个空组成,而每个条空的宽度不超过4个模块,如图4所示。