UHF电子标签读写器UHFReader18用户手册v20.docx
- 文档编号:5268402
- 上传时间:2022-12-14
- 格式:DOCX
- 页数:58
- 大小:40.16KB
UHF电子标签读写器UHFReader18用户手册v20.docx
《UHF电子标签读写器UHFReader18用户手册v20.docx》由会员分享,可在线阅读,更多相关《UHF电子标签读写器UHFReader18用户手册v20.docx(58页珍藏版)》请在冰豆网上搜索。
UHF电子标签读写器UHFReader18用户手册v20
UHF一体机电子标签读写器
用户手册v2.0
RFID改变识别的距离
杭州恒竣科技有限公司
一、通讯接口规格4
二、协议描述4
三、数据的格式5
1.上位机命令数据块5
2.读写器响应数据块5
四、操作命令总汇6
1.EPCC1G2(ISO18000-6C)命令6
2.18000-6B命令7
3.读写器自定义命令7
五、命令执行结果状态值8
六、电子标签返回错误代码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.2.16块写命令26
8.318000-6B命令27
8.3.1寻查命令(单张)27
8.3.2按条件寻查标签27
8.3.3读数据28
8.3.4写数据29
8.3.5锁定检测29
8.3.6锁定30
8.4读写器自定义命令30
8.4.1读取读写器信息30
8.4.2设置读写器工作频率31
8.4.3设置读写器地址32
8.4.4设置读写器询查时间32
8.4.5设置串口波特率32
8.4.6调整功率33
8.4.7声光控制命令33
8.4.8韦根参数设置命令34
8.4.9工作模式设置命令34
8.4.10读取工作模式参数36
8.4.11EAS检测精度设置37
8.4.12Syris响应偏置时间设置37
8.4.13触发延时设置38
一、通讯接口规格
读写器通过RS232或者RS485接口与上位机串行通讯,按上位机的命令要求完成相应操作。
串行通讯接口的数据帧为一个起始位,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 询查单标签 16 0x10 块写 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 声光控制命令 8 0x34 韦根参数设置命令 9 0x35 工作模式设置命令 10 0x36 读取工作模式参数命令 11 0x37 EAS测试精度设置命令 12 0x38 设置Syris485响应偏执时间 13 0x3b 设置触发有效时间 五、命令执行结果状态值 响应数据块 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号存储在该区,其中第0个字是PC值和标签EPC号的CRC16。 第1个字是PC值,该值指示标签EPC号长度,从第2个字开始才是标签的EPC号数据。 可读可写。 TIC区: 该区存储的数据是由标签生产商设定的ID号。 可读不可写。 User区: 是用户数据区。 可读可写。 G2命令中很多地方要求给出数据长度,这里要注意字与字节的区别。 1个字等于2个字节。 有些命令需要访问密码,如果没有密码设置,则用0填充密码区,而不能为空。 B.18000-6B标签 6B标签只有一个存储空间,最低8个字节是标签的UID,并且不能被改写。 后面的字节都是可改写的,也可以被锁定,但是一旦锁定后,则不能再次改写,也不能解锁。 八、操作命令详细描述 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.2EPCC1G2命令 8.2.1询查标签 询查命令的作用是检查有效范围内是否有符合协议的电子标签存在。 想要对未知EPC的新标签进行别的操作,应先通过询查命令来得到标签的EPC号。 在运行询查命令之前,用户可以根据需要先设定好该命令的最大运行时间(询查时间)。 读写器在询查时间规定的范围内必须给上位机一个结果,如果读写器尚未读完有效范围内的所有标签,而询查时间已到,则读写器不再询查其它标签,而是直接把已经询查到得标签返回给上位机,并提示上位机还有标签未读完。 然后等待下一个命令。 询查时间的缺省值是1s,用户可以通过运行读写器自定义命令设定询查时间命令来修改。 允许的范围是: 3*100ms~255*100ms(实际的响应时间可能会比设定的值大0~75ms)。 询查时间如果设定的过短,可能会出现在规定时间内询查不到电子标签的情况。 命令: Len Adr Cmd Data[] CRC-16 AdrTID LenTID 0xXX 0xXX 0x01 0xXX 0xXX LSB MSB 参数解析: AdrTID: 询查TID区的起始字地址。 LenTID: 询查TID区的数据字数。 LenTID取值为0~15,若为其它参数将返回参数错误信息。 注: 当AdrTID、LenTID为空时表示询查标签EPC,否则询查TID。 TID询查功能仅当读写器固件V2.36及以上版本有效。 应答: 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/TID的个数。 EPCID: 读到的电子标签的EPC/TID数据,EPC-1是第一张标签的EPC/TID长度+第一张标签的EPC号或TID数据,依此类推。 每个电子标签EPC号或TID数据高字(EPCC1G2中数据以字为单位)在前,每一个字的高字节在前。 EPC/TID长度以一个字节表示。 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表
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- UHF 电子标签 读写 UHFReader18 用户手册 v20