基于传感器网络的有源射频识别系统设计
1 概述
射频识别(Radio Frequency IDentification, RFID)技术是利用感应、无线电波或微波能量进行非接触双向通信,实现以识别和交换数据为目的的自动识别技术。电子标签是完成射频识别功能的主要部件,根据实现方式不同,RFID 可分为2 类,即有源RFID 和无源RFID。无源RFID 的电子标签上不带电池,其工作所需要的全部电源都依靠转换接收到的阅读器发送的电磁波而获得,有效距离较短。与之相反,有源RFID 的电子标签自身具备电池,可提供全部器件工作的电源,因此,相应阅读器的发射功率要求不高,有效阅读距离也比前者大大增加[1]。
传感器网络是近年来国内外兴起的一个多学科研究热点,目前国外已出现了多种原型系统。尽管有些技术可以应用于有源RFID,但有源RFID 在应用中一般都要求在不更换电池的条件下能工作数年,这对有源RFID 的能耗提出了较高要求。本文基于传感器网络相关技术,在降低有源RFID功耗方面做了一些尝试,提出了能超低功耗工作的有源RFID系统。该系统采用2 种通信频率,低频通信利用Atmel 公司ATA5275/5282 完成,工作于100 kHz~125 kHz 频段;高频利用了瑞士ChipCon 公司的低成本通信芯片CC2420 完成,工作于国际通用的2.4 GHz ISM 频段。整个模块的软件基于TinyOS 操作系统[2]。
2 硬件构成
如图 1 所示,该RFID 模块与读写器配合使用,它们都由2 个通信单元构成,即高频通信单元和低频通信单元,2 个单元均由同一片ATMega128 来控制。低频线圈驱动芯片采用Atmel 公司的ATA5275 和ATA5282,这2 款芯片是Atmel公司专门为胎压检测系统(Tire Pressure Measurement, TPMS)而设计的低频通信芯片,载波频率为100 kHz~125 kHz[3-5]。高频通信部分采用了瑞士ChipCon 公司的低成本通信芯片CC2420 完成,这款芯片符合IEEE802.15.4 标准,工作于ISM的2.4 GHz 频段,有效通信距离可达上百米。
图 1 RFID 与读写器的硬件构成
读写器端的低频通信利用ATA5275 与线圈形成低频电磁场来完成。读写器发出的125 kHz 载波信号可激活RFID端的ATA5282,并且数据也可以被调制在低频磁场中发送。RFID 端的低频通信由ATA5282 完成。ATA5282 可三向感知读写器发出的低频电磁场,待机电流为2 μA,激活时电流也仅为4 μA。ATA5282 与ATMega128 通过两线接口连接,NSCL 脚连接到ATMega128 的一个I/O 端口,DATA 脚连接到ATMega128 的外部中断脚。在不需要通信时,ATMega128与 CC2420 均处于低功能的休眠状态。ATMega1288 工作于省电模式,工作电流为微安级,当读写器需要与RFID 通信时。首先由读写器发出低频信号。ATA5282 自动检测ATA5275 发出的低频信号,如果检测到有效的前导码和报头则能以外部中断的方式唤醒控制器ATMega128。读写器随后可以利用低频磁场向RFID 写入少量用于识别读写器的数据。在完成低频通信后,读写器就可以利用高频通信与特定RFID 完成高速数据交换。
3 软件设计
本文使用 TinyOS 操作系统建立有源RFID 及读写器的软件。TinyOS 是美国加州大学Berkeley 分校专门为传感器网络开发的操作系统。它由C 语言的变体NesC 来实现,整个操作系统的核心部分仅需要396 Byte 的存储空间。由于采用事件驱动的体系结构和模块化设计,TinyOS 提供了良好的编程框架及组件库。应用程序由TinyOS 自带的组件和用户根据应用实现的组件构成。用户只需利用配件(Configuration)将应用组件与所需的服务组件连接起来即可。整个程序的任务调度由TinyOS 调度器完成。
本文在 TinyOS 的框架上完成RFID 的软件,如图 2 所示。高频通信利用了TinyOS 中已有的组件。ATMega128 通过SPI 总线读写CC2420 的RAM,数据通信率为250 Kb/s。
图2 有源RFID 程序结构
3.1 低频接口设计
在 TinyOS 的模块化程序结构中,必须首先定义模块所能提供的外部接口。在读定器端,本文设计了HPLATA5275软件模块,在RFID 端,设计了HPLATA5282 软件模块。这2 个软件模块均提供StdControl 接口,用来完成芯片状态配置及定时器的开关等动作。
HPLATA5275 模块提供了ATA5275 接口,该接口主要提供以下命令:
command result_t Send(uint8_t length, uint8_t *data)
这个命令的功能是利用低频磁场发送数据。length 参数给出了发送数据的长度,data 指针指向发送数据的首地址。如果发送成功,则返回SUCCESS。
HPLATA5282 模块提供了ATA5282 接口,这个接口负责处理Wakeup 和Receive 两个事件:
(1)async event result_t Wakeup(),该事件表明ATA5282接收到正确的前导和头部信息而被激活;
(2)result_t event Receive(uint8_t *data, uint8_t len, uint8_tsuccess),该事件用于接收到1 个完整的数据包。其中,data存放接收到的数据缓冲区的首地址;len 为接收到的数据包的长度,success 表明接收到的数据是否正确。
3.2 低频通信流程
图 3 给出了低频信号的发送和接收过程。最上面的波形为控制器发出的用于驱动ATA5275 的电平信号;中间的波形为低频载波驱动信号;最下面的波形为ATA5282 的输出信号。在收发过程中使用ATMega128 内部的16 位计数器/定时器T/C3 完成精确定时功能。
图3 低频信号收发过程
发送端状态机如图 4 所示。为激活ATA5282,ATA5275首先要发送有效的前导和头部信息。前导码和报文头部需要一段低电平保持时间(startgap)。在发送完报头后,再保持一段同步时间(sync)后就可以发送数据。本文在程序实现时采用了曼彻斯特编码。
图 4 ATA5275 发送状态机
图 5 为ATA5282 的接收状态机,ATA5282 芯片可自动检测前导码和报头,因此,接收端的状态机比发送状态机简单,从IDLE 直接进入SYNC 状态,在这一状态中,ATA5282 将通过输出端的低电平唤醒与之相连的控制器。之后如果需要,ATA5282 将按照事先确定好的编码方式接收并解析收到的低频数据。
图 5 ATA5282 接收状态机
4 测试与分析
本文对该有源 RFID 系统进行了测试,测试结果表明,读写器与有源RFID 的低频通信有效距离可达2 m 左右,而高频通信的有效距离可达100 m 左右。在休眠状态下,模块待机所消耗的电流仅为20 μA。在高频通信状态下,模块所消耗的电流增加了1 000 倍。因此,假如由一个2 000 mAh的电池供电,该有源RFID 模块在待机状态下可工作10 年以上,在持续高频通信状态下,可工作70 h 以上。但由于在实际应用中,高频通信所用时间极短,有源RFID 大部分时间工作电流处于微安级,因此本文设计的有源RFID 预计仍可工作5 年~10 年。
5 结束语
有源射频识别系统具有远距离识别的优点,在现实中有广泛的应用需求。本文利用可完成高频及低频通信的芯片设计了可超低功耗工作的有源射频识别系统,基于TinyOS 操作系统建立的低频通信部分软件简单可靠。该系统在汽车胎压监测、贵重物品管理等应用中具有较高应用价值。