低功耗RFID数据采集系统的优化*
2013-12-07程小辉
程小辉,魏 力
(桂林理工大学,广西 桂林 541004)
在工业生产中,数据采集和监控为提高产品质量、降低成本提供了信息和手段,成为工业生产中不可缺少的部分。与传统有线数据采集系统相比,无线数据采集系统具有灵活、轻便、工作范围大,环境适应能力强等优势[1],解决了传统数据采集系统在一些特殊的环境中布线难的问题。无线采集模块的供电和能耗一直是整个系统设计的重点。在电池供电的系统中,系统的能耗决定整个系统的工作时间长度,电池的更换频率直接关系着整个系统的维护成本。在以收集自然能源的无源系统中,更低的功耗能减少无源电源的设计难度。因此,降低无线数据采集节点的能耗是整个系统设计的首要问题之一。
1 系统的优化方向和方案
1.1 系统的优化方向
无线数据采集的网络拓扑结构分为树形网络、星形网络和对等网络三种,其中树形网络和星形网络应用比较广泛。在这两种网络的数据采集系统中,数据采集模块是非簇头节点。这类节点受供电模块约束较为严重,因此,在实现功能的前提下硬件设计要尽可能采用低功耗元件和简洁的电路,以达到降低功耗的要求。在无线通信平台已经确定的情况下,电路设计相对固定,硬件上的优化空间较小。
数据阅读器这类簇头节点的设计受功耗的限制相对较小,将整个系统的优化重点放在数据收集节点的通信方式上相对较容易。将整个数据采集过程中的大部分工作尽可能多地安排在簇头节点,减少终端节点的通信工作时间是整体设计的优化方向。
1.2 优化方案
轮询是系统收集数据的常用方法。在无线网络中,非簇头节点受到功耗的限制,除上传数据以外,其他时间都会处于休眠状态。为了保证握手与通信成功,簇头节点会增加通信范围内的每个终端节点的询问次数,导致停留在单节点的时间变长。假设采集节点A和F在某一时刻同时唤醒,传统轮询机制在A点上传数据完成后,F点需要历经 B、C、D、E 4个节点的轮询时间才能进行通信。将系统对终端节点的轮询和数据传输功能分离,轮询节点时发现某一节点需要进行通信,将该节点信息通知数据采集的模块,负责数据采集的模块收到信息后,立即与该节点进行数据交换。簇头节点在进行数据通信的同时,也进行着轮询。若在A节点数据通信完成之前,轮询已发现F节点数据需要传输,则系统在完成A节点的数据交换后,会立刻进行F节点的通信。这种通信设计方式将提高阅读器找寻工作状态设备节点的效率[2]。尤其在系统中存在数据量较大的单节点时,优势会更加明显。
2 实验平台的硬件结构
2.1 数据采集终端
数据采集终端结构如图1所示,分为无线模块、控制芯片、Flash存储、对基模块及串口数据输出5个部分。时基模块用来测量无线模块工作时间,控制芯片通过脉冲信号锁定起始时刻和终止时刻,将时间数据读出并存入Flash中。Flash中的实验数据通过串口上传给电脑。
图1 采集终端结构
时基模块能给多个采集终端提供分辨率为1μs的时间基准信息。时基模块由硬件逻辑完成,内部结构图如图2所示,TIME_LOCK信号的下降和上升沿锁存时间点,其他信号为CPLD与控制芯片的通信接口。
2.2 数据阅读器
数据阅读器的硬件结构如图3所示。本设计使用了双通信模块来实现轮询和数据接收的分离,轮询和数据接收分别工作在两个不同的无线信道上。通信模块1使用CH1信道进行握手,通信模块2使用CH2信道接收数据。公共存储区域用于存放轮询到的节点信息,2个通信模块均能对该区域存储的数据进行修改和读取。
图3 数据阅读器结构
2.3 NRF24L01无线模块
NRF24L01是挪威NORDIC公司生产的一款低成本,工作在2.4~2.5 GHz ISM频段的射频收发芯片[3]。芯片的操作和数据读写通过SPI完成。接收模式下,芯片可以同时接收相同信道下6个不同地址的信息。NRF24L01常用模式的工作电流为:(1)发射模式,功率为 0 dBm时,工作电流为 11.3 mA;(2)接收模式,速率为 2 000 kb/s,工作电流为12.3 mA;(3)Standby-I模式,工作电流为 32μA;(4)Power_down模式,工作电流为900 nA。芯片自带的增强型ShockBurstTM模式使执行双向链接协议更为容易、有效,从而保证数据发送可靠性的同时,降低功耗,实现在-6 dBm功率下发送数据,平均工作电流可以减小到0.05 mA。
3 程序设计和细节优化
3.1 程序设计
数据阅读器模块1、模块2的程序流程如图4所示。模块1完成初始化后,使用信道CH1进行轮询操作,收到握手信号后,将记录终端编号,刷新公共存储区数据。模块2使用信道CH2收集数据,控制芯片不断循环检测公共存储区的数据更新。发现更新后将数据读入,根据终端编号设置无线模块的地址,并完成握手、数据接收和数据校验。
数据采集终端的程序流程如图5所示,开机后控制芯片从内部集成的Flash中读出机器的无线地址,上传数据时间间隔及数据长度等系统参数,完成对无线模块和定时器的初始化。主程序中控制芯片不断对时间标志进行检查,上传数据时间到达,激活时基模块开始计时,使用CH1信道发送握手信号。当信号发送成功后,转换使用CH2信道等待握手,握手成功后发送数据。数据传送完成后,结束计时,从时基模块中读取时间数据并存储到Flash中。主程序将对RS232口进行监视,检测PC机的指令。
为方便对实验的监控,在PC机上针对实验平台设计了控制软件,软件使用Delphi编译环境完成。PC机可以通过该软件对采集终端、数据阅读器进行监控,完成系统参数设置以及对上传的时间数据进行分析。
3.2 细节优化
从NRF24L01无线模块的工作模式电气参数可知,发射模式的功耗比接收模式低很多,因此数据采集终端采用主动呼叫握手[4]方式进一步降低功耗。数据阅读器的轮询模块一次可同时监视6个终端的握手信号,缩小了轮询周期,减少了终端的握手等待时间。在程序设计方面,合理性设计无线模块每个单位数据发送时间间隔长度、系统睡眠和唤醒、优化系统时钟和工作时序、精简指令[5]都是降低设备功耗的有效方法。
图4 数据阅读器程序流程
图5 数据采集终端程序流程
4 实验设计和实验结果
4.1 实验设计
实验仅为验证优化方案能否达到缩短采集终端工作时间的效果。实验平台采用51单片机作为数据阅读器和数据采集器的控制芯片,一块CycloneII的FPGA核心板作为时基模块给数据采集终端提供时间测量。
实验中的数据采集终端节点为24个,其中5个为实物节点,其他为虚节点。实验完成了两组测试,一组采用传统的轮询方式,另一组采用优化后的轮询方式,两次实验对其中3个实物节点的工作时间数据进行分析比较。
实验中设备的高层通信协议如图6所示,其中帧参数包括帧长度及帧校验信息,校验方式为和校验。NRF24L01模块通信设置为自动应答方式,启动自动重发功能。数据重载次数为10次,重发时间间隔为(250+86)μs。
图6 通信协议
经实验测量,无线模块一次性成功发送一单位帧(4 B)的时间为 880μs左右,单位帧发送失败耗时(MAX_TR时间)约为5.65 ms。由此确定单位帧的发送耗时范围是880μs~5.65 ms。根据单位帧的发送时间,将轮询分配给每个设备的握手等待时间设置为20 ms。数据采集终端的上传时间间隔设置为3 s,每次上传数据长度为40 B。
4.2 实验结果
两次实验的结果如表1、表2所示。实验数据表明,本文提出的优化方法降低了无线数据网络中非簇头节点的工作时间,减少了模块的功耗。
表1 传统轮询
表2 优化轮询
[1]赵吉清,易灵芝,王根平.无线触发唤醒的无线数据采集系统设计[J].计算机测量与控制,2007,15(8):110-112.
[2]杨旭,李德敏,张谦益.基于nRF24L01的一种无线通信协议设计[J].通信技术,2011,44(7):57-59.
[3]高正立,曹奇英.轮询机制在无线数据采集协议中的应用[J].微计算机信息,2010,26(7-1):78-80.
[4]唐磋,章国安,张之江,等.基于nRF24L01的主动式电子标签的设计[J].微计算机信息,2010,26(2-2):164-165.
[5]曾勇,杨涛,冯月晖.基于 nRF24L01的超低功耗无线传感器网络节点设计[J].电子技术应用,2008,34(7):45-48.