短距離無(wú)線(xiàn)數據低功耗傳輸協(xié)議研究
摘要 針對短距離無(wú)線(xiàn)數據傳輸設備因高功耗而限制了工業(yè)應用這一問(wèn)題,本文基于Freescale公司的MC13213硬件平臺,對其低功耗的數據傳輸協(xié)議進(jìn)行了研究,采用信標同步機制極大地降低了無(wú)線(xiàn)數據傳輸設備的功耗。
本文引用地址:http://dyxdggzs.com/article/87716.htm關(guān)鍵詞 低功耗 無(wú)線(xiàn)數據傳輸 信標 時(shí)間同步 MC13213
短距離無(wú)線(xiàn)數據傳輸是一種線(xiàn)纜替代技術(shù),在當前很多領(lǐng)域(如工業(yè)生產(chǎn)、醫療監護、科學(xué)研究等)都得到了廣泛的應用。它的出現,解決了因環(huán)境和條件限制而不利于有線(xiàn)布線(xiàn)的問(wèn)題,同時(shí)具有低成本、方便攜帶等優(yōu)點(diǎn)。然而由于存在高功耗的缺點(diǎn),使得這技術(shù)在很多供電受限的工業(yè)現場(chǎng)應用中受到了很大的限制。本文基于 Freescale公司的MC13213硬件平臺對短距離無(wú)線(xiàn)數據的低功耗傳輸協(xié)議進(jìn)行了研究,在保證數據可靠傳輸的同時(shí),極大地降低了設備的功耗。
1 主要芯片介紹
MC13213是Freescale公司推出的一款SoC芯片,它主要由微處理器和射頻模塊兩部分組成。微處理器采用8位的HCS08內核,集成了1個(gè) SPI(Serial Peripheral Interface)接口、1個(gè)8路的8/10位A/D轉換器、2個(gè)TPM(Timer/PWM)模塊、2個(gè)SCI(Serial Communication Interface)接口、2個(gè)I2C和1個(gè)8路的KBI(Keyboard Interrupt)接口。射頻模塊的工作頻段是2.4 GHz,通過(guò)SPI總線(xiàn)與處理器通信。其主要特點(diǎn)有:
◆ 采用2.4 GHz頻段,其設計構架符合IEEE 802.15.4協(xié)議;
◆ 接收靈敏度<-92 dBm,發(fā)送功率為-28.7~+3.4 dBm可調;
◆ 擁有0~15(共16)個(gè)可選工作信道;
◆ 采用直接序列擴頻(direct sequence spread spectrum)的二進(jìn)制編碼方式,增強了抗干擾能力;
◆ 采用OQPSK數字相移鍵控調制技術(shù),大大降低了數據傳輸的誤碼率;
◆ 采用免沖突的載波檢測多址接入(CSMACA)機制,避免了數據傳輸過(guò)程中的沖突。
2 硬件系統設計
如圖1所示,整個(gè)系統硬件結構由4部分組成:RS232/485總線(xiàn)接口單元、數據處理單元、射頻收發(fā)單元和電源管理單元。
圖1 短距離無(wú)線(xiàn)數據傳輸模塊硬件結構圖
一方面,PC/儀器儀表通過(guò)RS232/485總線(xiàn)將數據傳送給MCU處理器,處理器將數據包進(jìn)行適當處理后送給射頻模塊發(fā)送出去;另一方面,射頻模塊將接收到的數據送給MCU處理器,處理器經(jīng)過(guò)解包處理后再通過(guò)RS232/485總線(xiàn)將數據送給PC/儀器儀表。
工業(yè)中的儀器儀表大多都采用RS485總線(xiàn)通信方式,因此無(wú)線(xiàn)數據傳輸設備提供RS232/485可選通信接口,既方便連接PC機,又滿(mǎn)足了一般儀器儀表的要求,串口波特率為1 200~115 200 bps可調。
3 軟件設計和低功耗通信協(xié)議研究
無(wú)線(xiàn)數據傳輸設備的一般工作流程如圖2所示。在進(jìn)行相關(guān)初始化之后就進(jìn)入主循環(huán),對射頻模塊和串口進(jìn)行輪詢(xún):當射頻模塊接收到數據包時(shí)就進(jìn)行解包,然后送到RS232/485總線(xiàn);當串口接收到從RS232/485總線(xiàn)上發(fā)來(lái)的數據時(shí),就進(jìn)行相關(guān)處理并送入射頻模塊發(fā)送出去。這種輪詢(xún)的方式結構簡(jiǎn)單,實(shí)現方便。
圖2 短距離無(wú)線(xiàn)傳輸設備軟件流程
然而,在這種工作方式下,射頻模塊就必須時(shí)刻監聽(tīng)信道。在2.7 V工作電壓、處理器時(shí)鐘頻率為2 MHz時(shí),MC13213的射頻模塊接收工作電流IRF(Rx)≈37 mA,處理器以及外圍器件的工作電流Imcu≈2 mA,因此設備的正常工作電流I≈39 mA,這個(gè)電流對于一些供電受限的工業(yè)應用顯然是不能夠接受的。為了降低無(wú)線(xiàn)傳輸設備的功耗,需要對設備之間的傳輸協(xié)議作適當的改進(jìn)。
由于在大部分的時(shí)間里設備之間沒(méi)有進(jìn)行數據傳輸,因此射頻模塊一直處于接收狀態(tài)是一種資源浪費。而設備本身不知道對方何時(shí)有數據傳輸過(guò)來(lái),因此設備之間約定在特定的時(shí)間段內進(jìn)行數據傳輸,而其余時(shí)間休眠。
這樣一種約定需要一種同步機制。我們采用信標同步機制:一個(gè)設備定時(shí)發(fā)送一個(gè)稱(chēng)為“信標(Beacon)”的數據包,即信標幀。另一個(gè)設備通過(guò)接收該信標幀來(lái)實(shí)現同步。我們將發(fā)送信標幀的設備稱(chēng)為“主設備”,接收信標幀的設備稱(chēng)為“從設備”。通過(guò)信標幀,即可實(shí)現從設備和主設備之間的同步。
在該協(xié)議中,有3種類(lèi)型的數據包:信標幀、數據請求幀和數據幀。信標幀和數據幀的幀頭包含有是否有數據待傳的信息。
實(shí)現同步之后,主設備和從設備之間就約定進(jìn)入休眠時(shí)間(Tsleep)。在休眠期間射頻模塊深度睡眠(雖然關(guān)閉射頻模塊后功耗會(huì )更低,但喚醒時(shí)間太長(cháng)),處理器處于超低功耗狀態(tài),只有串口處于接收狀態(tài)。休眠時(shí)間結束后,主設備就會(huì )醒來(lái),并且射頻模塊向外發(fā)送信標幀。信標發(fā)送完后,射頻模塊立即進(jìn)入接收狀態(tài)。從設備從休眠中醒來(lái)后立即喚醒射頻模塊進(jìn)行信標偵聽(tīng),當接收到主設備發(fā)送過(guò)來(lái)的信標后,就會(huì )判斷主設備是否有數據待傳。如果有,就向主設備發(fā)送數據請求幀;否則,從設備就會(huì )將自己串口接收到的數據通過(guò)射頻模塊發(fā)送給主設備,直到數據發(fā)送結束進(jìn)入下一個(gè)周期的休眠時(shí)間(Tsleep)。主設備接收并處理從設備發(fā)送的數據幀,并通過(guò)數據幀的幀頭判斷是繼續等待還是進(jìn)入下一周期的休眠時(shí)間。當主、從設備都沒(méi)有數據需要進(jìn)行傳輸時(shí),從設備接收到信標后直接進(jìn)入下一周期的休眠時(shí)間,而主設備等待Twait后沒(méi)有收到從設備的任何數據,也會(huì )進(jìn)入下一個(gè)周期的休眠時(shí)間。在這種情況下,由于從設備會(huì )比主設備早休眠 Twait的時(shí)間,因此從設備的休眠時(shí)間為T(mén)wait+Tsleep。另外為了防止失去同步,從設備醒來(lái)后就將射頻模塊設置為接收狀態(tài),直到接收到信標幀,或者超時(shí)繼續進(jìn)入休眠。這個(gè)超時(shí)閾值至少為T(mén)sleep,從而保證了重新同步。如果從設備N(xiāo)次都沒(méi)有收到信標幀,可以認為周?chē)鷽](méi)有主設備,因此可以進(jìn)行一次長(cháng)時(shí)間的休眠Thibernate。具體流程如圖3所示。
圖3 低功耗改進(jìn)后的主、從設備軟件流程
經(jīng)過(guò)該協(xié)議優(yōu)化后,主、從設備在一個(gè)周期內的工作狀態(tài)如圖4所示。
改進(jìn)前的平均工作電流:
圖4 改進(jìn)前后主從設備無(wú)數據傳輸時(shí)一個(gè)周期內的工作狀態(tài)
改進(jìn)后的平均工作電流:
表1 2.7 V工作電壓下測得的主、從設備工作電流
其中:
射頻模塊接收狀態(tài)時(shí)的工作電流IRF(Rx)≈37 mA;
射頻模塊發(fā)送狀態(tài)時(shí)的工作電流IRF(Tx)≈30 mA;
射頻模塊深度睡眠的工作電流IRF(sleep)≈35 μA;
處理器正常工作電流Imcu≈2 mA;
處理器休眠工作電流Imcu(sleep)≈5 μA;
射頻模塊發(fā)送1個(gè)數據包需要的最大時(shí)間Td≈4 ms。
因此,當Twait=5 ms,Tsleep=200 ms時(shí),I后(主)≈1.58 mA,I后(從)≈0.79 mA。遠小于改進(jìn)前的I前≈39 mA。
4 實(shí)驗結果和總結
采用了低功耗的傳輸協(xié)議后,在Tsleep分別為200 ms、500 ms和1 s情況下,無(wú)數據傳輸和每10 s互傳一個(gè)數據包時(shí)測量得到的電流如表1所列??梢?jiàn),采用了低功耗的傳輸協(xié)議后在保證了數據可靠、穩定傳輸的同時(shí),大大降低了設備的功耗。休眠時(shí)間 Tsleep 增大,功耗就會(huì )下降,同時(shí)數據傳輸的延時(shí)性就會(huì )增加。而且當只有從設備在工作時(shí),Tsleep太長(cháng)反而會(huì )增大從設備的功耗。一般地,只有滿(mǎn)足:
才能保證主設備不工作時(shí),從設備功耗不會(huì )增加。上式中N表示多次未收到信標就進(jìn)行一次Thibernate的長(cháng)時(shí)間休眠。在實(shí)際應用中可以根據需要找到最優(yōu)點(diǎn)。
參考文獻
[1] Zigbee Alliance. ZigBee Specification v1.0,20041214.
[2] 蔣挺,趙成林.紫蜂技術(shù)及其應用[M].北京: 北京郵電大學(xué)出版社,2006.
評論