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