一種基于ZigBee技術的有源RFID系統(tǒng)
RFID(射頻辨識系統(tǒng))是一種非接觸式的自動識別技術,它通過射頻信號自動識別目標對象并獲取相關數(shù)據(jù)。典型的RFID 系統(tǒng)由電子標簽(Tag),讀寫器(Reader)以及管理系統(tǒng)等組成。主要應用于門禁管理、物流管理、車輛管理、自動控制、防盜系統(tǒng)等多種場合。但現(xiàn)有的RFID 技術存在數(shù)據(jù)安全性不高、識別距離短、設備成本高以及讀寫系統(tǒng)工作靈活性不強等問題。為推廣RFID 技術的使用,RFID 的發(fā)展應滿足一下要求:
(1) 低成本:現(xiàn)有的RFID 讀卡器需要上萬元,很難滿足大眾群體的需求。
(2) 遠距離:對于大型機構如物流、小區(qū)車輛管理、公車管理、不??渴召M站等都需要遠距離識別。
(3) 移動性:數(shù)據(jù)可無線傳輸?shù)焦芾硐到y(tǒng),系統(tǒng)組網(wǎng)簡單,可用于臨時應急方案。
(4) 可擴展性:在系統(tǒng)不做大的改動的情況下,能夠自動地進行軟件升級和功能擴張。
(5) 保密性:確保用戶的信息不被泄漏或盜取。為了解決RFID 技術的上述問題,本文提出了一種基于ZigBee 技術[2]的遠距離有源RFID 系統(tǒng)。
1 系統(tǒng)框架及硬件設計
1.1 系統(tǒng)工作原理
與典型RFID 一樣,系統(tǒng)由電子標簽,讀寫器和服務器管理系統(tǒng)組成,如圖1 所示。
電子標簽為智能有源RFID 電子標簽,標簽內不僅存儲著物體的具體信息,還集成有相應的傳感器,可以對周圍環(huán)境進行監(jiān)測,并把數(shù)據(jù)與自己的信息一起傳到服務器。有源標簽本身有發(fā)送數(shù)據(jù)的自主權,減輕了讀寫器的負擔,增大了標簽與讀寫器之間的距離,減少了讀寫器的個數(shù)。讀寫器之間可以通過ZigBee協(xié)議構成無線傳感器網(wǎng)絡,讀寫器之間可以協(xié)調工作;通過多跳方式把數(shù)據(jù)傳到服務器,擴大了網(wǎng)絡覆蓋面積。服務器可以通過調用數(shù)據(jù)庫中存儲的進入網(wǎng)絡的標簽的信息,對物體進行定位,跟蹤或觸發(fā)相應事件,實現(xiàn)人與人或人與物的交互。
圖1 系統(tǒng)原理圖
1.2 硬件的設計原理
結合目前市場上ZigBee 射頻芯片的性能、價格,本系統(tǒng)采用Chinpcon 公司的CC2430.C2430 芯片是高度集成的解決方案[3],僅需很少的外部元件,且所選用元件均為低成本,可支持快速、廉價的ZigBee 節(jié)點的構建。由于技術成熟,這里就不給出CC2430 的具體內部結構圖和它的外圍電路圖,請參閱其技術手冊[4].
讀寫器采用RS232 串口與服務器相連,使用了寬電壓范圍的SP3232E 電平轉換芯片,它的電壓范圍在3.3 到5V.電源模塊采用LM1117 低壓差電壓調節(jié)器,采用具有固定電壓輸出3.3V 型號的LM1117-3.3,用5V 適配器為讀卡器供電。
CC2430 內部集成了8~14 位ADC,簡化了標簽的硬件電路設計。電池使用紐扣式電池供電,有利于減小標簽體積。標簽的天線基于1/4 波長單端PCB 印制天線理論設計[5],天線直接印制在PCB 板上,使得標簽緊湊小巧。
為了增大讀卡器與標簽的通信距離,減少路由個數(shù),我們使用TI 公司推出的用于2.4GHz 射頻前端集成芯片CC2591[6].CC2591 專門用于低功耗、低電壓無線傳輸系統(tǒng),集成了輸出功率高達+22dBm 的功率放大器,及可以將接收靈敏度提高+6dB 的低噪聲放大器,從而能大大提高設備的通信范圍。CC2591 使得在空曠場地的傳輸距離提高到400 米至800 米,比原來提高15 倍。CC2591 外圍電路圖如圖2 所示。
圖2 CC2591 外圍電路圖
與CC2430 的通信接口包括RF_P,RXTX,RF_N,PAEN,EN,HGM.其中RF_P、RF_N 必須與CC2430的RF_P、RF_N 連接,分別映射到系統(tǒng)協(xié)議棧內部接口和寄存器。PAEN , EN 使能端接CC2430 的RRFG_OUT,RXTX 接到CC2430 的RXTX_SWITCH,HGM 可接任意普通I/O 口。電源引腳的電容為濾波電容,同時與電感L111 構成射頻負載。CC2591 和天線之間的C111,C112,C113 和L112 L111 網(wǎng)絡相匹配,整個結構滿足RF輸入/輸出匹配電阻(50Ω)的要求,同時C112 為芯片內部的PA 及LAN 提供直流偏置。
R151 是偏置電阻,為CC2591 內部提供一個精確的偏置電流。
{$PAGE$}
2 系統(tǒng)軟件架構
2.1 讀寫器與標簽的通信
讀寫器與標簽通信,首先必須有ZigBee 網(wǎng)絡存在。這就需要系統(tǒng)中讀寫器(一般與服務器直接串口相連)將網(wǎng)絡建立起來,并負責地址的分配和成員的加入、節(jié)點設備數(shù)據(jù)的更新、設備關聯(lián)表的維護。標簽發(fā)現(xiàn)網(wǎng)絡,就會請求加入網(wǎng)絡。入網(wǎng)成功后,標簽就與其中讀寫器建立父子關系,時刻保持通信。為了降低標簽功耗,標簽具有定時休眠的功能。
本系統(tǒng)采用Z-stack 協(xié)議棧來完成網(wǎng)絡的建立及路由或標簽的入網(wǎng),從而建立通信鏈路。
2.1.1 網(wǎng)絡形成
讀卡器上電后,將掃描DEFAULT_CHANLIST 指定的通道,最后在其中之一形成網(wǎng)絡(根據(jù)ZDAPP_CONFIG_PAN_ID 的值)。然后調用ZDO 層的初始化設備函數(shù)ZDOInitDevice(0)設置NV 網(wǎng)絡狀態(tài):
networkStateNV=INITDEV_NEW_NETWORK_STAT;最終觸發(fā)網(wǎng)絡初始化函數(shù),設置網(wǎng)絡初始化事件;ZDO層任務事件處理函數(shù)對網(wǎng)絡初始化事件進行處理,調用ZDO_StartDevice()函數(shù),將改變設備狀態(tài)為協(xié)調器啟動:devState = DEV_COORD_STARTING;然后調用NWK 層網(wǎng)絡形成請求函數(shù):NLME_Network-FormationRequest();NWK 層通過調用MAC 和PHY 層相關功能函數(shù)執(zhí)行一些列網(wǎng)絡形成動作,最終形成網(wǎng)絡。
2.1.2 標簽加入網(wǎng)絡
標簽在上電初始化以后,經(jīng)過初始化設備、設置NV 網(wǎng)絡狀態(tài)、觸發(fā)網(wǎng)絡初始化函數(shù)、設置網(wǎng)絡初始化事件、啟動設備后將改變設備狀態(tài)為發(fā)現(xiàn)網(wǎng)絡:
devState = DEV_NWK_DISC;調用NWK 層發(fā)現(xiàn)網(wǎng)絡請求函數(shù):NetworkDiscoveryRequest();然后NWK 層通過調用MAC 和PHY 層相關功能函數(shù)執(zhí)行一些列發(fā)現(xiàn)網(wǎng)絡動作,發(fā)送發(fā)現(xiàn)網(wǎng)絡消息至ZDO 層。ZDO 層接收到該消息后,修改設備狀態(tài)為正在加入網(wǎng)絡:
devState = DEV_NWK_JOINING; NWK 層通過調用MAC 和PHY 層相關功能函數(shù)執(zhí)行一些列請求加入網(wǎng)絡動作,并發(fā)送加入網(wǎng)絡指示消息至ZDO 層。ZDO層任務事件處理函數(shù)將執(zhí)行處理加入網(wǎng)絡函數(shù):
ZDApp_ProcessNetworkJoin();修改設備狀態(tài)為終端設備:devState = DEV_END_DEVICE.設置ZDO 狀態(tài)改變事件: osal_set_event(ZDAppTaskID, ZDO_STATE_CHANGE_EVT );最終加入已有網(wǎng)絡,與讀卡器進行通信。
2.2 讀寫器與有源RFID 標簽的軟件流程圖
讀寫器設備初始化后首先要檢測是否有網(wǎng)絡存在,這決定了讀寫器是作為網(wǎng)絡的協(xié)調器還是路由器,來完成相應的功能。標簽設備初始化后,首先加入網(wǎng)絡,再執(zhí)行設備程序,完成傳感器數(shù)據(jù)采集等功能。
在它休眠醒來或數(shù)據(jù)發(fā)送完成后,要檢測一下是不是已經(jīng)離開網(wǎng)絡。如果標簽遠離與它通信的讀寫器,它將通過孤點方式再次申請加入網(wǎng)絡,與新的讀寫器建立通信。讀寫器與有源RFID 標簽的具體工作流程如圖3 所示。
圖3 讀寫器與有源RFID 標簽的具體工作流程
2.3 低功耗設計
由于標簽是有源RFID,低功耗設計是非常重要的。在設計中,主要采用增加休眠時間還減少通信流量兩種方法來實現(xiàn)的。標簽在休眠時的功耗將近為喚醒時的千分之一,在保證監(jiān)控的真確性的前提下,增長休眠時間是低功耗設計的一個重要手段。設計中用定時器1 作為定時休眠,休眠時間為10s.具體實現(xiàn):
__interrupt void T1_ISR(void)
{ IRCON &= ~0x02; //清中斷標志
counter++;
if(counter == 250)
{counter = 0;timetemp = 10; }//10 秒到
PowerMode(3); }//進入休眠模式3
為了減少標簽的通信流量,標簽會記錄上一次的狀態(tài)(如溫度變化),根據(jù)狀態(tài)是否變化來決定是否傳輸數(shù)據(jù)。具體實現(xiàn):
if(oldstate!=newstate)
{zb_SendDataRequest(0xFFFE,REPORT_CMD_ID, 2, pData,0,AF_ACK_REQUEST,0);} //發(fā)送數(shù)據(jù)請求
else{PowerMode(3);}}//進入休眠模式3
3 測試結果
在測試時,我們模擬倉庫管理系統(tǒng)。將標簽中寫入了物體的具體信息(我們這里寫入一個ID 號),并在標簽上設計了溫度傳感器電路,用來實時監(jiān)測物體周圍環(huán)境信息。讀卡器與計算機相連,通過串口顯示標簽的信息。串口顯示如圖4 所示。
圖4 測試顯示結果
4 結語
本文基于ZigBee 技術設計了一種工作頻段為2.4GHz 的有源RFID 系統(tǒng)。改善了目前RFID 系統(tǒng)識別距離短,組網(wǎng)不靈活,抗干擾能力差的缺點。詳細地介紹了整個系統(tǒng)的開發(fā)流程。但是此系統(tǒng)中標簽價格仍然昂貴,只適合于貴重物體跟蹤等少數(shù)場合。隨著技術水平的不斷提高,生產(chǎn)出價格低廉,集成度更高的射頻芯片,使得芯片體積更小,價格更低,此系統(tǒng)便可以得到廣泛應用。