短距離無線資料低功耗傳輸協議研究

來源:互聯網
上載者:User
 

短距離無線資料低功耗傳輸協議研究
[日期:2008-9-4] 來源:單片機與嵌入式系統應用   作者:王琢玉 方晨 劉昊 [字型: ]

 

 短距離無線資料轉送是一種線纜替代技術,在當前很多領域(如工業生產、醫學監護、科學研究等)都得到了廣泛的應用。它的出現,解決了因環境和條件限制而不利於有線布線的問題,同時具有低成本、方便攜帶等優點。然而由於存在高功耗的缺點,使得這技術在很多供電受限的工業現場應用中受到了很大的限制。本文基於 Freescale公司的MC13213硬體平台對短距離無線資料的低功耗傳輸協議進行了研究,在保證資料可靠傳輸的同時,極大地降低了裝置的功耗。

1  主要晶片介紹

    MC13213是Freescale公司推出的一款SoC晶片,它主要由微處理器和射頻模組兩部分組成。微處理器採用8位的HCS08核心,整合了1個 SPI(Serial Peripheral Interface)介面、1個8路的8/10位A/D轉換器、2個TPM(Timer/PWM)模組、2個SCI(Serial Communication Interface)介面、2個I2C和1個8路的KBI(Keyboard Interrupt)介面。射頻模組的工作頻段是2.4 GHz,通過SPI匯流排與處理器通訊。其主要特點有:

    ◆ 採用2.4 GHz頻段,其設計構架符合IEEE 802.15.4協議;
    ◆ 接收靈敏度<-92 dBm,發送功率為-28.7~+3.4 dBm可調;
    ◆ 擁有0~15(共16)個可選工作通道;
    ◆ 採用直接序列擴頻(direct sequence spread spectrum)的二進位編碼方式,增強了抗幹擾能力;
    ◆ 採用OQPSK數字相移鍵控調製技術,大大降低了資料轉送的誤碼率;
    ◆ 採用免衝突的偵測載波多址接入(CSMACA)機制,避免了資料轉送過程中的衝突。

2  硬體系統設計

    1所示,整個系統硬體結構由4部分組成:RS232/485匯流排介面單元、資料處理單元、射頻收發單元和電源管理單元。


圖1  短距離無線資料轉送模組硬體結構圖

    一方面,PC/儀器儀錶通過RS232/485匯流排將資料傳送給MCU處理器,處理器將資料包進行適當處理後送給射頻模組發送出去;另一方面,射頻模組將接收到的資料送給MCU處理器,處理器經過解包處理後再通過RS232/485匯流排將資料送給PC/儀器儀錶。

    工業中的儀器儀錶大多都採用RS485匯流排通訊方式,因此無線資料轉送裝置提供RS232/485可選通訊介面,既方便串連PC機,又滿足了一般儀器儀錶的要求,串口傳輸速率為1 200~115 200 bps可調。

3  軟體設計和低功耗通訊協定研究

    無線資料轉送裝置的一般工作流程2所示。在進行相關初始化之後就進入主迴圈,對射頻模組和串口進行輪詢:當射頻模組接收到資料包時就進行解包,然後送到RS232/485匯流排;當串口接收到從RS232/485匯流排上發來的資料時,就進行相關處理並送入射頻模組發送出去。這種輪詢的方式結構簡單,實現方便。


圖2  短距離無線傳輸裝置軟體流程

    然而,在這種工作方式下,射頻模組就必須時刻監聽通道。在2.7  V工作電壓、處理器時鐘頻率為2 MHz時,MC13213的射頻模組接收工作電流IRF(Rx)≈37 mA,處理器以及外圍器件的工作電流Imcu≈2 mA,因此裝置的正常工作電流I≈39 mA,這個電流對於一些供電受限的工業應用顯然是不能夠接受的。為了降低無線傳輸裝置的功耗,需要對裝置之間的傳輸協議作適當的改進。

    由於在大部分的時間裡裝置之間沒有進行資料轉送,因此射頻模組一直處於接收狀態是一種資源浪費。而裝置本身不知道對方何時有資料轉送過來,因此裝置之間約定在特定的時間段內進行資料轉送,而其餘時間休眠。

    這樣一種約定需要一種同步機制。我們採用信標同步機制:一個裝置定時發送一個稱為“信標(Beacon)”的資料包,即信標幀。另一個裝置通過接收該信標幀來實現同步。我們將發送信標幀的裝置稱為“主裝置”,接收信標幀的裝置稱為“從裝置”。通過信標幀,即可實現從裝置和主裝置之間的同步。

    在該協議中,有3種類型的資料包:信標幀、資料請求幀和資料幀。信標幀和資料幀的幀頭包含有是否有資料待傳的資訊。

    實現同步之後,主裝置和從裝置之間就約定進入休眠時間(Tsleep)。在休眠期間射頻模組深度睡眠(雖然關閉射頻模組後功耗會更低,但喚醒時間太長),處理器處於超低功耗狀態,只有串口處於接收狀態。休眠時間結束後,主裝置就會醒來,並且射頻模組向外發送信標幀。信標發送完後,射頻模組立即進入接收狀態。從裝置從休眠中醒來後立即喚醒射頻模組進行信標偵聽,當接收到主裝置發送過來的信標後,就會判斷主裝置是否有資料待傳。如果有,就向主裝置發送資料請求幀;否則,從裝置就會將自己串口接收到的資料通過射頻模組發送給主裝置,直到資料發送結束進入下一個周期的休眠時間(Tsleep)。主裝置接收並處理從裝置發送的資料幀,並通過資料幀的幀頭判斷是繼續等待還是進入下一周期的休眠時間。當主、從裝置都沒有資料需要進行傳輸時,從裝置接收到信標後直接進入下一周期的休眠時間,而主裝置等待Twait後沒有收到從裝置的任何資料,也會進入下一個周期的休眠時間。在這種情況下,由於從裝置會比主裝置早休眠 Twait的時間,因此從裝置的休眠時間為Twait+Tsleep。另外為了防止失去同步,從裝置醒來後就將射頻模組設定為接收狀態,直到接收到信標幀,或者逾時繼續進入休眠。這個逾時閾值至少為Tsleep,從而保證了重新同步。如果從裝置N次都沒有收到信標幀,可以認為周圍沒有主裝置,因此可以進行一次長時間的休眠Thibernate。具體流程3所示。


圖3  低功耗改進後的主、從裝置軟體流程

    經過該協議最佳化後,主、從裝置在一個周期內的工作狀態4所示。

    改進前的平均工作電流:


圖4  改進前後主從裝置無資料轉送時一個周期內的工作狀態

    改進後的平均工作電流:

表1  2.7 V工作電壓下測得的主、從裝置工作電流

    其中:

    射頻模組接收狀態時的工作電流IRF(Rx)≈37 mA;
    射頻模組發送狀態時的工作電流IRF(Tx)≈30 mA;
    射頻模組深度睡眠的工作電流IRF(sleep)≈35 μA;
    處理器正常工作電流Imcu≈2 mA;
    處理器休眠工作電流Imcu(sleep)≈5 μA;
    射頻模組發送1個資料包需要的最大時間Td≈4 ms。

    因此,當Twait=5 ms,Tsleep=200 ms時,I後(主)≈1.58 mA,I後(從)≈0.79 mA。遠小於改進前的I前≈39 mA。

4  實驗結果和總結

    採用了低功耗的傳輸協議後,在Tsleep分別為200 ms、500 ms和1 s情況下,無資料轉送和每10 s互傳一個資料包時測量得到的電流如表1所列。可見,採用了低功耗的傳輸協議後在保證了資料可靠、穩定傳輸的同時,大大降低了裝置的功耗。休眠時間 Tsleep 增大,功耗就會下降,同時資料轉送的延時性就會增加。而且當只有從裝置在工作時,Tsleep太長反而會增大從裝置的功耗。一般地,只有滿足:

才能保證主裝置不工作時,從裝置功耗不會增加。上式中N表示多次未收到信標就進行一次Thibernate的長時間休眠。在實際應用中可以根據需要找到最優點。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.