基于傳感器網絡的有源射頻識別系統設計
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 操作系統建立的低頻通信部分軟件簡單可靠。該系統在汽車胎壓監測、貴重物品管理等應用中具有較高應用價值。