• 平台首页 |
  • 手机版 |
  • 二维码 |

农产品生产线嵌入式RFID阅读器设计

来源:互联网

    一、研究背景及设计

    RFID是射频识别(RFID)的缩写,是一种非接触式自动识别技术,通过读取器中的空间耦合(交变磁场或电磁场)使用射频电磁波和一种实现移动之间无接触信息传输的技术物品(附有RFID标签)用于识别,分类和跟踪,以及通过传输的信息进行识别。 RFID是一种自动识别和数据捕获技术,可提供无人值守的自动监控和报告。

    RFID阅读器的工作原理如下::读卡器通过天线发出一定频率的射频信号,当标签进入磁场时,它产生感应电流获取能量,并发出自己的代码及相关信息为由读者阅读和解码。然后将其发送回计算机进行处理。识别工作可以在各种恶劣环境中进行,无需人工干预。高性能RFID阅读器可以同时识别多个物体[1]。在农业生产中,RFID的使用范围正在逐步扩大。随着发达国家食品检验检疫制度的日益严格,RFID技术已在国外动物管理中得到广泛应用,但在中国的一些超市却是如此。它还为客户提供基本的附加功能,例如使用RFID标签检查高端农产品(如干净餐具)的来源和日期。可以预见,未来RFID将在产品追溯和质量检测中发挥更重要的作用。该系统的设计思想如图1所示。高性能RFIDGEN2协议兼容的读写模块和RFID标签用于直接执行复杂的标签读取,标签防冲突计算,信息提取和数据保存。有效信息通过网络传输到后端服务器,大大降低了网络通信的开销,减少了服务器的资源消耗,提高了系统的整体运行效率,提高了稳定性,提高了服务灵活性。

620)this.style.width=620;” BORDER=0> 图1 RFID技术应用于农产品包装线的总体图

    二、系统的硬件设计

620)this.style.width=620;" border=0>图2 射频模块与CPU 接口

   该系统基于高可靠性和低成本,基于S344B0的嵌入式CPU和WJ 6000 RF模块。它结合USB,Realtek网卡,SDRAM等芯片构成核心系统,其中关键的射频模块。与CPU的接口如图2所示。

    三、系统的软件系统设计

   系统的整个软件系统模块关系如图3所示.:

620)this.style.width=620;” BORDER=0> 图3整个系统软件模块的示意图

   操作系统使用uClinux系统作为操作系统来管理各种硬件并提供软件运行平台。驱动程序层为各种类型的设备提供驱动程序,如以太网,串行,USB存储器,状态指示灯等。网络通信模块负责将处理后的标签信息发送回后台服务器,并根据后台服务器的命令控制主控模块的参数,以改变工作模式。嵌入式数据库控制模块负责保存系统的工作日志,并将读取的标签和相关数据保存到本地数据库以供将来查询。协议解析模块负责协议解析数据通信包,取出有效标签数据,执行标签防冲突操作,处理各种干扰问题,确保标签数据的完整性,同时也是协议解析模块的核心部分。整个软件系统。

    RFID读取系统软件工作流程:

620)this.style.width=620;” BORDER=0>

 

图4软件系统工作流程

    1.嵌入式数据库操作模块

    SQLITE3用作系统的在这个项目中的嵌入式数据库。嵌入式数据库是整个系统的重要组成部分。主要包括基础数据的本地存储,条码读取信息的初步存储和快速查询,工作日志的保存,网络通信模块的协作,实现网络主/从数据库。同步,在主服务器崩溃的情况下,它仍然可以通过对嵌入式数据库的所有数据进行排序来恢复大部分数据,这提高了系统的可靠性。该数据库采用单一数据文件设计,可以支持大多数SQL 92标准。数据库操作语句支持事务功能。通过扩展网络操作界面功能,实现了与后台数据库通信和交换数据的目的。

    2,网络通信模块

   系统的特点是嵌入式Linux操作系统的底层网络支持,以及数据和后台数据服务器之间在各种网络传输路径中的数据传输。在系统的网络部分设计中,局域网支持Linux系统提供的TCP/IP协议,在读取标签信息时,采用动态建立与服务器连接的方法。并解码有效信息。将相应的Socket请求信息发送到服务器的相应端口。服务器收到请求后,建立连接并创建新的Socket端口与终端通信。只有在读取数据时,才在数据库和终端之间生成数据传输和服务器端资源。从而减少网络占用和服务器端负载,提高网络通信效率。

    3. RFID协议分析模块

   协议解析模块负责将发送的命令参数添加到包头和其他信息,并解压缩收到的标签返回信息。通过打开信息包,可以获得有关库存或读写信息。 MPR6000支持的RFID Gen2命令包括读,写,杀,擦除,锁定。这些命令都由一个字符串组成,其结构如下::   < SOF> <节点> <长度> <状态> &LT有效载荷GT; < CRC>   分别由起始帧,节点,总长度,状态,标签信息和CRC由这些部分组成。

   例如,Gen2计数命令的操作码为01h,操作将返回读/写域中满足读取条件的所有Gen2标签,并在防冲突模块处理后,获取数据帧从标签信息和库存中获得。总结:的两个部分

   即<回复消息>=[<标签回复>]<库存摘要>   <标签回复>=< EPC><访问回复>   < EPC>=<标签ID长度><协议控制字><标签ID>   例如,当使用天线B且RF功率为22时,所有SL都被读为NOT SET,而S3标志是A的Gen2标签,此时的起始Q为1(即2个时隙) )。    60 01 01 16 02 03 00 01   如果当前RF范围内的标签具有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   现在解析此包,根据协议规定<接受包>=[< tag reply>]<库存摘要>   =[< 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> P>

   &lt;标签1回复&gt;=&lt;标签1 ID长度&gt; &LT; <协议控制字> &lt; tag 1 ID&gt;   &lt;标签1 ID长度&gt;=&lt; 04&gt;=4 - 字=64位标记ID   &lt; <协议控制字>=&lt; 28 00&gt;,得到&lt; tag 1 ID&gt;=&lt; 0102 0304 0506 0708&gt;   &lt;标签2回复&gt;=&lt; tag 2 ID length&gt; &LT; <协议控制字> &lt; tag 2 ID&gt;

   &lt;标签1 ID长度&gt;=&lt; 06&gt;=6-字=96位标记ID   &lt;协议控制字&gt;=&lt; 30 00&gt ;,得到&lt;标签2 ID&gt;=&lt; 1211 1009 0807 0605 0403 0201&gt;

   并且有&lt;库存摘要&gt;=&lt;标签数&gt;&lt;槽数&gt;&lt; EPC CRC错误&gt;&lt; CRC错误&gt;&lt;冲突数&gt;&lt;通信轮数&gt;   所以得到&lt;标签号&gt;=2,&lt;槽号&gt;=22,&lt; EPC CRC错误&gt;=1,&lt;回复CRC错误&gt;=0,&lt;冲突时代&gt;=2,&lt; <通信轮次数>=9

   提取标签信息后,获取的标签信息可以发送到嵌入式数据库模块进行本地临时存储,并通过网络模块上传到后台服务器进行记录。中间接口功能部分没有详细给出。 。

    四、总结与展望

   本文介绍的嵌入式RFID终端读取器在农产品包装生产线上实用,基本满足生产线RFID系统对前端RFID标签数据采集,处理和通信的要求,功能稳定。性方面已经能够取代专用的RF阅读器,因为免费的开源Linux操作系统和开源数据库Sqlite,大大降低了总体成本,特别适合用于生产和监控具有高成本敏感性的农产品。

1
免责声明
• 
当前页仅为信息展示,该页所展示的批发价格、报价等相关信息均有企业自行提供,真实性、准确性、合法性由店铺所有企业负责,如若文中涉及有违公德、触犯法律的内容,一经发现,立即删除。