基于RFID的农产品生产线读写器设计
Gen2 盘点命令的操作码为01h, 操作会返回在读写域内全部的符合读取条件的Gen2 标签, 而经过反碰撞模块处理后, 得到的数据帧由标签信息和盘存总结两部分组成:
即 回复信息>= [ 标签回复>] 盘存总结>
标签回复> = EPC> 访问回复>
EPC> = 标签ID 长度> 协议控制字> 标签ID>
举例, 当使用天线B 并且RF 的功率为22 时, 读取所有SL 为NOT SET, S3 flag 为A 的Gen2 标签, 此时的起始Q 为1( 即2 个时隙) 。
60 01 01 16 02 03 00 01
如果当前射频范围内的标签有一个64 位的Gen2 标签1的ID 为“ 0102 0304 0506 0708”。
而且有一个96 位Gen2 标签2 的ID 为“ 1211 1009 08070605 0403 0201”。
可能读写模块会收到这样一个包, 完整内容如下:
04 28 00 01 02 03 04 05 06 07 08 07 08 30 00 12 11 10 09 08 07 06 05 04 03 02 01 00 02 00 16 00 01 00 00 00 02 00 09
现在对这个包进行解析, 根据协议规定 接受包> = [标签回复>] 盘存总结>
= [04 28 00 01 02 03 04 05 06 07 08> 07 08 30 00 12 11 10 09 08 07 06 05 04 03 02 01>] 00 02 00 16 00 01 00 00 00 02 00 09>
标签1 回复> = 标签1 ID 长度> 协议控制字> 标签1 ID>
标签1 ID 长度> = 04> = 4- word = 64 Bit 标签ID
协议控制字> = 28 00>, 从而得出 标签1 ID> =0102 0304 0506 0708>
标签2 回复> = 标签2 ID 长度> 协议控制字> 标签2 ID>
标签1 ID 长度> = 06> = 6- word = 96 Bit 标签ID
协议控制字> = 30 00>, 得出 标签2 ID> = 1211 1009 0807 0605 0403 0201>
而又有 盘存总结>= 标签数> 时隙数>EPC CRC 错误> 回复CRC 错误> 冲突次数> 通信轮数>
所以得到 标签数> = 2, 时隙数> = 22, EPC CRC 错误> = 1, 回复CRC 错误> = 0, 冲突次数> = 2, 通信轮数> = 9
在提取标签信息后, 则可以将所获得的标签信息送到嵌入式数据库模块进行本地暂存, 同时通过网络模块上传至后台服务器做记录, 中间的接口函数部分就不详细给出了。
四、总结与展望
本文中描述的嵌入式RFID 终端读取器, 在农业产品包装生产线中进行了实用, 基本满足了生产线RFID 系统对前端RFID 标签数据采集、处理、通信方面的要求, 在功能上和稳定性方面已经能够替代专用RF 读写器, 因为采用了免费的开源Linux 操作系统和开源数据库Sqlite , 大大降低了总体成本, 特别适合在成本敏感系数高的农产品生产和监控中使用。
- 基于SPCE061A的射频读写器信号分析系统设计(08-26)
- 微波频段有源RFID系统(12-03)
- RFID分形天线性能最佳(08-13)
- 基于SDIO接口的通用RFID读写器的开发(09-18)
- Nedap推出!D移动RFID读写器,面向零售商客户(05-17)
- RFID读写器的工作原理及其应用的优势(04-18)