短距離無線數(shù)據(jù)低功耗傳輸協(xié)議分析
1 主要芯片介紹
MC13213是Freescale公司推出的一款SoC芯片,它主要由微處理器和射頻模塊兩部分組成。微處理器采用8位的HCS08內(nèi)核,集成了1個(gè)SPI(Serial Peripheral Interface)接口、1個(gè)8路的8/10位A/D轉(zhuǎn)換器、2個(gè)TPM(Timer/PWM)模塊、2個(gè)SCI(Serial Communication Interface)接口、2個(gè)I2C和1個(gè)8路的KBI(Keyboard Interrupt)接口。射頻模塊的工作頻段是2.4 GHz,通過SPI總線與處理器通信。其主要特點(diǎn)有:
◆ 采用2.4 GHz頻段,其設(shè)計(jì)構(gòu)架符合IEEE 802.15.4協(xié)議;
◆ 接收靈敏度-92 dBm,發(fā)送功率為-28.7~+3.4 dBm可調(diào);
◆ 擁有0~15(共16)個(gè)可選工作信道;
◆ 采用直接序列擴(kuò)頻(direct sequence spread spectrum)的二進(jìn)制編碼方式,增強(qiáng)了抗干擾能力;
◆ 采用OQPSK數(shù)字相移鍵控調(diào)制技術(shù),大大降低了數(shù)據(jù)傳輸?shù)恼`碼率;
◆ 采用免沖突的載波檢測(cè)多址接入(CSMACA)機(jī)制,避免了數(shù)據(jù)傳輸過程中的沖突。
2 硬件系統(tǒng)設(shè)計(jì)
如圖1所示,整個(gè)系統(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è)計(jì)和低功耗通信協(xié)議研究
無線數(shù)據(jù)傳輸設(shè)備的一般工作流程如圖2所示。在進(jìn)行相關(guān)初始化之后就進(jìn)入主循環(huán),對(duì)射頻模塊和串口進(jìn)行輪詢: 當(dāng)射頻模塊接收到數(shù)據(jù)包時(shí)就進(jìn)行解包,然后送到RS232/485總線;當(dāng)串口接收到從RS232/485總線上發(fā)來的數(shù)據(jù)時(shí),就進(jìn)行相關(guān)處理并送入射頻模塊發(fā)送出去。這種輪詢的方式結(jié)構(gòu)簡單,實(shí)現(xiàn)方便。
圖2 短距離無線傳輸設(shè)備軟件流程
然而,在這種工作方式下,射頻模塊就必須時(shí)刻監(jiān)聽信道。在2.7 V工作電壓、處理器時(shí)鐘頻率為2 MHz時(shí),MC13213的射頻模塊接收工作電流IRF(Rx)≈37 mA,處理器以及外圍器件的工作電流Imcu≈2 mA,因此設(shè)備的正常工作電流I≈39 mA,這個(gè)電流對(duì)于一些供電受限的工業(yè)應(yīng)用顯然是不能夠接受的。為了降低無線傳輸設(shè)備的功耗,需要對(duì)設(shè)備之間的傳輸協(xié)議作適當(dāng)?shù)母倪M(jìn)。
由于在大部分的時(shí)間里設(shè)備之間沒有進(jìn)行數(shù)據(jù)傳輸,因此射頻模塊一直處于接收狀態(tài)是一種資源浪費(fèi)。而設(shè)備本身不知道對(duì)方何時(shí)有數(shù)據(jù)傳輸過來,因此設(shè)備之間約定在特定的時(shí)間段內(nèi)進(jìn)行數(shù)據(jù)傳輸,而其余時(shí)間休眠。
這樣一種約定需要一種同步機(jī)制。我們采用信標(biāo)同步機(jī)制:一個(gè)設(shè)備定時(shí)發(fā)送一個(gè)稱為“信標(biāo)(Beacon)”的數(shù)據(jù)包,即信標(biāo)幀。另一個(gè)設(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ù)請(qǐng)求幀和數(shù)據(jù)幀。信標(biāo)幀和數(shù)據(jù)幀的幀頭包含有是否有數(shù)據(jù)待傳的信息。
實(shí)現(xiàn)同步之后,主設(shè)備和從設(shè)備之間就約定進(jìn)入休眠時(shí)間(Tsleep)。在休眠期間射頻模塊深度睡眠(雖然關(guān)閉射頻模塊后功耗會(huì)更低,但喚醒時(shí)間太長),處理器處于超低功耗狀態(tài),只有串口處于接收狀態(tài)。休眠時(shí)間結(jié)束后,主設(shè)備就會(huì)醒來,并且射頻模塊向外發(fā)送信標(biāo)幀。信標(biāo)發(fā)送完后,射頻模塊立即進(jìn)入接收狀態(tài)。從設(shè)備從休眠中醒來后立即喚醒射頻模塊進(jìn)行信標(biāo)偵聽,當(dāng)接收到主設(shè)備發(fā)送過來的信標(biāo)后,就會(huì)判斷主設(shè)備是否有數(shù)據(jù)待傳。如果有,就向主設(shè)備發(fā)送數(shù)據(jù)請(qǐng)求幀;否則,從設(shè)備就會(huì)將自己串口接收到的數(shù)據(jù)通過射頻模塊發(fā)送給主設(shè)備,直到數(shù)據(jù)發(fā)送結(jié)束進(jìn)入下一個(gè)周期的休眠時(shí)間(Tsleep)。主設(shè)備接收并處理從設(shè)備發(fā)送的數(shù)據(jù)幀,并通過數(shù)據(jù)幀的幀頭判斷是繼續(xù)等待還是進(jìn)入下一周期的休眠時(shí)間。當(dāng)主、從設(shè)備都沒有數(shù)據(jù)需要進(jìn)行傳輸時(shí),從設(shè)備接收到信標(biāo)后直接進(jìn)入下一周期的休眠時(shí)間,而主設(shè)備等待Twait后沒有收到從設(shè)備的任何數(shù)據(jù),也會(huì)進(jìn)入下一個(gè)周期的休眠時(shí)間。在這種情況下,由于從設(shè)備會(huì)比主設(shè)備早休眠Twait的時(shí)間,因此從設(shè)備的休眠時(shí)間為Twait+Tsleep。另外為了防止失去同步,從設(shè)備醒來后就將射頻模塊設(shè)置為接收狀態(tài),直到接收到信標(biāo)幀,或者超時(shí)繼續(xù)進(jìn)入休眠。這個(gè)超時(shí)閾值至少為Tsleep,從而保證了重新同步。如果從設(shè)備N次都沒有收到信標(biāo)幀,可以認(rèn)為周圍沒有主設(shè)備,因此可以進(jìn)行一次長時(shí)間的休眠Thibernate。具體流程如圖3所示。
圖3 低功耗改進(jìn)后的主、從設(shè)備軟件流程
經(jīng)過該協(xié)議優(yōu)化后,主、從設(shè)備在一個(gè)周期內(nèi)的工作狀態(tài)如圖4所示。
改進(jìn)前的平均工作電流:
圖4 改進(jìn)前后主從設(shè)備無數(shù)據(jù)傳輸時(shí)一個(gè)周期內(nèi)的工作狀態(tài)
改進(jìn)后的平均工作電流:
表1 2.7 V工作電壓下測(cè)得的主、從設(shè)備工作電流
其中:
射頻模塊接收狀態(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ù)據(jù)包需要的最大時(shí)間Td≈4 ms。
因此,當(dāng)Twait=5 ms,Tsleep=200 ms時(shí),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互傳一個(gè)數(shù)據(jù)
評(píng)論