UHF电子标签读写模块UHFReader86用户手册V1.10
Data参数如下: Data[] ENum EPC Mem WordPtr Num 0xXX 变长 0xXX 0xXX Pwd MaskMem MaskAdr MaskLen MaskData 0xXX 2Bytes 0xXX 变长 0xXX 4Byte 参数解析: ENum:在(0x00~0x0f)范围内表示EPC号长度,以字为单位。EPC的长度在15个字以内。此时无MaskMem、MaskAdr 、MaskLen、MaskData参数项。ENum为0xff时有MaskMem、MaskAdr 、MaskLen、MaskData参数项,无EPC参数项。如果为其它值将返回参数错误信息。
EPC:要读取数据的标签的EPC号。长度根据所给的EPC号决定,EPC号以字为单位,且必须是整数长度。高字在前,每个字的高字节在前。这里要求给出的是完整的EPC号。
Mem:一个字节。选择要读取的存储区。0x00:保留区;0x01:EPC存储区;0x02:TID存储区;0x03:用户存储区。其他值保留。若命令中出现了其它值,将返回参数出错的消息。
WordPtr:一个字节。指定要读取的字起始地址。0x00 表示从第一个字(第一个16位存储区)开始读,0x01表示从第2个字开始读,依次类推。
Num:一个字节。要读取的字的个数。不能设置为0x00,否则将返回参数错误信息。Num不能超过120,即最多读取120个字。若Num设置为0或者超过了120,将返回参数出错的消息。
Pwd:四个字节,这四个字节是访问密码。32位的访问密码的最高位在Pwd的第一字节(从左往右)的最高位,访问密码最低位在Pwd第四字节的最低位,Pwd的前两个字节放置访问密码的高字。只有当读保留区,并且相应存储区设置为密码锁、且标签的访问密码为非0的时候,才需要使用正确的访问密码。在其他情况下,Pwd为零或正确的访问密码。
MaskMem:一个字节,掩码区。0x01:EPC存储区;0x02:TID存储区;0x03:用户存储区。其他值保留。若命令中出现了其它值,将返回参数出错的消息。
MaskAdr:两个字节,掩码的起始位地址(单位:Bits)。范围0~16383。
MaskLen:一个字节,掩码的位长度(单位:Bits)。
MaskData:掩码数据。MaskData数据字节长度是MaskLen/8。如果MaskLen不是8的整数倍,则MaskData数据字节长度为[MaskLen/8]取整再加1。不够的在低位补0。
注:当MaskMem、MaskAdr 、MaskLen、MaskData为空时表示以完整的EPC号掩膜。 应答: Len Adr reCmd Status Data[] CRC-16 0xXX 0xXX 0x02 0x00 Word1,Word2,… LSB MSB 参数解析:
13
UHF电子标签读写模块UHFReader86用户手册V1.10
Word1, Word2...: 以字为单位。每个字都是2个字节,高字节在前。Word1是从起始地址读到的字,Word2是起始地址后一个字地址上读到的字,以此类推。 8.2.3 写数据
这个命令可以一次性往保留区、TID存储区或用户存储区中写入若干个字。 命令: Len Adr Cmd Data[] CRC-16 0xXX 0xXX 0x03 Data[] WNum 0xXX Pwd 4Byte ENum 0xXX 0xXX EPC 变长 2Bytes Mem 0xXX 0xXX WordPtr 0xXX 变长 Wdt 变长 —— LSB MSB Data参数如下: MaskMem MaskAdr MaskLen MaskData 参数解析: WNum:待写入的字个数,一个字为2个字节。这里字的个数必须和实际待写入的数据个数相等。WNum必须大于0,最大为32。若上位机给出的WNum为0或者WNum和实际字个数不相等,将返回参数错误的消息。
ENum:在(0x00~0x0f)范围内表示EPC号长度,以字为单位。EPC的长度在15个字以内。此时无MaskMem、MaskAdr 、MaskLen、MaskData参数项。ENum为0xff时有MaskMem、MaskAdr 、MaskLen、MaskData参数项,无EPC参数项。如果为其它值将返回参数错误信息。
EPC:要写入数据的标签的EPC号。长度由所给的EPC号决定,EPC号以字为单位。高字在前,每个字的高字节在前。这里要求给出的是完整的EPC号。
Mem:一个字节,选择要写入的存储区。0x00:保留区;0x01:EPC存储区;0x02:TID存储区;0x03:用户存储区。其他值保留。若命令中出现了其它值,将返回参数出错的消息。
WordPtr:一个字节,指定要写入数据的起始地址。
Wdt:待写入的字,字的个数必须与WNum指定的一致。这是要写入到存储区的数据。每个字的高字节在前。Data[]中前面的字写在标签的低地址中,后面的字写在标签的高地址中。比如,WordPtr等于0x02,则Data[]中第一个字(从左边起)写在Mem指定的存储区的地址0x02中,第二个字写在0x03中,依次类推。
Pwd:4个字节的访问密码。32位的访问密码的最高位在Pwd的第一字节(从左往右)的最高位,访问密码最低位在Pwd第四字节的最低位,Pwd的前两个字节放置访问密码的高字。在写操作时,应给出正确的访问密码,当相应存储区未设置成密码锁时Pwd可以为零。
MaskMem:一个字节,掩码区。0x01:EPC存储区;0x02:TID存储区;0x03:用户存
14
UHF电子标签读写模块UHFReader86用户手册V1.10
储区。其他值保留。若命令中出现了其它值,将返回参数出错的消息。
MaskAdr:两个字节,掩码的起始位地址(单位:Bits)。范围0~16383。
MaskLen:一个字节,掩码的位长度(单位:Bits)。
MaskData:掩码数据。MaskData数据字节长度是MaskLen/8。如果MaskLen不是8的整数倍,则MaskData数据字节长度为[MaskLen/8]取整再加1。不够的在低位补0。
注:当MaskMem、MaskAdr 、MaskLen、MaskData为空时表示以完整的EPC号掩膜。
应答: Len Adr reCmd Status Data[] CRC-16 0x05 0xXX 0x03 0x00 —— LSB MSB 8.2.4 写EPC号
这个命令向电子标签写入EPC号。写入的时候,天线有效范围内只能有一张电子标签。 命令: Data[] Len Adr Cmd CRC-16 ENum Pwd WEPC 0xXX 0xXX 0x04 0xXX 4Byte 变长 LSB MSB 参数解析: ENum:1个字节。要写入的EPC的长度,以字为单位。可以为0,不能超过31,否则返回参数错误信息。
Pwd:4个字节的访问密码。32位的访问密码的最高位在Pwd的第一字节(从左往右)的最高位,访问密码最低位在Pwd第四字节的最低位,Pwd的前两个字节放置访问密码的高字。在本命令中,当EPC区设置为密码锁、且标签访问密码为非0的时候,才需要使用访问密码。在其他情况下,Pwd为零或正确的访问密码。
WEPC:要写入的EPC号,长度必须和ENum说明的一样。WEPC最小1个字,最多31个字,否则返回参数错误信息。
应答: Len Adr reCmd Status Data[] CRC-16 0x05 0xXX 0x04 0x00 —— LSB MSB
8.2.5 销毁标签
这个命令用来销毁标签。标签销毁后,永远不会再处理读写模块的命令。 命令:
15
UHF电子标签读写模块UHFReader86用户手册V1.10
Len 0xXX Adr 0xXX Cmd 0x05 Data[] —— CRC-16 LSB MSB Data参数如下: Data[] ENum EPC Killpwd MaskMem MaskAdr MaskLen MaskData 0xXX 变长 4Byte 0xXX 2Bytes 0xXX 变长 参数解析: ENum:在(0x00~0x0f)范围内表示EPC号长度,以字为单位。EPC的长度在15个字以内。此时无MaskMem、MaskAdr 、MaskLen、MaskData参数项。ENum为0xff时有MaskMem、MaskAdr 、MaskLen、MaskData参数项,无EPC参数项。如果为其它值将返回参数错误信息。
EPC:要写入数据的标签的EPC号。长度根据所给的EPC号决定,EPC号以字为单位,且必须是整数个长度。高字在前,每个字的高字节在前。这里要求给出的是完整的EPC号。
Killpwd:4个字节的销毁密码。32位的销毁密码的最高位在Killpwd的第一字节(从左往右)的最高位,销毁密码最低位在Killpwd第四字节的最低位,Killpwd的前两个字节放置销毁密码的高字。要销毁标签,则销毁密码必须为非0,因为密码为0的标签是无法销毁的。如果命令中的销毁密码为0,则返回参数错误的应答。
MaskMem:一个字节,掩码区。0x01:EPC存储区;0x02:TID存储区;0x03:用户存储区。其他值保留。若命令中出现了其它值,将返回参数出错的消息。
MaskAdr:两个字节,掩码的起始位地址(单位:Bits)。范围0~16383。
MaskLen:一个字节,掩码的位长度(单位:Bits)。
MaskData:掩码数据。MaskData数据字节长度是MaskLen/8。如果MaskLen不是8的整数倍,则MaskData数据字节长度为[MaskLen/8]取整再加1。不够的在低位补0。
注:当MaskMem、MaskAdr 、MaskLen、MaskData为空时表示以完整的EPC号掩膜。 应答: Len Adr reCmd Status Data[] CRC-16 0x05 0xXX 0x05 0x00 —— LSB MSB 8.2.6 设定存储区读写保护状态
这个命令可以设定保留区为无保护下的可读可写、永远可读可写、带密码可读可写、永远不可读不可写;可以分别设定EPC存储区、用户存储区为无保护下的可写、永远可写、带密码可写、永远不可写;TID存储区是只读的,永远都不可写。EPC存储区、TID存储区和
16
UHF电子标签读写模块UHFReader86用户手册V1.10
用户存储区是永远可读的。
标签的保留区一旦设置为永远可读写或永远不可读写,则以后不能再更改其读写保护设定。标签的EPC存储区、TID存储区或用户存储区若是设置为永远可写或永远不可写,则以后不能再更改其读写保护设定。如果强行发命令欲改变以上几种状态,则电子标签将返回错误代码。
在把某个存储区设置为带密码可读写、带密码可写或把带密码锁状态设置为其它非密码锁状态时,必须给出访问密码,所以,在进行此操作前,必须确保电子标签已设置了访问密码。
命令: Len Adr Cmd Data[] CRC-16 0xXX 0xXX 0x06 —— Data[] ENum EPC Select SetProtect Pwd MaskMem MaskAdr MaskLen MaskData 0xXX 变长 0xXX 0xXX 4Byte 0xXX 2Bytes 0xXX 变长 参数说明: ENum:在(0x00~0x0f)范围内表示EPC号长度,以字为单位。EPC的长度在15个字以内。此时无MaskMem、MaskAdr 、MaskLen、MaskData参数项。ENum为0xff时有MaskMem、MaskAdr 、MaskLen、MaskData参数项,无EPC参数项。如果为其它值将返回参数错误信息。
EPC:要写入数据的标签的EPC号。长度由所给的EPC号决定,EPC号以字为单位,且必须是整数个长度。高字在前,每个字的高字节在前。这里要求给出的是完整的EPC号。
Select:一个字节。定义如下:
Select为0x00时,控制Kill密码读写保护设定。 Select为0x01时,控制访问密码读写保护设定。 Select为0x02时,控制EPC存储区读写保护设定。 Select为0x03时,控制TID存储区读写保护设定。 Select为0x04时,控制用户存储区读写保护设定。
其它值保留,若读写模块接收到了其他值,将返回参数出错的消息,并且不执行命令。
SetProtect:SetProtect的值由Select的值而确定。
当Select为0x00或0x01,即当设置Kill密码区或访问密码区的时候,SetProtect的值代表的意义如下:
0x00:设置为无保护下的可读可写 0x01:设置为永远可读可写 0x02:设置为带密码可读可写 0x03:设置为永远不可读不可写
当Select为0x02、0x03、0x04的时候,即当设置EPC区、TID区及用户区的时候,SetProtect的值代表的意义如下:
17
LSB MSB Data参数如下: