一種用于定位的低功耗有源RFID標(biāo)簽的設(shè)計(jì)方案
3.系統(tǒng)軟件設(shè)計(jì)
系統(tǒng)軟件設(shè)計(jì)選用了IAR EmbeddedWorkbench V4.11B平臺(tái)下的C語言編程環(huán)境,設(shè)計(jì)中綜合考慮了M S P 4 3 0 F 2 0 1 2和nRF24L01芯片的低功耗性能、穩(wěn)定性和程序執(zhí)行效率。
3.1 軟件流程
本系統(tǒng)屬于雙向通信系統(tǒng),標(biāo)簽在發(fā)送數(shù)據(jù)前處于監(jiān)聽狀態(tài),nRF24L01的接收功能被打開,同時(shí)MSP430F2012處于LPM3模式,直至接收到閱讀器廣播的“開始”
指令,并通過中斷將MSP430F2012喚醒。
MSP430F2012被中斷喚醒后開始判斷指令是否正確,如果正確則進(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í)開始后,標(biāo)簽ID通過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)閱讀器停止廣播“開始”指令,MSP430F2012重新進(jìn)入LPM3模式以降低功耗。系統(tǒng)完整流程如圖3所示。
3.2 防沖突設(shè)計(jì)
nRF24L01自帶載波檢測(cè)功能,在發(fā)送數(shù)據(jù)前先轉(zhuǎn)入接收模式進(jìn)行監(jiān)聽,確認(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ì)帶來額外的能耗,本系統(tǒng)采用了較為簡(jiǎn)單的純ALOHA算法,即在每個(gè)500ms計(jì)時(shí)周期內(nèi)隨機(jī)發(fā)送標(biāo)簽ID,這就需要在程序中插入一個(gè)隨機(jī)延時(shí),延時(shí)時(shí)長(zhǎng)的選擇通過一個(gè)隨機(jī)值函數(shù)來實(shí)現(xiàn),隨機(jī)延時(shí)范圍為0~300ms.這種簡(jiǎn)單的防沖突算法既簡(jiǎn)化了指令,又能大幅降低沖突概率。
另外,nRF24L01傳輸速率為1Mbps或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)。
3.3 部分程序代碼
3.3.1 單字節(jié)SPI發(fā)送/接收函數(shù)
3.3.2 根據(jù)命令字讀/寫接收(發(fā)送)數(shù)據(jù)包
評(píng)論