一種用于定位的低功耗有源RFID標簽的設計方案
3.系統(tǒng)軟件設計
系統(tǒng)軟件設計選用了IAR EmbeddedWorkbench V4.11B平臺下的C語言編程環(huán)境,設計中綜合考慮了M S P 4 3 0 F 2 0 1 2和nRF24L01芯片的低功耗性能、穩(wěn)定性和程序執(zhí)行效率。
3.1 軟件流程
本系統(tǒng)屬于雙向通信系統(tǒng),標簽在發(fā)送數據前處于監(jiān)聽狀態(tài),nRF24L01的接收功能被打開,同時MSP430F2012處于LPM3模式,直至接收到閱讀器廣播的“開始”
指令,并通過中斷將MSP430F2012喚醒。
MSP430F2012被中斷喚醒后開始判斷指令是否正確,如果正確則進入正常發(fā)送周期,否則返回LPM3模式。
考慮到實時定位的需要,系統(tǒng)不能像一般的RFID標簽那樣僅僅進行有限次驗證,本系統(tǒng)采用等間隔持續(xù)發(fā)送的模式,便于閱讀器實時監(jiān)測目標位置,系統(tǒng)設定的正常發(fā)送周期為500ms,由MSP430F2012的Timer_A定時,500ms定時開始后,標簽ID通過SPI發(fā)送到FIFO,nRF24L01采用了增強型ShockBurstTM模式,發(fā)送失敗則會繼續(xù)重發(fā),標簽ID發(fā)送完畢后,MSP430F2012判斷定時器是否超時,一旦超時則進入下個發(fā)送周期,否則處于等待狀態(tài)直至超時。當閱讀器停止廣播“開始”指令,MSP430F2012重新進入LPM3模式以降低功耗。系統(tǒng)完整流程如圖3所示。
3.2 防沖突設計
nRF24L01自帶載波檢測功能,在發(fā)送數據前先轉入接收模式進行監(jiān)聽,確認要傳輸的頻率通道未被占用才發(fā)送數據,利用此功能可實現簡單的硬件防沖突。
考慮到本系統(tǒng)采用了500ms的統(tǒng)一發(fā)送間隔,在被定位目標眾多的場合有可能發(fā)生識別沖突,因此需要在程序中合理的增加防沖突算法。ALOHA算法主要用于有源標簽,其原理就是,一旦信源發(fā)生數據包碰撞,就讓信源隨機延時后再次發(fā)送數據??紤]到程序的復雜性勢必引起處理時間的增加,也會帶來額外的能耗,本系統(tǒng)采用了較為簡單的純ALOHA算法,即在每個500ms計時周期內隨機發(fā)送標簽ID,這就需要在程序中插入一個隨機延時,延時時長的選擇通過一個隨機值函數來實現,隨機延時范圍為0~300ms.這種簡單的防沖突算法既簡化了指令,又能大幅降低沖突概率。
另外,nRF24L01傳輸速率為1Mbps或2Mbps,單次發(fā)送一個數據包,單個數據包最大32bytes,假設標簽ID為32bytes,以2Mbps速率發(fā)送一次ID的信號寬度(傳輸時間)約為100~150μs,相對于500ms的整個定時周期而言微乎其微,但仍有可能出現發(fā)送飽和的狀態(tài),這時可以適當的延長計時周期以增加信道容量。較快的傳輸速率有助于移動目標的識別和定位,而較短的數據長度也能顯著提高標簽基于隨機延時的防沖突能力,因此盡可能將標簽ID的長度限制在32bytes以內。
3.3 部分程序代碼
3.3.1 單字節(jié)SPI發(fā)送/接收函數
3.3.2 根據命令字讀/寫接收(發(fā)送)數據包
評論