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