UHF电子标签读写模块RRU9809用户手册v11.docx
- 文档编号:23415554
- 上传时间:2023-05-16
- 格式:DOCX
- 页数:54
- 大小:35.96KB
UHF电子标签读写模块RRU9809用户手册v11.docx
《UHF电子标签读写模块RRU9809用户手册v11.docx》由会员分享,可在线阅读,更多相关《UHF电子标签读写模块RRU9809用户手册v11.docx(54页珍藏版)》请在冰豆网上搜索。
UHF电子标签读写模块RRU9809用户手册v11
UHF电子标签读写器RRU9809用户手册v1.1
目录
一、通讯接口规格4
二、协议描述4
三、数据的格式5
1.上位机命令数据块5
2.读写器响应数据块5
四、操作命令总汇6
1.EPCC1G2(ISO18000-6C)命令6
2.18000-6B命令7
3.读写器自定义命令7
五、命令执行结果状态值7
六、电子标签返回错误代码12
七、标签存储区及需要注意的问题12
八、操作命令详细描述13
8.1命令概述13
8.2EPCC1G2命令13
8.2.1询查多标签13
8.2.2读数据14
8.2.3写数据15
8.2.4写EPC号16
8.2.5销毁标签17
8.2.6设定存储区读写保护状态18
8.2.7块擦除20
8.2.8读保护设置(根据EPC号设定)21
8.2.9读保护设定(不需要EPC号)21
8.2.10解锁读保护22
8.2.11测试标签是否被设置读保护22
8.2.12EAS报警设置23
8.2.13EAS报警检测24
8.2.14user区块锁24
8.2.15询查单张标签25
8.318000-6B命令26
8.3.1寻查命令(单张)26
8.3.2按条件寻查标签26
8.3.3读数据27
8.3.4写数据28
8.3.5锁定检测28
8.3.6锁定29
8.4读写器自定义命令29
8.4.1读取读写器信息29
8.4.2设置读写器工作频率30
8.4.3设置读写器地址31
8.4.4设置读写器询查时间31
8.4.5设置串口波特率32
8.4.6调整功率32
8.4.7声光控制命令33
一、通讯接口规格
读写器通过USB接口(虚拟串口工作方式)与上位机串行通讯,按上位机的命令要求完成相应操作。
串行通讯接口的数据帧为一个起始位,8个数据位,一个停止位,无奇偶校验位,缺省波特率57600.在串行通讯过程中,每个字节的最低有效位最先传输。
二、协议描述
通讯过程由上位机发送命令及参数给读写器,然后读写器将命令执行结果状态和数据返回给上位机。
读写器接收一条命令执行一条命令,只有在读写器执行完一条命令后,才能接收下一条命令。
在读写器执行命令期间,如果向读写器发送命令,命令将丢失。
上位机发送过程如下:
上位机
数据传递方向
读写器
命令数据块
→
说明:
上位机发送的数据串中,每两个相邻字节之间的发送时间间隔必须小于15ms。
在上位机的命令数据块发送过程中,如果相邻字符间隔大于15ms,则之前接收到的数据均被当作无效数据丢弃,然后从下一个字节开始,重新接收。
读写器接收到正确询查命令后,在不超过询查时间的时间内(不包括数据发送过程,仅仅是读写器执行命令的时间),会返回给读写器一个响应。
读写器发送过程如下:
读写器
数据传递方向
上位机
响应数据块
→
说明:
读写器发送响应数据期间,相邻字节之间的发送时间间隔小于15ms
完整的一次通讯过程如下:
上位机发送命令给读写器,并等待读写器返回响应。
读写器接收命令后,开始执行命令,然后返回响应。
上位机接收读写器的响应。
一次通讯结束。
三、数据的格式
1.上位机命令数据块
Len
Adr
Cmd
Data[]
LSB-CRC16
MSB-CRC16
数据各部分说明如下:
长度(字节)
说明
Len
1
命令数据块的长度,但不包括Len本身。
即数据块的长度等于4加Data[]的长度。
Len允许的最大值为96,最小值为4。
Adr
1
读写器地址。
地址范围:
0x00~0xFE,0xFF为广播地址,读写器只响应和自身地址相同及地址为0xFF的命令。
读写器出厂时地址为0x00。
Cmd
1
命令代码。
Data[]
不定
参数域。
在实际命令中,可以不存在。
LSB-CRC16
1
CRC16低字节。
CRC16是从Len到Data[]的CRC16值
MSB-CRC16
1
CRC16高字节。
2.读写器响应数据块
Len
Adr
reCmd
Status
Data[]
LSB-CRC16
MSB-CRC16
数据各部分说明如下:
长度(字节)
说明
Len
1
响应数据块的长度,但不包括Len本身。
即数据块的长度等于5加Data[]的长度。
Adr
1
读写器地址。
reCmd
1
指示该响应数据块是哪个命令的应答。
如果是对不可识别的命令的应答,则reCmd为0x00。
Status
1
命令执行结果状态值。
Data[]
不定
数据域,可以不存在。
LSB-CRC16
1
CRC16低字节。
CRC16是从Len到Data[]的CRC16值。
MSB-CRC16
1
CRC16高字节。
CRC16的C语言算法:
#definePRESET_VALUE0xFFFF
#definePOLYNOMIAL0x8408
unsignedintuiCrc16Cal(unsignedcharconst*pucY,unsignedcharucX)
{
unsignedcharucI,ucJ;
unsignedshortintuiCrcValue=PRESET_VALUE;
for(ucI=0;ucI { uiCrcValue=uiCrcValue^*(pucY+ucI); for(ucJ=0;ucJ<8;ucJ++) { if(uiCrcValue&0x0001) { uiCrcValue=(uiCrcValue>>1)^POLYNOMIAL; } else { uiCrcValue=(uiCrcValue>>1); } } } returnuiCrcValue; } pucY是要计算CRC16的字符数组的入口,ucX是字符数组中字符个数。 上位机收到数据的时候,只要把收到的数据按以上算法进行计算CRC16,结果为0x0000表明数据正确。 四、操作命令总汇 1.EPCC1G2(ISO18000-6C)命令 序号 命令 功能 1 0x01 询查多标签 2 0x02 读数据 3 0x03 写数据 4 0x04 写EPC号 5 0x05 销毁标签 6 0x06 设定存储区读写保护状态 7 0x07 块擦除 8 0x08 根据EPC号设定读保护设置 9 0x09 不需要EPC号读保护设定 10 0x0a 解锁读保护 11 0x0b 测试标签是否被设置读保护 12 0x0c EAS报警设置 13 0x0d EAS报警探测 14 0x0e user区块锁 15 0x0f 询查单标签 2.18000-6B命令 序号 命令 功能 1 0x50 询查命令(单张)。 这个命令每次只能询查一张电子标签。 不带条件询查。 2 0x51 条件询查命令(多张)。 这个命令根据给定的条件进行询查标签,返回符合条件的电子标签的UID。 可以同时询查多张电子标签。 3 0x52 读数据命令。 这个命令读取电子标签的数据,一次最多可以读32个字节。 4 0x53 写数据命令。 写入数据到电子标签中,一次最多可以写32个字节。 5 0x54 检测锁定命令。 检测某个存储单元是否已经被锁定。 6 0x55 锁定命令。 锁定某个尚未被锁定的电子标签。 3.读写器自定义命令 序号 命令 功能 1 0x21 读取读写器信息 2 0x22 设置读写器工作频率 3 0x24 设置读写器地址 4 0x25 设置读写器询查时间 5 0x28 设置读写器的波特率 6 0x2F 调整读写器输出功率 7 0x33 声光控制命令 五、命令执行结果状态值 响应数据块 Status含义 说明 Len Adr reCmd Status Data[] CRC16 5+Data[]部分的长度 0xXX 0xXX 0x00 …….. LSB+MSB 操作成功 当成功执行命令后返回给上位机的状态值。 Data[]包含了所要信息 5+Data[]部分的长度 0xXX 0x01 0x01 …….. LSB+MSB 询查时间结束前返回 上位机发出询查G2标签命令时,读写器询查电子标签时,如果在设定的询查时间内返回信息给上位机,则返回此状态值 5+Data[]部分的长度 0xXX 0x01 0x02 …….. LSB+MSB 指定的询查时间溢出 上位机发出询查G2标签命令时,当询查时间溢出时,读写器还没有完成询查操作时返回给上位机的状态值 5+Data[]部分的长度 0xXX 0x01 0x03 …….. LSB+MSB 本条消息之后,还有消息 上位机发出询查G2标签命令时,如果询查命令读到的标签数量无法在一条消息内传送完,将分多次发送。 5+Data[]部分的长度 0xXX 0x01 0x04 …….. LSB+MSB 读写器存储空间已满 上位机发出询查G2标签命令时,如果询查到的电子标签太多,超过了读写器的存储容量,则读写器返回读到的电子标签EPC号,同时,也将返回此状态值 5 0xXX 0xXX 0x05 无此项 LSB+MSB 访问密码错误 当读写器执行需要密码才能执行的操作,而命令中给出的密码是错误的密码时返回给上位机的状态值 5 0xXX 0x05 0x09 无此项 LSB+MSB 销毁标签失败 当向G2标签进行销毁操作时,如果销毁密码错误,或是读写器与标签通讯不畅,则将返回此状态值 5 0xXX 0x05 0x0a 无此项 LSB+MSB 销毁密码不能为全0 销毁标签时,销毁密码为0的标签是无法销毁的 5 0xXX 0xXX 0x0b 无此项 LSB+MSB 电子标签不支持该命令 G2协议中的某些可选命令,及一些厂商的特定命令,可能某些标签不支持这些命令,此时返回此状态值 5 0xXX 0xXX 0x0c 无此项 LSB+MSB 对该命令访问密码不能为全0 对NXPUCODEEPCG2X标签设置读保护及设置EAS报警时,访问密码不能为全0,若为全0,将返回此状态值 5 0xXX 0x0a 0x0d 无此项 LSB+MSB 电子标签已经被设置了读保护,不能再次设置 对已经被设置了读保护的NXPUCODEEPCG2X标签,在解除读保护之前,不能再次设置。 此情况下返回这个状态值 5 0xXX 0x0a 0x0e 无此项 LSB+MSB 电子标签没有被设置读保护,不需要解锁 对NXPUCODEEPCG2X标签解锁,如果标签没有被锁定,将返回此状态值,对不支持读保护设定命令的标签发送此命令,也将返回此状态值 5 0xXX 0x53 0x10 无此项 LSB+MSB 有字节空间被锁定,写入失败 在向6B标签写入数据时,因为有字节空间被锁定,使得写入数据失败时,返回此状态值 5 0xXX 0x55 0x11 无此项 LSB+MSB 不能锁定 当6B标签出现不能被锁定的情况,返回此状态值 5 0xXX 0x55 0x12 无此项 LSB+MSB 已经锁定,不能再次锁定 对已经锁定的6B标签进行再次锁定时,返回此状态值 5 0xXX 0xXX 0x13 无此项 LSB+MSB 参数保存失败,但设置的值在读写器断电前有效 对于某些需要保存的参数,如果保存失败,则返回此之态 5 0xXX 0xXX 0x14 无此项 LSB+MSB 无法调整 调整功率的时候,在某些情况下,如果出现功率无法调整的错误,则返回此状态值 5+Data[]的长度 0xXX 0x51 0X15 …….. LSB+MSB 询查时间结束前返回 上位机发出询查6B标签命令时,读写器询查电子标签时,如果在设定的询查时间内返回信息给上位机,则返回此状态值 5+Data[]的长度 0xXX 0x51 0x16 …….. LSB+MSB 指定的询查时间溢出 上位机发出询查6B标签命令时,当询查时间溢出时,读写器还没有完成询查操作时返回给上位机的状态值 5+Data[]的长度 0xXX 0x51 0x17 …….. LSB+MSB 本条消息之后,还有消息 上位机发出询查6B标签命令时,如果询查命令读到的标签数量无法在一条消息内传送完,将分多次发送。 5+Data[]的长度 0xXX 0x51 0x18 …….. LSB+MSB 读写器存储空间已满 上位机发出询查6B标签命令时,如果询查到的电子标签太多,超过了读写器的存储容量,则读写器返回读到的电子标签UID号,同时,也将返回此状态值 5 0xXX 0xXX 0x19 无此项 LSB+MSB 电子标签不支持该命令或者访问密码不能为0 当设置电子标签的EAS报警时,在通信正常的情况下,如果标签无法设置,则可能是电子标签不支持该命令,也可能是电子标签的访问密码不能为0 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 电子标签返回错误代码 电子标签返回错误代码时,错误代码由Err_code返回给上位机 5 0xXX 0xXX 0xFD 无此项 LSB+MSB 命令长度错误 当上位机输入的命令的实际长度和它应当具有的长度不同时,返回该状态 5 0xXX 0x00 0xFE 无此项 LSB+MSB 不合法的命令 当上位机输入的命令是不可识别的命令,如不存在的命令、或是CRC错误的命令 5 0xXX 0xXX 0xFF 无此项 LSB+MSB 参数错误 上位机发送的命令中的参数不符合要求时,返回此状态 六、电子标签返回错误代码 EPCC1G2(ISO18000-6C)电子标签错误代码: 错误代码支持 错误代码 错误代码名称 错误描述 特定错误代码 0x00 其它错误 全部捕捉未被其它代码覆盖的错误 0x03 存储器超限或不被支持的PC值 存储位置不存在或标签不支持的PC值 0x04 存储器锁定 存储位置锁定或永久锁定,且不可写入 0x0b 电源不足 标签电源不足,无法执行存储写入操作 非特定错误代码 0x0f 非特定错误 标签不支持特定错误代码 七、标签存储区及需要注意的问题 A.EPCC1G2标签(简称G2标签) G2标签分4个区: 保留区,EPC区,TID区,user区。 其中保留区4个字,前两个字是销毁密码,后两个字是访问密码。 保留区的两个密码区的读写保护特性可以分别设置。 EPC区的长度不定,但是询查电子标签时,标签应答的EPC号是根据PC决定EPC号长度的。 TIC区是不可改写的。 User区是用户数据区。 G2命令中很多地方要求给出数据长度,这里要注意字与字节的区别。 1个字等于2个字节。 有些命令需要密码,如果没有密码设置,则可以以任何数据填充密码区,而不能为空。 B.18000-6B标签 6B标签只有一个存储空间,最低8个字节是标签的UID,并且不能被改写。 后面的字节都是可改写的,也可以被锁定,但是一旦锁定后,则不能再次改写,也不能解锁。 八、操作命令详细描述 8.1命令概述 操作命令有三大类,一类是协议相关的;另一类是读写器相关的;还有一类是透明命令(即标签自定义命令)。 本手册每条命令都会给出相应的使用例子,所有的例子都是在计算机上WindowsXPSP2系统下通过串口以十六进制形式发送。 从串口返回的数据也以十六进制显示。 如果上位机输入的命令是不可识别的命令,如不存在的命令、或是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.2EPCC1G2命令 8.2.1询查多标签 询查命令的作用是检查有效范围内是否有符合协议的电子标签存在。 想要对未知EPC的新标签进行别的操作前,应先通过询查命令来得到标签的EPC号。 在运行询查命令之前,用户可以根据需要先设定好该命令的最大运行时间(询查时间)。 读写器在询查时间规定的范围内必须给上位机一个结果,如果读写器尚未读完有效范围内的所有标签,而询查时间已到,则读写器不再询查其它标签,而是直接把已经询查到得标签返回给上位机,并提示上位机还有标签未读完。 然后等待下一个命令。 询查时间的缺省值是1s,用户可以通过运行读写器自定义命令设定询查时间命令来修改。 允许的范围是: 3*100ms~255*100ms(实际的响应时间可能会比设定的值大0~75ms)。 询查时间如果设定的过短,可能会出现在规定时间内询查不到电子标签的情况。 命令: Len Adr Cmd Data[] CRC-16 0x04 0xXX 0x01 —— LSB MSB 应答: Len Adr reCmd Status Data[] CRC-16 Num EPCID 0xXX 0xXX 0x01 0xXX 0xXX EPC-1,EPC-2,EPC-3… LSB MSB 参数解析: Status是应答的状态,其代表的意义如下表所述: Status 说明 0x01 命令执行结束,同时返回询查到的电子标签数据 0x02 询查时间结束,命令执行强制退出,同时返回已询查到的标签数据 0x03 如果读到的标签数量无法在一条消息内传送完,将分多次发送。 如果Status为0x03,则表示这条数据结束后,还有数据。 0x04 电子标签数量太多,读写器的存储区已满,返回此状态值,同时返回已询查到的电子标签数据。 有效感应场内可能还有未处理的标签。 Num: 本条命令中包含的电子标签的EPC的个数。 EPCID: 读到的电子标签的EPC数据,EPC-1是第一张标签的EPC长度+第一张标签的EPC号,依此类推。 每个电子标签EPC号高字(EPCC1G2中数据以字为单位)在前,每一个字的高字节在前。 EPC长度以一个字节表示。 8.2.2读数据 这个命令读取标签的保留区、EPC存储区、TID存储区或用户存储区中的数据。 从指定的地址开始读,以字为单位。 命令: Len Adr Cmd Data[] CRC-16 0xXX 0xXX 0x02 —— LSB MSB Data参数如下: Data[] ENum EPC Mem WordPtr Num Pwd MaskAdr MaskLen 0xXX 变长 0xXX 0xXX 0xXX 4Byte 0xXX 0xXX 参数解析: ENum: EPC号长度,以字为单位。 EPC的长度在15个字以内,可以为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 —— LSB MSB Data参数如下: Data[] WNum
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- UHF 电子标签 读写 模块 RRU9809 用户手册 v11