ZigBee網絡基礎試驗報告

ZigBee網絡基礎試驗報告數據庫

  本報告經過Sample App這個例子實現數據在ZigBee網絡中的簡單傳輸。要求掌握網絡組建及協議分析儀的使用方法。編程

設備的分類網絡

ZigBee網絡只支持兩種設備:spa

 1)全功能設備(FFD Full Function Device排序

2)精簡功能設備(也叫半功能設備 Reduced Function Device接口

二者的比較:ci

其中FFD設備可以提供MAC層的全部服務,可充當任何ZigBee節點,不只能夠接收放送數據,還具備路由功能,所以能夠接收子節點;而RFD只能提供部分的MAC層服務,只能充當子節點,只負責將採集到的數據發送給協調器和路由器節點,自己並不具備路由功能,所以不能接收子節點信息,RFD之間的通訊只能經過FFD來完成。資源

ZigBee標準在此基礎上定義了三中節點:路由

ZigBee協調器(Coordinator)、ZigBee路由器(Routers)、ZigBee終端(End Deviceit

所使用的設備

所用的ZigBee設備都具備鏈接網絡和斷塊網路的功能。

ZigBee協調器和路由器都具備如下附加功能:

1)容許設備以以下方式鏈接網路:

 MACMedium Access Control)層的鏈接命令。

 應用層的鏈接請求

2)容許設備以以下方式斷開網絡;

 MAC層的斷開命令

 應用層的斷開命令

 對邏輯網絡地址的分配

 維護鄰居設備

 

組建網絡

組建一個網狀的ZigBee網絡包括兩個步驟:網絡的初始化和節點加入網絡;而節點加入網絡又有兩個步驟:經過協調器加入網絡和經過已有節點入網。

1)網絡的初始化

ZigBee網絡的創建是由協調器(Coordinator)發起的,任何一個節點想創建一個網絡必須知足兩個條件:

    節點是FFD節點,具備協調器功能;

    節點尚未和其餘網絡鏈接(一個網絡中只許有一個協調器)

網絡初始化過程:

 

ZigBee網絡工做報告 - 不亦樂乎 - 不亦樂乎

 

 

1:網絡初始化流程

網絡初始化流程以下:

1)肯定網絡協調器。首先判斷節點是不是FFD節點,接着判斷次節點是不是其餘網絡裏的網絡協調器(經過編程設定其節點屬性)。經過主動掃描,發送一個信標請求命令(Beacon request command,而後還要設置一個掃描期限時間(T_scan_duration),若是在掃描期內沒有檢測到信標,那麼此FFD便可創建本身ZigBee網絡,而且做爲這個網絡的協調器不斷產生信標並廣播出去。

2)進行信道掃描。包括能量掃描和主動掃描。

首先對指定的信道或默認的信道進行能量掃描,以免可能的干擾。爲實現能量檢測掃描,設備網絡層經過發送掃描類型(ScanType)參數設置爲能量檢測掃描的MLME-SCAN.request原語到MAC層進行信道能量檢測掃描掃描結果經過MLME-SCAN.confirm原語返回。當網絡層關聯實體收到成功的能量檢測掃描結果後,將以遞增的方式對所測的能量值進行信道排序,而且拋棄那些能量值超出了可容許能量水平的信道,選擇可容許能量水平的信道做下一步處理

而後,網絡管理實體將經過發送MLME-SCAN.Request原語進行主動掃描,其中該原語的ScanType參數設置爲主動掃描。搜索節點通訊半徑內的網絡信息。這些信息以網絡信標幀的形式在網絡中廣播,節點經過主動掃描形勢接收這些信標幀,而後根據這些信息,找到一個較好的,相對安靜的信道,該信道存在最少的ZigBee網絡(最好也沒有ZigBee設備)。

3)設置網絡ID。找到合適的網絡後,協調器將爲這個新網絡選擇一個PAN標識符(PAN ID,取值≦0x3FFF,這個ID在所使用的信道中必須是惟一的。PAN ID能夠經過監聽通道內其餘網絡的ID來選擇一個不會衝突的ID的方式來獲取,也能夠人爲的指定。

ZigBee網絡中有兩種地址模式:擴展地址(64位)和短地址(16位),其中擴展地址有IEEE組織分配,用於惟一的設備標識;短地址用於本地網絡中的設備標識,在一個網絡中,每一個設備的短地址必須惟一,當節點加入網絡時由其父節點分配並經過使用短地址進行通訊。對於協調器來講,短地址一般設定爲0X0000

網絡初始化包括兩方面的內容:肯定初始化參數和選定參數配置到節點中。節點須要初始化的參數以下:操做信道LogicChannelPAN ID、節點自身短地址macShorAddress、信標週期BeaconOrder、超幀激活週期SuperframeOrder等。在肯定網絡的初始化參數以後,將經過調用MAC層的MLNE-SAP接口的設置原語(MLME-SET)和開始原語(MLME-START)將選定的參數配置到節點的MAC中。

1所對應的創建網絡流程:

 

ZigBee網絡工做報告 - 不亦樂乎 - 不亦樂乎

 

                      2  創建一個新網絡

節點經過協調器加入網絡

   ZigBee協調器肯定之後,節點首先須要和協調器創建鏈接加入網絡。

 

ZigBee網絡工做報告 - 不亦樂乎 - 不亦樂乎

 

 

                    節點(FFD)與協調器鏈接加入網絡的流程圖

  爲了創建鏈接,FFD節點須要向協調器提出鏈接請求,協調器接收到節點的鏈接請求後根據狀況決定是否容許其鏈接,而後對請求鏈接的節點作出響應,節點與協調器創建鏈接之後,才能實現數據的收發。具體的流程能夠分爲如下幾步:

1)查找網絡協調器。首先會主動掃描查找周圍網絡的協調器,若是在掃描期限內檢測到信標,那麼將得到協調器的有關信息,這時就向協調器發送鏈接請求,在選擇合適的網絡後,上層將請求MAC層對物理層和MAC層的phyCurrentChannelmacPANIDPIB(數據庫)屬性進行相應的設置。若是沒有檢測到,間隔一段時間後,節點從新發送掃描。

2)發送關聯請求命令(Associate request commmand)。節點將關聯請求命令發給協調器,協調器收到後當即回覆一個確認幀(ACK),同時向它的上層發送鏈接指示原語,表示已經收到節點的鏈接請求。但這並不意味着已經創建鏈接,只表示協調器已經收到節點的鏈接請求。當協調器的MAC層的上層接收到鏈接指示原語後,將根據本身的資源狀況(存儲空間和能量)決定是否贊成此節點加入請求,而後給節點MAC層發送響應。

3)等待協調器處理。當節點收到協調器加入請求命令的ACK後,節點的MAC將等待一段時間,接收協調器的鏈接響應。在預約的時間內,若是接收到鏈接響應,它將這個響應向它的上層通告。而協調器給節點的MAC層發送響應時會設置一個等待響應時間(T_ResponseWaitTime)來等待協調器對其加入請求命令的處理,若協調器資源足夠,協調器會給節點分配一個16位的短地址,併產生包含新地址和鏈接成功狀態的鏈接響應命令,則此節點將成功的和協調器創建鏈接並能夠開始通訊。若協調器資源不夠,待加入的節點將從新發送請求信息,直到入網成功。

4)發送數據請求命令。若是協調器在響應時間內贊成節點加入,那麼將產生關聯響應命令(Associate reponse command)並先存儲這個命令。當響應時間事後,節點發送數據請求命令(Data request command)給協調器,協調器收到後當即回覆ACK,而後將存儲的關聯響應命令發給節點。若是在響應時間到後,協議器尚未決定是否贊成節點加入,那麼節點將試圖從協議器的信標幀中提取關聯響應命令,成功的話就能夠入網成功,不然從新發送請求信息直到入網成功。

5)回覆。節點收到關聯響應命令後,當即向協調器回覆一個確認幀(ACK),以確認接收到鏈接響應命令,此時節點將保存協調器的短地址和擴展地址,而且節點的MLME向上層發送鏈接確認原語,通告關聯加入成功的信息。

上面的完成之後,等待加入網絡的節點應該已經收到協調器的加入請求回覆。若是該請求經過,該節點將成功和協調器創建鏈接並得到網絡地址和其餘節點進行通訊。在上述鏈接過程當中,請求創建鏈接的節點的上層生成鏈接請求原語發送給節點的MAC層。MAC層的MLME接收到這個原語後,先向物理層發送和原語更新phyCurrentchannelmacPANID的值,而後生成一個含有創建鏈接請求的命令幀發送給指定的協調器。節點在發送命令幀時使用CSMA-CA(載波偵聽多址接入—衝突避免)。

鏈接過程原語時序圖(引用):

 

ZigBee網絡工做報告 - 不亦樂乎 - 不亦樂乎
 

 

                         節點與協調器鏈接原語時序圖

節點經過已有節點加入網絡

  當靠近協調器的FFD節點和協調器關聯成功後,處於這個網絡範圍內的其餘節點就以這些FFD節點做爲父節點加入網絡了,具體加入網絡的方式有兩種:

   經過關聯(association)方式,就是待加入節點發起加入網絡;也就是子設備用MAC鏈接程序來加入網絡

   直接方式(direct)方式,子設備直接同一個預先所指定的父設備鏈接來加入網絡。

其中關聯方式是ZigBee網絡中新節點加入網絡的主要途徑

對於一個節點來講,只有沒有加入網絡的才能進行加入網絡。在這些節點中,有些是曾經加入過網絡,可是卻與父節點失去聯繫(這樣的節點稱爲孤兒節點),而有些則是新節點。當是孤兒節點時,在它的相鄰表中存有原父節點的信息,因而它能夠直接給源父節點發送加入網絡的請求信息。若是父節點有能量贊成它加入,因而直接告知它的之前被分配的網絡地址,它便入網成功;若是此時它原來的父節點的網絡中,子節點數已經達到最大值,也就是說網絡地址已經分配滿,父節點便沒法批准它加入,它只能以新節點身份從新尋找並加入網絡。

而對於新節點來講,它首先會在預先設定的一個或多個信道上經過主動或被動掃描周圍它可找到的網絡,尋找有能批准本身加入網絡的父節點,並把能夠找到的全部父節點的資料存入本身的相鄰表。存入相鄰表的父節點的資料包括:ZigBee協議的版本、堆棧的規範、PANID和能夠加入的信息。在相鄰表中全部的父節點中選擇一個發送請求。若是發送的請求被批准,那麼父節點同時會被分配給它一個16爲的網絡地址,此時入網成功,子節點能夠開始通訊。若是請求失敗,那麼從新查找相鄰表,繼續發送請求信息,直到加入網絡或者相鄰表中沒有了合適的父節點。

協議分析儀分析ZigBee數據包:

協議分析儀只是存在一個偵聽的做用,它只能偵聽設備發送的數據

如下是利用協議分析儀分析創建ZigBee網絡,節點加入及發送數據的試驗過程。

 

ZigBee網絡工做報告 - 不亦樂乎 - 不亦樂乎

                   

5  ZigBee信道掃描

從第三行開始此FFD節點對信道進行掃描(主動掃描),途中看出此節點發送廣播幀,一個信標請求命令(Beacon request),在第四行中此節點獲得相應的網絡信息:MAC層將接收到PHY層數據服務接收到的信標。在此,ZigBee內部設置了掃描期限,在此時間內,將重複以上的動

 

ZigBee網絡工做報告 - 不亦樂乎 - 不亦樂乎

 

 

在這裏能夠看到在網絡管理實體一旦選擇了一個PAN標識符,就會馬上選擇一個等於0X000016位網絡地址。

 

ZigBee網絡工做報告 - 不亦樂乎 - 不亦樂乎

 

 

在第17行中,源地址是路由器的物理地址0XDDFFFFFFFFFFFFFF,它的PANID沒有肯定爲0XFFFFF。這時的路由器尚未加入網絡,因此尚未網絡地址;目的地址爲協調器的網絡地址0X0000,它的PANID0X0000;它的命令是聯合方式加入請求。因此該行表示的意思是向協調器發送聯合方式加入請求,發送完成後將獲得一個應答(參見第18行)。

收到應答之後,路由器開始加入網絡(第19行),在收到應答之後(第20行),協調器開始爲路由器分配網絡地址。從第21行能夠看出,路由器分配到的網絡地址爲0X000。這樣就往常了整個創建、加入網絡的過程。

相關文章
相關標籤/搜索