基于ZigBee的無線傳感器網(wǎng)絡研究
摘要:為了驗證ZigBee協(xié)議的有效性,敘述了新型無線ZigBee通信技術(shù),介紹ZigBee協(xié)議的結(jié)構(gòu)和特點,基于ZigBee協(xié)議的無線網(wǎng)絡設備以及網(wǎng)絡拓撲結(jié)構(gòu);ZigBee標準協(xié)議棧結(jié)構(gòu)及數(shù)據(jù)在協(xié)議棧內(nèi)部的傳輸機制。以兩個網(wǎng)絡設備成網(wǎng)為例,詳細給出了ZigBee設備形成網(wǎng)絡時,各個設備的工作狀態(tài)、設備之間網(wǎng)絡連接過程以及數(shù)據(jù)幀的發(fā)送過程。最后,通過Microchip公司的ZigBee實驗平臺驗證了ZigBee無線星型組網(wǎng),實驗證明,ZigBee技術(shù)是有效的無線傳感器網(wǎng)絡組網(wǎng)技術(shù)。
關(guān)鍵詞:ZigBee技術(shù);無線傳感器網(wǎng)絡;協(xié)議棧;無線星型網(wǎng)絡
0 引言
ZigBee是一種新興的短距離、低功率、低速率的無線接人技術(shù),工作于無須注冊的2.4 GHz ISM頻段,傳輸速率為10~250 Kb/s,傳輸距離為10~75 m。該項技術(shù)自2002年起由ZigBee技術(shù)聯(lián)盟研究開發(fā),采用IEEE 802.15.4標準作為其物理層和媒體接入子層標準、網(wǎng)絡層及上層標準,即ZigBee技術(shù)標準。
以傳感器和自組織網(wǎng)絡為代表的無線應用并不需要較高的傳輸帶寬,但卻需要較低的傳輸延時和極低的功率消耗。因此,迫切需要一種符合傳感器和低端的、面向控制的、應用簡單的專用標準,ZigBee技術(shù)的特點使它與無線傳感器網(wǎng)絡完美地結(jié)合在一起。本文以ZigBee技術(shù)為背景,研究基于ZigBee的無線傳感器網(wǎng)絡。
1 ZigBee網(wǎng)絡設備及網(wǎng)絡拓撲
ZigBee網(wǎng)絡中可同時存在兩種不同類型的設備,一種是具有完整功能的設備(FFD),一種是簡化功能的設備(RFD)。在網(wǎng)絡中,F(xiàn)FD通常有3種工作狀態(tài):作為個人區(qū)域網(wǎng)絡的協(xié)調(diào)器(PAN);作為路由器;作為一個終端設備。一個FFD可以同時和多個RFD或多個其他的FFD通信,而對于RFD,它只能和一個FFD進行通信,故只能作為終端設備。
ZigBee協(xié)調(diào)器,即ZigBee的個域網(wǎng)協(xié)調(diào)器,是網(wǎng)絡建立的起點,負責網(wǎng)絡的初始化,確定個域網(wǎng)標識符和網(wǎng)絡工作的物理信道,并統(tǒng)籌短地址的分配。ZigBee協(xié)調(diào)器必須是全功能設備,并且一個網(wǎng)絡只有一個協(xié)調(diào)器。ZigBee路由器是一個全功能設備,類似于定義的協(xié)調(diào)器,在接入網(wǎng)路后,它能獲得一定的16位短地址空間。在其通信范圍內(nèi),它能允許其他節(jié)點加入或者離開網(wǎng)絡,分配及收回短地址,路由和轉(zhuǎn)發(fā)數(shù)據(jù)。ZigBee終端設備,既可以是全功能設備,也可以是簡化功能設備,它只能與其父節(jié)點通信,從其父節(jié)點處獲得網(wǎng)絡標識符、短地址等相關(guān)信息。
ZigBee網(wǎng)絡由FFD和RFD組成,網(wǎng)絡有兩種拓撲結(jié)構(gòu):星型拓撲結(jié)構(gòu)和對等拓撲結(jié)構(gòu)。具體拓撲結(jié)構(gòu)如圖1所示。星型拓撲網(wǎng)絡是由一個PAN協(xié)調(diào)器的中央控制器和多個從設備組成,主協(xié)調(diào)器必須是一個FFD設備,從設備既可以是FFD也可以RFD;對等網(wǎng)絡拓撲結(jié)構(gòu)也存在協(xié)調(diào)器,該網(wǎng)絡不同于星型拓撲結(jié)構(gòu),在該拓撲結(jié)構(gòu)中任何設備只要在其通信范圍之內(nèi),就可以和其他設備進行通信。
2 ZigBee協(xié)議棧
根據(jù)ZigBee聯(lián)盟公布的ZigBee技術(shù)標準,各個芯片生產(chǎn)廠家都公布了基于自己產(chǎn)品的ZigBee協(xié)議棧。有TI公司、AVR公司、Microchip公司等,其中TI公司及Microchip公司開發(fā)了源代碼開放的ZigBee協(xié)議棧。本文介紹Microchip公司基于ZigBee 2006標準的ZigBee協(xié)議棧。
ZigBee協(xié)議棧采用分層結(jié)構(gòu),每一層都為其上一層提供一套明確的服務:數(shù)據(jù)實體提供數(shù)據(jù)傳輸服務,管理實體則提供其他所有的服務。每個服務實體都通過服務接入點為上層提供一個接口,每個服務接入點都支持一定數(shù)量的服務原語來實現(xiàn)所需功能。協(xié)議棧框架如圖2所示,APSDE-SAP為數(shù)據(jù)實體接口,MLME-SAP為管理實體接口。ZigBee協(xié)議棧中,各層間數(shù)據(jù)的傳輸通過幀來實現(xiàn),在PAN網(wǎng)絡結(jié)構(gòu)中定義了4種幀結(jié)構(gòu):信標幀、數(shù)據(jù)幀、確認幀及命令幀。不管是那種傳輸幀,發(fā)送時都是自協(xié)議棧高層向底層傳輸,從產(chǎn)生層向下每個協(xié)議層都為其增加自己的幀頭和幀尾。接收時都是自底層向高層傳輸,從物理層向上依次去掉每個協(xié)議層的幀頭和幀尾。
3 無線網(wǎng)絡組網(wǎng)機制
3.1 建立一個新網(wǎng)絡并將設備與網(wǎng)絡連接
新的網(wǎng)絡首先由協(xié)調(diào)器設備建立,啟動時,協(xié)調(diào)器搜索附近其他協(xié)調(diào)器,如果沒有發(fā)現(xiàn)協(xié)調(diào)器,它就通過發(fā)送NLME-NETWORK-FORMATIO-N.request原語啟動一個新的網(wǎng)絡建立過程。當建立網(wǎng)絡過程開始后,協(xié)調(diào)器網(wǎng)絡層將首先請求MAC層對協(xié)議所規(guī)定的信道,或由物理層所默認的有效信道進行能量檢測掃描,設備網(wǎng)絡層發(fā)送掃描類型參數(shù)設置為能量檢測掃描的MLME_SCAN.request原語到MAC層進行信道能量檢測掃描。掃描結(jié)果通過MLME_SCAN.confirm原語返回。當網(wǎng)絡層管理實體收到成功的能量檢測掃描結(jié)果后,將以遞增的方式對所測量的能量值進行信道排序,并且拋棄那些能量值超出了可允許能量水平的信道,選擇可允許能量水平的信道有待處理。此后網(wǎng)絡層管理實體發(fā)送MLME_SCA-N.request原語執(zhí)行主動掃描,搜索所有的ZigBee設備。為了決定用于建立一個新網(wǎng)絡的最佳通道,網(wǎng)絡層管理實體將檢查PAN描述符確保所給定的個域網(wǎng)標識符不會與所選擇的信道的現(xiàn)有標識符參數(shù)產(chǎn)生沖突,如果沖突那么可能從給定的信道中選擇另外一個信道。如果找到了適當?shù)耐ǖ?,則將為這個新網(wǎng)絡選擇一個PAN標識符。一旦選定了PAN標識符,將選擇一個等于0x0000的16位網(wǎng)絡地址,并且設置MAC層的地址P-IB屬性,將其設置為該值。分配地址后,將通過MAC層發(fā)出MLME_START.request原語開始運行新的個域網(wǎng),NLME-NETWORK-FORMATION.conf-irm原語返回網(wǎng)絡已經(jīng)形成的確認。
通過NLME_PERMIT_JOINING.request原語允許其他設備與網(wǎng)絡連接,該原語允許ZigBee協(xié)調(diào)器或路由器上層設定其MAC層連接允許標志,在一定期間內(nèi)允許其他設備同網(wǎng)絡連接。僅僅只有ZigBee協(xié)調(diào)器或路由器才能企圖允許設備與網(wǎng)絡連接,如果終端節(jié)點設備的網(wǎng)絡層管理實體收到該原語時,則返回狀態(tài)為INVALID-REQUEST的NLME_PERMIT_JOIN-ING.confirm原語。NLME_PERMIT_JOINING.re-quest原語激發(fā)網(wǎng)絡層向MAC層發(fā)送MLME_SET.request原語完成MAC層若干屬性設置,MAC層通過MLME_SET.confirm返回結(jié)果,網(wǎng)絡層通過NLME_PERMIT_JOINING. confirm返回設置結(jié)果,允許設備同網(wǎng)絡連接。
3.2 子設備連接網(wǎng)絡
當網(wǎng)絡建立并允許新設備接入時,子設備可以通過兩種方式加入網(wǎng)絡:
(1)利用MAC子層關(guān)聯(lián)接入程序加入網(wǎng)絡;
(2)通過應用層預先指派的父設備直接加入網(wǎng)絡。
在這兩種方式的基礎(chǔ)上,協(xié)議定義了四種接入方法:關(guān)聯(lián)接入、利用網(wǎng)絡層再接入命令再接入網(wǎng)絡、網(wǎng)絡直接接入和以孤點方式連接或重新連接網(wǎng)絡。
關(guān)聯(lián)接入是新設備接入ZigBee網(wǎng)絡的主要途徑。關(guān)聯(lián)接入過程中,請求入網(wǎng)的子設備首先由應用層向底層發(fā)出NLME_NETWORK_DISCOVER-Y.request原語在網(wǎng)絡通信發(fā)起網(wǎng)絡發(fā)現(xiàn)操作,在預先設定的一個或多個信道上通過主動掃描和被動掃描搜索鄰居網(wǎng)絡的信息。一旦完成主被動掃描,底層通過NLME_NET-WORK_DISCOVERY.confirm原語將鄰居信息返回給應用層。應用層也可以選擇重新執(zhí)行網(wǎng)絡發(fā)現(xiàn)命令,以便發(fā)現(xiàn)更多的網(wǎng)絡。
如果不重新執(zhí)行發(fā)現(xiàn)任務,將從發(fā)現(xiàn)的網(wǎng)絡中選擇一個網(wǎng)絡進行連接,即通過發(fā)送NLME_JOIN.request原語以直接或聯(lián)合方式請求連接網(wǎng)絡,沒有連接的設備會在鄰居表中選擇一個適當?shù)母冈O備請求連接。父設備在收到關(guān)聯(lián)接入請求后,首先在其鄰居表中查找子設備的64位IEEE地址是否已經(jīng)存在,若存在,則把對應的16位短地址分配給子設備,若不存在,則分配一個新的16為短地址給子設備,然后將該地址通過關(guān)聯(lián)接入應答原語NLME_JOIN.confirm發(fā)送給子設備,同時更新其鄰居表和路由表。子設備收到關(guān)聯(lián)接入確認后,更新自己的16位短地址和鄰居表,完成關(guān)聯(lián)接入過程。
網(wǎng)絡形成及子設備關(guān)聯(lián)接入流程如圖3所示。
4 無線組網(wǎng)實驗
本實驗采用3個節(jié)點完成無線環(huán)境區(qū)域內(nèi)的星型組網(wǎng)連接,網(wǎng)絡設備包括一個全功能設備和兩個簡單功能設備。實驗中,節(jié)點硬件采用相同構(gòu)成,采用Microchip公司開發(fā)的ZigBee實驗平臺,協(xié)議棧采用該公司對應的軟件程序。終端和星型網(wǎng)絡協(xié)調(diào)器功能差異由軟件實現(xiàn),完成終端采集溫度數(shù)據(jù)而協(xié)調(diào)器收集數(shù)據(jù)的任務。其中,兩個終端加入網(wǎng)絡的過程相同,遵循上節(jié)所述過程,協(xié)調(diào)器串口輸出如圖4所示。
5 結(jié)語
本文分析了使用ZigBee協(xié)議組成無線網(wǎng)絡的過程,通過實驗證明了ZigBee協(xié)議棧能夠形成穩(wěn)定可靠的ZigBee無線網(wǎng)絡。用戶可以根據(jù)使用環(huán)境選配不同的傳感器,并選擇所需的拓撲結(jié)構(gòu),實現(xiàn)不同應用環(huán)境不同拓撲結(jié)構(gòu)的無線傳感器網(wǎng)絡,如覆蓋面積較大可選擇多跳路由方式傳遞數(shù)據(jù),即將本實驗協(xié)調(diào)器作為協(xié)調(diào)器和路由器繼續(xù)向上級傳輸數(shù)據(jù)。該系統(tǒng)可以應用于軍事監(jiān)測、智能家居、工農(nóng)業(yè)生產(chǎn)等領(lǐng)域,為監(jiān)測環(huán)境區(qū)域參數(shù)提供了強而有效的方案。