UHF一体机电子标签读写器用户手册v2.0
5 0xXX 0xXX 0xF9 无此项 LSB+MSB 命令执行出错 命令执行出错 当检测到有效范围内存在可操作的电子标签,但读写器与电子标签之间的通讯质量不好,而无法完成整个通讯过程时返回给上位机的信息 当读写器对电子标签进行操作时,有效范围内没有可操作的电子标签时返回给上位机的状态值 电子标签返回错误代码时,错误代码由Err_code返回给上位机 当上位机输入的命令的实际长度和它应当具有的长度不同时,返回该状态 当上位机输入的命令是不可识别的命令,如不存在的命令、或是CRC错误的命令 上位机发送的命令中的参数不符合要求时,返回此状态 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 命令长度错误 5 0xXX 0x00 0xFE 无此项 LSB+MSB 不合法的命令 5
0xXX 0xXX 0xFF 无此项 LSB+MSB 参数错误 11
UHF一体机电子标签读写器用户手册v2.0
六、电子标签返回错误代码
EPC C1G2(ISO18000 -6C)电子标签错误代码: 错误代码支持 错误代码 错误代码名称 0x00 0x03 特定错误代码 0x04 0x0b 非特定错误代码 0x0f 错误描述 全部捕捉未被其它代码覆其它错误 盖的错误 存储器超限或不被支持的存储位置不存在或标签不PC值 支持的PC值 存储位置锁定或永久锁定,存储器锁定 且不可写入 标签电源不足,无法执行存电源不足 储写入操作 非特定错误 标签不支持特定错误代码 七、标签存储区及需要注意的问题
A. 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填充密码区,而不能为空。
B.18000-6B标签
6B标签只有一个存储空间,最低8个字节是标签的UID,并且不能被改写。后面的字节都是可改写的,也可以被锁定,但是一旦锁定后,则不能再次改写,也不能解锁。
12
UHF一体机电子标签读写器用户手册v2.0
八、操作命令详细描述
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)。
询查时间如果设定的过短,可能会出现在规定时间内询查不到电子标签的情况。 命令: Data[] Len Adr Cmd CRC-16 AdrTID LenTID 0xXX 0xXX 0x01 0xXX 0xXX LSB MSB 13
UHF一体机电子标签读写器用户手册v2.0
参数解析:
AdrTID:询查TID区的起始字地址。
LenTID:询查TID区的数据字数。LenTID取值为0~15,若为其它参数将返回参数错误信息。
注:当AdrTID、LenTID为空时表示询查标签EPC,否则询查TID。TID询查功能仅当读写器固件V2.36及以上版本有效。
应答: Len Adr reCmd Status 0x01 Data[] Num EPC ID CRC-16 LSB MSB 0xXX 0xXX 0xXX 0xXX EPC-1,EPC-2,EPC-3… 参数解析: Status是应答的状态,其代表的意义如下表所述: Status 说明 0x01 命令执行结束,同时返回询查到的电子标签数据 0x02 询查时间结束,命令执行强制退出,同时返回已询查到的标签数据 如果读到的标签数量无法在一条消息内传送完,将分多次发送。如果0x03 Status为0x03,则表示这条数据结束后,还有数据。 还有电子标签未读取,电子标签数量太多,读写器的存储区已满,返回0x04 此状态值,同时返回已询查到得电子标签数据。 Num:本条命令中包含的电子标签的EPC/TID的个数。
EPC ID:读到的电子标签的EPC/TID数据,EPC-1是第一张标签的EPC/TID长度+第一张标签的EPC号或TID数据,依此类推。每个电子标签EPC号或TID数据高字(EPC C1 G2中数据以字为单位)在前,每一个字的高字节在前。EPC/TID长度以一个字节表示。
8.2.2 读数据
这个命令读取标签的保留区、EPC存储区、TID存储区或用户存储区中的数据。从指定的地址开始读,以字为单位。
命令: Len Adr Cmd Data[] CRC-16 0xXX 0xXX 0x02 —— Data[] ENum 0xXX EPC 变长 Mem WordPtr 0xXX 0xXX Num 0xXX Pwd 4Byte MaskAdr 0xXX MaskLen 0xXX LSB MSB Data参数如下: 参数解析: ENum:EPC号长度,以字为单位。EPC的长度在15个字以内,不能为0。超出范围,将返回参数错误信息。
14
UHF一体机电子标签读写器用户手册v2.0
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为零或正确的访问密码。
MaskAdr:一个字节,掩模EPC号的起始字节地址。0x00表示从EPC号的最高字节开始掩模,0x01表示从EPC号的第二字节开始掩模,以此类推。
MaskLen:一个字节,掩模的字节数。掩模起始字节地址+掩模字节数不能大于EPC号字节长度,否则返回参数错误信息。
注:当MaskAdr、MaskLen为空时表示以完整的EPC号掩模。
应答: Len Adr reCmd Status Data[] CRC-16 0xXX 0xXX 0x02 0x00 Word1,Word2,… LSB MSB 参数解析: Word1, Word2….: 以字为单位。每个字都是2个字节,高字节在前。Word1是从起始地址读到的字,Word2是起始地址后一个字地址上读到的字,以此类推。
8.2.3 写数据
这个命令可以一次性往保留区、TID存储区或用户存储区中写入若干个字。 命令: Len Adr Cmd Data[] CRC-16 0xXX 0xXX 0x03 —— Data[] WNum
LSB MSB Data参数如下: ENum EPC Mem WordPtr 15
Wdt Pwd MaskAdr MaskLen