基于MSP430F2012和nRF24L01的有源RFID標(biāo)簽的應(yīng)用設(shè)計(jì)
本文介紹了有源標(biāo)簽的設(shè)計(jì)理念出發(fā),針對(duì)煤礦井下一般小范圍空間RFID定位的需求,根據(jù)低功耗、高效率的原則進(jìn)行RFID標(biāo)簽的設(shè)計(jì)。系統(tǒng)在硬件上采用了MSP430F2012單片機(jī)和nRF24L01射頻芯片的低功耗組合;軟件上則結(jié)合了RFID定位的特點(diǎn),介紹了有別于一般以識(shí)別為主要目的的標(biāo)簽的設(shè)計(jì)方法,并分析了其軟件設(shè)計(jì)流程以及簡(jiǎn)單的防沖突能力。通過(guò)良好匹配的天線,本設(shè)計(jì)有效讀取距離可達(dá)幾十米,足以應(yīng)付一般空間內(nèi)定位的需求。
1.引言
射頻識(shí)別(RFID)技術(shù)是采用無(wú)線射頻的方式實(shí)現(xiàn)雙向數(shù)據(jù)交換并識(shí)別身份,RFID定位正是利用了這一識(shí)別特性,利用閱讀器和標(biāo)簽之間的通信信號(hào)強(qiáng)度等參數(shù)進(jìn)行空間的定位。
RFID標(biāo)簽按供電方式分為有源和無(wú)源2種[1],無(wú)源標(biāo)簽通過(guò)捕獲閱讀器發(fā)射的電磁波獲取能量,具有成本低、尺寸小的優(yōu)勢(shì);有源標(biāo)簽通常采用電池供電,具有通信距離遠(yuǎn)、讀取速度快、可靠性好等優(yōu)點(diǎn)[2],但為了滿足煤礦井下定位,需要考慮低功耗設(shè)計(jì)以增強(qiáng)電池的續(xù)航能力。本文從有源標(biāo)簽的設(shè)計(jì)理念出發(fā),針對(duì)小范圍空間RFID定位的需求,根據(jù)低功耗、高效率的原則進(jìn)行RFID標(biāo)簽的設(shè)計(jì),并闡述了其硬件組成、軟件流程和防沖突能力。
2.系統(tǒng)硬件設(shè)計(jì)
2.1系統(tǒng)結(jié)構(gòu)
有源標(biāo)簽在設(shè)計(jì)中除了需要考慮低成本、小型化之外,最重要的是要采取低功耗設(shè)計(jì)。
RFID標(biāo)簽從整體結(jié)構(gòu)上看,通常包括2個(gè)部分:控制端和射頻端,因此在選擇控制芯片和射頻芯片時(shí)需要優(yōu)先考慮其低功耗性能。本文在此基礎(chǔ)上選擇了MSP430F2012控制芯片和nRF24L01射頻芯片;天線則選用了Nordic公司的PCB單端天線;標(biāo)簽采用3V-500mAh紐扣電池供電。系統(tǒng)工作在2.4GHz頻段。系統(tǒng)結(jié)構(gòu)框圖如圖1所示。
圖1 系統(tǒng)結(jié)構(gòu)框圖
2.2芯片選擇及低功耗設(shè)計(jì)
TI推出的MSP430系列單片機(jī)是16位Flash型RISC指令集單片機(jī)[3],以超低功耗聞名業(yè)界。
MSP430F2012芯片工作電壓僅為1.8~3.6V,掉電工作模式下消耗電流為0.1μA,等待工作模式下消耗電流僅為0.5μA.本設(shè)計(jì)中,MSP430F2012被長(zhǎng)時(shí)間置于等待工作模式,通過(guò)中斷喚醒的方式使其短暫進(jìn)入工作狀態(tài),以節(jié)省電能。MSP430F2012具有3組獨(dú)立的時(shí)鐘源:片內(nèi)VLO、片外晶振、DCO.其中,片外時(shí)鐘基于外部晶振;DCO由片內(nèi)產(chǎn)生,且頻率可調(diào)。顯然,主系統(tǒng)時(shí)鐘頻率的高低決定著系統(tǒng)的功耗,尤其是選擇了高速片外晶振的情況下,因此,MSP430F2012提供了在不同時(shí)鐘源間進(jìn)行切換的功能。在實(shí)際設(shè)計(jì)中,通過(guò)實(shí)時(shí)重新配置基礎(chǔ)時(shí)鐘控制寄存器以實(shí)現(xiàn)主系統(tǒng)時(shí)鐘和輔助系統(tǒng)時(shí)鐘間的切換,既不失性能,又節(jié)約了能耗。
MSP430F2012具有LPM0~LPM4五種低功耗模式,合理的利用這五種預(yù)設(shè)的模式是降低MCU功耗的關(guān)鍵,本設(shè)計(jì)中,MSP430F2012在上電配置完畢后將直接進(jìn)入LPM3模式,同時(shí)開(kāi)啟中斷,等待外部中斷信號(hào)。此外,由于MSP430F2012是一款多功能通用單片機(jī),片內(nèi)集成了較多功能模塊,在上電配置時(shí)即停止所有不使用的功能模塊也能起到降低系統(tǒng)功耗的目的。
nRF24L01是Nordic公司開(kāi)發(fā)的2.4GHz超低功耗單片無(wú)線收發(fā)芯片,芯片有125個(gè)頻點(diǎn),可實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)和點(diǎn)對(duì)多點(diǎn)的無(wú)線通信,最大傳輸速率可達(dá)2Mbps,工作電壓為1.9~3.6V[4].為了凸顯其低功耗性能,芯片預(yù)置了兩種待機(jī)模式和一種掉電模式。更值得一提的是nRF24L01的ShockBurstTM模式及增強(qiáng)型ShockBurstTM模式[4],真正實(shí)現(xiàn)了低速進(jìn)高速出,即MCU將數(shù)據(jù)低速送入nRF24L01片內(nèi)FIFO,卻以1Mbps或2Mbps高速發(fā)射出去。本設(shè)計(jì)正是利用了增強(qiáng)型ShockBurstTM模式,使得MSP430F2012即便在32768Hz低速晶振下也能通過(guò)射頻端高速的將數(shù)據(jù)發(fā)射出去,既降低了功耗,又提高了效率,增強(qiáng)了系統(tǒng)防沖突和應(yīng)付移動(dòng)目標(biāo)能力。
2.3電路設(shè)計(jì)
本系統(tǒng)主要運(yùn)用于RFID定位方面,除了簡(jiǎn)單的識(shí)別外,重點(diǎn)在于閱讀器對(duì)標(biāo)簽信號(hào)強(qiáng)度的測(cè)量,因此閱讀器與標(biāo)簽間不會(huì)有大數(shù)據(jù)量頻繁的讀寫(xiě)操作,在電路設(shè)計(jì)時(shí)可省略片外EEPROM.同時(shí)還可以省去穩(wěn)壓電路以節(jié)省靜態(tài)電流消耗。硬件原理圖如圖2所示。
圖2 硬件原理圖
3.系統(tǒng)軟件設(shè)計(jì)
3.1軟件流程
本系統(tǒng)屬于雙向通信系統(tǒng),標(biāo)簽在發(fā)送數(shù)據(jù)前處于監(jiān)聽(tīng)狀態(tài),nRF24L01的接收功能被打開(kāi),同時(shí)MSP430F2012處于LPM3模式,直至接收到閱讀器廣播的“開(kāi)始”指令,并通過(guò)中斷將MSP430F2012喚醒。MSP430F2012被中斷喚醒后開(kāi)始判斷指令是否正確,如果正確則進(jìn)入正常發(fā)送周期,否則返回LPM3模式。
考慮到實(shí)時(shí)定位的需要,系統(tǒng)不能像一般的RFID標(biāo)簽?zāi)菢觾H僅進(jìn)行有限次驗(yàn)證,本系統(tǒng)采用等間隔持續(xù)發(fā)送的模式,便于閱讀器實(shí)時(shí)監(jiān)測(cè)目標(biāo)位置,系統(tǒng)設(shè)定的正常發(fā)送周期為500ms,由MSP430F2012的Timer_A定時(shí),500ms定時(shí)開(kāi)始后,標(biāo)簽ID通過(guò)SPI發(fā)送到FIFO,nRF24L01采用了增強(qiáng)型ShockBurstTM模式,發(fā)送失敗則會(huì)繼續(xù)重發(fā),標(biāo)簽ID發(fā)送完畢后,MSP430F2012判斷定時(shí)器是否超時(shí),一旦超時(shí)則進(jìn)入下個(gè)發(fā)送周期,否則處于等待狀態(tài)直至超時(shí)。當(dāng)閱讀器停止廣播“開(kāi)始”指令,MSP430F2012重新進(jìn)入LPM3模式以降低功耗。
系統(tǒng)完整流程如圖3所示。
圖3 軟件流程圖
3.2防沖突設(shè)計(jì)
nRF24L01自帶載波檢測(cè)功能,在發(fā)送數(shù)據(jù)前先轉(zhuǎn)入接收模式進(jìn)行監(jiān)聽(tīng),確認(rèn)要傳輸?shù)念l率通道未被占用才發(fā)送數(shù)據(jù),利用此功能可實(shí)現(xiàn)簡(jiǎn)單的硬件防沖突。
考慮到本系統(tǒng)采用了500ms的統(tǒng)一發(fā)送間隔,在被定位目標(biāo)眾多的場(chǎng)合有可能發(fā)生識(shí)別沖突,因此需要在程序中合理的增加防沖突算法。ALOHA算法主要用于有源標(biāo)簽,其原理就是,一旦信源發(fā)生數(shù)據(jù)包碰撞,就讓信源隨機(jī)延時(shí)后再次發(fā)送數(shù)據(jù)。考慮到程序的復(fù)雜性勢(shì)必引起處理時(shí)間的增加,也會(huì)帶來(lái)額外的能耗,本系統(tǒng)采用了較為簡(jiǎn)單的純ALOHA算法,即在每個(gè)500ms計(jì)時(shí)周期內(nèi)隨機(jī)發(fā)送標(biāo)簽ID,這就需要在程序中插入一個(gè)隨機(jī)延時(shí),延時(shí)時(shí)長(zhǎng)的選擇通過(guò)一個(gè)隨機(jī)值函數(shù)來(lái)實(shí)現(xiàn),隨機(jī)延時(shí)范圍為0~300ms.這種簡(jiǎn)單的防沖突算法既簡(jiǎn)化了指令,又能大幅降低沖突概率。
另外,n R F 2 4 L 0 1傳輸速率為1 M b p s或2Mbps,單次發(fā)送一個(gè)數(shù)據(jù)包,單個(gè)數(shù)據(jù)包最大32bytes,假設(shè)標(biāo)簽ID為32bytes,以2Mbps速率發(fā)送一次ID的信號(hào)寬度(傳輸時(shí)間)約為100~150μs,相對(duì)于500ms的整個(gè)定時(shí)周期而言微乎其微,但仍有可能出現(xiàn)發(fā)送飽和的狀態(tài),這時(shí)可以適當(dāng)?shù)难娱L(zhǎng)計(jì)時(shí)周期以增加信道容量。較快的傳輸速率有助于移動(dòng)目標(biāo)的識(shí)別和定位,而較短的數(shù)據(jù)長(zhǎng)度也能顯著提高標(biāo)簽基于隨機(jī)延時(shí)的防沖突能力,因此盡可能將標(biāo)簽ID的長(zhǎng)度限制在32bytes以內(nèi)。
4.測(cè)試結(jié)果
對(duì)于RFID系統(tǒng)而言,最重要的參數(shù)就是讀取距離[5]和有效讀取率。本次實(shí)驗(yàn)測(cè)試設(shè)備為標(biāo)簽3枚,閱讀器一臺(tái),PC一臺(tái),閱讀器基于MSP430F149和nRF24L01芯片設(shè)計(jì),并通過(guò)RS232串口與PC進(jìn)行通信。測(cè)試中,分別將3枚標(biāo)簽置于距離閱讀器15m、30m、45m處,便簽ID分別為AABBCCDDFFFFFF01、AABBCCDDFFFFFF02、AABBCCDDFFFFFF03,每枚標(biāo)簽進(jìn)行一小時(shí)(約7200次)連續(xù)讀取測(cè)試。
評(píng)論