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