根据上述分析,可以看出条形码和RFID码之间存在对应关系。针对现今条形码和RFID码将长期共存的现状,我们经常需要在两者之间进行转换。在此以常用的EAN码与EPC码之间的转换为例,介绍它们之间的转换方法。两种常用的EAN码(GTIN和SSCC)和其对应的EPC码之间的转化关系如图2-12所示。
EAN码主要由扩展位、国家代码、厂商代码、产品代码、校验位等几部分组成;而EPC码主要由标头、滤值、分区值、国家代码、厂商代码、产品代码、序列号等几部分组成。各代码之间只是存在组织形式的不同。因此,它们之间互相转换的过程简单来说,就是将源码的各部分代码分离开,再按照目标码的规则变换、组合起来的过程。
(1)EAN码到EPC码的转换
EAN码到EPC码的转换主要有以下几个步骤:
图2-12 EAN码与EPC码之间的转化关系
1)分类;2)分段和赋值;3)转换;4)组合。
下面以EAN码“6901010101098”转换为96位EPC码为例,详述其转化过程。
步骤1:分类。首先分清源码和目标码的类型。作为源码,EAN码的类型从代码长度上就可以看出,EAN13的长度为13位,EAN8的长度为8位,SSCC的长度为18位。例如,EAN码“6901010101098”是一个EAN13码,相应的目标码是SGTIN-96。
步骤2:分段、赋值。依照不同EAN码的编码规则,我们可以将扩展位、国家代码、厂商代码、产品代码、校验位等分离出来。同时,EAN码中没有EPC码所要求的标头、滤值、分区值,国家代码和厂商代码合起来就是EPC码的厂商识别码,应要对照的要求将这些代码的值表示并计算出来。另外,序列号是管理者也就是厂家赋给每个产品的代码,在EAN码中没有体现,所以要转化为EPC码时还要将这个代码调查清楚并体现在转换过程中。SSCC码的第一位为扩展位,分段后将其连接到序列代码之后。
根据上述原则,下面来看例子EAN13码“6901010101098”。因为它是GTIN,所以没有扩展位,那么它的前三位“690”就是国家代码,厂商代码为“1010”,所以目标EPC码的厂商识别码就是“6901010”;产品代码为“10109”;校验位为“8”。要转化为SGTIN-96,那么标头就是“0011 0000”。滤值也就是包装类型,需要根据实际情况选择,这里假设为包装箱(011)。在我们常用的EAN13码中,厂商识别码为7位,则目标码的分区值为5(101)。EAN13码中没有指示符数字(也就是扩展位),在产品代码前加“0”,构成6位代码作为EPC码的产品代码。最后给序列号赋值,假设为“1234567”。
步骤3:转换。转换的过程其实就是将各段代码由十进制数转化为二进制数的过程。这里不再赘述。注意,所得各段二进制数的位数不一定与EPC码要求的位数相同,所以要在前面补零。
例子“6901010101098”经过转化的结果如下:
厂商识别码“6901010”在EPC码中应为24位,转化结果不足24位在前面补零,结果为“0110 1001 0100 1101 0001 0010”。产品代码“010109”在EPC码中应为20位,加上补零,转化结果为“0000 0010 0111 0111 1101”。同理,系列代码转化为“00 0000 0000 0000 0001 0010 1101 0110 1000 0111”。(www.xing528.com)
步骤4:组合。经过转换得到的二进制数就是符合EPC编码规则的编码,最后按EPC码的组合顺序将它们连接起来。
EAN码“6901010101098”加上包装类型和序列号,转化为EPC码的结果如下:0011 0000 0111 0101 1010 0101 0011 0100 0100 1000 0000 1001 1101 1111 0100 0000 0000 0000 0001 0010 1101 0110 1000 0111。为阅读方便,将其转化为十六进制数如下:3075A5344809DF400012D687。至此全部转换完成。
(2)EPC码到EAN码的转换
EPC码转换为EAN码的过程就是EAN码转换为EPC码的逆过程,步骤也大致相同,下面做简要分析。
步骤1:分类。首先由EPC码的标头和代码长度可以看出其所属类型,EPC码的编码方案见表2-5。由其所属类型可以确定目标码的类型,根据实际需要可以确定目标码长度。
表2-5 EPC码的编码方案
步骤2:分段、赋值。根据不同EPC码的类型,按照其编码规则可以将标头、滤值、分区值、厂商识别码、序列代码逐一分开。
步骤3:转换。上述代码是二进制数,将它们分别化为十进制数即可。
步骤4:组合。将上述所得的十进制代码组合起来,就得到了目标EAN码的基本部分。这里只说明两点:
1)校验码:由EAN码的基本部分计算得到。
2)扩展位:SSCC码中存在扩展位。要将步骤3中得到的十进制序列号的首位取出作为扩展位,将其连接到目标SSCC-EAN码的首位。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。