知方号

知方号

RFID标签分区

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进制形式)  

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至lizi9903@foxmail.com举报,一经查实,本站将立刻删除。