UHF一体机电子标签读写器用户手册v2.0
{
unsigned char ucI,ucJ;
unsigned short int uiCrcValue = PRESET_VALUE;
for(ucI = 0; ucI < ucX; ucI++) { uiCrcValue = uiCrcValue ^ *(pucY + ucI); for(ucJ = 0; ucJ < 8; ucJ++) { if(uiCrcValue & 0x0001) { uiCrcValue = (uiCrcValue >> 1) ^ POLYNOMIAL; } else { uiCrcValue = (uiCrcValue >> 1); } } }
return uiCrcValue; }
pucY是要计算CRC16的字符数组的入口,ucX是字符数组中字符个数。
上位机收到数据的时候,只要把收到的数据按以上算法进行计算CRC16,结果为0x0000表明数据正确。
四、操作命令总汇
1. EPC C1 G2(ISO18000-6C)命令
序号 1 2 3 4 5 6 7 8 9 10
命令 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0a 功能 询查标签 读数据 写数据 写EPC号 销毁标签 设定存储区读写保护状态 块擦除 根据EPC号设定读保护设置 不需要EPC号读保护设定 解锁读保护 6
UHF一体机电子标签读写器用户手册v2.0
11 12 13 14 15 16 0x0b 0x0c 0x0d 0x0e 0x0f 0x10 测试标签是否被设置读保护 EAS报警设置 EAS报警探测 user区块锁 询查单标签 块写 2. 18000-6B命令
序号 命令 功能 1 0x50 询查命令(单张)。这个命令每次只能询查一张电子标签。不带条件询查。 2 0x51 条件询查命令(多张)。这个命令根据给定的条件进行询查标签,返回符合条件的电子标签的UID。可以同时询查多张电子标签。 3 4 5 6 0x52 0x53 0x54 0x55 读数据命令。这个命令读取电子标签的数据,一次最多可以读32个字节。 写数据命令。写入数据到电子标签中,一次最多可以写32个字节。 检测锁定命令。检测某个存储单元是否已经被锁定。 锁定命令。锁定某个尚未被锁定的电子标签。 3. 读写器自定义命令
序号 1 2 3 4 5 6 7 8 9 10 11 12 13
命令 0x21 0x22 0x24 0x25 0x28 0x2F 0x33 0x34 0x35 0x36 0x37 0x38 0x3b 功能 读取读写器信息 设置读写器工作频率 设置读写器地址 设置读写器询查时间 设置读写器的波特率 调整读写器输出功率 声光控制命令 韦根参数设置命令 工作模式设置命令 读取工作模式参数命令 EAS测试精度设置命令 设置Syris485响应偏执时间 设置触发有效时间 7
UHF一体机电子标签读写器用户手册v2.0
五、命令执行结果状态值
响应数据块 Len 5+Data[]部分的长度 Adr reCmd Status Data[] CRC16 当成功执行命令后返回给上位机的状态值。Data[]包含了所要信息 上位机发出询查G2标签命令时,读写器询查电子标签时,如果在设定的询查时间内返回信息给上位机,则返回此状态值 上位机发出询查G2标签命令时,当询查时间溢出时,读写器还没有完成询查操作时返回给上位机的状态值 上位机发出询查G2标签命令时,如果询查命令读到的标签数量无法在一条消息内传送完,将分多次发送。 上位机发出询查G2标签命令时,如果询查到的电子标签太多,超过了读写器的存储容量,则读写器返回读到的电子标签EPC号,同时,也将返回此状态值 当读写器执行需要密码才能执行的操作,而命令中给出的密码是错误的密码时返回给上位机的状态值 Status含义 说明 0xXX 0xXX 0x00 …….. LSB+MSB 操作成功 5+Data[]部分的长度 0xXX 0x01 0x01 …….. LSB+MSB 询查时间结束前返回 5+Data[]部分的长度 0xXX 0x01 0x02 …….. LSB+MSB 指定的询查时间溢出 5+Data[]部分的长度 0xXX 0x01 0x03 …….. LSB+MSB 本条消息之后,还有消息 5+Data[]部分的长度 0xXX 0x01 0x04 …….. LSB+MSB 读写器存储空间已满 5 0xXX 0xXX 0x05 无此项 LSB+MSB 访问密码错误 8
UHF一体机电子标签读写器用户手册v2.0
5 0xXX 0x05 0x09 无此项 LSB+MSB 销毁标签失败 当向G2标签进行销毁操作时,如果销毁密码错误,或是读写器与标签通讯不畅,则将返回此状态值 5 0xXX 0x05 0x0a 无此项 LSB+MSB 销毁标签时,销毁密销毁密码码为0的标签是无法不能为全0 销毁的 G2协议中的某些可选命令,及一些厂商的特定命令,可能某些标签不支持这些命令,此时返回此状态值 5 0xXX 0xXX 0x0b 无此项 LSB+MSB 电子标签不支持该命令 5 0xXX 0xXX 0x0c 无此项 LSB+MSB 对NXP UCODE EPC G2X标签设置读保护对该命令及设置EAS报警时,访问密码访问密码不能为全0,不能为全0 若为全0,将返回此状态值 电子标签已经被设置了读保护,不能再次设置 对已经被设置了读保护的NXP UCODE EPC G2X标签,在解除读保护之前,不能再次设置。此情况下返回这个状态值 5 0xXX 0x0a 0x0d 无此项 LSB+MSB 5 0xXX 0x0a 0x0e 无此项 LSB+MSB 对NXP UCODE EPC 电子标签G2X标签解锁,如果没有被设标签没有被锁定,将置读保护,返回此状态值,对不不需要解支持读保护设定命令锁 的标签发送此命令,也将返回此状态值 在向6B标签写入数有字节空据时,因为有字节空间被锁定,间被锁定,使得写入写入失败 数据失败时,返回此状态值 不能锁定 当6B标签出现不能被锁定的情况,返回此状态值 5 0xXX 0x53 0x10 无此项 LSB+MSB 5 0xXX 0x55 0x11 无此项 LSB+MSB 5 0xXX 0x55 0x12 无此项 LSB+MSB 已经锁定,对已经锁定的6B标不能再次签进行再次锁定时,锁定 返回此状态值 9
UHF一体机电子标签读写器用户手册v2.0
5 0xXX 0xXX 0x13 无此项 LSB+MSB 参数保存失败,但设置的值在读写器断电前有效 对于某些需要保存的参数,如果保存失败,则返回此状态值 调整功率的时候,在某些情况下,如果出现功率无法调整的错误,则返回此状态值 上位机发出询查6B标签命令时,读写器询查电子标签时,如果在设定的询查时间内返回信息给上位机,则返回此状态值 上位机发出询查6B标签命令时,当询查时间溢出时,读写器还没有完成询查操作时返回给上位机的状态值 上位机发出询查6B标签命令时,如果询查命令读到的标签数量无法在一条消息内传送完,将分多次发送。 上位机发出询查6B标签命令时,如果询查到的电子标签太多,超过了读写器的存储容量,则读写器返回读到的电子标签UID号,同时,也将返回此状态值 当设置电子标签的EAS报警时,在通信正常的情况下,如果标签无法设置,则可能是电子标签不支持该命令,也可能是电子标签的访问密码不能为0 5 0xXX 0xXX 0x14 无此项 LSB+MSB 无法调整 5+Data[]的长度 0xXX 0x51 0X15 …….. LSB+MSB 询查时间结束前返回 5+Data[]的长度 0xXX 0x51 0x16 …….. LSB+MSB 指定的询查时间溢出 5+Data[]的长度 0xXX 0x51 0x17 …….. LSB+MSB 本条消息之后,还有消息 5+Data[]的长度 0xXX 0x51 0x18 …….. LSB+MSB 读写器存储空间已满 5 0xXX 0xXX 0x19 无此项 LSB+MSB 电子标签不支持该命令或者访问密码不能为0 10