概述
超高频标签实际就是一个小的存储空间,模块只是通过特殊命令来读取标签中的数据,所以可以读写多少长度数据,由标签本身决定,具体可询问标签供应商
注意:以下所有的读写操作都是以十六进制形式进行的,数据长度必须以字(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进制形式)
最后
以上就是听话小伙为你收集整理的RFID标签分区的全部内容,希望文章能够帮你解决RFID标签分区所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复