基于 RFID 的数据采集网络的设计与实现
1 引言
射频识别技术RFID(Radio Frequency Identification)作为一种高速发展的自动识别技术具有诸多优点:数据读取方便快捷、识别速度快、可同时识别多目标、数据容量大、使用寿命长、应用范围广、标签数据可动态修改等。因此其推广应用越来越广泛。但目前实际应用中的读写器大多只适合单机工作,不适合组网,不便于集中控制,不能应用到多点高密度数据采集场合。基于RS485标准利用超高频RFID读写器构建数据采集网络,遵循IS018000-6B协议的电子标签中的数据,很好解决了多点高密度数据采集的难题。网络节点数目可以根据具体应用场合灵活设置,最多可以拓展至256个数据采集节点。节点终端设备还配置有USB接口、LCD显示、声光提示、时钟模块等,也可以脱机使用,作为通用的RFID读写器,读、写标签、记录操作时间等。
2 整体方案设计
该系统借鉴计算机网络中经典的C/S架构,利用RS485总线连接整个网络。其中计算机作为网络服务器,节点终端设备作为客户机。计算机向各节点终端设备发送命令控制整个网络,接收采集到的数据并做进一步处理;节点终端设备主要负责采集标签数据,响应计算机的命令。系统选用的RS485器件MAX1483使网络节点数最大可达到256个。系统方案框图如图1所示。
3 硬件电路设计
系统设计的重点在于节点终端设备的设计,即超高频RFID读写器的设计。读写器的主要功能是发出询问信号,选择能量场内的应答器,建立数据通信链路并对应答器进行读写操作。超高频RFID读写器的数据采集距离较远,可达到1~30 m,通过软件设置射频收发模块增益大小来控制读写距离,灵活地满足实际要求。读写器硬件按照不同的功能可划分为主控模块、射频收发模块、电源模块、数据存储模块、接口部分、时钟模块、LCD显示模块、声光提示模块及调试电路等,具体如图2所示。
(1)主控模块选用混合信号系统级器件C8051F340作为节点终端设备的主控器件,负责控制、协调各功能模块,实现数据采集和命令响应。利用器件的双串口分别控制射频收发模块和RS485接口器件MAX1483;自带的USB功能控制器构成USB接口;通过I/O端口模拟I2C时序控制数据存储器件AT24C16;通过I/O端口控制时钟DS1302;LCD通过端口并行传输显示数据,外加其他I/O端口作为辅助控制:由I/O端口控制LED和蜂鸣器构成声光提示模块。
(2)射频收发模块选用RMU900超高频读写模块。该模块通过天线解调、解码射频标签发射的信号,把数据发送给主控器件实现数据的采集,或将命令和数据编码、调制后经天线发送给标签,实现对标签的写操作。数据的传输通过与C8051F340的串口O相连的TX0和RX0实现。图3为主控模板和射频收发模块原理图。
(3)电源模块 射频模块的功率较大。因此对于电源的要求较高,要求输出大功率并且整个系统用到5 V和3.3 V两种不同电源。所以选择LT1085作为电源转换器件。该器件可将5 V电压转换成3.3 V,最大输出电流可达2 A。完全满足射频模块和系统其他部分对电源的需要。
(4)数据储存模块存储节点设备采集到的数据,待接收到计算机的发送数据命令后再将数据转发到计算机。I2C接口的AT24C16容量为16 Kbit,可存储2 K字节的数据。通过主控器件I/O端口模拟I2C时序,实现数据的读和写。
(5)接口部分RS485接口采用MAX1483器件。最多可驱动256个节点,通过RJ11接口实现与总线的连接:USB接口使用主控器件自带的USB控制器,具有很高的可靠性。图4是电源模块、数据存储模块、接口部分的原理图。
(6)其他模块1602单色液晶显示屏,可显示采集到的数据和操作时间或实时时间。显示数据的传输采用并行传输的方式,加快了屏幕的刷新频率。声光提示模块提示操作完成情况。主要通过主控器件的I/O端口控制LED闪烁和蜂鸣器的鸣笛。时钟模块显示数据采集的时间或实时时间。除板载电源外还设计有备用的纽扣电池,使掉电时时钟不丢失。调试电路实现在线编程,向主控器件C8051F340烧写程序,监测变量值的变化情况,调试程序,辅助完成软件的编写。图5、图6为上述模块的原理电路图。
4 软件设计
系统的软件设计包括上位机软件和下位机软件两部分。上位机软件部分主要针对计算机平台,采用C++语言编写.控制节点终端设备和接收节点终端设备发送的数据,然后做进一步处理。考虑到网络的规模最大为256节点,上位机采用轮询方式控制各个节点终端设备,维持整个网络正常运行。控制节点终端设备的命令主要有:(1)发送数据命令:下位机接收到该命令的响应是发送采集到的数据,即缓存在数据存储模块中的数据;(2)写标签命令:下位机接收到该命令的响应是向感应区内的标签写入新的数据;(3)时间设置命令:下位机的响应是根据参数更新DS1302的数据;(4)设置功率命令:设置射频收发模块的发射功率以调节读写标签的距离;(5)写分机号命令:该命令为单机命令,可为每个节点终端设备写入一个唯一的分机号,以便区别不同的终端设备。下位机软件设计主要针对单片机平台,采用C语言编写,主要是各功能模块的驱动程序,如射频模块的控制、数据存储模块的数据读写、时钟模块的输出、LCD显示模块的数据显示程序、USB接口的驱动程序等。图7为下位机软件流程图。
5 通信协议设计
通信协议是网络正常工作必不可少的,主要是对计算机和节点终端设备间通信帧格式的具体规范与统一,例如帧长度确定、命令字意义、参数长度、帧起始标志、结束标志等。具体帧格式规定如表1所示。每帧数据有23字节,其中起始位1字节,固定为Oxaa;分机号1字节,可设置范围为0~255;命令1字节,包括5个命令:OxOf、Ox2f、Ox4f、Ox8f、Oxaf,依次为发送数据命令、写数据命令、时间设置命令、功率设置命令、写分机号;数据17字节,包括标签数据12字节和时间数据5字节;CRE校验采用CRC-16,共2字节,是起始位到数据位之间所有数据的CRC校验值;停止位1字节,固定为Ox55。
系统通过RS485总线实现上位机与下位机之间的通信。计算机根据分机号选择不同节点终端设备,选择命令代码实现各命令,数据部分为操作响应代码(“0”标识操作失败,“1”标识操作成功)、相关参数(如时间设置命令中的时间参数)或返回具体数据(如标签数据和时间数据)。
6 结束语
RFID技术以其优势必将在信息化建设过程中得到推广与应用。系统利用RFID技术构建一种低成本、高可靠性、维护方便的数据采集网络。目前该网络已应用于某公司自动生产线中。运行状况良好,具有广泛的应用前景。