基于傳感器網(wǎng)絡(luò)的有源射頻識別系統(tǒng)設(shè)計
1 概述
射頻識別(Radio Frequency IDentification, RFID)技術(shù)是利用感應(yīng)、無線電波或微波能量進行非接觸雙向通信,實現(xiàn)以識別和交換數(shù)據(jù)為目的的自動識別技術(shù)。電子標簽是完成射頻識別功能的主要部件,根據(jù)實現(xiàn)方式不同,RFID 可分為2 類,即有源RFID 和無源RFID。無源RFID 的電子標簽上不帶電池,其工作所需要的全部電源都依靠轉(zhuǎn)換接收到的閱讀器發(fā)送的電磁波而獲得,有效距離較短。與之相反,有源RFID 的電子標簽自身具備電池,可提供全部器件工作的電源,因此,相應(yīng)閱讀器的發(fā)射功率要求不高,有效閱讀距離也比前者大大增加[1]。
傳感器網(wǎng)絡(luò)是近年來國內(nèi)外興起的一個多學(xué)科研究熱點,目前國外已出現(xiàn)了多種原型系統(tǒng)。盡管有些技術(shù)可以應(yīng)用于有源RFID,但有源RFID 在應(yīng)用中一般都要求在不更換電池的條件下能工作數(shù)年,這對有源RFID 的能耗提出了較高要求。本文基于傳感器網(wǎng)絡(luò)相關(guān)技術(shù),在降低有源RFID功耗方面做了一些嘗試,提出了能超低功耗工作的有源RFID系統(tǒng)。該系統(tǒng)采用2 種通信頻率,低頻通信利用Atmel 公司ATA5275/5282 完成,工作于100 kHz~125 kHz 頻段;高頻利用了瑞士ChipCon 公司的低成本通信芯片CC2420 完成,工作于國際通用的2.4 GHz ISM 頻段。整個模塊的軟件基于TinyOS 操作系統(tǒng)[2]。
2 硬件構(gòu)成
如圖 1 所示,該RFID 模塊與讀寫器配合使用,它們都由2 個通信單元構(gòu)成,即高頻通信單元和低頻通信單元,2 個單元均由同一片ATMega128 來控制。低頻線圈驅(qū)動芯片采用Atmel 公司的ATA5275 和ATA5282,這2 款芯片是Atmel公司專門為胎壓檢測系統(tǒng)(Tire Pressure Measurement, TPMS)而設(shè)計的低頻通信芯片,載波頻率為100 kHz~125 kHz[3-5]。高頻通信部分采用了瑞士ChipCon 公司的低成本通信芯片CC2420 完成,這款芯片符合IEEE802.15.4 標準,工作于ISM的2.4 GHz 頻段,有效通信距離可達上百米。
圖 1 RFID 與讀寫器的硬件構(gòu)成
讀寫器端的低頻通信利用ATA5275 與線圈形成低頻電磁場來完成。讀寫器發(fā)出的125 kHz 載波信號可激活RFID端的ATA5282,并且數(shù)據(jù)也可以被調(diào)制在低頻磁場中發(fā)送。RFID 端的低頻通信由ATA5282 完成。ATA5282 可三向感知讀寫器發(fā)出的低頻電磁場,待機電流為2 μA,激活時電流也僅為4 μA。ATA5282 與ATMega128 通過兩線接口連接,NSCL 腳連接到ATMega128 的一個I/O 端口,DATA 腳連接到ATMega128 的外部中斷腳。在不需要通信時,ATMega128與 CC2420 均處于低功能的休眠狀態(tài)。ATMega1288 工作于省電模式,工作電流為微安級,當讀寫器需要與RFID 通信時。首先由讀寫器發(fā)出低頻信號。ATA5282 自動檢測ATA5275 發(fā)出的低頻信號,如果檢測到有效的前導(dǎo)碼和報頭則能以外部中斷的方式喚醒控制器ATMega128。讀寫器隨后可以利用低頻磁場向RFID 寫入少量用于識別讀寫器的數(shù)據(jù)。在完成低頻通信后,讀寫器就可以利用高頻通信與特定RFID 完成高速數(shù)據(jù)交換。
3 軟件設(shè)計
本文使用 TinyOS 操作系統(tǒng)建立有源RFID 及讀寫器的軟件。TinyOS 是美國加州大學(xué)Berkeley 分校專門為傳感器網(wǎng)絡(luò)開發(fā)的操作系統(tǒng)。它由C 語言的變體NesC 來實現(xiàn),整個操作系統(tǒng)的核心部分僅需要396 Byte 的存儲空間。由于采用事件驅(qū)動的體系結(jié)構(gòu)和模塊化設(shè)計,TinyOS 提供了良好的編程框架及組件庫。應(yīng)用程序由TinyOS 自帶的組件和用戶根據(jù)應(yīng)用實現(xiàn)的組件構(gòu)成。用戶只需利用配件(Configuration)將應(yīng)用組件與所需的服務(wù)組件連接起來即可。整個程序的任務(wù)調(diào)度由TinyOS 調(diào)度器完成。
本文在 TinyOS 的框架上完成RFID 的軟件,如圖 2 所示。高頻通信利用了TinyOS 中已有的組件。ATMega128 通過SPI 總線讀寫CC2420 的RAM,數(shù)據(jù)通信率為250 Kb/s。
圖2 有源RFID 程序結(jié)構(gòu)
3.1 低頻接口設(shè)計
在 TinyOS 的模塊化程序結(jié)構(gòu)中,必須首先定義模塊所能提供的外部接口。在讀定器端,本文設(shè)計了HPLATA5275軟件模塊,在RFID 端,設(shè)計了HPLATA5282 軟件模塊。這2 個軟件模塊均提供StdControl 接口,用來完成芯片狀態(tài)配置及定時器的開關(guān)等動作。
HPLATA5275 模塊提供了ATA5275 接口,該接口主要提供以下命令:
command result_t Send(uint8_t length, uint8_t *data)
這個命令的功能是利用低頻磁場發(fā)送數(shù)據(jù)。length 參數(shù)給出了發(fā)送數(shù)據(jù)的長度,data 指針指向發(fā)送數(shù)據(jù)的首地址。如果發(fā)送成功,則返回SUCCESS。
HPLATA5282 模塊提供了ATA5282 接口,這個接口負責(zé)處理Wakeup 和Receive 兩個事件:
(1)async event result_t Wakeup(),該事件表明ATA5282接收到正確的前導(dǎo)和頭部信息而被激活;
(2)result_t event Receive(uint8_t *data, uint8_t len, uint8_tsuccess),該事件用于接收到1 個完整的數(shù)據(jù)包。其中,data存放接收到的數(shù)據(jù)緩沖區(qū)的首地址;len 為接收到的數(shù)據(jù)包的長度,success 表明接收到的數(shù)據(jù)是否正確。
3.2 低頻通信流程
圖 3 給出了低頻信號的發(fā)送和接收過程。最上面的波形為控制器發(fā)出的用于驅(qū)動ATA5275 的電平信號;中間的波形為低頻載波驅(qū)動信號;最下面的波形為ATA5282 的輸出信號。在收發(fā)過程中使用ATMega128 內(nèi)部的16 位計數(shù)器/定時器T/C3 完成精確定時功能。
圖3 低頻信號收發(fā)過程
發(fā)送端狀態(tài)機如圖 4 所示。為激活A(yù)TA5282,ATA5275首先要發(fā)送有效的前導(dǎo)和頭部信息。前導(dǎo)碼和報文頭部需要一段低電平保持時間(startgap)。在發(fā)送完報頭后,再保持一段同步時間(sync)后就可以發(fā)送數(shù)據(jù)。本文在程序?qū)崿F(xiàn)時采用了曼徹斯特編碼。
圖 4 ATA5275 發(fā)送狀態(tài)機
圖 5 為ATA5282 的接收狀態(tài)機,ATA5282 芯片可自動檢測前導(dǎo)碼和報頭,因此,接收端的狀態(tài)機比發(fā)送狀態(tài)機簡單,從IDLE 直接進入SYNC 狀態(tài),在這一狀態(tài)中,ATA5282 將通過輸出端的低電平喚醒與之相連的控制器。之后如果需要,ATA5282 將按照事先確定好的編碼方式接收并解析收到的低頻數(shù)據(jù)。
圖 5 ATA5282 接收狀態(tài)機
4 測試與分析
本文對該有源 RFID 系統(tǒng)進行了測試,測試結(jié)果表明,讀寫器與有源RFID 的低頻通信有效距離可達2 m 左右,而高頻通信的有效距離可達100 m 左右。在休眠狀態(tài)下,模塊待機所消耗的電流僅為20 μA。在高頻通信狀態(tài)下,模塊所消耗的電流增加了1 000 倍。因此,假如由一個2 000 mAh的電池供電,該有源RFID 模塊在待機狀態(tài)下可工作10 年以上,在持續(xù)高頻通信狀態(tài)下,可工作70 h 以上。但由于在實際應(yīng)用中,高頻通信所用時間極短,有源RFID 大部分時間工作電流處于微安級,因此本文設(shè)計的有源RFID 預(yù)計仍可工作5 年~10 年。
5 結(jié)束語
有源射頻識別系統(tǒng)具有遠距離識別的優(yōu)點,在現(xiàn)實中有廣泛的應(yīng)用需求。本文利用可完成高頻及低頻通信的芯片設(shè)計了可超低功耗工作的有源射頻識別系統(tǒng),基于TinyOS 操作系統(tǒng)建立的低頻通信部分軟件簡單可靠。該系統(tǒng)在汽車胎壓監(jiān)測、貴重物品管理等應(yīng)用中具有較高應(yīng)用價值。