Zigbee無線傳感器網(wǎng)絡(luò)平臺的設(shè)計與實現(xiàn)
目前普遍使用的無線傳感器網(wǎng)絡(luò)平臺主要有Crossbow公司的Mica2/MicaZ和Microchip公司的PICDEMZ等。MicaZ雖然具有Tinyos操作系統(tǒng),但是沒有結(jié)合Zigbee技術(shù);PICDEMZ的Zigbee協(xié)議棧不完全符合Zigbee的定義,而且功能簡單。因此,設(shè)計一種Zigbee無線傳感器網(wǎng)絡(luò)平臺,可以更好地開發(fā)無線傳感器網(wǎng)絡(luò)的應(yīng)用和Zigbee技術(shù)。
本文在分析Zigbee無線傳感器網(wǎng)絡(luò)的特點和關(guān)鍵技術(shù)的基礎(chǔ)上,提出Zigbee無線傳感器網(wǎng)絡(luò)平臺的設(shè)計實現(xiàn)方案,采用模塊化的方法實現(xiàn)了Zigbee協(xié)議棧,并且使用該無線傳感器網(wǎng)絡(luò)平臺進(jìn)行了溫度監(jiān)測的實驗。結(jié)果表明,該平臺實現(xiàn)了Zigbee無線傳感器網(wǎng)絡(luò)的基本功能,可以更好地開發(fā)Zigbee技術(shù)。
1 Zigbee無線傳感器網(wǎng)絡(luò)
1.1 無線傳感器網(wǎng)絡(luò)
一個典型的無線傳感器網(wǎng)絡(luò)至少要由無線傳感器節(jié)點、網(wǎng)絡(luò)協(xié)調(diào)器和中央控制點組成。大量傳感器節(jié)點隨機部署在監(jiān)測區(qū)域內(nèi)部或附近,能夠通過自組織方式形成網(wǎng)絡(luò)。傳感器節(jié)點監(jiān)測的數(shù)據(jù)沿著其他傳感器節(jié)點逐跳地進(jìn)行傳輸,在傳輸過程中監(jiān)測數(shù)據(jù)可能被多個節(jié)點處理,經(jīng)過多跳后路由到網(wǎng)絡(luò)協(xié)調(diào)器,最后到達(dá)中央控制點。在這個過程中,傳感器節(jié)點既充當(dāng)感知節(jié)點,又充當(dāng)轉(zhuǎn)發(fā)數(shù)據(jù)的路由器,用戶通過中央控制點對無線傳感器網(wǎng)絡(luò)進(jìn)行配置和管理,發(fā)布監(jiān)測任務(wù)以及收集監(jiān)測數(shù)據(jù)[3]。圖1給出了一個典型的無線傳感器網(wǎng)絡(luò)的結(jié)構(gòu)。
1.2 Zigbee技術(shù)
Zigbee技術(shù)是一種具有統(tǒng)一技術(shù)標(biāo)準(zhǔn)的短距離無線通信技術(shù)。完整的Zigbee協(xié)議棧由物理層、介質(zhì)訪問控制層、網(wǎng)絡(luò)層、安全層和應(yīng)用層組成。其物理層和介質(zhì)訪問控制層協(xié)議為IEEE802.15.4協(xié)議標(biāo)準(zhǔn)[4],網(wǎng)絡(luò)層和安全層由Zigbee聯(lián)盟制定,應(yīng)用層的開發(fā)應(yīng)根據(jù)用戶自己的需要,對其進(jìn)行開發(fā)利用[1,5]。
在無線通信技術(shù)上,采用免沖突多載波信道接入(CSMA-CA)方式,有效地避免了無線電載波之間的沖突。此外,為保證傳輸數(shù)據(jù)的可靠性,建立了完整的應(yīng)答通信協(xié)議。
Zigbee設(shè)備為低功耗設(shè)備,其發(fā)射輸出功率為0~3.6dBm,通信距離為30~70m,具有能量檢測和鏈路質(zhì)量指示能力,根據(jù)這些檢測結(jié)果,設(shè)備可以自動調(diào)整發(fā)射功率,在保證通信鏈路質(zhì)量的條件下,最低限度地消耗設(shè)備能量。
在組網(wǎng)性能上,Zigbee可以構(gòu)造為星形網(wǎng)絡(luò)或者點對點對等網(wǎng)絡(luò)。在每一個Zigbee組成的無線網(wǎng)絡(luò)中,連接地址碼分為16bit短地址碼或者64bit長地址碼,具有較大的網(wǎng)絡(luò)容量。
2 Zigbee無線傳感器網(wǎng)絡(luò)平臺的硬件設(shè)計
2.1 設(shè)計目標(biāo)
Zigbee無線傳感器網(wǎng)絡(luò)平臺在各種應(yīng)用系統(tǒng)中存在一些現(xiàn)實的約束[3,6]:
(1)外形盡量小。芯片的尺寸決定了整個節(jié)點的尺寸。
(2)集成度盡量高。各種傳感器節(jié)點通常需要程序存儲器、靜態(tài)存儲器、A/D轉(zhuǎn)換器、定時器和計數(shù)器等多種硬件資源。特別是要有足夠大的ROM空間存儲Zigbee協(xié)議棧。
(3)功耗低而且支持休眠模式。是否具有休眠機制直接關(guān)系到節(jié)點生命周期的長短,所以芯片必須支持低功耗的休眠狀態(tài)。
(4)運行速度盡量快。系統(tǒng)應(yīng)在最短時間內(nèi)完成工作,從而快速進(jìn)入休眠狀態(tài),以節(jié)省系統(tǒng)能源。
(5)工作在免費的ISM(Industial Scientific Medical)頻段,2.4GHz它是免付費、免申請的無線電頻段,在該頻段上,數(shù)據(jù)傳輸速率為250Kb/s。
(6)成本要盡量低。芯片在傳感器節(jié)點成本中占很大的比例。
2.2 基于CC2430的硬件設(shè)計
目前,常見的Zigbee無線傳感器平臺都是由一個8位或16位的單片機和Zigbee射頻芯片組成。隨著芯片設(shè)計的發(fā)展,目前出現(xiàn)了無線單片機,即將處理器模塊和射頻模塊集成在同一個芯片中。Ti-Chipcon公司的CC2430就是其中的代表,其典型應(yīng)用如圖2所示。
CC2430集成了Zigbee 射頻前端、ROM和8051微控制器在一個芯片內(nèi),而且大小僅為7mm×7mm,這樣就使得設(shè)備集成度高、外圍器件很少、外形很小;在接收和發(fā)射模式下,電流損耗分別低于27mA或25mA,并且支持四種休眠機制,可以大大地降低功耗;CC2430工作在2.4GHz的免費頻段,而且芯片價格僅為5美元左右,使用成本很低。所以CC2430很符合Zigbee無線傳感器網(wǎng)絡(luò)平臺的設(shè)計要求[2]。
3 Zigbee無線傳感器網(wǎng)絡(luò)平臺的軟件設(shè)計
3.1 軟件結(jié)構(gòu)
Zigbee無線傳感器網(wǎng)絡(luò)設(shè)備上的軟件主要由嵌入式操作系統(tǒng)、Zigbee協(xié)議棧和應(yīng)用程序組成,嵌入式操作系統(tǒng)內(nèi)核提供了簡單高效的任務(wù)調(diào)動、中斷處理和時間隊列管理等,還包括所有硬件的底層驅(qū)動。應(yīng)用程序包括串口通信、射頻通信和信號強度檢測等。采用模塊化的設(shè)計協(xié)議棧,使得整個系統(tǒng)層次清楚、擴展性好、有利于Zigbee技術(shù)的二次開發(fā)。
3.2 協(xié)議棧設(shè)計
Zigbee協(xié)議棧能夠確保無線設(shè)備在低成本、低功耗和低速率網(wǎng)絡(luò)中的互操作性。Zigbee協(xié)議棧的不同層通過服務(wù)接入點進(jìn)行通信,大多數(shù)層有兩個接口:數(shù)據(jù)實體接口和管理實體接口。數(shù)據(jù)實體接口的目標(biāo)是向上層提供所需的常規(guī)數(shù)據(jù)服務(wù)。管理實體接口的目標(biāo)是向上層提供訪問內(nèi)部層參數(shù)、配置和管理數(shù)據(jù)的機制[1]。其基本結(jié)構(gòu)如表1所示。
PHY層由射頻收發(fā)器以及底層的控制模塊組成,定義了物理無線信道和MAC層之間的接口。主要功能是啟動和關(guān)閉無線收發(fā)器、能量監(jiān)測、鏈路質(zhì)量監(jiān)測、信道選擇、清除信道評估以及通過物理介質(zhì)對數(shù)據(jù)包進(jìn)行發(fā)送和接收。
MAC 層為高層訪問物理信道提供了點到點通信的服務(wù)接口,具體功能是信標(biāo)管理、信道接入、時隙管理、發(fā)送確認(rèn)幀、發(fā)送連接及斷開連接請求。此外,MAC層還為應(yīng)用合適的安全機制提供了一些方法。
網(wǎng)絡(luò)層主要用于建立和維護(hù)網(wǎng)絡(luò)連接。它獨立處理傳入數(shù)據(jù)的請求、關(guān)聯(lián)、解除關(guān)聯(lián)和孤立通知請求。
應(yīng)用層主要為Zigbee技術(shù)的實際應(yīng)用提供一些應(yīng)用框架模型等,以便對Zigbee技術(shù)進(jìn)行開發(fā)應(yīng)用。
由于Zigbee技術(shù)已經(jīng)定義了物理層、介質(zhì)鏈路層和網(wǎng)絡(luò)層的標(biāo)準(zhǔn)規(guī)范,因此這三層的實現(xiàn)通常是類似的。無線傳感器網(wǎng)絡(luò)的不同應(yīng)用都是由基本應(yīng)用組成,如加入網(wǎng)絡(luò)、脫離網(wǎng)絡(luò)、發(fā)送數(shù)據(jù)等。本文使用IAR Embedded Workbench for 8051軟件編寫了本網(wǎng)絡(luò)平臺的物理層、介質(zhì)鏈路層和網(wǎng)絡(luò)層程序代碼,其中每層的頭文件定義了該層所支持的服務(wù)與應(yīng)用程序接口。同時該平臺還提供了一些應(yīng)用接口,如aplFormNetwork()、aplJoinNetwork()、aplSendMSG()等,用戶可以通過調(diào)用這些函數(shù)來實現(xiàn)自己的開發(fā)與應(yīng)用。
3.3 代碼示例
Zigbee無線傳感器網(wǎng)絡(luò)協(xié)調(diào)器在進(jìn)行一些初始化之后,調(diào)用aplFormNetwork()來建立網(wǎng)絡(luò)。協(xié)調(diào)器通過掃描一個空信道來建立一個新的網(wǎng)絡(luò),然后選擇一個隨機的PAN ID并開始監(jiān)聽此信道。同時協(xié)調(diào)器還有一個目前連接設(shè)備的列表,以支持其他設(shè)備加入網(wǎng)絡(luò)。
main( ) {
halInit( ); //硬件初始化
aplInit( ); // 初始化協(xié)議棧模塊
ENABLE_GLOBAL_INTERRUPT( ); //打開全局中斷
aplFormNetwork( ); //建立網(wǎng)絡(luò)
while(apsBusy( )) {apsFSM( );} //等待網(wǎng)絡(luò)建立成功
while(1) {apsFSM( );} //運行協(xié)議棧
}
同樣,Zigbee路由器和終端設(shè)備通過aplJoinNetwork()加入?yún)f(xié)調(diào)器建立的網(wǎng)絡(luò)中。終端設(shè)備掃描信道找到協(xié)調(diào)器并申請加入網(wǎng)絡(luò),獲取協(xié)調(diào)器的地址,同時將本設(shè)備的地址發(fā)送給協(xié)調(diào)器。網(wǎng)絡(luò)加入成功后,終端設(shè)備則進(jìn)入休眠狀態(tài),直到有數(shù)據(jù)發(fā)送時才被喚醒。
main( ) {
halInit( ); //硬件初始化
aplInit( ); //初始化協(xié)議棧模塊
ENABLE_GLOBAL_INTERRUPT( ); //打開全局中斷
do {
aplJoinNetwork( ); //加入網(wǎng)絡(luò)
while(apsBusy)( )){apsFSM( );} //等待加入網(wǎng)絡(luò)成功
}while (aplGetStatus( ) !=LRWPAN_SUCCESS);
while(1) {apsFSM( );} //運行協(xié)議棧
}
4 應(yīng)用
Zigbee無線傳感器網(wǎng)絡(luò)是具有低成本、低功耗、低速率的短距離的無線通信網(wǎng),在實際應(yīng)用中,通常應(yīng)滿足以下條件:設(shè)備成本低、體積小;使用一次性電池;通信覆蓋范圍大、傳輸?shù)臄?shù)據(jù)量很小。使用該無線傳感器網(wǎng)絡(luò)平臺方便地利用Zigbee技術(shù)開發(fā)應(yīng)用。下面重點介紹基于該平臺的溫度監(jiān)測的實驗。
無線溫度監(jiān)測系統(tǒng)由多個獨立的終端節(jié)點、一個網(wǎng)絡(luò)協(xié)調(diào)器和一臺PC機組成星形網(wǎng)絡(luò)。其中,傳感器節(jié)點分布于需要檢測的區(qū)域,負(fù)責(zé)對數(shù)據(jù)的感知和處理,并通過無線射頻信號發(fā)射出去;協(xié)調(diào)器接收各個傳感器節(jié)點發(fā)出的無線射頻信號,通過RS-232的串口線送入PC主機;PC主機負(fù)責(zé)存儲及對數(shù)據(jù)的進(jìn)一步處理。
只要在該平臺的基礎(chǔ)上設(shè)計應(yīng)用層的程序就能實現(xiàn)無線溫度監(jiān)測,無需設(shè)計物理層、MAC層和網(wǎng)絡(luò)層的代碼。每隔10秒進(jìn)行一次溫度采集,兩次溫度采集期間節(jié)點進(jìn)入休眠狀態(tài),以減少功耗。某一時刻對節(jié)點1加熱,從圖3可以看出,在60秒左右時,采集的數(shù)據(jù)明顯地增大。而節(jié)點2在時刻采集環(huán)境溫度,可以看出,采集到的數(shù)據(jù)基本為一直線。實驗結(jié)果表明,該溫度監(jiān)控可以很好地實現(xiàn)功能,而且具有低功耗、低速率的特點,布置起來擺脫了線纜的限制。
本文使用CC2430芯片設(shè)計并實現(xiàn)了Zigbee無線傳感器網(wǎng)絡(luò)平臺,以低成本、低功耗等為目標(biāo)設(shè)計終端節(jié)點,采用模塊化的方法設(shè)計了Zigbee協(xié)議棧,使得該平臺具有通用性和易開發(fā)性,解決了從系統(tǒng)設(shè)計到產(chǎn)品設(shè)計中的典型問題,加快了Zigbee無線傳感器網(wǎng)絡(luò)的開發(fā)和應(yīng)用。