MAC地址:也叫物理地址、硬件地址,由网络设备制造商生产时烧录在网卡(Network lnterface Card)的EPROM(一种闪存芯片,通常可以通过程序擦写)。通常表示为12个16进制数表示, 前6位80:5E:C0代表网络硬件制造商的编号, 后6位AB:25:BE表该制造商所制造的某个网络产品(如网卡)的系列号。该MAC地址在世界是唯一的(80:5E:C0:AB:25:BE)
SN码:是Serial Number的缩写,有时也叫SerialNo,也就是产品序列号,可识产品的生产信息,客户通过反馈SN码可对机器的生产状态进行追溯。编码规则为16位字符形成(如:X XXXXX XXX XX XXXXX) 第1位“X”为加工厂代码,2~5位“XXXXX”代表产品型号,6~9位“XXX”代表制造年月,10~11位“XX”代表产品特征位,12~16位“XXXXX”代表产品流水号
IPUI码:用于dect协议的移动终端(如:WH56H、WHD622),烧写于移动终端里存储器内,确保移动终端的唯一性(功能类似于网络的mac地址)。编码规则为10位字符形成(如:0 227C XXXXX)“0”为固定号,“227C”为亿联购买EMC号,XXXXX为流水号(0001~FFFFF,16进制滚动)
RFPI码:用于dect协议的固定终端,烧写于移动终端里存储器内,确保移动终端的唯一性(功能类似于网络的mac地址)。编码规则为10位字符形成(如:0 116B XXXX 0/8)“0”为固定号,“116B”为购买的EMC号,XXXX为流水号(0001~FFFF,16进制滚动),0/8识别码,必须为这两个数
环境变量:为了满足客户的个性化需求,在包装出货时对机器按照客户希求进行配置出货。
随机码:MAC/SN烧写过程中根据烧写时间和环境随机生成的一串13位数字
证书:网络连接认证使用现有使用SHA256证书协议,烧录MAC地址时自动烧录SHA256证书(使用于带网络连接设备上使用)
Key:微软系统软件正版授权使用
目录
第一章 条码概述
一、条码的发展
条码最早出现在20世纪40年代,但得到实际应用和发展还是在20世纪70年代左右。现在世界上的各个国家和地区都已普遍使用条码技术,而且它正在快速的向世界各地推广,其应用领域越来越广泛,并逐步渗透到许多技术领域。早在 40年代,美国乔·伍德兰德(Joe Wood Land)和伯尼·西尔沃(Berny Silver)两位工程师就开始研究用代码表示食品项目及相应的自动识别设备,于1949年获得了美国专利。该图案很像微型射箭靶,被叫做“公牛眼”代码。靶式的同心圆是由圆条和空绘成圆环形。该条码图形如下图所示:
图 1 “公牛眼”代码
在原理上,“公牛眼 ”代码与后来的条码很相近,遗憾的是当时的工艺和商品经济还没有能力印制出这种码。然而,10年后乔·伍德 兰德作为IBM公司的工程师成为北美统一代码UPC码的奠基人。以吉拉德·费伊塞尔(Girard Fessel)为代表的几名发明家,于1959年提请了一项专利,描述了数字0-9中每个数字可由七段平行条组成。但是这种条码使机器难以识读,使人读起来也不方便。不过这一构想的确促进了后来条形码的产生于发展。不久,E·F·布宁克(E·F·B rinker)申请了另一项专利,该专利是将条码标识在有轨电车上。60年代期西尔沃尼亚(Sylvania)发明的一个系统,被北美铁路系统采纳。这两项可以说是条形码技术最早期的应用。
1970年美国超级市场AdHoc委员会制定出通用商品代码UPC码,许多团体也提出了各种条码符号方案。UPC码首先在杂货零售业中试用,这为以后条形码的统一和广泛采用奠定了基础。次年布莱西公司研制出布莱西码及相应的自动识别系统,用以库存验算。这是条形码技术第一次在仓库管理系统中的实际应用。1972年蒙那奇·马金(Monarch Marking)等人研制出库德巴(Code bar)码,到此美国的条形码技术进入新的发展阶段。
1973年美国统一编码协会(简称UCC)建立了UPC条码系统,实现了该码制标准化。同年,食品杂货业把UPC码作为该行业的通用标准码制,为条码技术在商业流通销售领域里的广泛应用,起到了积极的推动作用。1974年Inte rmec公司的戴维·阿利尔(Davide·Allair)博士研制出39码,很快被美国国防部所采纳,作为军用条码码制。 39码是第一个字母、数字式想结合的条码,后来广泛应用于工业领域。
1976年在美国和加拿大超级市场上,UPC码的成功应用给人们以很大的鼓舞,尤其是欧洲人对此产生了极大兴趣 。次年,欧洲共同体在UPC-A码基础上制定出欧洲物品编码EAN-13和EAN-8码,签署了“欧洲物品编码”协议备忘录,并正式成立了欧洲物品编码协会(简称EAN)。到了1981年由于EAN已经发展成为一个国际性组织,故改名为 “国际物品编码协会”,简称IAN。但由于历史原因和习惯,至今仍称为EAN。(后改为EAN-international)
日本从1974年开始着手建立POS系统,研究标准化以及信息输入方式、印制技术等。并在EAN基础上,于1978年 制定出日本物品编码JAN。同年加入了国际物品编码协会。
从80年代初,人们围绕提高条码符号的信息密度,开展了多项研究。128码和93码就是其中的研究成果。128码于1981年被推荐使用,而93码于1982年使用。这两种码的优点是条码符号密度比39码高出近30%。随着条码技术的发展,条形码码制种类不断增加,因而标准化问题显得很突出。为此先后制定了军用标准1189;交插25码、39码和库德巴码ANSI标准MH10.8M等等。同时一些行业也开始建立行业标准,以适应发展需要。此后,戴维·阿利尔又研制出49码,这是一种非传统的条码符号,它比以往的条形码符号具有更高的密度(即二维条码的雏形)。接着特德·威廉斯(Ted Williams)推出16K码,这是一种适用于激光扫描的码制。到1990年底为止,共有40多种条形码码制,相应的自动识别设备和印刷技术也得到了长足的发展。
二、一维条码简介
条码是将线条与空白按照一定的编码规则组合起来的符号,用以代表一定的字母、数字等资料。在进行辨识的时候,是用条码阅读机扫描,得到一组反射光信号,此信号经光电转换后变为一组与线条、空白相对应的电子讯号,经解码后还原为相应的文数字,再传入电脑。条码辨识技术已相当成熟,其读取的错误率约为百万分之一,首读率大于98%,是一种可靠性高、输入快速、准确性高、成本低、应用面广的资料自动收集技术。
世界上约有225种以上的一维条码,每种一维条码都有自己的一套编码规格,规定每个字母(可能是文字或数字或文数字)是由几个线条(Bar)及几个空白(Space)组成,以及字母的排列。一般较流行的一维条码有 39码、EAN码、UPC 码、128码,以及专门用于书刊管理的ISBN、ISSN等。
年份 | 条码名称 | 发明人或公司 | 特殊意义 |
1949 | Bull’s Eye Code(公牛眼码) | N. Joe Woodland, Bernard Silver | 第一个条码 |
1973 | UPC | IBM | 首次大规模应用的条码 |
1972 | Codabar | Monarch Marking System |
|
1974 | 39码 | David C. Allias (Intermec) | 第一个商业性文数字条码 |
1976 | EAN | EAN协会 |
|
1981 | Code 128 |
|
|
1983 | Code 93 |
|
|
表 1 一维条码发明年代表
从UPC以后,为满足不同的应用需求,陆陆续续发展出各种不同的条码标准和规格,时至今日,条码已成为商业自动化不可缺少的基本条件。目前全世界一维条码的种类达225种左右,本书仅介绍最通用的标准,如UPC、EAN、39码、128码等。此外,书籍和期刊也有国际统一的编码,特称为ISBN(国际标准书号)和ISSN(国际标准丛刊号)。
三、一维条码的规格内容
简单来说,条码是用来方便人们输入资料的一种方法,这种方法是将要输入电脑内的所有字元,以宽度不一的线条(Bar)及空白(Space)组合来表示每个字元所对应的码(Code)。不同的一维条码规格有不同的线条组合方式。 在一个条码的起头及结束的地方,都会放入起始码和结束码,用以辨识条码的起始及结束,不过不同条码规格的起始码和结束码的图样并不完全相同。具体而言,每一种条码规格明定了下列七个要项:
1、字元组合
每一种条码规格所能表示的字元组合,有不同的范围及数目,有些条码规格只能表示数字,如UPC码、EAN码;有些则能表示大写英文字及数字,甚至能表示出全部ASCII字元表上的128字元,如39码、128码。
2、符号种类
依据条码被解读时的特性可将条码规格分成两大类:
(1)分散式
每一个字元可以独自地解码,列印时每个字元与旁边的字元间,是由字间距分开的,而且每个字元固定是以线条做为结束。然而,并不一定是每一个字间距的宽度大小都必须相同,可以容许某些程度的误差,只要彼此差距不大即可,如此,对条码印表机(Barcode Printer)的机械规格要求可以比较宽松。例如39码与128码。
(2)连续式
字元之间没有字间距,每个字元都是线条开始,空白结束。且在每一个字的结尾后,马上就紧跟下一个字元的起头。由于无字间距的存在,所以在同样的空间内,可列印出较多的字元数,但相对地,因为连续式条码的密度比较高,其对条码机的列印精密度的要求也较高。例如UPC和EAN码。
3、粗细线条的数目
条码的编码方式,是藉由许多粗细不一的线条及空白的组合方式来表示不同的字元码。大多数的条码规格都是只有粗和细两种线条,但也有些条码规格使用到二种以上不同粗细的线条。
4、固定或可变长度
指在条码中包含的资料长度是固定或可变的,有些条码规格因限于本身结构的关系,只能使用固定长度的资料,如UPC码、EAN码。
5、细线条的宽度
指条码中细线条及空白的宽度,通常是某个条码中所有细的线条及空白的平均值,而且它使用的单位通常是mil (千分之一英寸,即0.001 inch)。
6、密度
指在一固定长度内可表示字元数目,例如条码规格A的密度高于条码规格B的密度,则表示在同一长度内,条码A可容纳得下较多的字元。
7、自我检查
指某个条码规格是否有自我检测错误的能力,会不会因一个列印上的小缺陷,而可能使得一个字元被误判成为另外一个字元。有「自我检查」能力的条码规格,大多没有硬性规定要使用「检查码」,例如39码。没有「自我检查」能力的条码规格,在使用上大多有「检查码」(也叫校正码)的设定,如EAN码、UPC码等。
四、一维条码技术
1、条码的概念
条码是由一组规则排列的条、空以及对应的字符组成的标记,“条”指对光线反射率较低的部分,“空”指对光线反射率较高的部分,这些条和空组成的数据表达一定的信息,并能够用特定的设备识读,转换成与计算机兼容的二进制和十进制信息。通常对于每一种物品,它的编码是唯一的,对于普通的一维条码来说,还要通过数据库建立条码与商品信息的对应关系,当条码的数据传到计算机上时,由计算机上的应用程序对数据进行操作和处理。因此,普通的一维条码在使用过程中仅作为识别信息,它的意义是通过在计算机系统的数据库中提取相应的信息而实现的。
2、条码的码制
码制即指条码条和空的排列规则,常用的一维码的码制包括:EAN码、39码、交叉25码、UPC码、128码、93码,及Codabar(库德巴码)等。
3、不同的码制各自的应用领域
EAN 码:是国际通用的符号体系,是一种长度固定、无含意的条码,所表达的信息全部为数字,主要应用于商品标识
39码和128码:为目前国内企业内部自定义码制,可以根据需要确定条码的长度和信息,它编码的信息可以是数字,也可以包含字母,主要应用于工业生产线领域、图书管理等
93码:是一种类似于39码的条码,它的密度较高,能够替代39码
25码:只要应用于包装、运输以及国际航空系统的机票顺序编号等
Codabar码:应用于血库、图书馆、包裹等的跟踪管理
4、条码的组成
一个完整的条码的组成次序依次为:静区(前)、起始符、数据符、(中间分割符,主要用于EAN码)、(校验符)、终止符、静区(后),如图所示:
图 2 一维条码的组成方式
(1)、静区:指条码左右两端外侧与空的反射率相同的限定区域,它能使扫描器进入准备阅读的状态,当两个条码相距距离较近时,静区则有助于对它们加以区分,静区的宽度通常应不小于6mm(或10倍模块宽度)。
(2)、起始/终止符:指位于条码开始和结束的若干条与空,标志条码的开始和结束,同时提供了码制识别信息和阅读方向的信息。
(3)、数据符:位于条码中间的条、空结构,它包含条码所表达的特定信息。数据符中包含资料码和检查码。资料码是指位于起始码后面的字码,用来标识一个条码符号的具体数值,允许双向扫瞄。检查码也叫校正码,用来判定此次阅读是否有效的字码,通常是一种算术运算的结果,扫瞄器读入条码进行解码时,先对读入各字码进行运算,如运算结果与检查码相同,则判定此次阅读有效。
(4)、模块、单元定义
构成条码的基本单位是模块,模块是指条码中最窄的条或空,模块的宽度通常以mm或mil(千分之一英寸)为单位。构成条码的一个条或空称为一个单元,一个单元包含的模块数是由编码方式决定的,有些码制中,如EAN码,所有单元由一个或多个模块组成;而另一些码制,如39码中,所有单元只有两种宽度,即宽单元和窄单元,其中的窄单元即为一个模块。
5、条码的几个参数
(1)、密度(Density):条码的密度指单位长度的条码所表示的字符个数。对于一种码制而言,密度主要由模块的尺寸决定,模块尺寸越小,密度越大,所以密度值通常以模块尺寸的值来表示(如5mil)。通常7.5mil以下的条码称为高密度条码,15mil以上的条码称为低密度条码,条码密度越高,要求条码识读设备的性能(如分辨率)也越高。高密度的条码通常用于标识小的物体,如精密电子元件,低密度条码一般应用于远距离阅读的场合,如仓库管理。
(2)、宽窄比:对于只有两种宽度单元的码制,宽单元与窄单元的比值称为宽窄比,一般为2-3左右(常用的有2:1,3:1)。宽窄比较大时,阅读设备更容易分辨宽单元和窄单元,因此比较容易阅读。
(3)、对比度(PCS):条码符号的光学指标,PSC值越大则条码的光学特性越好。
PCS=(RL-RD)/RL×100% (RL:条的反射率 RD:空的反射率)
6、条码的基本术语如下表所示
条码 bar code | 由一组规则排列的条、空及其对应字符组成的标记,用以表示一定的信息。 |
条码系统 bar code system | 由条码符号设计、制作及扫描阅读组成的自动识别系统。 |
条 bar | 条码中反射率较低的部分。 |
空 space | 条码中反射率较高的部分。 |
空白区 clear area | 条码左右两端外侧与空的反射率相同的限定区域。 |
保护框 bearer bar | 围绕条码且与条反射率相同的边或框。 |
起始符 start character | 位于条码起始位置的若干条与空。 |
终止符 stop character | 位于条码终止位置的条与空。 |
中间分隔符 central seperating character | 位于条码中间位置的若干条与空。 |
条码字符 bar code character | 表示一个字符的若干条与空。 |
条码数据符 bar code data character | 表示特定信息的条码字符。 |
条码校验符bar code check character | 表示校验码的条码字符。 |
条码填充符 filler character | 不表示特定信息的条码字符。 |
条高 bar height | 构成条码字符的条的二维尺寸的纵向尺寸。 |
条宽 bar width | 构成条码字符的条的二维尺寸的横向尺寸。 |
空宽 space width | 构成条码字符的空的二维尺寸的横向尺寸。 |
条宽比 bar width ratio | 条码中最宽条与最窄条的宽度比。 |
空宽比 space width ratio | 条码中最宽空与最窄空的宽度比。 |
条码长度 bar code length | 从条码起始符前缘到终止后缘的长度。 |
长高比 length to height ratio | 条码长度与条高的比。 |
条码密度 bar code density | 单位长度的条码所表示的字符个数。 |
模块 module | 组成条码的基本单位。 |
条码字符间隔 bar code intrcharacte gap | 相邻条码字符间不表示特定信息且与空的反射率相同的区域。 |
单元 element | 构成条码字符的条、空。 |
连续型条码 continuos bar code | 没有条码字符间隔的条码。 |
非连续型条码 discrete bar code | 有条码字符间隔的条码。 |
双向条码 bidirectional bar code | 左右两端均可作为扫描起点的条码。 |
附加条码 add-on | 表示附加信息的条码。 |
自校验条码 self-cheching bar code | 条码字符本身具有校验功能的条码。 |
定长条码 fixed length of bar code | 条码字符个数固定的条码。 |
非定长条码 unfixed length of bar code | 条码字符个数不固定的条码。 |
条码字符集 bar code character set | 其类型条码所能表示的字符集合。 |
表 2 条码的基本术语
第二章 UPC码
UPC码(Universal Product Code)是最早大规模应用的条码,其特性是一种长度固定、连续性的条码,目前主要在美国和加拿大使用,由于其应用范围广泛,故又被称万用条码。本章主要介绍介绍最常用的UPC标准码(UPC-A码)和UPC缩短码(UPC-E码)的结构与编码方式。UPC码共有A、B、C、D、E等五种版本,各版本的UPC码格式与应用对象如表所示:
版本 | 应用对象 | 格 式 |
UPC-A | 通用商品 | SXXXXX XXXXXC |
UPC-B | 医药卫生 | SXXXXX XXXXXC |
UPC-C | 产业部门 | XSXXXXX XXXXXCX |
UPC-D | 仓库批发 | SXXXXX XXXXXCXX |
UPC-E | 商品短码 | XXXXXX |
注:S-系统码 X-资料码 C-检查码 |
表 3 UPC码的五种码制
一、UPC-A码
1、UPC-A码范例及组成部分如下图所示:
图 3 UPC-A码范例及组成图
2、UPC-A码具有的特点
(1)、每个字码皆由7个模组组合成2线条2空白,其逻辑值可用7个二进制数字表示,例如逻辑值0001101代表数字1,逻辑值0为空白,1为线条,故数字1的UPC-A码为粗空白(000)-粗线条(11)-细空白(0)-细线条(1)
(2)、从空白区开始共113个模组,每个模组长0.33mm,条码符号长度为37.29mm
(3)、中间码两侧的资料码编码规则是不同的,左侧为奇,右侧为偶。奇表示线条的个数为奇数;偶表示线条的个数为偶数。左资料码与右资料码字码的逻辑值如表所示:
|
| 左资料码(奇) | 右资料码(偶) |
字码 | 值 | 逻辑值 | 逻辑值 |
0 | 0 | 0001101 | 1110010 |
1 | 1 | 0011001 | 1100110 |
2 | 2 | 0010011 | 1101100 |
3 | 3 | 0111101 | 1000010 |
4 | 4 | 0100011 | 1011100 |
5 | 5 | 0110001 | 1001110 |
6 | 6 | 0101111 | 1010000 |
7 | 7 | 0111011 | 1000100 |
8 | 8 | 0110111 | 1001000 |
9 | 9 | 0001011 | 1110100 |
注: 0为空白,1为线条 |
表 4 左资料码与右资料码字码的逻辑值表
(4)、起始码、终止码、中间码的线条高度长于数字码。
3、校验码的计算方法
从国别码开始自左至右取数,设UPC-A各码代号如下:
N1 | N2 | N3 | N4 | N5 | N6 | N7 | N8 | N9 | N10 | N11 | C |
则检查码之计算步骤如下:
C1 = N1+ N3+N5+N7+N9+N11
C2 = (N2+N4+N6+N8+N10)× 3
CC = (C1+C2) 取个位数
C (检查码) = 10 - CC (若值为10,则取0)
二、UPC-E码
UPC-E是UPC-A码的简化型式,其编码方式是将UPC-A码整体压缩成短码,以方便使用,因此其编码形式须经由UPC-A码来转换。UPC-E由6位数码与左右护线组成,无中间线。6位数字码的排列为3奇3偶,其排列方法取决于检查码的值。UPC-E码只用于国别码为0的商品。其结构如图所示:
图 4 UPC-E码范例
UPC-E码特点如下:
(1)、左护线:为辅助码,不具任何意义,仅供列印时作为识别之用,逻辑型态为010101,其中0代表细白,1代表细黑。
(2)、右护线:同UPC-A码,逻辑型态为101。
(3)、检查码:为UPC-A码原形的检查码,其作用为一导入值,并不属于资料码的一部份。
(4)、资料码:扣除第一码固定为0外,UPC-E实际参与编码的部份只有六码,其编码方式,视检查码的值来决定,如表所示:
表 5 UPC-E编码方式
即由检查码决定条码各个位值数值的奇偶性
奇资料码与偶资料码的逻辑值如表所示:
|
| 奇资料码 | 偶资料码 |
字码 | 值 | 逻辑值 | 逻辑值 |
0 | 0 | 0001101 | 0100111 |
1 | 1 | 0011001 | 0110011 |
2 | 2 | 0010011 | 0011011 |
3 | 3 | 0111101 | 0100001 |
4 | 4 | 0100011 | 0011101 |
5 | 5 | 0110001 | 0111001 |
6 | 6 | 0101111 | 0000101 |
7 | 7 | 0111011 | 0010001 |
8 | 8 | 0110111 | 0001001 |
9 | 9 | 0001011 | 0010111 |
注: 0为空白,1为线条 |
表 6 奇资料码与偶资料码的逻辑值
第三章 EAN码
EAN码的全名为欧洲商品条码(European Article Number),源于西元1977年,由欧洲十二个工业国家所共同发展出来的一种条码。目前已成为一种国际性的条码系统。EAN条码系统的管理是由国际商品条码总会(International Article Numbering Association)负责各会员国的国家代表号码之分配与授权,再由各会员国的商品条码专责机构,对其国内的制造商、批发商、零售商等授予厂商代表号码。目前已有30多个国家加盟EAN。 EAN码具有以下特性:
- 只能储存数字。
- 可双向扫瞄处理,即条码可由左至右或由右至左扫瞄。
- 必须有一检查码,以防读取资料的错误情形发生,位于EAN码中的最右边处。
- 具有左护线、中线及右护线,以分隔条码上的不同部分与撷取适当的安全空间来处理。
- 条码长度一定,较欠缺弹性,但经由适当的管道,可使其通用于世界各国。
- 依结构的不同,可区分为:
- EAN-13码:由13个数字组成,为EAN的标准编码型式。
- EAN- 8码:由8个数字组成,属EAN的简易编码型式。
本章将主要介绍EAN标准码(EAN-13码)和EAN缩短码(EAN-8码)的结构与编码方式。
一、EAN-13码
EAN-13码的范例和组成部分如下图所示:
图 5 EAN-13码范例及组成
EAN-13码的编码方式如下:
- 导入值:为EAN-13的最左边第一个数字,即国家代码的第一码,是不用条码符号表示的,其功能仅做为左资料码的编码设定之用。
- 左护线:为辅助码,不代表任何资料,列印长度较一般资料长,逻辑型态为101,其中1代表细黑,0代表细白。
- 左资料码:即左护线和中线间的条码部分,共有六个数字资料,其编码方式取决于导入值之大小,规则如表所示:
导入值 | 编码方式 | 导入值 | 编码方式 |
1 | AAAAAA | 6 | ABBBAA |
2 | AABABB | 7 | ABABAB |
3 | AABBAB | 8 | ABABBA |
4 | ABAABB | 9 | ABBABA |
5 | ABBAAB |
|
|
表 7 由导入值确定左资料码编码方式
所谓导入值即条码的第一个数字,由这个数字决定了左资料码的编码方式,因此左资料码每个数值才有对应的两种编码原则,这两种编码原则也可以成为奇偶排列组合方式。叫法不同内容完全相同。EAN-13是一种(7, 2)码,即每个字符的总宽度为7个模块宽,交替由两个条和两个空组成,而每个条空的宽度不超过4个模块
| A类编码原则 | B类编码原则 | |
字码 | 值 | 逻辑值 | 逻辑值 |
0 | 0 | 0001101 | 0100111 |
1 | 1 | 0011001 | 0110011 |
2 | 2 | 0010011 | 0011011 |
3 | 3 | 0111101 | 0100001 |
4 | 4 | 0100011 | 0011101 |
5 | 5 | 0110001 | 0111001 |
6 | 6 | 0101111 | 0000101 |
7 | 7 | 0111011 | 0010001 |
8 | 8 | 0110111 | 0001001 |
9 | 9 | 0001011 | 0010111 |
注: 0为空白,1为线条 |
表 8 EAN-13码左资料码逻辑值
- 中线:为辅助码,作为区分左资料码与右资料码之用。中线长度较一般资料为长,逻辑型态为01010。
- 右资料码:即位于右护线与中线之间的部份。包括五位数产品代码与一位检查码。其编码方式采为C类编码规则,如下表所示:
|
| C类编码原则 |
字码 | 值 | 逻辑值 |
0 | 0 | 1110010 |
1 | 1 | 1100110 |
2 | 2 | 1101100 |
3 | 3 | 1000010 |
4 | 4 | 1011100 |
5 | 5 | 1001110 |
6 | 6 | 1010000 |
7 | 7 | 1000100 |
8 | 8 | 1001000 |
9 | 9 | 1110100 |
注: 0为空白,1为线条 |
表 9 EAN-13右资料码逻辑值
- 右护线:为辅助码,列印长度与左护线、中线相同,逻辑型态亦为101
- EAN-13码的检查码的算法与UPC-A码相同,例如假设一EAN-13码各码代号如下:
N1 | N2 | N3 | N4 | N5 | N6 | N7 | N8 | N9 | N10 | N11 | N12 | C |
表 10 EAN-13码各码代号
检查码之计算步骤如下:
C1 = N1+ N3+N5+N7+N9+N11
C2 = (N2+N4+N6+N8+N10+N12)× 3
CC = (C1+C2) 取个位数
C (检查码) = 10 - CC (若值为10,则取0)
地区和国家的国别码如下表所示:
前缀码 | 国家或地区/应用领域 | 前缀码 | 国家或地区/应用领域 |
00 ~ 13 | 美国和加拿大 | 628 | 沙特阿拉伯 |
20 ~ 29 | 店内码 | 629 | 阿拉伯联合酋长国 |
30 ~ 37 | 法国 | 64 | 芬兰 |
380 | 保加利亚 | 690 ~ 695 | 中国大陆 |
383 | 斯洛文尼亚 | 70 | 挪威 |
385 | 克罗地亚 | 729 | 以色列 |
387 | 波黑 | 73 | 瑞典 |
40 ~ 44 | 德国 | 740 | 危地马拉 |
45、49 | 日本 | 741 | 萨尔瓦多 |
460 ~ 469 | 俄罗斯 | 742 | 洪都拉斯 |
471 | 中国台湾 | 743 | 尼加拉瓜 |
474 | 爱沙尼亚 | 744 | 哥斯达黎加 |
475 | 拉脱维亚 | 745 | 巴拿马 |
476 | 阿塞拜疆 | 746 | 多米尼加 |
477 | 立陶宛 | 750 | 墨西哥 |
478 | 乌兹别克斯坦 | 759 | 委内瑞拉 |
479 | 斯里兰卡 | 76 | 瑞士 |
480 | 菲律宾 | 770 | 哥伦比亚 |
481 | 白俄罗斯 | 773 | 乌拉圭 |
482 | 乌克兰 | 775 | 秘鲁 |
484 | 摩尔多瓦 | 777 | 玻利维亚 |
485 | 亚美尼亚 | 779 | 阿根廷 |
486 | 格鲁吉亚 | 780 | 智利 |
487 | 哈萨克斯坦 | 784 | 巴拉圭 |
489 | 中国香港特别行政区 | 786 | 厄瓜多尔 |
50 | 英国 | 789 ~ 790 | 巴西 |
520 | 希腊 | 80 ~ 83 | 意大利 |
528 | 黎巴嫩 | 84 | 西班牙 |
529 | 塞浦路斯 | 850 | 古巴 |
531 | 马其顿 | 858 | 斯洛伐克 |
535 | 马耳他 | 859 | 捷克 |
539 | 爱尔兰 | 860 | 南斯拉夫 |
54 | 比利时和卢森堡 | 867 | 朝鲜 |
560 | 葡萄牙 | 869 | 土耳其 |
569 | 冰岛 | 87 | 荷兰 |
57 | 丹麦 | 880 | 韩国 |
590 | 波兰 | 885 | 泰国 |
594 | 罗马尼亚 | 888 | 新加坡 |
599 | 匈牙利 | 890 | 印度 |
600、601 | 南非 | 893 | 越南 |
608 | 巴林 | 899 | 印度尼西亚 |
609 | 毛里求斯 | 90、91 | 奥地利 |
611 | 摩洛哥 | 93 | 澳大利亚 |
613 | 阿尔及利亚 | 94 | 新西兰 |
616 | 肯尼亚 | 955 | 马来西亚 |
619 | 突尼斯 | 958 | 中国澳门特别行政区 |
621 | 叙利亚 | 977 | 连续出版物 |
622 | 埃及 | 978、979 | 图书 |
624 | 利比亚 | 980 | 应收票据 |
625 | 约旦 | 981、982 | 普通流通券 |
626 | 伊朗 | 99 | 优惠券 |
627 | 科威特 |
|
|
表 11 地区和国家的国别码
二、EAN-8码
EAN-8码的结构
EAN缩短码共有8位数,当包装面积小于120平方公分以下无法使用标准码时,可以申请使用缩短码。其结构与编码方式如图所示:
图 6 EAN-8码的范例
EAN-8码的国家代码与检查码计算方式和EAN-13码相同。
EAN-8码的编码方式大致与EAN-13码相同,如下图所示:
图 7 EAN-8码的编码方式
EAN-8码具有以下特点:
- EAN-8码共8位数,包括国别码2位,产品代码5位,及检查码1位。
- EAN-8从空白区开始共81个模组,每个模组长0.33mm,条码符号长度为26.73mm。
3. EAN-8码左右资料码编码规则与EAN-13码相同。
第四章 ISBN 与 ISSN
ISBN与ISSN的用途很广,除了我国的商品条码CAN以及日本商品条码JAN外,目前国际认可的书籍代号与期刊号的条码,也都是由EAN变身而来的。书籍的国际认可代号称为国际标准书号(International Standard Book Number, ISBN),期刊的国际认可代号则称为国际标准期刊号(International Standard Serial Number, ISSN),原本ISBN与ISSN的条码编号申请是独立于国家EAN编号系统的,不过1991年国际标准书号总部为提倡图书与期刊条码化,函告各出版社,其出版品的ISBN与ISSN可并入EAN系统,不必再向该国EAN负责机构申请条码编号,也不需要再付任何费用。
一、 ISBN码
国际标准书号 ( International Standard Book Number,简称 ISBN ),是为因应图书出版、管理的需要,并便于国际间出版品的交流与统计所发展的一套国际统一的编号制度,由一组冠有“ISBN”代号(978)的十位数码所组成,制作条码时,EAN码中图书类的代码是978,亦即只要将EAN的国家代码部分改为978,再重新计算检查码,即为ISBN条码,其馀处理均相同,下图为ISBN的结构图。简单来说,ISBN与EAN的对应关系为:978 + ISBN前9码 + EAN检查码。
图 8 标准ISBN 码
下面以一个具体例子予以解释:
ISBN978-7-107-18617-5
ISBN实际上就是现在的EAN商品号。978代表图书,其中8代表校验码。国际标准书号由10位数字组成,如上图所示被三条短横线分为四段,第一个号码段是地区号,又称组号,最短的一位数字,最长的达五位数字,这些数字将全世界划分为若干地区,每个地区有其固定的编码:0、1代表英语,供使用英语的国家使用;2代表法语;3代表德语;4为日本出版物代码;5是俄罗斯出版物代码;7是中国出版物代码。
第二段号码107是出版社代码,允许取值范围为2-5位。出版社规模越大,出书越多,其号码就越短。
第三段18617是书序号由出版社自己给出,每个出版社的数序号是定长的。最短的一位,最长的六位。出版社规模越大,出书越多,其序号就越长。
第四段即最后一位数字5是计算机的校验码。固定一位范围是0-10,,10由X代替。
二、ISSN码
国际标准期刊号 ( International Standard Serial Number,简称 ISSN ),是根据国际标准组织 1975年制订之 ISO-3297 的规定,由设于法国巴黎的国际期刊资料系统中心 ( International Serial Data System - ISDS International Centre)所赋予申请登记的每一种刊物一个具有识别作用且通行国际间的统一编号。
“期刊”是指任何一系列定期或不定期连续出版的刊物,它们通常以一定的刊名发行,以「年月日」,「年月」或数字标明卷、号、期数。每一种期刊在注册登记时,就得到一个永久专属的 ISSN ,一个 ISSN 只对应一个刊名;而一个刊名也只有一个 ISSN 。 所以当该刊名变更时,就得另申请一个 ISSN 。 如果期刊停刊,那麽被删除的 ISSN 也不会被其他期刊再使用。因此,国际期刊资料系统中心在分配 ISSN 时,必须为该期刊编订一个有别于其他期刊刊名的识别题名 ( Key Title )。每组 ISSN 系由八位数字构成,分前后两段,每段四位数,段与段间以一短横 (hyphen) 相连接,其中后段的最末一数字为检查号, 如:ISSN 0211-9153。 制作条码时,将ISBN码中的「978」部份更改为「977」即为ISSN码,其结构如下图所示。ISSN与EAN的对应关系为:977 + ISSN前7码 + 00 + EAN检查码。
图 9 ISSN码的标准准结构
第五章 39码
一、39码简介
39码是一种可供使用者双向扫瞄的分散式条码,也就是说相临两资料码之间,必须包含一个不具任何意义的空白(或细白,其逻辑值为0),目前较主要利用于工业产品、商业资料及医院用的保健资料,它的最大优点是码数没有强制的限定,可用大写英文字母码,且检查码可忽略不计。标准的39码是由起始安全空间、起始码、资料码、可忽略不计的检查码、终止安全空间及终止码所构成。总体来说, 39码具有以下特性:
39码的每一个条码字符由九个单元(五条夹四空组合而成)组成,其中有三个宽单元,其余是窄单元,因此称为39码。由于组成一个符号的条码中都只有一个宽空,所以稍远一点整体看39码的时候,会看到比较规律的每隔一定的宽度就有一个宽空这样的现象。
图 10 39码示例
- 条码的长度没有限制,可随着需求作弹性调整。但在规划长度的大小时,应考虑条码阅读机所能允许的范围,避免扫瞄时无法读取完整的资料。
- 起始码和终止码必须固定为“ * ”字元。
- 允许条码扫瞄器进行双向的扫瞄处理。
- 由于39码具有自我检查能力,故检查码可有可无,不一定要设定。
- 条码占用的空间较大。
6. 可表示的资料包含有:0~9的数字,A~Z的英文字母,以及“+”、“-”、“*”、“/”、“%”、“$”、“.”等特殊符号,再加上空白字元“ ”,共计44组编码,并可组合出128个ASCII CODE的字元符号。
表 12 由组合39码所对应的128位ASCII码
二、39码编码方式
39码的每一个字元编码方式,都是由9条不同排列的线条编码而得。可区分成如下表之四种类型:
表 13 39码组成单元的四种类型
由上表可以看出在39码中只可能存在两种宽度的条或者空,且宽窄比为2:1
字元 | 逻辑型态 | 字元 | 逻辑型态 |
A | 110101001011 | N | 101011010011 |
B | 101101001011 | O | 110101101001 |
C | 110110100101 | P | 101101101001 |
D | 101011001011 | Q | 101010110011 |
E | 110101100101 | R | 110101011001 |
F | 101101100101 | S | 101101011001 |
G | 101010011011 | T | 101011011001 |
H | 110101001101 | U | 110010101011 |
I | 101101001101 | V | 100110101011 |
J | 101011001101 | W | 110011010101 |
K | 110101010011 | X | 100101101011 |
L | 101101010011 | Y | 110010110101 |
M | 110110101001 | Z | 100110110101 |
表 14 英文字母所对应39码的逻辑值
字元 | 逻辑型态 | 字元 | 逻辑型态 |
0 | 101001101101 | + | 100101001001 |
1 | 110100101011 | - | 100101011011 |
2 | 101100101011 | * | 100101101101 |
3 | 110110010101 | / | 100100101001 |
4 | 101001101011 | % | 101001001001 |
5 | 110100110101 | $ | 100100100101 |
6 | 101100110101 | . | 110010101101 |
7 | 101001011011 | 空白 | 100110101101 |
8 | 110100101101 | 9 | 101100101101 |
表 15 数字及特殊字符对应的39码逻辑值
三、39码检查码的计算方法
39码的检查码必须搭配“检查码相对值对照表”,如下表所示,将查出的相对值累加后再除以43,得到的余数再查出相对的编码字元,即为检查码字元。下面通过实例予以解释:
例如要算出 *S123$5* 这笔资料的检查码,其计算过程如下:
步骤1: 参考检查码相对值对照表,找出编码字元相对值
S 的相对值为28; 1 的相对值为1;
2 的相对值为 2; 3 的相对值为3;
$ 的相对值为39 ; 5 的相对值为5。
步骤2 :将各相对值累加除以43
累加相对值=28+1+2+3+39+5=78
78 ÷ 43=1….35
步骤3: 查出与余数相对的编码字元
余数=35,
查下表,得到相对值=35 之编码字元为 Z,
故 检查码=Z,得
含检查码在内的39码,为:*S123$5Z*
表 16 各编码字元的相对值为
第六章 128码
一、128码简介
128码是一种长度可变、连续性的字母数字条码。可表示从 ASCII 0 到ASCII 127 共128个字符,故称128码。与其他一维条码比较起来,128码是较为复杂的条码系统,内容大致亦分为起始码、资料码、终止码、检查码等四部份,其中检查码是可有可无的。这种条码采用四种元素宽度,每个字符由3条3空构成。条的模块总数是偶数;空的模块总数是奇数;该奇偶特性保证字符的自校验功能。下图是128码的范例与结构:
图 11 128码示例及组成部分
128码所具有的特点:
1. 可双向扫描;
2. 条码长度可自由调整,但不可超过232个字符;
3. 有三种不同版本: A, B, C ;
4. 可用128个字符分别在 A, B, or C 三个字符串集合中;
128码有三种不同类型的编码方式,而欲选择何种编码方式,则决定于起始码的内容。
字符集A:包括所有的大写字母、数字字符、标点字符、控制字符(ASCII值为00到95的字符)以及7个特殊字符(字符值96~102) ;
字符集B:包括所有的大写字母、数字字符、标点字符、小写字母字符(ASCII值为32到127的字符)以及7个特殊字符;
字符集C:包括100个数字(00~99以及3个特殊字符)。使用字符集C时,用一个符号字符表示2位数字。
二、128码组成部分
1、起始码
编码类别 | 逻辑型态 | 相对值 |
CODE A | 11010000100 | 103 |
CODE B | 11010010000 | 104 |
CODE C | 11010011100 | 105 |
表 17 128码三种编码类型
2、终止码
无论是采用A、B、C何种编码方式,128码的终止码均为固定的一种型态,其逻辑型态皆为1100011101011。
3、校验码计算
(开始位对应ID+每位数据在整个数据中的位置×每位数据对应的ID值)/103
表 18 CODE 128编码表
4、CODE128 编码示例
以95270078为例:
CODE128A,开始位对应的ID为103,第1位数据9对应的ID为25, 第2位数据5对应的ID为21,依此类推,可以计算校验位为:
(103+1×25+2×21+3×18+4×23+5×16+6×16+7×23+8×24)/103 = 21。即校验位的ID为21。
对照编码表95270078编码表示为:
开始位StartA(11010000100)+
数据位[9(11100101100)+
5(11011100100)+
2(11001110010)+
7(11101101110)+
0(10011101100)+
0(10011101100)+
7(11101101110)+
8(11101001100)]+
检验位21(11011100100)+
结束位Stop(1100011101011)
即:
110100001001110010110011011100100110011100101110110111010011101100100111011001110110111011101001100110111001001100011101011
若要打印,只需将1用黑色线标出0用白色线标出,一个简单的条形码就生成了。
CODE128B与CODE128A类似。而CODE128C只能对长度为偶数的数字串编码,每两个数字和为一位编码,所以输出的信息压缩了一半,打印的条形码因此也就较短。接上例,第1位数据95对应ID为95,第2位数据27对应ID为27,第3位数据00对应ID为0,第4位数据78对应ID为78,所以检验位为:
(105+1×95+2×27+3×0+4×78)/103 = 51
EAN128与CODE128C相同,只是在开始位后多加一个控制位FNC1 ( ID为102 ) ,同时将FNC1 做为第1位数据加入到校验位的计算。
结合CODE128 A、B、C,可以生成最优化的编码,即正确编码的同时使条码长度最短,这也是很多条码打印软件支持的,称为CODE128Auto。具体做法是在编码中加入编码控制符,切换编码方式。同上例,95270078字符个数为偶数,采用CODEC最优,编码方式为:
StartC + 95 + 27 + 00 + 78 +校验 + Stop
如果宇符再增加一位,假设是952700780。可以修改为:
StartC + 95 + 27 + 00 + 78 + CODEB + 0 + 校验 + Stop
第七章 库德巴码
一、库德巴码简介及特点
库德巴条码于1972年推出,是一种条、空都表示信息的,非连续型、可变长度、双向自检的条码。其广泛应用于:仓库管理,血液库,航空快递包裹等。字符集包括:数字10个:0-9,字母4个:A-D,字符6个:+,-,. ,: ,/ ,$。其中a, b, c d四个字符只能用作起始/终止符。库德巴码没有校验码,空白区比窄条宽10倍。库德巴码是四条三空表示一个字符,每个字符与字符间都有一个间隙,数据的中间不能出现英文字母。
图 10 库德巴码实例
图 11 库德巴码A-D码符
二、库德巴码组成部分及编码规则
1、起始符与终止符
起始符和终止符只能在A-D四种特殊字符中选择。
2、编码规则
(1)、每一字符由7单元组成,4个条,3个空;2种元素宽度,宽条或宽空为“1”,窄条或空为“0”。
(2)、每字符有2〜3宽元素,其余为窄元素,具体视不同字符而定。
(3)、符号组成:每个符号有二侧静区,起始符、终止符(A 〜 D) 及中间位空组成离散的连续型的条型码。
(4)、没有校验码,空白区比窄条宽10倍。
第八章 交叉25码
一、交叉25码的简介及特点
交叉25码是一种连续性、非定长、具有自动校验功能的双向条码,所有条与空都表示代码,第一个字符由条开始,第二个字符由空组成。只能表示数字 0 – 9。组成条码的字符个数应为偶数(因为条码的条/空成对交叉),当字符是奇数个时,应在左侧补0变为偶数个(例如:123 变为 0123) 。条码字符从左到右,奇数位置字符用条表示,偶数位字符用空表示。
交叉25码特点:
(1)、连续型条码,编码字符个数为偶,其第一数据码以条编码,第二数据以空编码。相互交叉;如数据码个数为奇,则在第一位补0,以使之为偶数。
(2)、条,空分别表示的二进制码相同,宽为“1”,窄为“0”。
(3)、交叉25条形码起始符为“0000",终止符为“100”。
图 12 交叉25码实例
二、交叉25码组成部分及编码规则
交叉25码的编码是以两个字符为一组(上下各一个)进行编码,其中一个字符以条编码,另一个字符以空编码,一般是奇数位用条表示,偶数位用空表示。每个字符由5个单元组成(3个窄单元,2个宽单元),两个字符的条空相互交叉组合在一起。应用于商品批发、仓库、生产/包装识别、运输以及国际航空系统的机票顺序编号等。具体规则如下图所示:
图13 交叉25码的编码形式
图 14 交叉25码0—9的字符集
交叉25码的字符集如下表所示:
表 19 交叉25码字符集
第九章 其他一维条码介绍
一、25条形码
25条码字符集只有0-9数字,较多应用于飞机票编号等领域。
编码规则:
(1)、用条表示信息,每个字符由5个条组成,其中2宽条,3窄条。
(2)、空不表示信息,宽窄条宽度比为 3:1,字符之间用宽空分隔,是一种离散型的条码,符号长度可变。
(3)、符号的起始符110,终止符为101。
25条形码字符表如下表所示:
表 20 25条形码字符表
二、93码
93码是一种长度可变的连续型字母数字式码制。93码与39码的字符集完全相同。
(1)、93码的简介
其字符集成为数字。0-9,26个大写字母和7个特殊字符(-、。、Space、/、+、%、¥)以及4个控制字符。
(2)、编码规则
每个字符由3条3空共9个元素宽度组成(9,3码),每个元素可以是1,2,3或4倍单位元素宽度; 起始符为“□”,其二进制码为10101110;终止符在起始符后加1个条, 即"□│"。
(3)、符号组成
由二侧静区,起始符,数据字符,校验符,终止符组成一个条码符号。
二、矩阵25码
矩阵25码是我国邮政快件和挂号信函上面使用的一种条形码。它是一种“段等距码”。每段由三根黑条二根空间组成五元素等距码,其中窄的条或空表示“1”、宽的条或空表示“0”。挂号信上的条形码,共有黑条37条左端两根窄条是起始字符,右端一根宽条和一根窄条是终止字符,中间33条可组成11段:前四段是挂号号码、后6段是邮政编码、最后1段是校验码即分类字符,如挂号信函为“0”;邮政快件为“1”等。在同一个编码内每段之间用窄白条隔开,而在挂号号码和邮政编码之间用宽白条隔开。矩阵25码的实例如下图所示:
图 15 矩阵25码整体结构
矩阵25码的字符集合如下表所示:
表 21 矩阵25码字符集
矩阵25条形码,每一字符编码由3条黑色线条及2条白色线条所组成,与交叉25条形码及基本25码一样,5条线里头有两条是粗线。
附录 常用条码的码制区别
种类 | 长度 | 排列 | 校验 | 字符符号、码源结构 | 标准字符集 | 其他 |
EAN-13 | 13位 | 连续 | 校验码 | 7个模块,2条、2空 | 0-9 | EAN-13为标准版 |
EAN-8 | 8位 | 连续 | 校验码 | 7个模块,2条、2空 | 0-9 | EAN-8为缩短版 |
UPC-A | 12位 | 非连续 | 自检码 | 12个模块,5条、4空 | 0-9 | UPC-A为标准版 |
UPC-E | 8位 | 连续 | 校验码 | 12个模块,5条、4空 | 0-9 | UPC-E为消零压缩版 |
39码 | 可变长 | 非连续 | 自检码、校验码 | 其中3个宽单元,6个窄单元 | 0~9、A~Z、-、$、/、+、%、*、.、空格 | "*"用作起始符和终止符,密度可变,有串联性,亦可增设校验码 |
93码 | 可变长 | 连续 | 校验码 | 9个模块,3条、3空 | 0~9、A~Z、-、$、/、+、%、*、.、空格 | 有串联性,可设双校验码,加前置码后可表示128个全ASCII码 |
基 本 | 可变长 | 非连续 | 自检码 | 14个模块,5个条,其中2个宽单元3个窄单元 | 0-9 | 空不表示信息,密度,低 |
交 叉 | 定长或可变长 | 连续 | 自检码、校验码 | 18个模块表示2个字符、5个条表示奇数位5个空表示偶数位 | 0-9 | 表示偶数位个信息编码,密度高,EAN、UPC的物流码采用该码制 |
矩 阵 | 定长或可变长 | 非连续 | 自校验、校验码 | 9个模块,3条2空,其中2个宽单元3个窄单元 | 0-9 | 密度较高,在我国被 广泛地用于邮政管理 |
库 德 | 可变长 | 非连续 | 自校验 | 7个单元4条3空 | 0~9、A~D、$、+、-、/ | 有18种密度 |
128码 | 可变长 | 连续 | 校验码 | 11个模块,3条、3空 | 三个字符集覆盖了128个全ASCII码 | 有功能码、对数字码的密度最高 |