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