基于CC1101的分布式節(jié)能測控網(wǎng)絡(luò)設(shè)計
由于CC1101通信時以數(shù)據(jù)包為最小處理單位,可以也設(shè)置CC1101的包長度為12字節(jié),借助CC1101的處理能力屏蔽掉對鏈路層級別以下的通信協(xié)議處理過程。
數(shù)據(jù)幀內(nèi)部各數(shù)據(jù)域定義簡述如下:
①同步頭。標(biāo)記一幀數(shù)據(jù)的開始,CC1101必須在收到與內(nèi)部設(shè)定的同步頭值相等的數(shù)據(jù)后才啟動內(nèi)部電路接收一個數(shù)據(jù)包。數(shù)據(jù)幀類型不同,同步頭數(shù)值也不同。
②地址。每個測控基站都由系統(tǒng)分配一個唯一的2字節(jié)標(biāo)識地址,測控基站只響應(yīng)地址等于本地標(biāo)識地址的命令幀或中繼應(yīng)答幀。
③幀類型。用以區(qū)分本幀數(shù)據(jù)屬于4種類型中的哪一種。
④數(shù)據(jù)。本幀需要傳輸?shù)挠行?shù)據(jù),可以是中繼節(jié)點(diǎn)下傳給測控基站的指令,也可以是測控基站上傳給中繼節(jié)點(diǎn)的狀態(tài)。
⑤CRC。對數(shù)據(jù)幀前10個字節(jié)計算出一個2字節(jié)的校驗數(shù)據(jù),當(dāng)接收端發(fā)現(xiàn)CRC校驗錯誤時將丟棄本幀數(shù)據(jù)。
3 測控基站設(shè)計
測控基站采用電池供電,處于無人職守的環(huán)境下工作,在設(shè)計方案中必須最大限度的考慮節(jié)能要求,特別是對無線收發(fā)器芯片CC1101進(jìn)行低功耗設(shè)計,這主要通過精心設(shè)計測控基站和中繼節(jié)點(diǎn)間的無線通信鏈路協(xié)議來實(shí)現(xiàn)。
測控基站使用TI公司的CC1101射頻收發(fā)器模塊作為無線通信接口,該模塊已集成了CC1101、外圍射頻電路和天線等硬件,只需直接通過SPI向其送入指令和數(shù)據(jù)即可。模塊使用26 MHz時鐘工作,通信頻段為433MHz,調(diào)制方式為GFSK,通信速率為250 kbps。
3.1 接收協(xié)議節(jié)能設(shè)計
CC1101具備WOR功能,使用該功能可以讓CC1101在睡眠態(tài)和接收態(tài)間自動輪流切換,如圖2所示,其中Time0為WOR周期,Time1為接收時間。由于在睡眠態(tài)時,CC1101的接收功耗電流僅為9.8μA,而接收態(tài)時功耗電流達(dá)16.5 mA,從節(jié)能的角度考慮,在使用WOR功能時,應(yīng)該使睡眠態(tài)的工作時間占空比盡可能的大。
但當(dāng)CC1101處于睡眠態(tài)時,無線接收電路不工作,在此時間間隔內(nèi)無法收到從無線信道傳輸?shù)臄?shù)據(jù),影響通信的正確性。因此為保證可靠地接收數(shù)據(jù),必須保證在一個WOR周期內(nèi),接收態(tài)期間CC1101能收到至少一幀完整的數(shù)據(jù)。
測控基站從中繼節(jié)點(diǎn)接收的控制命令幀長度為12字節(jié),當(dāng)CC1101通信速率為250 kbps時,一個完整命令幀傳輸所需要的時間為:12×8/250=0.384(ms)。
選定WOR模式的接收態(tài)占空比為0.781%時,假定在接收態(tài)需要保留5個完整命令幀的接收時間窗口以確保穩(wěn)定、可靠的收到一個完整命令幀,那么可以計算出WOR周期為:5×0.384/0.781%≈246(ms)。
從CC1101的應(yīng)用手冊上可知,WOR周期與CC1101內(nèi)部相關(guān)寄存器的值具有如下關(guān)系:
式(1)中fosc為CC1101的工作時鐘頻率,為26 MHz,EVENT0為事件0計數(shù)器值,WOR_RES為計數(shù)器分辨率,一般可設(shè)置為0。這樣可以計算得到當(dāng)WOR周期為246 ms時,EVENT0值為0x2150。
當(dāng)WOR模式的接收占空比為0.781%時,可以根據(jù)接收態(tài)和睡眠態(tài)分別的功耗電流計算出CC1101總的功耗電流:9.8×10-3×99.219%+16.5×0.781%=0.13(mA)。
若測控基站使用兩節(jié)容量為2000 mAh的普通5號干電池供電,可以計算出在只供CC1101工作的情況下設(shè)備可連續(xù)工作時間為:2×2000/0.13≈30 770(小時)=3.5(年)。
3.2 接收協(xié)議處理流程
CC1101接收數(shù)據(jù)時設(shè)定同步頭內(nèi)容為0xEB90,這樣可以保證它只響應(yīng)同步頭為0xEB90的類型的數(shù)據(jù)幀,其他類型的數(shù)據(jù)幀不會誤觸發(fā)CC1101,簡化測控基站軟件的協(xié)議處理流程。
當(dāng)需要接收命令幀時測控基站工作流程如圖3所示。測控基站默認(rèn)處于等待接收狀態(tài),此時CC1101工作于WOR模式;當(dāng)收到一個完整命令幀后,CC1101退出WOR工作模式,進(jìn)入發(fā)送工作模式,同時測控基站控制軟件必須通過幀地址域判斷命令幀是否是發(fā)給本設(shè)備,若命令幀是發(fā)給本設(shè)備,需要執(zhí)行該命令并返回應(yīng)答給中繼節(jié)點(diǎn),然后設(shè)置CC1101重新進(jìn)入WOR工作模式,若命令幀不是發(fā)給本設(shè)備,則直接設(shè)置CC1101進(jìn)入WOR工作模式即可。
需要注意的是由于無線信道易受干擾,測控基站在收到中繼節(jié)點(diǎn)的命令幀后必須給中繼節(jié)點(diǎn)回送一個應(yīng)答幀,確認(rèn)命令幀執(zhí)行情況。為了防止應(yīng)答幀引起其它測控基站的錯誤觸發(fā),應(yīng)答幀同步頭與命令幀同步頭不同,為0x146F。
tcp/ip相關(guān)文章:tcp/ip是什么
評論