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