3. EPC编码
目前,国际上还没有统一的RFID编码规则,当今影响力比较大的标准是欧美支持的产品电子代码(electric product code,EPC)。本书中仅以EPC编码为例进行介绍。
产品电子代码是新一代的与EAN/UCC码兼容的编码标准,将在物联网中得到广泛应用,EPC编码与现行GTIN相结合,因而EPC并不是取代现行的条码标准,而是由现行的条码标准逐渐过渡到EPC标准或者是在未来的供应链中EPC和EAN·UCC系统共存。EPC中码段的分配是由EAN·UCC来管理的。在我国,EAN·UCC系统中GTIN编码是由中国物品编码中心负责分配和管理。同样,EPC服务也已启动来满足国内企业使用EPC的需求。
EPC代码是由一个标头加上另外三段数据(依次为域名管理者、对象分类、序列号)组成的一组数字。其中标头标识EPC的类型,它使得EPC随后的码段可以有不同的长度;域名管理是描述与此EPC相关的生产厂商的信息。
EPC代码也分为多种:通用标识(GID)、基于EAN/UCC的标识(SGTIN,SSCC,SGLLN,GRAI,GIAI)。基于EAN/ UCC的标识又分为96位和64位两种。
1) 系列化全球贸易标识代码(SGTIN)
SGTIN(serialized global trade identification number)是一种新的标识类型,它是基于EAN·UCC通用规范中的全球贸易项目代码(GTIN)演生的。一个单独的GTIN不符合EPC纯标识中的定义,因为它不能唯一标识一个具体的物理对象。GTIN标识一个特定的对象类,比如一特定产品类或SKU。
注:所有SGTIN表示法支持14位GTIN格式。这就意味着在UCC-12厂商识别代码以0开头和EAN/UCC-13 零指示位,都能够编码并能从一个EPC编码中进行精确的说明。EPC现在不支持EAN/UCC-8,但是支持14位GTIN格式。
为了给单个对象创建一个唯一的标识符,GTIN增加了一个序列代码,管理实体负责分配唯一的序列代码给单个对象分类。GTIN和唯一序列代码的结合,称为一个序列化 GTIN(SGTIN)。
SGTIN由以下信息元素组成:
厂商识别代码,由EAN或UCC分配给管理实体。厂商识别代码在一个EAN·UCC GTIN十进制编码内同厂商识别代码位相同。
项目代码,由管理实体分配给一个特定对象分类。EPC编码中的项目代码是从GTIN中获得,通过连接GTIN的指示位和项目代码位,看做一个单一整数而得到,如图5-3所示。
序列代码,由管理实体分配给一个单个对象。序列代码不是GTIN的一部分,但是正式成为SGTIN的组成部分。
图5-3 SGTIN编码方案
SGTIN的EPC编码方案允许EAN·UCC 系统GTIN和序列代码直接嵌入EPC标签。所有情况下,校验位不进行编码。下面将详细说明关于SGTIN的两个编码方案:SGTIN-96(96位)和SGTIN-198(198位)。
(1) SGTIN-96
除了标头之外,SGTIN-96还包括5个字段:滤值、分区、厂商识别代码、商品项目代码和序列号,如表5-1所示。
表5-1 SGTIN-96代码结构
*厂商识别代码和商品项目代码字段范围根据分区值的不同而变化。
标头8位,二进制值为0011 0000。
滤值用来快速过滤和确定基本物流类型。SGTIN-96的滤值见表5-2。
表5-2 SGTIN-96滤值
分区指示随后的厂商识别代码和商品项目代码的分开位置,这个结构与GS1 GTIN中的结构相匹配。GTIN厂商识别代码加上商品项目代码(包括指示符在内)共13位。其中,厂商识别代码在6位到12位之间,商品项目代码(包括单一指示符)相应在7位到1位之间。
SGTIN-96厂商识别代码与对应的GTIN厂商识别代码相同,以二进制方式表示。
SGTIN-96商品项目代码与GTIN商品项目代码之间存在对应关系:连接GTIN的指示符和商品项目代码,将二者组合看做一个整数,编码成二进制作为SGTIN-96的商品项目代码字段,把指示符放在商品项目代码的最左侧可用位置。GTIN商品项目代码中以“0”开头是非常重要的。例如00235同235是不同的。如果指示符为1,GTIN商品项目代码为00235,那么SGTIN-96商品项目代码为100235。序列号为一个数字。这个数字应在GS1系统规定的序列号有效值范围内,且序列号只能为整数。
表5-3 SGTIN-96分区
(2) SGTIN-198
除了标头之外,SGTIN-198同样还包括滤值、分区、厂商识别代码、商品项目代码和序列号5个字段。但其标头和序列号与SGTIN-96不同,如表5-4所示。
表5-4 SGTIN-198代码结构
*厂商识别代码和商品项目代码字段范围根据分区值的不同而变化。
标头8位,二进制值为0011 0110。
SGTIN-198滤值和SGTIN-96滤值相同,见表5-2。
SGTIN-198分区和SGTIN-96分区相同,见表5-3。
SGTIN-198厂商识别代码和商品项目代码与SGTIN-96相同。
序列号由字符组成。SGTIN-198编码中序列号允许最多20个字符,支持以UCC /EAN-128条码为载体的应用标识符AI(21)的全体范围,见表5-5。
表5-5 唯一图形字符的分配
续表
2) 系列货运包装箱代码(SSCC)
SSCC在EAN·UCC通用规范中给出了定义。与GTIN不同的是,SSCC的设计本身已经分配给个体对象,因此不需要任何附加字段来作为一个EPC纯标识。
SSCC由以下信息元素组成:
厂商识别代码,由EAN或UCC分配给一个管理实体。厂商识别代码同EAN·UCC 的SSCC十进制编码中的厂商识别代码相同。
序列代码,由管理实体分配给明确的货运单元。EPC编码的序列代码是从SSCC中获取——通过连接SSCC的扩展位和序列代码位组成一个唯一的整数,如图5-4所示。
图5-4 SSCC编码方案
SSCC的EPC编码方案允许EAN·UCC系统的SSCC代码直接嵌入EPC标签中。在所有情况下,校验位不进行编码。
以SSCC-96为例介绍SSCC的编码标准。
除了标头之外,SSCC-96还包括4个字段:滤值、分区、厂商识别代码和序列号。如表5-6所示。
表5-6 SSCC-96代码结构
*厂商识别代码和序列号字段最大十进制范围根据分区字段内容的不同而变化。
标头8位,二进制值为0011 0001。
滤值用来快速过滤和确定基本物流单元类型,SSCC-96的滤值见表5-7。
表5-7 SSCC-96滤值
分区指示随后的厂商识别代码和序列号分开位置。这个结构与商品条码SSCC的结构相匹配。在SSCC-96代码结构中,厂商识别代码在6位到12位之间变化,序列号在11位到5位之间变化。表5-8给出了分区字段值及相关的厂商识别代码长度和序列号长度。
表5-8 SSCC-96分区
SSCC-96的厂商识别代码是对商品条码SSCC厂商识别代码的逐位编码。
SSCC-96的序列号由SSCC的序列号和扩展位组成。扩展位同序列号字段通过以下方式结合:扩展位放在SSCC序列号最左边的可用位置上,若SSCC序列号以零开头,仍须保留。由表5-6可见,SSCC-96的序列号(不包括前置的一个扩展位)的数值范围在厂商识别代码为12位时的9 999到厂商识别代码为6位的9 999 999 999之间。
未分配字段没有使用,用零填充。
3) 系列化全球位置码(SGLN)
GLN在EAN·UCC通用规范中给出了定义。一个GLN能够标识一个不连续的、唯一的物理位置,比如一个码头门口或一个仓库箱位,或标识一个集合物理位置,比如一个完整的仓库。此外,一个GLN能够代表一个逻辑实体,比如一个执行某个业务功能(例如下订单)的“机构”。
正因为上述这些不同,EPC GLN考虑仅仅采用GLN的物理位置标识。
SGLN由以下信息元素组成:
厂商识别代码,由EAN或UCC分配给管理实体。厂商识别代码同EAN·UCC GLN十进制编码中的厂商识别代码相同。
位置参考代码,由管理实体唯一分配给一个集合的或具体的物理位置。
扩展代码,由管理实体分配给一个个体的唯一地址。
图5-5 SGLN编码方案
SGLN编码方案,如图5-5 所示,允许在EPC标签上将EAN·UCC 系统GLN直接嵌入其中,不对校验位进行编码,目前制定了SGLN-96 (96 位) 和SGLN-195 (195 位)两种编码方案。
(1) SGLN-96
除了标头之外,SGLN-96还包括5个字段:滤值、分区、厂商识别代码、位置参考代码和扩展代码,如表5-9所示。
表5-9 SGLN-96代码结构
*厂商识别代码和位置参考代码字段范围根据分区值的不同而变化。
注:扩展代码最小值为1,预留值为0。
标头8位,二进制值为0011 0010。
滤值用来快速过滤和确定基本位置类型。SGLN-96的滤值见表5-10。
表5-10 SGLN-96滤值
分区指示随后的厂商识别代码和位置参考代码的分开位置,这个结构与商品条码GLN中的结构相匹配。在GLN结构中,厂商识别代码加上位置参考代码共12位。SGLN-96中,厂商识别代码在6~12位之间,位置参考代码相应在6~0位之间。分区值与厂商识别代码和位置参考代码二者长度的对应关系见表5-10。
SGLN-96厂商识别代码与对应的商品条码GLN厂商识别代码相同,以二进制方式表示。如果存在SGLN-96位置参考代码,那么与商品条码GLN位置参考代码相同,以二进制方式表示。
扩展代码为一个序列号,可以是表5-11中规定范围内的整数值,或者是使用应用标识符AI(254)的GLN,此时AI(254)的扩展代码应为数字。如果不使用扩展代码,这个值被设置为二进制0 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000。
表5-11 SGLN-96分区
(2) SGLN-195
除了标头之外,SGLN-195还包括5个字段:滤值、分区、厂商识别代码、位置参考代码和扩展代码,但其标头和扩展代码与SGLN-96不同,如表5-12所示。
表5-12 SGLN-195代码结构
*厂商识别代码和商品项目代码字段范围根据分区值的不同而变化。
标头8位,二进制值为0011 1001。
SGLN-195滤值和SGLN-96滤值相同,见表5-10。
SGLN-195分区和SGLN-96分区相同,见表5-11。
SGLN-195厂商识别代码和位置参考代码与SGLN-96相同。
扩展代码为一个序列号,如果不使用扩展代码,这个值被设置为二进制0110000和其后133个0。SGLN-195编码中序列号允许最多20个字符,支持UCC/EAN-128条码表示的应用标识符AI(254)的全体范围,见表5-5。
4) 全球可回收资产标识符(GRAI)
全球可回收资产标识符(GRAI)在EAN·UCC通用规范中给出了定义。与GTIN不同的是,GRAI已经是为单品分配的,因此不需要任何附加字段便可用做EPC纯标识。
全球可回收资产标识符包含以下信息元素:
厂商识别代码,由EAN或UCC分配给一个管理实体,该厂商识别代码与EAN·UCC GRAI十进制代码中的厂商识别代码相同。
资产类型,是由管理实体分配给资产的某个特定类型的。
序列号,由管理实体分配给单个对象。EPC表示法只能用于描述EAN·UCC通用规范中所规定的序列代码子集。特别地,只有那些具有一个或多个数字、非零开头的序列代码可以使用。
如图5-6所示,EPC对GRAI的编码方案允许在EPC标签上将EAN·UCC系统GRAI直接嵌入其中。EPCglobal制定了GRAI-96和GRAI-170两种编码方案。
图5-6 GRAI编码方案
(1) GRAI-96
除了标头之外,GRAI-96还包括5个字段:滤值、分区、厂商识别代码、资产类型代码和序列号,如表5-13所示。
表5-13 GRAI-96代码结构
*厂商识别代码和资产类型字段范围根据分区值的不同而变化。
标头8位,二进制值为0011 0011。
滤值用来快速过滤和确定基本资产类型。GRAI-96的滤值见表5-14。
表5-14 GRAI-96滤值
分区指示随后的厂商识别代码和资产类型的分开位置,这个结构与商品条码GRAI中的结构相匹配。在商品条码GRAI代码结构中,厂商识别代码加上资产类型代码共12位。这里,厂商识别代码在6位到12位之间,资产类型代码相应在6位到0位之间。分区值与厂商识别代码和资产类型代码二者长度之间的对应关系见表5-15。
表5-15 GRAI-96分区
续表
GRAI-96厂商识别代码与对应的商品条码GRAI厂商识别代码相同,以二进制方式表示。GRAI-96资产类型代码与商品条码GRAI资产类型代码相同,以二进制方式表示。序列号为一个数字。这个数字应在表3-19规定的序列号有效值范围内,且序列号只能为整数,不能以零开头。
(2) GRAI-170
除了标头之外,GRAI-170还包括5个字段:滤值、分区、厂商识别代码、资产类型代码和序列号,但其标头和序列号与GRAI-96不同,如表5-16所示。
表5-16 GRAI-170代码结构
*厂商识别代码和商品项目代码字段范围根据分区值的不同而变化。
标头8位,二进制值为0011 0111。
GRAI-170滤值和GRAI-96滤值相同,见表5-14。
GRAI-170分区和GRAI-96分区相同,见表5-15。
GRAI-170厂商识别代码和资产类型代码与GRAI-96相同。
5) 全球单个资产标识符(GIAI)
GIAI(Global Individual Asset Identifier)即全球单个资产标识符,在EAN·UCC 通用规范中给出规定。与GTIN不同的是,GIAI原来就设计为用于单品,因此不需要任何附加字段用于EPC的纯标识。GIAI由下面的信息元素组成:
厂商识别代码,由EAN·UCC分配给公司实体,该厂商识别代码与EAN·UCC GIAI十进制代码中的厂商识别代码数字相同。
单个资产参考代码,是由管理实体唯一地分配给某个具体资产的。EPC表示法只能用于描述EAN·UCC通用规范中规定的单个资产参考代码。需要特别指出的是,只能是那些具有一个或多个数字、非零开头的单个资产项目代码可以使用。
GIAI编码方案如图5-7所示。
图5-7 GIAI编码方案
EPC编码方案中规定了GIAI-96和GIAI-202两种编码,允许直接将符合EAN·UCC系统标准的GIAI代码直接嵌入EPC标签。
(1) GIAI-96
除了标头之外,GIAI-96还包括4个字段:滤值、分区、厂商识别代码、单个资产参考代码,如表5-17所示。
表5-17 GIAI-96代码结构
*厂商识别代码和资产类型字段范围根据分区值的不同而变化。
标头8位,二进制值为0011 0100。
滤值用来快速过滤和确定基本资产类型。GIAI-96的滤值见表5-18。
表5-18 GIAI-96滤值
分区指示随后的厂商识别代码和单个资产参考代码的分开位置,这个结构与商品条码GIAI中的结构相匹配。厂商识别代码在6位到12位之间。
GIAI-96厂商识别代码与对应的商品条码GIAI厂商识别代码相同,以二进制方式表示。
单个资产参考代码是每个资产唯一的代码。商品电子编码GIAI的单个资产参考代码小于商品条码GIAI的单个资产参考代码范围,且只能为数字,不能以零开头。见表5-19。
表5-19 GIAI-96分区
(2) GIAI-202
除了标头之外,GIAI-202还包括4个字段:滤值、分区、厂商识别代码和单个资产参考代码,如表5-20所示。
表5-20 GIAI-202代码结构
*厂商识别代码和资产类型字段范围根据分区值的不同而变化。
标头8位,二进制值为0011 1000。
滤值用来快速过滤和确定基本资产类型。GIAI-202的滤值见表5-21。
分区指示随后的厂商识别代码和单个资产参考代码的分开位置,这个结构与商品条码GIAI中的结构相匹配。厂商识别代码在6位到12位之间,分区值与厂商识别代码和单个资产参考代码二者长度之间的对应关系见表5-21。
表5-21 GIAI-202分区
GIAI-202厂商识别代码与对应的商品条码GIAI厂商识别代码相同,以二进制方式表示。
单个资产参考代码是单个资产参考代码唯一的代码,由字符组成。GIAI-202编码中序列号允许最多24个字符,支持以UCC/EAN-128条码为载体的应用标识符AI(8004)的全体范围。
注:厂商识别代码和单个资产参考代码的总长不能超过30个字符。
6) 通用标识符GID-96
EPC标签数据标准的这个版本定义了一种通用的标识类型。通用标识符(GID-96) 定义为96位的EPC代码,它不依赖任何已知的、现有的规范或标识方案。此通用标识符由3个字段组成——通用管理者代码、对象分类代码和序列代码。GID的编码包含的第四个字段,标头,保证EPC命名空间的唯一性。如表5-22所示:
表5-22 通用标识符(GID-96)
通用管理者代码标识一个组织实体(公司,管理者或其他管理者),负责维持后继字段的编号——对象分类代码和序列代码。EPCglobal分配通用管理者代码给实体,确保每一个通用管理者代码是唯一的。
对象分类代码被EPC管理实体使用来识别一个物品的种类或“类型”。当然这些对象分类代码,在每一个通用管理者代码之下必须是唯一的。对象分类代码的例子包含消费性包装品(CPG)的库存单元(SKU)或高速公路系统的不同结构,比如交通标志、灯具、桥梁,这些产品的管理实体为一个国家。
最后,序列代码在每一个对象分类代码之内是唯一的。换句话说,管理实体负责为每一个对象分类代码分配唯一的、不重复的序列代码。
- EPC与EAN·UCC之间的关系
产品电子代码 EPC是为了提高物流供应链管理水平、降低成本而新近发展起来的一项新技术,可以实现对所有实体对象(包括零售商品、物流单元、集装箱、货运包装等)的唯一有效标识,被誉为具有革命性意义的新技术,受到世界发达国家和地区的高度重视。产品电子代码EPC与目前应用最成功的商业标准EAN·UCC全球统一标识系统是兼容的,成为EAN·UCC系统的一个重要组成部分,是EAN·UCC系统的延续和拓展,主要表现在以下两个方面:
组织上,由国际物品编码协会EAN和美国统一代码委员会UCC负责EPC在全球的推广与实施。
技术上,EPC结构与现行的EAN·UCC系统中的GTIN是相兼容的,也就是说GTIN是EPC编码结构中的重要组成部分。二者之间既有区别又有联系,整体上必须维护EAN·UCC系统的一致性和连续性。
EPC基本结构和GTIN转换为EPC的编码结构分别如图5-8和图5-9所示。
图5-8 EPC基本结构
标头:标识EPC的长度,类型,结构,版本。
EPC管理者代码:负责管理下面部分的实体。
对象分类代码:标识对象的类别。
序列号:标识具体的单个实体。
图5-9 GTIN 转换为EPC
标识存在于我们的生活中,当然在物联网中也存在标识,通过对物品的标识能够使我们清楚物品的各种信息。这一点对于信息的采集是非常重要的,如果没有对物品的标识,就没有办法对物品信息进行采集,这样使得在物联网末端的信息采集没有办法进行,那物联网“物物相连”的最终目标就没有办法达到。
标识技术是为了能够达到标识目的的技术,指通过不同的载体去表现条码信息,就是说用什么方式去将信息写入设备。我们通常所说的对物品信息的载体主要有一/二维条码、射频识别技术(RFID)等。本书主要介绍了一/二维条码和射频识别技术(RFID)的识别技术。