Zigbee建網(wǎng)和入網(wǎng)過程實驗_第1頁
Zigbee建網(wǎng)和入網(wǎng)過程實驗_第2頁
Zigbee建網(wǎng)和入網(wǎng)過程實驗_第3頁
Zigbee建網(wǎng)和入網(wǎng)過程實驗_第4頁
Zigbee建網(wǎng)和入網(wǎng)過程實驗_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、6.2 Zigbee建網(wǎng)和入網(wǎng)過程實驗本實驗通過Sample App這個例子實現(xiàn)數(shù)據(jù)在ZigBee網(wǎng)絡(luò)中的簡單傳輸。要求掌握網(wǎng)絡(luò)組建及協(xié)議分析儀的使用方法。6.2.1 實驗?zāi)康呐c器材1)實驗?zāi)康膗 熟悉zigbee協(xié)議的三種設(shè)備建網(wǎng)時所擔(dān)任的角色;u 學(xué)習(xí)Z-Stack2007/PRO協(xié)議棧中協(xié)調(diào)器如何建立網(wǎng)絡(luò);u 學(xué)習(xí)Z-Stack2007/PRO協(xié)議棧中路由和終端如何加入網(wǎng)絡(luò);u 學(xué)習(xí)TI官方提供的抓包工具(Sniffer)的應(yīng)用及協(xié)議分析。2)實驗器材u 3個CC2530開發(fā)套件(1個協(xié)調(diào)器模塊,2個路由器模塊);6.2.2 實驗原理與步驟1)硬件介紹CC2530開發(fā)套件如實驗一中的硬件

2、介紹,這里就不再陳述。2)實驗原理1 設(shè)備的分類ZigBee網(wǎng)絡(luò)只支持兩種設(shè)備:1)全功能設(shè)備(FFD Full Function Device)2)精簡功能設(shè)備(也叫半功能設(shè)備 Reduced Function Device)兩者的比較:其中FFD設(shè)備能夠提供MAC層的所有服務(wù),可充當(dāng)任何ZigBee節(jié)點,不僅可以接收發(fā)送數(shù)據(jù),還具有路由功能,因此可以接收子節(jié)點;而RFD只能提供部分的MAC層服務(wù),只能充當(dāng)子節(jié)點,只負(fù)責(zé)將采集到的數(shù)據(jù)發(fā)送給協(xié)調(diào)器和路由器節(jié)點,本身并不具有路由功能,因此不能接收子節(jié)點信息,RFD之間的通信只能通過FFD來完成。ZigBee標(biāo)準(zhǔn)在此基礎(chǔ)上定義了三種節(jié)點:ZigB

3、ee協(xié)調(diào)器(Coordinator)、ZigBee路由器(Routers)、ZigBee終端(End Device)2 所使用的設(shè)備所用的ZigBee設(shè)備都具有連接網(wǎng)絡(luò)和斷塊網(wǎng)路的功能。ZigBee協(xié)調(diào)器和路由器都具有以下附加功能:1)允許設(shè)備以如下方式連接網(wǎng)路: MAC(Medium Access Control)層的連接命令。 應(yīng)用層的連接請求2)允許設(shè)備以如下方式斷開網(wǎng)絡(luò); MAC層的斷開命令 應(yīng)用層的斷開命令 對邏輯網(wǎng)絡(luò)地址的分配 維護鄰居設(shè)備3 組建網(wǎng)絡(luò)組建一個網(wǎng)狀的ZigBee網(wǎng)絡(luò)包括兩個步驟:網(wǎng)絡(luò)的初始化和節(jié)點加入網(wǎng)絡(luò);而節(jié)點加入網(wǎng)絡(luò)又有兩個步驟:通過協(xié)調(diào)器加入網(wǎng)絡(luò)和通過已有節(jié)點

4、入網(wǎng)。1) 網(wǎng)絡(luò)的初始化ZigBee網(wǎng)絡(luò)的建立是由協(xié)調(diào)器(Coordinator)發(fā)起的,任何一個節(jié)點想建立一個網(wǎng)絡(luò)必須滿足兩個條件: 節(jié)點是FFD節(jié)點,具有協(xié)調(diào)器功能; 節(jié)點還沒有和其他網(wǎng)絡(luò)連接(一個網(wǎng)絡(luò)中只許有一個協(xié)調(diào)器)網(wǎng)絡(luò)初始化過程如圖圖6-2-1所示。圖6-2-1 網(wǎng)絡(luò)初始化流程網(wǎng)絡(luò)初始化流程如下:1) 確定網(wǎng)絡(luò)協(xié)調(diào)器。首先判斷節(jié)點是否是FFD節(jié)點,接著判斷次節(jié)點是否是其他網(wǎng)絡(luò)里的網(wǎng)絡(luò)協(xié)調(diào)器(通過編程設(shè)定其節(jié)點屬性)。通過主動掃描,發(fā)送一個信標(biāo)請求命令(Beacon request command),然后還要設(shè)置一個掃描期限時間(T_scan_duration),如果在掃描期內(nèi)沒有檢

5、測到信標(biāo),那么此FFD即可建立自己ZigBee網(wǎng)絡(luò),并且作為這個網(wǎng)絡(luò)的協(xié)調(diào)器不斷產(chǎn)生信標(biāo)并廣播出去。2) 進行信道掃描。包括能量掃描和主動掃描。首先對指定的信道或默認(rèn)的信道進行能量掃描,以避免可能的干擾。為實現(xiàn)能量檢測掃描,設(shè)備網(wǎng)絡(luò)層通過發(fā)送掃描類型(ScanType)參數(shù)設(shè)置為能量檢測掃描的MLME-SCAN.request原語到MAC層進行信道能量檢測掃描掃描結(jié)果通過MLME-SCAN.confirm原語返回。當(dāng)網(wǎng)絡(luò)層關(guān)聯(lián)實體收到成功的能量檢測掃描結(jié)果后,將以遞增的方式對所測的能量值進行信道排序,并且拋棄那些能量值超出了可允許能量水平的信道,選擇可允許能量水平的信道作下一步處理然后,網(wǎng)絡(luò)管

6、理實體將通過發(fā)送MLME-SCAN.Request原語進行主動掃描,其中該原語的ScanType參數(shù)設(shè)置為主動掃描。搜索節(jié)點通信半徑內(nèi)的網(wǎng)絡(luò)信息。這些信息以網(wǎng)絡(luò)信標(biāo)幀的形式在網(wǎng)絡(luò)中廣播,節(jié)點通過主動掃描形勢接收這些信標(biāo)幀,然后根據(jù)這些信息,找到一個較好的,相對安靜的信道,該信道存在最少的ZigBee網(wǎng)絡(luò)(最好也沒有ZigBee設(shè)備)。3)設(shè)置網(wǎng)絡(luò)ID。找到合適的網(wǎng)絡(luò)后,協(xié)調(diào)器將為這個新網(wǎng)絡(luò)選擇一個PAN標(biāo)識符(PAN ID,取值0x3FFF),這個ID在所使用的信道中必須是唯一的。PAN ID可以通過監(jiān)聽通道內(nèi)其他網(wǎng)絡(luò)的ID來選擇一個不會沖突的ID的方式來獲取,也可以人為的指定。在ZigBee

7、網(wǎng)絡(luò)中有兩種地址模式:擴展地址或叫做MAC地址(64位)和短地址(16位),其中擴展地址由IEEE組織分配,用于唯一的設(shè)備標(biāo)識;短地址用于本地網(wǎng)絡(luò)中的設(shè)備標(biāo)識,在一個網(wǎng)絡(luò)中,每個設(shè)備的短地址必須唯一,當(dāng)節(jié)點加入網(wǎng)絡(luò)時由其父節(jié)點分配并通過使用短地址進行通信。對于協(xié)調(diào)器來說,短地址通常設(shè)定為0X0000;網(wǎng)絡(luò)初始化包括兩方面的內(nèi)容:確定初始化參數(shù)和選定參數(shù)配置到節(jié)點中。節(jié)點需要初始化的參數(shù)如下:操作信道LogicChannel、PAN ID、節(jié)點自身短地址macShorAddress、信標(biāo)周期BeaconOrder、超幀激活周期SuperframeOrder等。在確定網(wǎng)絡(luò)的初始化參數(shù)之后,將通過調(diào)

8、用MAC層的MLNE-SAP接口的設(shè)置原語(MLME-SET)和開始原語(MLME-START)將選定的參數(shù)配置到節(jié)點的MAC中。如圖6-2-2所對應(yīng)的建立網(wǎng)絡(luò)流程。 圖6-2-2 建立一個新網(wǎng)絡(luò)4 節(jié)點通過協(xié)調(diào)器加入網(wǎng)絡(luò) 當(dāng)ZigBee協(xié)調(diào)器確定以后,節(jié)點首先需要和協(xié)調(diào)器建立連接加入網(wǎng)絡(luò)。 圖6-2-3 節(jié)點(FFD)與協(xié)調(diào)器連接加入網(wǎng)絡(luò)的流程圖 為了建立連接,F(xiàn)FD節(jié)點需要向協(xié)調(diào)器提出連接請求,協(xié)調(diào)器接收到節(jié)點的連接請求后根據(jù)情況決定是否允許其連接,然后對請求連接的節(jié)點做出響應(yīng),節(jié)點與協(xié)調(diào)器建立連接以后,才能實現(xiàn)數(shù)據(jù)的收發(fā)。如圖6-2-3所示,具體的流程可以分為以下幾步:1) 查找網(wǎng)絡(luò)協(xié)調(diào)

9、器。首先會主動掃描查找周圍網(wǎng)絡(luò)的協(xié)調(diào)器,如果在掃描期限內(nèi)檢測到信標(biāo),那么將獲得協(xié)調(diào)器的有關(guān)信息,這時就向協(xié)調(diào)器發(fā)送連接請求,在選擇合適的網(wǎng)絡(luò)后,上層將請求MAC層對物理層和MAC層的phyCurrentChannel、macPANID等PIB(數(shù)據(jù)庫)屬性進行相應(yīng)的設(shè)置。如果沒有檢測到,間隔一段時間后,節(jié)點重新發(fā)送掃描。2) 發(fā)送關(guān)聯(lián)請求命令(Associate request commmand)。節(jié)點將關(guān)聯(lián)請求命令發(fā)給協(xié)調(diào)器,協(xié)調(diào)器收到后立即回復(fù)一個確認(rèn)幀(ACK),同時向它的上層發(fā)送連接指示原語,表示已經(jīng)收到節(jié)點的連接請求。但這并不意味著已經(jīng)建立連接,只表示協(xié)調(diào)器已經(jīng)收到節(jié)點的連接請求。當(dāng)

10、協(xié)調(diào)器的MAC層的上層接收到連接指示原語后,將根據(jù)自己的資源情況(存儲空間和能量)決定是否同意此節(jié)點加入請求,然后給節(jié)點MAC層發(fā)送響應(yīng)。3) 等待協(xié)調(diào)器處理。當(dāng)節(jié)點收到協(xié)調(diào)器加入請求命令的ACK后,節(jié)點的MAC將等待一段時間,接收協(xié)調(diào)器的連接響應(yīng)。在預(yù)定的時間內(nèi),如果接收到連接響應(yīng),它將這個響應(yīng)向它的上層通告。而協(xié)調(diào)器給節(jié)點的MAC層發(fā)送響應(yīng)時會設(shè)置一個等待響應(yīng)時間(T_ResponseWaitTime)來等待協(xié)調(diào)器對其加入請求命令的處理,若協(xié)調(diào)器資源足夠,協(xié)調(diào)器會給節(jié)點分配一個16位的短地址,并產(chǎn)生包含新地址和連接成功狀態(tài)的連接響應(yīng)命令,則此節(jié)點將成功的和協(xié)調(diào)器建立連接并可以開始通信。若協(xié)

11、調(diào)器資源不夠,待加入的節(jié)點將重新發(fā)送請求信息,直到入網(wǎng)成功。4) 發(fā)送數(shù)據(jù)請求命令。如果協(xié)調(diào)器在響應(yīng)時間內(nèi)同意節(jié)點加入,那么將產(chǎn)生關(guān)聯(lián)響應(yīng)命令(Associate reponse command)并先存儲這個命令。當(dāng)響應(yīng)時間過后,節(jié)點發(fā)送數(shù)據(jù)請求命令(Data request command)給協(xié)調(diào)器,協(xié)調(diào)器收到后立即回復(fù)ACK,然后將存儲的關(guān)聯(lián)響應(yīng)命令發(fā)給節(jié)點。如果在響應(yīng)時間到后,協(xié)議器還沒有決定是否同意節(jié)點加入,那么節(jié)點將試圖從協(xié)議器的信標(biāo)幀中提取關(guān)聯(lián)響應(yīng)命令,成功的話就可以入網(wǎng)成功,否則重新發(fā)送請求信息直到入網(wǎng)成功。5) 回復(fù)。節(jié)點收到關(guān)聯(lián)響應(yīng)命令后,立即向協(xié)調(diào)器回復(fù)一個確認(rèn)幀(ACK)

12、,以確認(rèn)接收到連接響應(yīng)命令,此時節(jié)點將保存協(xié)調(diào)器的短地址和擴展地址,并且節(jié)點的MLME向上層發(fā)送連接確認(rèn)原語,通告關(guān)聯(lián)加入成功的信息。上面的完成以后,等待加入網(wǎng)絡(luò)的節(jié)點應(yīng)該已經(jīng)收到協(xié)調(diào)器的加入請求回復(fù)。如果該請求通過,該節(jié)點將成功和協(xié)調(diào)器建立連接并獲得網(wǎng)絡(luò)地址和其他節(jié)點進行通信。在上述連接過程中,請求建立連接的節(jié)點的上層生成連接請求原語發(fā)送給節(jié)點的MAC層。MAC層的MLME接收到這個原語后,先向物理層發(fā)送和原語更新phyCurrentchannel和macPANID的值,然后生成一個含有建立連接請求的命令幀發(fā)送給指定的協(xié)調(diào)器。節(jié)點在發(fā)送命令幀時使用CSMA-CA(載波偵聽多址接入沖突避免)。

13、如圖6-2-4所示為節(jié)點連接過程原語時序圖。圖6-2-4 節(jié)點與協(xié)調(diào)器連接原語時序圖5 節(jié)點通過已有節(jié)點加入網(wǎng)絡(luò) 當(dāng)靠近協(xié)調(diào)器的FFD節(jié)點和協(xié)調(diào)器關(guān)聯(lián)成功后,處于這個網(wǎng)絡(luò)范圍內(nèi)的其他節(jié)點就以這些FFD節(jié)點作為父節(jié)點加入網(wǎng)絡(luò)了,具體加入網(wǎng)絡(luò)的方式有兩種: 通過關(guān)聯(lián)(association)方式,就是待加入節(jié)點發(fā)起加入網(wǎng)絡(luò);也就是子設(shè)備用MAC連接程序來加入網(wǎng)絡(luò) 直接方式(direct)方式,子設(shè)備直接同一個預(yù)先所指定的父設(shè)備連接來加入網(wǎng)絡(luò)。其中關(guān)聯(lián)方式是ZigBee網(wǎng)絡(luò)中新節(jié)點加入網(wǎng)絡(luò)的主要途徑對于一個節(jié)點來說,只有沒有加入網(wǎng)絡(luò)的才能進行加入網(wǎng)絡(luò)。在這些節(jié)點中,有些是曾經(jīng)加入過網(wǎng)絡(luò),但是卻與父節(jié)

14、點失去聯(lián)系(這樣的節(jié)點稱為孤兒節(jié)點),而有些則是新節(jié)點。當(dāng)是孤兒節(jié)點時,在它的相鄰表中存有原父節(jié)點的信息,于是它可以直接給源父節(jié)點發(fā)送加入網(wǎng)絡(luò)的請求信息。如果父節(jié)點有能量同意它加入,于是直接告知它的以前被分配的網(wǎng)絡(luò)地址,它便入網(wǎng)成功;如果此時它原來的父節(jié)點的網(wǎng)絡(luò)中,子節(jié)點數(shù)已經(jīng)達到最大值,也就是說網(wǎng)絡(luò)地址已經(jīng)分配滿,父節(jié)點便無法批準(zhǔn)它加入,它只能以新節(jié)點身份重新尋找并加入網(wǎng)絡(luò)。而對于新節(jié)點來說,它首先會在預(yù)先設(shè)定的一個或多個信道上通過主動或被動掃描周圍它可找到的網(wǎng)絡(luò),尋找有能批準(zhǔn)自己加入網(wǎng)絡(luò)的父節(jié)點,并把可以找到的所有父節(jié)點的資料存入自己的相鄰表。存入相鄰表的父節(jié)點的資料包括:ZigBee協(xié)議

15、的版本、堆棧的規(guī)范、PANID和可以加入的信息。在相鄰表中所有的父節(jié)點中選擇一個發(fā)送請求。如果發(fā)送的請求被批準(zhǔn),那么父節(jié)點同時會被分配給它一個16為的網(wǎng)絡(luò)地址,此時入網(wǎng)成功,子節(jié)點可以開始通信。如果請求失敗,那么重新查找相鄰表,繼續(xù)發(fā)送請求信息,直到加入網(wǎng)絡(luò)或者相鄰表中沒有了合適的父節(jié)點。3)實驗步驟第一步:打開協(xié)調(diào)器,藍燈先亮,然后黃燈閃爍幾下,既而一直保持亮。第二步:打開路由器,藍燈先亮,然后黃燈閃爍幾下,既而一直保持亮。第三步:按動一下協(xié)調(diào)器的上鍵,這時路由器的綠燈閃爍四下。第四步:按動一下路由器的上鍵,這時協(xié)調(diào)器的綠燈閃爍四下。4)程序清單清單6.2.1 管理協(xié)調(diào)器的孩子節(jié)點,并向這些

16、節(jié)點發(fā)送關(guān)聯(lián)消息/* * 函數(shù)名 ZDP_NwkAddrReq * 描述 構(gòu)建并發(fā)送一個網(wǎng)絡(luò)地址請求幀。利用廣播的方式,利用IEEE地址來尋求網(wǎng)絡(luò)地址。 * 參數(shù) IEEEAddress:獲取的設(shè)備IEEE地址;ReqType :兩種獲取方式。一個是單一獲?。?x0001),一個是擴展獲取(0x0002)。StartIndex :開始索引,默認(rèn)為0;SecurityEnable:安全選項; * 返回值 afStatus_t */afStatus_t ZDP_NwkAddrReq( uint8 *IEEEAddress, byte ReqType, byte StartIndex, byte S

17、ecurityEnable ) uint8 *pBuf = ZDP_TmpBuf; byte len = Z_EXTADDR_LEN + 1 + 1; / IEEEAddress + ReqType + StartIndex. zAddrType_t dstAddr; (void)SecurityEnable; / Intentionally unreferenced parameter if ( osal_ExtAddrEqual( saveExtAddr, IEEEAddress ) = FALSE ) dstAddr.addrMode = AddrBroadcast; dstAddr.a

18、ddr.shortAddr = NWK_BROADCAST_SHORTADDR_DEVRXON; else dstAddr.addrMode = Addr16Bit; dstAddr.addr.shortAddr = ZDAppNwkAddr.addr.shortAddr; pBuf = osal_cpyExtAddr( pBuf, IEEEAddress ); *pBuf+ = ReqType; *pBuf+ = StartIndex; return fillAndSend( &ZDP_TransID, &dstAddr, NWK_addr_req, len );6.2.3

19、實驗結(jié)果我們可以通過協(xié)議分析儀分析ZigBee數(shù)據(jù)包來描述實驗的結(jié)果。以下是利用協(xié)議分析儀分析建立ZigBee網(wǎng)絡(luò),節(jié)點加入及發(fā)送數(shù)據(jù)的實驗過程。圖5 協(xié)調(diào)器上電之后的廣播包1圖6協(xié)調(diào)器上電之后的廣播包2如圖5所示,第一行,協(xié)調(diào)器首先上電,完成網(wǎng)絡(luò)的初始化,選擇一個合適的信道,并且為自己的網(wǎng)絡(luò)選擇一個PAN_ID(0x2053),然后向周圍發(fā)生beacon request的包。從第二行開始此協(xié)調(diào)器對信道進行掃描(主動掃描),然后不停的發(fā)送廣播包(0xFFFF)。廣播的內(nèi)容可以根據(jù)APS Cluster確定。此時的APS Cluster為0x0001。它是的意思是將節(jié)點要加入網(wǎng)絡(luò)的IEEE地址發(fā)

20、送給協(xié)調(diào)器。具體實現(xiàn)方式如程序清單6.2.1所示,其中ReqType參數(shù)的請求方式類型有兩種,一個為單一獲取(0x0001),一個為擴展獲取(0x0002)。這里的單一獲取方式0x0001標(biāo)識碼即為APS Cluster Id。APS Profile Id為不同的應(yīng)用所定義的不同Profile,這里的sampleApp為0x0F08,可以在SampleApp.h文件中找到。APS Dest. Endpoint為設(shè)備的端口號,這里為0x14。關(guān)于端口號前面已經(jīng)講過,這里就不再陳述。在第四行,協(xié)調(diào)器發(fā)送了一個網(wǎng)絡(luò)層的命令幀,該幀的目的地址為0xFFFC,表示只是所有的協(xié)調(diào)器和路由器才能接收到該消息

21、。該命令幀是路由請求命令,它允許發(fā)送該命令的設(shè)備請求其無線覆蓋范圍的其他設(shè)備針對一個特定的目的設(shè)備執(zhí)行路由搜索,在網(wǎng)絡(luò)中建立狀態(tài)信息以使得消息能夠更方便快捷地傳遞到目的設(shè)備。由于目前沒有打開路由設(shè)備,所以Count為0,List_status_list也為空。每個路由請求命令幀間隔15秒,利用#define NWK_LINK_STATUS_PERIOD 15 進行的設(shè)置,該宏定義在nwk_globals.h文件中。接下來協(xié)調(diào)器廣播3條地址請求信息,廣播一條路由請求命令幀,直到新的節(jié)點加入。圖7 路由節(jié)點0x2B38加入網(wǎng)絡(luò)將一個路由節(jié)點上電,這樣路由節(jié)點會首先向周圍的環(huán)境做一個信道能量掃描選擇一個能量比較合適的信道進行網(wǎng)絡(luò)搜尋。這里需要注意的是信道能量是有一個等級的,在Z-Stack里面會有一個門限值,當(dāng)這個能量低于這個門限會被認(rèn)為沒有網(wǎng)絡(luò)。當(dāng)信道選擇好之后,路由節(jié)點也會周期性的向周圍發(fā)送Beacon request的包來尋求協(xié)調(diào)器的回復(fù),如圖7所示。當(dāng)協(xié)調(diào)器接收到路由節(jié)點的Beacon request包之后會發(fā)送一個包

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論