??? 摘? 要: 提出了一種基于CC2500射頻芯片的低成本2.45GHz RFID系統設計方案。從硬件電路設計和軟件實現兩方面,解決RFID系統中有源標簽的功耗問題,并在CC2500的硬件功能基礎之上,利用時分多址(TDMA)與頻分多址(FDMA)相結合的方法實現多標簽識別的防碰撞算法。?
??? 關鍵詞: CC2500; RFID; 有源標簽; 防碰撞
?
??? 射頻識別RFID(Radio Frequency Identification)是一項利用射頻信號及其空間耦合和傳輸特性,非接觸式地實現對物體自動識別的技術。RFID技術最早在二戰期間被美國國防部用于戰用物資的管理,2004年6月沃爾瑪公司宣布其主要的100家供貨商在2005年前必須使用RFID標簽[1],推動了RFID的研究熱潮,而中國RFID的研究起步較晚,近幾年在第二代公民身份證中應用了RFID技術以后,才得到較大發展。?
??? RFID系統主要可分為閱讀器與標簽兩部分,而標簽則可分為有源標簽與無源標簽。無源標簽體積小,成本低,但它只能靠閱讀器的磁場提供能量工作,識別距離受到很大限制。有源標簽有較大識別距離,但體積較大,成本也較高,而且對標簽功耗有非常苛刻的要求。有源標簽在運輸行業對物品跟蹤方面有很好的應用。RFID系統軟件實現的關鍵技術是要解決多標簽同時識別時的防碰撞問題。?
1 芯片選型?
??? 本設計所用的控制器為TI公司生產的MSP430系列16位單片機,它集成了定時器、LCD控制器、硬件乘法器、ADC、DAC、DMA等多種功能模塊,而且價格低,具有很高的性價比。其處理功耗(1.8~3.6V,0.1~400μA,250μA/MIPS)和口線輸入漏電流(最大50nA)在業界都是最低的,適合用于功耗要求嚴格的有源標簽設計。?
??? 射頻模塊采用TI公司生產的CC2500芯片,它是一款超低功耗、低成本的無線收發模塊,其載頻范圍在2.400GHz~2.483GHz內可調,可用來實現多信道通信。它支持多種調制方式,包括FSK、GFSK、OOK和MSK,數據傳輸速率最高可達500kb/s。CC2500還為信息包處理、數據緩沖、脈沖傳送、空閑信道評估、連接品質指示和電磁喚醒等功能提供了額外的硬件支持。它有四種主要的狀態:接收(RX)、發送(TX)、空閑(IDLE)和休眠(SLEEP)。?
??? 空閑信道評估CCA(Clear Channel Assessment)功能是指當CC2500處于RX狀態時,可以檢測自身所處信道的電磁場的強弱以判斷該信道是否空閑。本設計中利用該功能來避免多個標簽同時響應閱讀器查詢時發生的碰撞。當一個標簽收到閱讀器的查詢時,讓它先進行CCA檢測,若檢測到該信道忙,表明已經有其他標簽響應了,自身不再響應,等待下一次查詢命令到來,否則正常響應。?
??? 有源標簽設計的關鍵問題之一是功耗,解決這一問題一般靠兩種途徑,一是選擇功耗低的元器件,CC2500在250kb/s的速率時,接收的電流消耗為13.3mA,在業界來說已經是非常低。另一種改善功耗的方法是利用科學的軟件實現,利用CC2500的電磁喚醒功能WOR(Wake on Radio)可設計一種很好的解決方案。當CC2500處于WOR運行下的SLEEP狀態時,除了內部實現喚醒功能的計數器工作,其他功能都已停止,此時CC2500的功耗僅為900nA。當計數器到達可編程的指定時間時,自動從SLEEP狀態切換到IDEL狀態,再進入RX狀態,如果此時收到數據,就退出WOR進入正常模式;如果處于RX狀態在指定時間內收不到數據,則自動回到SLEEP狀態。因此只要保證在一個完整的WOR周期內,標簽絕大部分時間都處于SLEEP狀態,就可以大大降低標簽的功耗。?
2 系統框架?
??? 系統框圖如圖1所示,閱讀器控制器采用的是MSP430F2274單片機,具有32KB的Flash與1KB的RAM,標簽控制器采用MSP430F2013單片機,具有2KB的Flash 與128B的RAM,閱讀器與標簽都是利用單片機的P1口模擬SPI口與CC2500射頻模塊的數字接口進行通信。作為閱讀器部分的MSP430F2274則用其專用的TXD與RXD引腳通過MAX3232實現電平轉換后與PC機的串口相連,以完成閱讀器讀取數據的顯示。?
?
?
??? CC2500的外圍器件比較簡單,天線采用Rainsun公司的2.45GHz貼片天線,標簽采用紐扣電池供電。CC2500的RF_N與RF_P是差分射頻信號輸出引腳,輸出阻抗為(80+j74)Ω,而天線是50?贅的單端輸入,因此之間需要搭建一個差分到單端的阻抗匹配網絡。CC2500射頻模塊的電路原理圖如圖2所示。?
?
?
??? 如圖2所示,射頻模塊通過由6個引腳組成的數字交互界面與控制器進行通信。MSP430系列單片機的端口功能強大,每一個位都可以獨立地配置成為輸入、輸出、中斷等功能引腳。閱讀器與標簽的控制器都可將單片機的P1腳中的6位,分別與CC2500的SI、CLK、SO、GDO2、GDO0、CS相連接,其中由CS、CLK、SI、SO組成SPI口,負責控制器與CC2500之間收發數據的傳送。GDO0與GDO2是CC2500可配置的多功能引腳,當CC2500收到數據包時,令GDO0觸發控制器引起中斷,讀取CC2500緩存里的數據。通過配置GDO2則可提供CC2500的CCA檢測結果。?
??? 閱讀器與標簽之間以射頻模塊規定的數據包格式通信,CC2500規定的數據通信格式如圖3所示。?
?
?
??? 導言、同步字與CRC校驗在發送數據時是由CC2500硬件自動添加,在接收時由硬件自動去除,在信道特性較好的場合,為提高識別速度,可設定16位的導言與16位的同步字。CC2500在固定長度通信模式下,可刪去長度域;在可變長度通信模式下,需要8位的長度域給出除去導言與同步字外所有數據負載的字節數。本設計中要用到多種不同長度的通信命令,因此采用了后一種模式。地址域用于CC2500多設備識別,本設計沒用到,刪去。最后兩個字節的CRC校驗是長度域、地址域與數據負載的校驗和。?
3 防碰撞算法?
??? RFID系統軟件實現的重點是防碰撞算法的實現,目前這類算法的實現方法有空分多址(SDMA)、頻分多址(FDMA)、碼分多址(CDMA)和時分多址(TDMA)等,而應用較廣的是時分多址技術中兩種主要的算法:二進制搜索算法和Aloha算法。Aloha算法實現簡單, 便于實際應用,但隨著標簽數量的擴大,性能將會急劇惡化[2]。二進制搜索算法的實現要比Aloha算法復雜,但算法識別效率較高[3]。?
??? 本設計方案中采用FDMA與TDMA相結合的方法。FDMA利用了CC2500的載頻在2.400GHz~2.483GHz之間可調的特點,本設計以400KB為間隔,選擇了其中的65個信道。其中第1個信道為主信道,用于平時的查詢與標簽的軟件復位,其余64個信道用作FDMA的子信道。當有大量標簽同時需要識別時,把標簽隨機分配到這些子信道中,就可以大大減少碰撞的機會。?
??? 由于是隨機分配,多個標簽被分到同一個子信道上是可能的,此時采用CC2500的CCA功能根據TDMA的思想來解決多個標簽的先后響應問題。在標簽被分到子信道的同時,以ID號為種子產生一個隨機延時,當標簽收到閱讀器查詢后,先度過這一延時,再進行CCA檢測與回復。它與Aloha算法中為了讓各個標簽能在不同的時間段內發送回復以求不碰撞的延時是有區別的,相比之下,此設計中的延時要小得多,只是讓延時最小的標簽首先發送回復,使延時較大的標簽有足夠的時間通過CCA檢測知道信道已經被占用。這樣就可以避免在同一個子信道上多個標簽同時回復的情況。在最壞的情況下,標簽的延時偶然地出現了一致,同時在信道上做出了響應,這時閱讀器會因收到的回復CRC校驗不正確而將其舍棄,并在該信道上重新發送查詢命令。?
4 系統軟件實現流程?
??? 閱讀器軟件實現過程中有以下幾個主要命令:?
??? (1)Query命令:閱讀器對標簽進行查詢的命令。?
??? (2)QueryAck命令:標簽響應閱讀器查詢的命令,其中含有標簽ID等信息。?
??? (3)Kill命令:閱讀器識讀完標簽后,使其處于沉默狀態,不再響應同一閱讀器查詢的命令。?
??? (4)Active命令:閱讀器用于軟件復位在識別場內所有標簽的命令。?
??? 閱讀器開機復位后,在主信道上持續地發送Query命令,一旦收到標簽回復的QueryAck命令,閱讀器都默認為有多個標簽存在,則首先識別該回復的標簽,并在主信道上發送Kill命令將其滅活,其后,循環查詢64個子信道。遍查子信道時,在第一個子信道上發送一個Query命令,若在指定時間內沒收到標簽回復,則直接到下一個子信道查詢;若收到標簽回復,識別后發送Kill命令將其滅活,然后在該子信道上再發送一個Query命令,重復以上過程,直到在指定時間內收不到標簽回復為止,表明該子信道上的所有標簽都已讀出,繼續下一個子信道的查詢。當64個子信道都查完,即所有標簽都已識別,回到主信道上持續發送Query命令等待標簽回復。閱讀器軟件流程如圖4所示。?
??? 標簽軟件流程如圖5所示,標簽平時處于“激活的WOR”模式(是指接收到Query命令馬上響應的WOR模式,區別于下面的“滅活的WOR”,它是指接收到Query命令但不響應的WOR模式),在主信道上偵聽閱讀器的查詢。當標簽進入閱讀器磁場,被定時喚醒處于RX狀態時(設定RX的持續時間是兩倍的Query查詢周期),肯定能接收到一個完整的Query命令,隨機延時后進行CCA檢測,若信道空閑,則發送一個QueryAck命令,然后等待閱讀器返回的Kill命令。標簽收到Kill命令表示識讀成功,則進入滅活的WOR狀態;若收不到,表示由于標簽回復碰撞或其他原因識讀不成功,則在原來的信道上進入RX狀態偵聽閱讀器重發的Query命令。?
?
?
??? 如果標簽在平時收到閱讀器的Query命令,隨機延時后的CCA檢測結果是信道忙,表明有多個標簽需要識別,因此隨機跳到64個子信道其中之一,進入RX狀態偵聽閱讀器的Query命令。在子信道上與閱讀器的通信過程和在主信道上的過程幾乎一樣,唯一差別是當標簽的CCA檢測表明信道忙時,不再隨機選擇信道,而是在原來的子信道上處于RX狀態偵聽閱讀器重發的Query命令。?
??? 無論標簽處于哪種狀態,收到Kill命令后,表示標簽被閱讀器成功讀取,回到主信道上進入滅活的WOR模式,在標簽控制器中啟動一個專用的計時器用來標示標簽是否離開了閱讀器的磁場。只要標簽還在同一閱讀器的識別范圍內,在被喚醒時還是能收到Query命令,此時標簽已被該閱讀器讀取過,不再作出響應,清零專用計時器,重新計時。如果計時器超過一定時間都沒收到Query命令,則表明標簽已經離開該閱讀器的識別范圍,關閉計時器,標簽進入激活的WOR模式,等待下一個閱讀器的查詢。?
??? RFID應用越來越廣泛,本文提出一種體積小、成本低、簡單易行的2.45GHz頻段的RFID系統設計方案,重點闡述了如何降低有源標簽功耗與防碰撞算法的實現,論證其現實可行性,具有較高實用價值。?
參考文獻?
[1] 丁軍. RFID技術及其應用[J].工業儀表與自動化裝置,2006,(5):74-75.?
[2]?KALINOWSKI R, LATTEUX M, SIMPWT D. An adaptive??anti- collision protocol for smart labels[EB/OL]. 2001.?http://www2.lifl.fr/~simplot/recherche/articles/KLS_adaptive_acpsl.pdf.?
[3] 崔沂峰,陳平.射頻識別技術防碰撞算法的研究[J].科技信息(學術版),2007,(11).?
[4] FINKENZELLER K.射頻識別技術(第3版)[M]. 吳曉峰,?陳大才,譯. 北京:電子工業出版社, 2006.?
[5] 寧煥生,張彥. RFID產品研發及生產關鍵技術[M].北京:電子工業出版社.2007.?
[6] CC2500.pdf. Chipcon Products from Texas Instruments. 2006.