-
EAN、UPC条码的校验位计算规则
-
交叉25码校验位的计算规则
-
39码校验位的计算规则
-
128码校验位的计算规则
-
ISBN的编码规则
-
ISSN的编码规则
-
AIM的规范
-
为什么要使用串口条码扫描仪
-
最新的EAN国家及地区编码
-
对UPC-E的一点心得
摘自
Zhou-Jun.com
EAN、UPC条码的校验位计算规则。
EAN、UPC使用的是Mod 10
校验位计算法,具体如下
示范数据:01234567890 UPC-A条码
- 将从左第一位开始奇数位相加。
0 + 2 + 4 + 6 + 8 + 0 = 20
- 将步骤1的结果乘以3。
20 X 3 = 60
- 将从左向右的偶数位相加。
1 + 3 + 5 +7 + 9 = 25
- 将步骤2与步骤3的结果相加。
60 +25 = 85
- 将步骤4的个位数取补,结果就是校验位,
10 - 5 = 5
如果步骤4的个位数为0,则校验位为0
实际条码为 012345678905
交叉25码校验位的计算规则。
交叉25码的校验位计算方法依然是 Mod 10 :
- 字符个数为偶数时为:10的倍数-[(奇数位的数字之和<从左至右)+(偶数位数字之和)*3个位数]
- 字符个数为奇数时为:10的倍数-[(偶数位的数字之和<从左至右)+(奇数位数字之和)*3个位数]
如:
514362的校验位为10*X-[(5+4+6)+3*(1+3+2)]=7(因加校验位后个数为奇数,故前面加0后为05143627。
76534的校验位为10*X-[(6+3)+3*(7+5+4)]=3
39码校验位的计算规则。
39码用的是Mod 43 校验计算法。
每个39码的字符有一个指定的值,如下表所示。
0=0 |
1=1 |
2=2 |
3=3 |
4=4 |
5=5 |
6=6 |
7=7 |
8=8 |
9=9 |
A=10 |
B=11 |
C=12 |
D=13 |
E=14 |
F=15 |
G=16 |
H=17 |
I=18 |
J=19 |
K=20 |
L=21 |
M=22 |
N=23 |
O=24 |
P=25 |
Q=26 |
R=27 |
S=28 |
T=29 |
U=30 |
V=31 |
W=32 |
X=33 |
Y=34 |
Z=35 |
-=36 |
. = 37 |
sp=38 |
$=39 |
/=40 |
+=41 |
%=42 |
|
示范字符串为 :12345ABCDE/
- 将所有的字符转换为相应的数值并相加。
1 +2 + 3 + 4 + 5 + 10 + 11 + 12 + 13 +14 + 40 = 115
- 将步骤1的结果除以43,取其余数。
115 / 43 = 2 余 29
- 校验位是步骤2余数对应的字符。
余数 = 29.
29 所对应的字符是 T.
T 校验位.
128码校验位的计算规则。
ISBN的编码规则。
EAN 的前三位必须是978,示范数据:9787801243881
(这是EAN码)
第一位 |
第二位 |
第三位 |
第四位 |
第五位 |
第六位 |
第七位 |
第八位 |
第九位 |
7 |
8 |
0 |
1 |
2 |
4 |
3 |
8 |
8 |
10 |
9 |
8 |
7 |
6 |
5 |
4 |
3 |
2 |
70 |
72 |
0 |
7 |
12 |
20 |
12 |
24 |
16 |
- 按此公式计算: 7 X 10 + 8 X 9 + 0 X 8 + 1 X 7 + 2 X 6 + 4 X 5 + 3 X
4 + 8 X 3 + 8 X 2 = 233
- 233 除以 11 余 2
- 将步骤2的结果取11的补数
11 - 2 = 9
校验位为9
步骤2余数为0时,校验位为 0,余数为1时,补数为10,用符号
X代替。
- 书号为 :7801243889
ISSN的编码规则。
EAN 的前三位必须是977,示范数据:97771002489001
(这是EAN码)
第一位 |
第二位 |
第三位 |
第四位 |
第五位 |
第六位 |
第七位 |
1 |
0 |
0 |
2 |
4 |
8 |
9 |
8 |
7 |
6 |
5 |
4 |
3 |
2 |
8 |
0 |
0 |
10 |
16 |
24 |
18 |
- 按此公式计算: 1 X 8 + 0 X 7 + 0 X 6 + 2 X 5 + 4 X 4 + 8 X 3
+ 9 X 2 = 76
- 将步骤2除以11,取其余数
76 除以 11 余 10
- 将步骤2的结果取11的补数
11 - 10 = 1
校验位为1
步骤2余数为0时,校验位为 0,补数为10,校验位为 X代替。
- 期刊号为 :10024891
AIM的规范。
AIM识别符含有三个字符 ]cm
] = 标志字符(十进制ASCII码:93)
c = 代码字符(见表1)
m = 修饰符(见表3)
表1:代码表
代码字符 |
条码类型 |
A |
39码 |
C |
128码 |
E |
UPC/EAN |
F |
Codabar |
G |
93码 |
H |
11码 |
I |
交叉25码 |
L |
PDF417 |
M |
MSI Plessey |
S |
D25码 IATA25码 |
X |
Trioptic 39码 |
X |
书号 |
X |
Coupon码 |
表2
条码类型 |
选项值 |
选项 |
39码 |
0 |
没有校验位或正在处理全ASCII。 |
1 |
有一位校验位 |
3 |
有一位校验位,但阅读器已去除该校验位 |
4 |
阅读器已处理完全ASCII的转换 |
5 |
阅读器已处理完全ASCII的转换,有一位校验位 |
7 |
阅读器已处理完全ASCII的转换,有一位校验位,已去除 |
例如:全ASCII字符串,校验位为W,A+I+MI+DW,传输的值为:]A7AimId |
Troptic 39码 |
0
|
永远为0 |
示例:Troptic条码内容为:412356,传输的字符串为:]X0412356 |
128码 |
0 |
标准数据包,FNC1符不在第一位 |
1 |
FNC1为第一位 |
2 |
FNC1为第二位 |
示例:一个(EAN)128码,FNC1为第一位,FNC1AimID
传输字符串为:]C1AimID |
交叉25码 |
0 |
没有校验位 |
1 |
阅读器检测到一位校验位 |
3 |
检测到校验位,但校验位未传送 |
示例:4123,字符串不含校验位,传输字符串为:]I04123 |
Codabar |
0 |
没有校验位 |
1 |
阅读器检测到一位校验位 |
3 |
检测到校验位,但校验位未传送 |
示例:4123,字符串不含校验位,传输字符串为:]F04123 |
93码 |
0
|
永远为0 |
示例:93码内容为:4123,传输字符串为:]G04123 |
MSI Plessey |
0 |
检测到一位校验位 |
1 |
检测到两位校验位 |
2 |
检测到一位校验位,但未传送 |
3 |
检测到两位校验位,但未传送 |
示例:MSI Plessey条码内容为:4123,有一位校验位,传送字符串为:]M04123 |
D25 |
0
|
永远为0 |
示例:条码内容为:4123,传送字符串为:]S04123 |
UPC/EAN |
0 |
标准EAN地区码格式,13位UPC-A和UPC-E |
1 |
2位附加码 |
2 |
5位附加码 |
4 |
EAN-8数据包 |
示例:UPC-A条码为012345678905,传输字符串为:]E00012345678905 |
书号 |
0
|
永远为0 |
示例:一个EAN书号为1123456789X,传送字符串为:
]X0123456789X |
为什么要使用串口条码扫描仪?
串口扫描器其实和键盘扫描器,它的优点和缺点者是一个:外接电源。
外接电源在外观上有点难看,而且须加多一个电源接口,但正因为这样,它不使用计算机的电源,电压有保证。有些扫描仪对电压的要求比较高,键盘口接上扫描仪这个负载后,电压就低了下来,不能正常使用。而且串口可以接各种主机设备:PC、收款机、终端等,键盘口扫描仪在应用范围方面就不如它了。下面来作个比较,其实,您应该根据自已的需要选择串口或键盘口。
比较内容 |
串口 |
键盘口 |
USB口 |
电源 |
外接,如有机内供电也可改装,如POS机PC机也可从PS/2处取电(专家级才可这么做) |
键盘口取电,无须外接电源 |
USB口,无须外接 |
长度 |
按RS232标准200英尺(60米),实际还可更长一些 |
1.5至5米 |
USB规范,1.5到3米 |
应用范围 |
PC、POS、工控机、终端、数据终端 |
PC、部分POS机、部分终端、 |
PC、Mac |
驱动程序 |
Scanpard、WinCom2key、com2key |
无须 |
须Windows支持,Windows内置 |
输入速度 |
快 |
慢 |
未与其他两种一起测试过 |
最新的EAN国家及地区编码
00-13: 美国和加拿大 |
20-29: 库存自定义 |
30-37: 法国 |
40-44: 德国 |
45: 日本 (49也是) |
46: 俄罗斯联盟 |
471: 台湾 |
474: 爱沙尼亚 |
475: 拉脱维亚 |
477: 立陶宛 |
479: 斯里兰卡 |
480: 菲律宾共和国 |
482: 乌克兰 |
484: 摩尔多瓦 |
485: 亚美尼亚 |
486: 乔治亚苏维埃社会主义共和国 |
487: 哈萨克 |
489: 香港 |
49: 日本(JAN-13) |
50: 英国 |
520: 希腊 |
528: 黎巴嫩 |
529: 塞浦路斯 |
531: 马其顿王国 |
535: 马尔他 |
539: 爱尔兰 |
54: 比利时与卢森堡 |
560: 葡萄牙 |
569: 冰岛 |
57: 丹麦 |
590: 波兰 |
594: 罗马尼亚 |
599: 匈牙利 |
600 & 601: 南非 |
609: 毛里求斯 |
611: 摩洛哥 |
613: Algeria |
619: 突尼斯 |
622: 埃及 |
625: Jordan |
626: 伊朗 |
64: 芬兰 |
690-692: 中国 |
70: 挪威 |
729: 以色列 |
73:瑞典 |
740: 危地马拉 |
741: 萨尔瓦多 |
742: 洪都拉斯 |
743: 尼加拉瓜 |
744: 哥斯达黎加 |
746: 多米尼加共和国 |
750: 墨西哥 |
759: 委内瑞拉 |
76: 瑞士 |
770: 哥伦比亚 |
773: 乌拉圭 |
775: 秘鲁 |
777: 玻利维亚 |
779: 阿根廷 |
780: 智利 |
784: 巴拉圭 |
785: 秘鲁 |
786: 厄瓜多尔 |
789: 巴西 |
80 - 83: 意大利 |
84: 西班牙 |
850: 古巴 |
858: 斯洛伐克 |
859: 捷克共和国 |
860: 南斯拉夫 |
869: 土耳其 |
87: 荷兰 |
880: 南朝鲜 |
885: 泰国 |
888: 新加坡 |
890: 印度 |
893: 越南 |
899: 印度尼西亚 |
90-91: 奥地利 |
93: 澳大利亚 |
94:新西兰 |
955: 马来西亚 |
977: 国际标准期刊号 (ISSN) |
978: 国际标准书书号(ISBN) |
979: 国际标准音乐号 (ISMN) |
980: Refund receipts |
981 & 982: Common Currency Coupons |
99: Coupons |
对UPC-E的一点心得
UPC-E是UPC-A的精简版,它将UPC-A的多个0缩短,编码规则:
- 如果厂商编号的最后三位是000,100,200,则UPC-E码由厂商编码的前两位、产品编码的最后三位、和厂商编号的第三位组成。产品代码必须是00000到00999。
- 如果厂商编号的最后两位是00,而又不在规则1中,则UPC-E码由厂商编码的前三位、产品编码的最后两位、和字符“3”组成。产品代码必须是00000到00099。
- 如果厂商编号的最后一位是0,并且不在规则1和2中,则UPC-E码由厂商编码的前四位、产品编码的最后一位、和字符“4”组成。产品代码必须是00000到00009。
- 如果厂商编号的最后一位不为0,则UPC-E码由厂商编码、产品编码的最后一位组成。产品代码必须是00005到00009(只能5到9了,0到4都用来作表示用途了)。
UPC-E使用的校验位则是原始的UPC-A的校验位。
|