你知道二维码是什么码吗?目前流行的无线射频识别用的又是什么编码呢?它俩如何转换呢?

 背景: 前段时间时间公司开发的项目其中有个模块是要将原有产品(比如某个厂商的衣服吊牌)的条形码信息(也就是UPC-a编码)转化成无线射频识别的EPC编码,供RFID应答器读取。但是这部分之前也没有接触过,所以从GS1世界编码规范开始了解,总算是有所收获。所以记录下相关知识点。

| UPC和epc
upc是之前用的全球唯一标识码,比如,条形码—>UPC码为12位数字构成,其中UPC码第一位和最后一位为固定字符,2-6位为制造商信息,7-11为产品信息。

epc是目前推广的射频识别的码,可以存储的信息更多,慢慢要替换上面的upc。这个EPC目前编码的二进制格式有96 位、170位等多种,其中版本号(Header)是固定的8位,其余三段数据的长度是不固定的,以SGTIN-96编码方式为例,我们有SGTIN-96编码30.7800190.000060.000000010,其中30是版本号,7800190是域名管理码,均由EPC组织决定的,而对象种类000060和序列号000000010是由公司管理者决定的。96位的EPC码:307800190000060000000010(每个数字4位)。

| 概念

GIS全世界通用的一种编码规范。GTIN编码就是GIS规范下对贸易货品的编码。根据组成结构的不同分为-8,-12,-13,-14等,相应的GTIN编码之间通过补0可以进行转化。使用0开头的GS1前缀用于GTIN-12编码(UPC前缀用于变-12),非0的开始的GS1前缀用于编-13.(这种情况下就直接给的GS1前缀,就直接给的GS1编码,然后再去转换,不用像给的upc然后upc转GS1了)。当数据载体(比如二维码)要求我们的GTIN长度必须是多少位,不足的就补(也就限定了只能升级不能降级).
在这里插入图片描述

| upc-a 12(GTIN-12) ,ean13(GTIN-13)

都是条形码,一个12位组成,一个13位组成。

ean13图示在这里插入图片描述
| upc转化成epc

upc-a12为例:
在这里插入图片描述

  1. 分离upc,去掉最后一位数字。

  2. 在头部补0。

  3. 在公司前缀和商品信息间加一个indicator digit用于表示目前商品所处的级别。在这里插入图片描述

  4. 在末尾加序列号(唯一的数字字符串)

    以上4步操作后得到的就是epc的Data部分。

在这里插入图片描述
EPC共有6块信息,还有header(固定值48),+filter(过滤器,用于给阅读器区分读取或者忽略哪些标签)+partition
在这里插入图片描述
5. filter和partition要去GS1/EPCglobal标签数据标准表查找相应的数值补上。partion决定了前缀和item的位数。先将uri格式的编码转化成二进制,然后再对二进制的进行分割。在这里插入图片描述
6. upc就是GNIT-12?然后补0变-13?然后这样转?

总结:前缀固定,filter根据情况选择,partition由前缀位数确定,后面就是主要信息。
业务中,就是从excel表中去获取数据,校验数据是否符合要求,然后根据以上学习的转换规则编写一个utils工具类去给转码用,然后由业务层调用就可。

| 继续学习总结

EPC编码体系中的SGTIN是一种基于EAN.UCC来的。所以GTIN转码的时候都是往SGTIN转,SGTIN也就是EPC。

GTIN是对一个特定的产品是类的单位,EPC是直接标识到一个产品是个体。

所有的SGTIN表示法都支持14位GTIN格式(注意是所有的SGTIN格式表示法,也就是说-12,-13都得转成-14,然后再往epc去转)。

目前理解到的就是指示位为0的所有-12,-13的GTIN都能转成EPC格式。

所以就是SGTIN就是GTIN加一个序列码组成的。

所以就是目前只能upc去转,因为ean-13这个补码体系最终还没有确定。然后ean-14就不能转。

其他编码体系比如十进制的SSCC也可以转epc。

接下来可以研究的就是SGTIN198的情况了。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值