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