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