RFID标签分区

超高频标签实际就是一个小的存储空间,模块只是通过特殊命令来读取标签中的数据,所以可以读写多少长度数据,由标签本身决定,具体可询问标签供应商
注意:以下所有的读写操作都是以十六进制形式进行的,数据长度必须以字(word)为单位(2byte,即4位,如0001)

标签存储器分区
分为Reserved(保留),EPC(电子产品代码),TID(标签识别号)和User(用户)四个独立的存储区块(Bank)。

RESERVER区:8byte(4字)大小,前4byte(2字)为摧毁密码(用于摧毁标签,一般用不到),后4byte(2字)为访问密码(用于进行写数据和锁定操作),默认值为:0000 0000 (摧毁密码) 0000 0000 (访问密码)。


TID区:12byte(6字)大小,“只可读,不可写”, 出厂已经写入,为标签的唯一标识符,电子标签的产品类识别号,每个生产厂商的TID号都会不同。


EPC区为识别标签对象的电子产品码,EPC与TID相比,区别在于EPC可以用户手动写入修改。EPC区的数据结构是,第一个word是校验位,第二个word是长度控制,之后的才是数据存储位置,盘存的时候,是根据长度控制位所表示的长度来显示EPC的。

实际写入EPC数据的时候,起始地址填1,即从长度控制位开始写入数据,校验位会自动计算不用手动写入。

长度控制位计算: EPC数据长度 * 2 = i; 将i转换为十六进制表示,然后在转换后的结果后面加00,最终得到的就是长度控制位的数据。如:0001, i = 4 * 2 = 8 —> 08 —>0800,长度控制位为0800,程序中计算:


    byte[] newEPCByte = Tools.HexString2Bytes(newEPC);
    byte[] pcByte = new byte[] { 0x00, 0x00 };
    pcByte[0] = (byte) (newEPCByte.length * 4);
    String pc = Tools.Bytes2HexString(pcByte, 2));
 

长度根据实际需要写入的数据长度填,比如:0001,长度为1word,4位(需要注意的是,数据位长度必须为4的倍数),加上长度控制位0800,软件中长度填写2; 例: 0001 起始地址:1,长度:2,数据:08000001

USER区:该存贮器的长度由各个电子标签的生产厂商确定,USER区可以写入用户自定义的数据(以16进制形式)
 

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值