EAN-13
终端产品的条形码协议和标准
European Article Number (欧洲物品编码的缩写),其中共计13位代码的EAN-13是比较通用的一般终端产品的条形码协议和标准,主要应用于超级市场和其它零售业,因此这种是我们比较常见的,随便拿起身边的一个从超市买来的商品都可以从包装上看得到。
基本介绍
中华人民共和国可用的国家代码有690-699,其中696-699尚未使用。生活中最常见的国家代码为690-693,其中以690、691开头时,厂商识别码为四位,商品项目代码为五位;以692、693开头时,厂商识别码是五位,商品项目代码是四位。
结构
如图1所示,EAN-13商品条码是表示EAN/UCC-13商品标识代码的条码符号,由左侧空白区、起始符、左侧数据符、中间分隔符、右侧数据符、校验符、终止符、右侧空白区及供人识别字符组成。
左侧空白区:位于条码符号最左侧与空的反射率相同的区域,其最小宽度为11个模块宽。
起始符:位于条码符号左侧空白区的右侧,表示信息开始的特殊符号,由3个模块组成。
左侧数据符:位于起始符右侧,表示6位数字信息的一组条码字符,由42个模块组成。
中间分隔符:位于左侧数据符的右侧,是平分条码字符的特殊符号,由5个模块组成。
右侧数据符:位于中间分隔符右侧,表示5位数字信息的一组条码字符,由35个模块组成。校验符:位于右侧数据符的右侧,表示校验码的条码字符,由7个模块组成。
终止符:位于条码符号校验符的右侧,表示信息结束的特殊符号,由3个模块组成。
右侧空白区:位于条码符号最右侧的与空的反射率相同的区域,其最小宽度为7个模块宽。为保护右侧空白区的宽度,可在条码符号右下角加“>”符号。
供人识读字符:位于条码符号的下方,是与条码字符相对应的供人识别的13位数字,最左边一位称前置码。供人识别字符优先选用OCR-B字符集,字符顶部和条码底部的最小距离为0.5个模块宽。标准版商品条码中的前置码印制在条码符号起始符的左侧。
字符集
数据字符
包括EAN-13在内的商品条码,每一条码数据字符由2个条和2个空构成,每一条或空由1~4个模块组成,每一条码字符的总模块数为7。用二进制“1”表示条的模块,用二进制“0”表示空的模块。
商品条码可表示10个数字字符:0~9。
条码的二进制表示方法有三个子集:A、B和C。
1. A子集中条码字符所包含的条的模块的个数为奇数,称为奇排列;
2. B、C子集中条码字符所包含的条的模块的个数为偶数,称为偶排列。
商品条码的辅助字符
商品条码起始符、终止符的二进制表示都为“101”(UPC-E的终止符例外),中间分隔符的二进制表示为“01010”(UPC-E的无中间分隔符。
EAN-13商品条码数据符
EAN-13商品条码中的前置码不用条码字符表示,不包括在左侧数据符内。右侧数据符及校验符均用字符集中的C子集表示。选用A子集还是B子集表示左侧数据符取决于前置码的数值。下表中列出了左侧数据符的字符集的选择规则:
EAN-13商品条码校验符
EAN-13商品条码中的校验符用字符集中的C子集表示,校验符的作用是检验前面12个数字是否正确,在条码机每次读入数据时,都会计算一次数据符的校验并与校验符进行比对。校验符的计算方法非常简单,将12个数据符从左起将所有的奇数位相加得出一个数a,将所有的偶数位相加得出一个数b,然后将数b乘以3再与a相加得到数c,用10减去数c的个位数,如果结果不为10则检验符为结果本身,如果为10则检验符为0。
示例
例如:690123456789
690表示商品代码:日用品
1234表示生产商代码
56789表示产品代码
计算其校验符的过程为:
奇数位和:6 + 0 + 2 + 4 + 6 + 8 = 26
偶数位和:9 + 1+ 3 + 5 + 7 + 9 = 34
将奇数位和与偶数位和的三倍相加:26 + 34 * 3 = 26 + 102=128
取结果的个位数:128的个位数为8
用10减去这个个位数:10 - 8 =2
所以校验码为2
(注:如果取结果的个位数为0,那么校验码不是为10 (10 - 0 = 10),而是0。)
前置码:6
左侧数据符:901234,按ABBBAA子集方式绘制条码
右侧数据符:567892,按CCCCCC子集方式绘制条码
用条码表示:
左侧空白区(11个模块)
起始符(3个模块):101
左侧数据符(42个模块):0001011(9)0100111(0)0110011(1)0011011(2)0111101(3)0100011(4)
中间分隔符(5个模块):01010
右侧数据符(42个模块):1001110(5)1010000(6)1000100(7)1001000(8)1110100(9)1101100(2)
结束符(3个模块):101右侧空白区(7个模块):0000000
画出这个条码
EAN字符集编码表
这个表说明了EAN-13条码中的每个数位应该如何编码,这要取决于这个数位位于条码的哪半边(左边还是右边)。在这种情况下,一个左手边数位的编码(奇数性还是偶数性)将取决于数制码的第一个数位的值(见图2中奇偶性编码)。
观察发现:
一个EAN-13字符使用7个元素来描述,包含2个条和2个空间。任何条或空间的长度都不会超过4个元素。唯一的例外情况就是左警戒条和右警戒条(都是3个元素)以及中间警戒条(5个元素长)。
条码左手边的所有字符总是以0(空间)开始的,而条码右手边的所有字符都是以1(条)开始的。
如果把1变成0,把0变成1,那么“右手边”编码模式和“左手边奇数”编码模式是完全相同的。
“左手边偶数”编码模式是基于“左手边奇数”编码模式的。为了得到偶数编码,可以按照如下步骤对左手边编码模式进行操作:1)把所有的1变成0,0变成1。2)将得到的结果编码反着读(从右到左)就得到了“左手边偶数”编码模式。
EAN奇偶性编码表
下表说明了条码左手边每个字符按照哪种奇偶性进行编码。奇偶性取决于EAN-13值得第一个数位。例如,我们的CD的EAN-13值是0075678164125。在这个条码中,数制码的第一个数位就是第一个“0”,所以,奇偶性就应该遵循下表中的数字0一行:
观察得到:
第二个数制位总是按照奇数性进行编码(这在解码时很重要)。
一个UPC-A条码的第一个数制位总是0,因此,全部使用奇数性。实际上,任何第一个数值位是0的EAN-13幅好其实是一个UPC-A符号,而不是一个EAN-13符号。
所有EAN-13符号(那些第一个数制位不是0的)始终有3个左手边字符采用偶数性编码,有2个采用奇数性编码。
最后那两个表是EAN-13编码的关键和核心,并且兼容现有的UPC-A符号。
编码示例
这个例子将对值“7501031311309”进行EAN-13编码。“75”是数制,“01031”是厂商码,“31130”是产品码(“9”是校验位,在本例中我们还是要进行计算)。这是墨西哥的12盎司一听的百事可乐上的条码。
首先,我们计算校验位(如图4):
计算加权和7+15+0+3+9+1+9+1+3+3+0=51。我们需要给51加上9以保证能整除10(51+9=60),因此,校验位就是9。这和我们在条码后面看到的那个“9”是一致的,说明我们计算对了。
接下来,我们观察数制码的第一个数位(条码中最左边的那个数位)是数字“7”。参照奇偶性编码表中的数字“7”,我们可以知道第二个数制位和厂商码应该按照“奇/偶/奇/偶/奇/偶”的模式进行编码。这就是说第二个数制位将按照“左手边奇数”性表进行编码,厂商码的第一个数位应该按照“左手边偶数”性编码的,等等。现在,我们可以按照如下步骤来编制条码。之后将所有字符串连接起来就构成了最终的条码。
记住,一个“1”代表一个条,一个“0”代表一个空间。因此,我们可以将这个数字字符串转换成他们的图形表示形式,最终我们可以得到如下条形码:
参考资料
最新修订时间:2022-08-25 17:41
目录
概述
基本介绍
结构
参考资料