引言
CC1101是TI公司生產(chǎn)的一種單片,、低成本的UHF頻段無線收發(fā)器,,基于IEEE 802.15.4標(biāo)準(zhǔn)開發(fā),,主要應(yīng)用領(lǐng)域?yàn)榈凸臒o線測(cè)控。芯片具有無線電喚醒(WOR),、數(shù)據(jù)包處理,、數(shù)據(jù)緩沖、突發(fā)數(shù)據(jù)傳輸,、清晰信道*估,、鏈接質(zhì)量指示等功能,內(nèi)部的參數(shù)寄存器和數(shù)據(jù)傳輸FIFO可通過SPI接口控制,,所需的周邊器件很少,,使用簡(jiǎn)單。受限于發(fā)射功率和天線結(jié)構(gòu),,CC1101的視距傳輸距離一般在400~800 m范圍內(nèi),,超出此距離范圍則必須由中繼設(shè)備對(duì)無線信號(hào)進(jìn)行放大、轉(zhuǎn)發(fā),。本文設(shè)計(jì)的一種分布式無線測(cè)控系統(tǒng)通過局域網(wǎng)對(duì)中繼設(shè)備進(jìn)行互連,,大大降低了系統(tǒng)的無線通信協(xié)議復(fù)雜性,同時(shí)達(dá)到了使用無線通信時(shí)伴隨的低功耗設(shè)計(jì)要求,,具備很強(qiáng)的實(shí)際工程應(yīng)用價(jià)值,。
1 總體設(shè)計(jì)方案
測(cè)控網(wǎng)絡(luò)采用3級(jí)結(jié)構(gòu),網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)如圖1所示,。
最底層的測(cè)控基站負(fù)責(zé)進(jìn)行工作現(xiàn)場(chǎng)的數(shù)據(jù)采集和控制指令的執(zhí)行,,測(cè)控基站上安裝有無線收發(fā)器芯片CC1101和天線,通過空中無線信道與中繼節(jié)點(diǎn)通信,。測(cè)控基站采用電池供電,。
中間層的中繼節(jié)點(diǎn)負(fù)責(zé)接收中心計(jì)算機(jī)發(fā)出的控制指令,向底層的測(cè)控基站轉(zhuǎn)發(fā),,或者接收底層測(cè)控基站發(fā)出的測(cè)量數(shù)據(jù),,向中心計(jì)算機(jī)轉(zhuǎn)發(fā)。中繼節(jié)點(diǎn)上安裝有無線收發(fā)器芯片CC1101和天線,,通過空中無線信道與底層的測(cè)控基站通信,;同時(shí)中繼節(jié)點(diǎn)也具備訪問局域網(wǎng)的功能,可以通過外部局域網(wǎng)與中心計(jì)算機(jī)通信,。中繼節(jié)點(diǎn)采用市電經(jīng)AC—DC模塊變換出的直流電壓供電,。
中心計(jì)算機(jī)負(fù)責(zé)采集所有測(cè)控基站的測(cè)量數(shù)據(jù),進(jìn)行數(shù)據(jù)管理,,也可以向測(cè)控基站發(fā)出控制指令,。中心計(jì)算機(jī)通過網(wǎng)絡(luò)接口連接到外部局域網(wǎng),與中繼節(jié)點(diǎn)通信,。中心計(jì)算機(jī)采用市電交流供電,。
2 通信協(xié)議總體設(shè)計(jì)
中繼節(jié)點(diǎn)與中心計(jì)算機(jī)通過有線局域網(wǎng)通信,,類似協(xié)議工程上有比較成熟的方案,本文不再詳述,。
中繼節(jié)點(diǎn)與測(cè)控基站的無線鏈路層協(xié)議涉及到防沖突,、節(jié)能等問題,直接關(guān)系到系統(tǒng)可靠性,、可用性指標(biāo)最終實(shí)現(xiàn),,是系統(tǒng)通信協(xié)議設(shè)計(jì)的重點(diǎn)。
系統(tǒng)中依靠無線信道傳輸?shù)臄?shù)據(jù)歸結(jié)為4種,,簡(jiǎn)述如下:
①命令幀,。當(dāng)中繼節(jié)點(diǎn)向測(cè)控基站下傳控制指令時(shí)發(fā)出,。
②基站應(yīng)答幀,。當(dāng)測(cè)控基站收到中繼節(jié)點(diǎn)下傳的控制指令后,,需要向中繼節(jié)點(diǎn)返回一個(gè)基站應(yīng)答幀,告知指令執(zhí)行情況,。
?、壑欣^應(yīng)答幀。當(dāng)測(cè)控基站向中繼節(jié)點(diǎn)上傳狀態(tài)信息后,,中繼節(jié)點(diǎn)需要向測(cè)控基站返回一個(gè)中繼應(yīng)答幀,,告知已經(jīng)收到狀態(tài)信息。
?、軠y(cè)量幀,。當(dāng)測(cè)控基站測(cè)量到的工作現(xiàn)場(chǎng)數(shù)據(jù)發(fā)生改變后,必須向中繼節(jié)點(diǎn)發(fā)出測(cè)量幀,,通知中繼節(jié)點(diǎn)向中心計(jì)算機(jī)聲明更新對(duì)應(yīng)測(cè)控基站的記錄信息,。
為了簡(jiǎn)化處理流程,系統(tǒng)中傳輸?shù)乃械臄?shù)據(jù)的幀格式統(tǒng)一采用如下所示的固定長度12字節(jié)的格式,。
由于CC1101通信時(shí)以數(shù)據(jù)包為最小處理單位,,可以也設(shè)置CC1101的包長度為12字節(jié),借助CC1101的處理能力屏蔽掉對(duì)鏈路層級(jí)別以下的通信協(xié)議處理過程,。
數(shù)據(jù)幀內(nèi)部各數(shù)據(jù)域定義簡(jiǎn)述如下:
?、偻筋^。標(biāo)記一幀數(shù)據(jù)的開始,,CC1101必須在收到與內(nèi)部設(shè)定的同步頭值相等的數(shù)據(jù)后才啟動(dòng)內(nèi)部電路接收一個(gè)數(shù)據(jù)包,。數(shù)據(jù)幀類型不同,同步頭數(shù)值也不同,。
?、诘刂?。每個(gè)測(cè)控基站都由系統(tǒng)分配一個(gè)唯一的2字節(jié)標(biāo)識(shí)地址,測(cè)控基站只響應(yīng)地址等于本地標(biāo)識(shí)地址的命令幀或中繼應(yīng)答幀,。
?、蹘愋汀S靡詤^(qū)分本幀數(shù)據(jù)屬于4種類型中的哪一種,。
?、軘?shù)據(jù)。本幀需要傳輸?shù)挠行?shù)據(jù),,可以是中繼節(jié)點(diǎn)下傳給測(cè)控基站的指令,,也可以是測(cè)控基站上傳給中繼節(jié)點(diǎn)的狀態(tài)。
?、軨RC,。對(duì)數(shù)據(jù)幀前10個(gè)字節(jié)計(jì)算出一個(gè)2字節(jié)的校驗(yàn)數(shù)據(jù),當(dāng)接收端發(fā)現(xiàn)CRC校驗(yàn)錯(cuò)誤時(shí)將丟棄本幀數(shù)據(jù),。
3 測(cè)控基站設(shè)計(jì)
測(cè)控基站采用電池供電,,處于無人職守的環(huán)境下工作,在設(shè)計(jì)方案中必須最大限度的考慮節(jié)能要求,,特別是對(duì)無線收發(fā)器芯片CC1101進(jìn)行低功耗設(shè)計(jì),,這主要通過精心設(shè)計(jì)測(cè)控基站和中繼節(jié)點(diǎn)間的無線通信鏈路協(xié)議來實(shí)現(xiàn)。
測(cè)控基站使用TI公司的CC1101射頻收發(fā)器模塊作為無線通信接口,,該模塊已集成了CC1101,、外圍射頻電路和天線等硬件,只需直接通過SPI向其送入指令和數(shù)據(jù)即可,。模塊使用26 MHz時(shí)鐘工作,,通信頻段為433MHz,調(diào)制方式為GFSK,,通信速率為250 kbps,。
3.1 接收協(xié)議節(jié)能設(shè)計(jì)
CC1101具備WOR功能,使用該功能可以讓CC1101在睡眠態(tài)和接收態(tài)間自動(dòng)輪流切換,,如圖2所示,,其中Time0為WOR周期,Time1為接收時(shí)間,。由于在睡眠態(tài)時(shí),,CC1101的接收功耗電流僅為9.8μA,而接收態(tài)時(shí)功耗電流達(dá)16.5 mA,,從節(jié)能的角度考慮,,在使用WOR功能時(shí),應(yīng)該使睡眠態(tài)的工作時(shí)間占空比盡可能的大,。
但當(dāng)CC1101處于睡眠態(tài)時(shí),,無線接收電路不工作,,在此時(shí)間間隔內(nèi)無法收到從無線信道傳輸?shù)臄?shù)據(jù),影響通信的正確性,。因此為保證可靠地接收數(shù)據(jù),,必須保證在一個(gè)WOR周期內(nèi),接收態(tài)期間CC1101能收到至少一幀完整的數(shù)據(jù),。
測(cè)控基站從中繼節(jié)點(diǎn)接收的控制命令幀長度為12字節(jié),,當(dāng)CC1101通信速率為250 kbps時(shí),一個(gè)完整命令幀傳輸所需要的時(shí)間為:12×8/250=0.384(ms),。
選定WOR模式的接收態(tài)占空比為0.781%時(shí),,假定在接收態(tài)需要保留5個(gè)完整命令幀的接收時(shí)間窗口以確保穩(wěn)定、可靠的收到一個(gè)完整命令幀,,那么可以計(jì)算出WOR周期為:5×0.384/0.781%≈246(ms),。
從CC1101的應(yīng)用手冊(cè)上可知,WOR周期與CC1101內(nèi)部相關(guān)寄存器的值具有如下關(guān)系:
式(1)中fosc為CC1101的工作時(shí)鐘頻率,,為26 MHz,EVENT0為事件0計(jì)數(shù)器值,,WOR_RES為計(jì)數(shù)器分辨率,,一般可設(shè)置為0。這樣可以計(jì)算得到當(dāng)WOR周期為246 ms時(shí),,EVENT0值為0x2150,。
當(dāng)WOR模式的接收占空比為0.781%時(shí),可以根據(jù)接收態(tài)和睡眠態(tài)分別的功耗電流計(jì)算出CC1101總的功耗電流:9.8×10-3×99.219%+16.5×0.781%=0.13(mA),。
若測(cè)控基站使用兩節(jié)容量為2000 mAh的普通5號(hào)干電池供電,,可以計(jì)算出在只供CC1101工作的情況下設(shè)備可連續(xù)工作時(shí)間為:2×2000/0.13≈30 770(小時(shí))=3.5(年)。
3.2 接收協(xié)議處理流程
CC1101接收數(shù)據(jù)時(shí)設(shè)定同步頭內(nèi)容為0xEB90,,這樣可以保證它只響應(yīng)同步頭為0xEB90的類型的數(shù)據(jù)幀,,其他類型的數(shù)據(jù)幀不會(huì)誤觸發(fā)CC1101,簡(jiǎn)化測(cè)控基站軟件的協(xié)議處理流程,。
當(dāng)需要接收命令幀時(shí)測(cè)控基站工作流程如圖3所示,。測(cè)控基站默認(rèn)處于等待接收狀態(tài),此時(shí)CC1101工作于WOR模式,;當(dāng)收到一個(gè)完整命令幀后,,CC1101退出WOR工作模式,進(jìn)入發(fā)送工作模式,,同時(shí)測(cè)控基站控制軟件必須通過幀地址域判斷命令幀是否是發(fā)給本設(shè)備,,若命令幀是發(fā)給本設(shè)備,需要執(zhí)行該命令并返回應(yīng)答給中繼節(jié)點(diǎn),,然后設(shè)置CC1101重新進(jìn)入WOR工作模式,,若命令幀不是發(fā)給本設(shè)備,,則直接設(shè)置CC1101進(jìn)入WOR工作模式即可。
圖3 工作流程
需要注意的是由于無線信道易受干擾,,測(cè)控基站在收到中繼節(jié)點(diǎn)的命令幀后必須給中繼節(jié)點(diǎn)回送一個(gè)應(yīng)答幀,,確認(rèn)命令幀執(zhí)行情況。為了防止應(yīng)答幀引起其它測(cè)控基站的錯(cuò)誤觸發(fā),,應(yīng)答幀同步頭與命令幀同步頭不同,,為0x146F。
3.3 發(fā)送協(xié)議處理流程
當(dāng)測(cè)控基站需要反饋控制命令執(zhí)行情況或主動(dòng)上傳測(cè)量數(shù)據(jù)時(shí),,必須通過CC1101向外發(fā)送數(shù)據(jù),。為減少測(cè)控基站對(duì)無線信道的占用,只有在設(shè)備狀態(tài)產(chǎn)生變化時(shí),,測(cè)控基站才主動(dòng)向中繼節(jié)點(diǎn)發(fā)出數(shù)據(jù)幀通知本設(shè)備產(chǎn)生了狀態(tài)變化,,需要中繼節(jié)點(diǎn)向中心計(jì)算機(jī)登記該次變化。
為了防止多個(gè)測(cè)控基站同時(shí)共用無線信道時(shí)發(fā)生沖突,,必須對(duì)發(fā)送協(xié)議進(jìn)行防沖突設(shè)計(jì),,這通過CC1101的載波偵聽功能實(shí)現(xiàn)。在每次需要發(fā)送數(shù)據(jù)前,,CC1101檢測(cè)無線信道中載波功率電平值,,并將電平值反映到RSSI寄存中,當(dāng)測(cè)控基站發(fā)現(xiàn)RSSI電平高于某一閾值時(shí),,認(rèn)為無線信道已被占用,,將一直等待直到RSSI值低于閾值時(shí)才使用無線信道發(fā)送數(shù)據(jù)。
使用載波偵聽功能,,測(cè)控基站向中繼節(jié)點(diǎn)上傳測(cè)量數(shù)據(jù)時(shí)處理流程如圖4所示,。由于需要上傳測(cè)量數(shù)據(jù)的時(shí)間占總工作時(shí)間的比例很小,CC1101不需工作在WOR模式以節(jié)約電能,。為防止測(cè)量幀觸發(fā)其他處于接收命令狀態(tài)的測(cè)控基站,,測(cè)量幀同步頭設(shè)置為0x1ACF。
圖4 發(fā)送協(xié)議處理流程
4 中繼節(jié)點(diǎn)設(shè)計(jì)
中繼節(jié)點(diǎn)使用Microchip公司PIC18FF66J60單片機(jī)進(jìn)行局域網(wǎng)協(xié)議的處理和上級(jí)中心計(jì)算機(jī)協(xié)議的轉(zhuǎn)發(fā)控制,,同時(shí)使用CC1101與下級(jí)的測(cè)控基站通信,。
PIC18F66J60芯片具有嵌入式以太網(wǎng)控制器模塊,是一個(gè)完整的以太網(wǎng)連接解決方案,,要完全實(shí)現(xiàn)介質(zhì)訪問控制和物理層收發(fā)器模塊功能,,只需使用2個(gè)脈沖變壓器和一些無源器件即可將單片機(jī)直接與以太網(wǎng)相連。該單片機(jī)內(nèi)部已經(jīng)嵌入了TCP/IP協(xié)議棧,,上電后協(xié)議棧自動(dòng)運(yùn)行,,單片機(jī)軟件只需調(diào)用相應(yīng)的TCP/IP處理函數(shù)即可。
中繼節(jié)點(diǎn)的硬件電路如圖5所示,在與局域網(wǎng)通信端,,PIC18F66J60單片機(jī)的4個(gè)以太網(wǎng)專用引腳TPOUT+,、TPOUT-、TPIN+,、TPIN-與網(wǎng)絡(luò)變壓器直接相連,;在與無線信道通信端,單片機(jī)通過SPI引腳與CC1101直接相連,。
中繼節(jié)點(diǎn)采用220 V市電經(jīng).AC—DC轉(zhuǎn)換后供電,,沒有節(jié)能處理的要求,CC1101不需使用WOR工作模式,,處于常開狀態(tài),,最大限度的保證通信鏈路的可用性。默認(rèn)狀態(tài)下中繼節(jié)點(diǎn)在與測(cè)控基站通信的過程中處于被動(dòng)地位,,隨時(shí)準(zhǔn)備接收測(cè)控基站上傳的測(cè)量數(shù)據(jù)幀,。
中繼節(jié)點(diǎn)時(shí)工作流程如圖6所示,它不斷監(jiān)視本區(qū)域內(nèi)的無線基站狀態(tài),,只有當(dāng)發(fā)現(xiàn)測(cè)控基站測(cè)量數(shù)據(jù)有改變時(shí)才向中心計(jì)算機(jī)轉(zhuǎn)發(fā)數(shù)據(jù),;同時(shí)響應(yīng)中心計(jì)算機(jī)發(fā)送的控制指令,向本區(qū)域內(nèi)的無線基站轉(zhuǎn)發(fā),。
中繼節(jié)點(diǎn)使用PIC18F66J60單片機(jī)TCP/IP協(xié)議棧與中心計(jì)算機(jī)通信的軟件處理步驟簡(jiǎn)介如下,。
①PIC18F66J60單片機(jī)根據(jù)中心計(jì)算機(jī)IP地址向局域網(wǎng)廣播發(fā)出地址解析(ARP)包,。中心計(jì)算機(jī)工作在TCPSERVER的模式下,應(yīng)答中繼節(jié)點(diǎn)發(fā)送的ARP解析請(qǐng)求,,向中繼節(jié)點(diǎn)回送MAC地址,。相關(guān)函數(shù)調(diào)用為:voidARPResolve(IP ADDR*IPAddr),發(fā)出地址解析包,,IPAddr為模塊的IP地址,。BOOL ARPIsResolved(IP_ADDR*IPAddr,MAC ADDR*MACAddr),;IPAddr,,MACAddr為中心計(jì)算機(jī)的IP地址與MAC地址。
?、诮⒅欣^節(jié)點(diǎn)與中心計(jì)算機(jī)的連接,,查看連接是否建立與斷開連接。相關(guān)函數(shù)調(diào)用為:TCP_SOCKETTCPConnect(NODE_INFO*remote,,TCP_port port),,建立連接。BOOL TCPIsConnected(TCP_sockethTCP),查看是否建立連接,。void TCPDisconnect(TCP_SOCKET hTCP),,斷開連接。
?、跴IC18F66J60單片機(jī)檢查網(wǎng)口緩沖區(qū)中是否有數(shù)據(jù)收到,,如果有數(shù)據(jù),將數(shù)據(jù)組合成命令幀,。函數(shù)調(diào)用為:BOOL TCPIsGetReady(TCP SOCKET socket),,檢測(cè)網(wǎng)口是否收到數(shù)據(jù)。BOOL TCPGet(TCP_SOCKET,、socket,,BYTE*byte),從網(wǎng)口緩沖區(qū)中讀出一個(gè)字節(jié)數(shù)據(jù),。
?、墚?dāng)PIC18F66J60單片機(jī)需要向中心計(jì)算機(jī)發(fā)送數(shù)據(jù)時(shí),檢查網(wǎng)口是否做好準(zhǔn)備發(fā)送數(shù)據(jù),,如已準(zhǔn)備好,,直接向網(wǎng)口緩沖區(qū)中寫入數(shù)據(jù)。函數(shù)調(diào)用為:BOOL TCPIsPutReady(TCP SOCKET socket),,檢查網(wǎng)口是否準(zhǔn)備好發(fā)送數(shù)據(jù),。BOOL TCPPut(TCP_SOCKET hTCP,BYTEbyte),,向緩沖區(qū)寫入一個(gè)字節(jié)的注塑機(jī)參數(shù),。voidTCPFIush(TCP SOCKET hTCP),將網(wǎng)口緩沖區(qū)的全部數(shù)據(jù)發(fā)送出去,。
5 中心計(jì)算機(jī)設(shè)計(jì)
中心計(jì)算機(jī)由應(yīng)用軟件,、數(shù)據(jù)庫組成,負(fù)責(zé)管理整個(gè)測(cè)控網(wǎng)絡(luò)系統(tǒng)的測(cè)控信息管理,。該數(shù)據(jù)中心主要有以下功能:
?、倬W(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的修改,可以在網(wǎng)絡(luò)中增加或刪除中繼節(jié)點(diǎn)或測(cè)控基站,;
?、谂c中繼節(jié)點(diǎn)或測(cè)控基站進(jìn)行通信,查詢運(yùn)行狀態(tài),,發(fā)出動(dòng)作指令,,完成運(yùn)行維護(hù)管理;
?、叟c中繼節(jié)點(diǎn)或測(cè)控基站進(jìn)行通信,,讀取測(cè)控基站測(cè)量數(shù)據(jù),進(jìn)行測(cè)量信息的管理;
?、芨鞣N統(tǒng)計(jì)和查詢,;
⑤數(shù)據(jù)維護(hù),。
結(jié)語
按上述設(shè)計(jì)方案研制成的分布式測(cè)控網(wǎng)絡(luò)系統(tǒng),,在智能樓宇項(xiàng)目中得到成功應(yīng)用。測(cè)控網(wǎng)絡(luò)系統(tǒng)利用樓宇中廣泛存在的網(wǎng)絡(luò)接口,,在總控室設(shè)置一臺(tái)中心主控計(jì)算機(jī),,在每一層設(shè)置一個(gè)中繼節(jié)點(diǎn),它們之間通過網(wǎng)線互連,,不需重新布線,,大大節(jié)約了工程成本。另外,,在每一樓層各個(gè)房間安裝一個(gè)測(cè)控基站,,每層的測(cè)控基站只與同層的中繼節(jié)點(diǎn)聯(lián)系,實(shí)現(xiàn)了對(duì)每個(gè)房間的智能化管理,。測(cè)控終端與中繼節(jié)點(diǎn)間通信速率為250 kbps,,傳輸帶寬滿足大部分的日常測(cè)量、控制信息的通信要求,;測(cè)控終端使用2節(jié)普通5號(hào)干電池供電,,電量足夠一年使用,維護(hù)成本極低,。
對(duì)測(cè)控網(wǎng)絡(luò)系統(tǒng)的技術(shù)方案稍加修改,,如中繼節(jié)點(diǎn)與中心計(jì)算機(jī)間使用GPRS無線通信,該測(cè)控網(wǎng)絡(luò)系統(tǒng)即可應(yīng)用于野外無人值守測(cè)控系統(tǒng),,或者是電力計(jì)費(fèi),、管理系統(tǒng)。無線測(cè)控網(wǎng)絡(luò)系統(tǒng)具有構(gòu)建成本低,、易維護(hù)、通信性能高等優(yōu)點(diǎn),,在分布式測(cè)控領(lǐng)域具備良好的應(yīng)用前景,。