UHF电子标签读写模块UHFReader86用户手册V1.10
5+Data[]的长度 0xXX 0x51 0x18 …….. LSB+MSB 读写模块存储空间已满 上位机发出询查6B标签命令时,如果询查到的电子标签太多,超过了读写模块的存储容量,则读写模块返回读到的电子标签UID号,同时,也将返回此状态值 当设置电子标签的EAS报警时,在通信正常的情况下,如果标签无法设置,则可能是电子标签不支持该命令,也可能是电子标签的访问密码不能为0 当特定标签功能启动后某些命令执行失败时返回给上位机的状态值 命令执行出错 当检测到有效范围内存在可操作的电子标签,但读写模块与电子标签之间的通讯质量不好,而无法完成整个通讯过程时返回给上位机的信息 当读写模块对电子标签进行操作时,有效范围内没有可操作的电子标签时返回给上位机的状态值 电子标签返回错误代码时,错误代码由Err_code返回给上位机 当上位机输入的命令的实际长度和它应当具有的长度不同时,返回该状态 5 0xXX 0xXX 0x19 无此项 LSB+MSB 电子标签不支持该命令或者访问密码不能为0 5 0xXX 0xXX 0x1A 无此项 LSB+MSB 标签自定义功能执行错误 命令执行出错 5 0xXX 0xXX 0xF9 无此项 LSB+MSB 5 0xXX 0xXX 0xFA 无此项 有电子标签,但通信LSB+MSB 不畅,操作失败 5 0xXX 0xXX 0xFB 无此项 LSB+MSB 无电子标签可操作 6 0xXX 0xXX 0xFC Err_code LSB+MSB 电子标签返回错误代码 5 0xXX 0xXX 0xFD 无此项 LSB+MSB 命令长度错误 8
UHF电子标签读写模块UHFReader86用户手册V1.10
5 0xXX 0x00 0xFE 无此项 LSB+MSB 不合法的命令 当上位机输入的命令是不可识别的命令,如不存在的命令、或是CRC错误的命令 上位机发送的命令中的参数不符合要求时,返回此状态 5
0xXX 0xXX 0xFF 无此项 LSB+MSB 参数错误 六、电子标签返回错误代码
EPC C1G2(ISO18000 -6C)电子标签错误代码: 错误代码支持 错误代码 错误代码名称 0x00 0x03 特定错误代码 0x04 0x0b 非特定错误代码 0x0f 错误描述 全部捕捉未被其它代码覆其它错误 盖的错误 存储器超限或不被支持的存储位置不存在或标签不PC值 支持的PC值 存储位置锁定或永久锁定,存储器锁定 且不可写入 标签电源不足,无法执行存电源不足 储写入操作 非特定错误 标签不支持特定错误代码 七、标签存储区及需要注意的问题
EPC C1G2标签(简称G2标签)
G2标签分4个区:保留区(又称密码区),EPC区,TID区和User区。
保留区:保留区4个字。前两个字是销毁密码,后两个字是访问密码。可读可写,保
留区的两个密码区的读写保护特性可以分别设置。
EPC区:标签EPC号存储在该区,其中第0个字是PC值和标签EPC号的CRC16。
第1个字是PC值,该值指示标签EPC号长度,从第2个字开始才是标签的EPC号数据。可读可写。
TIC区:该区存储的数据是由标签生产商设定的ID号。可读不可写。 User区:是用户数据区。可读可写。
G2命令中很多地方要求给出数据长度,这里要注意字与字节的区别。1个字等于2个字节。
有些命令需要访问密码,如果没有密码设置,则用0填充密码区,而不能为空。
9
UHF电子标签读写模块UHFReader86用户手册V1.10
八、操作命令详细描述
8.1 命令概述
操作命令包括协议相关、读写模块相关以及标签自定义命令。
如果上位机输入的命令是不可识别的命令,如不存在的命令、或是CRC错误的命令,则返回值如下: Len Adr reCmd Status CRC-16 0x05 0xXX 0x00 0xFE LSB MSB 如果命令的长度不对,则返回信息如下: Len Adr reCmd Status CRC-16 0x05 0xXX 0xXX 0xFD LSB MSB 有两种命令读写模块不会响应: 1. 如果输入的命令的地址出错(地址不是0xFF,也不是读写模块地址),读写模块不会有任何响应。
2. 如果输入的命令是不完整的,即命令的Len域指示的命令长度大于实际的命令长度,则读写模块将不会做出任何响应。
8.2 EPC C1G2命令
8.2.1 询查标签
询查命令的作用是检查有效范围内是否有符合协议的电子标签存在。想要对未知EPC的新标签进行别的操作前,应先通过询查命令来得到标签的EPC号。
在运行询查命令之前,用户可以根据需要先设定好该命令的最大运行时间(询查时间)。读写模块在询查时间规定的范围内必须给上位机一个结果,如果读写模块尚未读完有效范围内的所有标签,而询查时间已到,则读写模块不再询查其它标签,而是直接把已经询查到得标签返回给上位机,并提示上位机还有标签未读完。然后等待下一个命令。
询查时间的缺省值是1s,用户可以通过运行读写模块自定义命令设定询查时间命令来修改。允许的范围是:3*100ms~255*100ms(实际的响应时间可能会比设定的值大0~75ms)。
询查时间如果设定的过短,可能会出现在规定时间内询查不到电子标签的情况。
命令: Len 0xXX
10
Adr 0xXX Cmd 0x01 Data[] —— CRC-16 LSB MSB UHF电子标签读写模块UHFReader86用户手册V1.10
Data参数如下: Data[] QValue Session MaskMem 0xXX Data[] Target Ant Scantime 0xXX 0x80 0xXX 参数解析: QValue:1个字节,询查EPC标签时使用的初始Q值,Q值的设置应为场内的标签数量约等于2Q。Q值的范围为0~15,若命令中出现了其它值,将返回参数出错的消息。
Session:1个字节,询查EPC标签时使用的Session值。 0x00:Session使用S0; 0x01:Session使用S1; 0x02:Session使用S2; 0x03:Session使用S3。
其它值保留。若命令中出现了其它值,将返回参数出错的消息。
MaskMem:一个字节,掩码区。0x01:EPC存储区;0x02:TID存储区;0x03:用户存储区。其他值保留。若命令中出现了其它值,将返回参数出错的消息。
MaskAdr:两个字节,掩码的起始位地址(单位:Bits)。范围0~16383。
MaskLen:一个字节,掩码的位长度(单位:Bits)。
MaskData:掩码数据。MaskData数据字节长度是MaskLen/8。如果MaskLen不是8的整数倍,则MaskData数据字节长度为[MaskLen/8]取整再加1。不够的在低位补0。
AdrTID:询查TID区的起始字地址。命令中有此参数和LenTID时表示询查的是TID而不是EPC号。
LenTID:询查TID区的数据字数。LenTID取值为0~15,若为其它参数将返回参数错误信息。命令中有此参数和AdrTID时表示询查的是TID而不是EPC号。
Target(可选参数):1个字节,询查EPC标签时使用的Target值。 0x00:Target值使用A。 0x01:Target值使用B。
其他值保留。若命令中出现了其它值,将返回参数出错的消息。
Ant(可选参数):1个字节,本次要进行询查的天线号。 0x80 – 天线1;
11
MaskAdr MaskLen MaskData AdrTID LenTID 2Bytes 0xXX 变长 0xXX 0xXX 0xXX 0xXX UHF电子标签读写模块UHFReader86用户手册V1.10
其他值保留。若命令中出现了其它值,将返回参数出错的消息。
ScanTime(可选参数):1个字节。本次命令询查时间。读写模块将会把询查命令最大响应时间设置为SanTime*100ms。
注:
①当MaskMem、MaskAdr 、MaskLen、MaskData为空时表示无掩膜条件。
②Target、Ant、ScanTime为可选参数,命令中必须同时带有这三个参数或同时不带这三个参数。当命令中没有带这三个参数时,设备使用预先设定的Target、Ant、ScanTime参数询查标签;当命令中带有这三个参数时,设备使用这三个指定的参数值询查标签。
应答: Len Adr reCmd Status 0x01 Data[] Ant Num EPC ID CRC-16 0xXX 0xXX 0xXX 0x01 0xXX EPC-1, EPC-2, EPC-3… LSB MSB 参数解析:
Status是应答的状态,其代表的意义如下表所述: Status 说明 0x01 命令执行结束,同时返回询查到的电子标签数据 0x02 询查时间结束,命令执行强制退出,同时返回已询查到的标签数据 如果读到的标签数量无法在一条消息内传送完,将分多次发送。如果0x03 Status为0x03,则表示这条数据结束后,还有数据。 还有电子标签未读取,电子标签数量太多,读写模块的存储区已满,返0x04 回此状态值,同时返回已询查到得电子标签数据。 参数解析: Ant:表示有天线询查到该标签,此模块固定0x01。
Num:本次应答中包含的电子标签的EPC/TID的个数。
EPC ID:读到的电子标签的EPC/TID数据,EPC-1是第一张标签的EPC/TID长度+第一张标签的EPC号或TID数据+第一张标签的RSSI值,依此类推。每个电子标签EPC号或TID数据高字(EPC C1 G2中数据以字为单位)在前,每一个字的高字节在前。EPC/TID长度以一个字节表示。RSSI值长度以一个字节表示。 8.2.2 读数据
这个命令读取标签的保留区、EPC存储区、TID存储区或用户存储区中的数据。从指定的地址开始读,以字为单位。
命令: Len Adr Cmd Data[] CRC-16 0xXX 0xXX 0x02 —— LSB MSB 12