Zigbee組網原理詳解

2022-07-01 10:57:12 字數 3762 閱讀 3854

2023年08月13日 15:57

rfdffd

zigbee

1.組網概述

組建乙個完整的zigbee網狀網路包括兩個步驟:網路初始化、節點加入網路。其中節點加入網路又包括兩個步驟:通過與協調器連接入網和通過已有父節點入網。

2. 網路初始化預備

zigbee網路的建立是由網路協調器發起的,任何乙個zigbee節點要組建乙個網路必須要滿足以下兩點要求:

(1)節點是ffd節點,具備zigbee協調器的能力;

(2)節點還沒有與其他網路連線,當節點已經與其他網路連線時,此節點只能作為該網路的子節點,因為乙個zigbee網路中有且只有乙個網路協調器。

ffd:full function device 全功能節點

rfd:reduced functiondevice 半功能節點

3.網路初始化流程

3.1 確定網路協調器:

首先判斷節點是否是ffd節點,接著判斷此ffd節點是否在其他網路裡或者網路裡是否已經存在協調器。通過主動掃瞄,傳送乙個信標請求命令(beaconrequest command),然後設定乙個掃瞄期限(t_scan_duration),如果在掃瞄期限內都沒有檢測到信標,那麼就認為ffd在其pos內沒有協調器,那麼此時就可以建立自己的zigbee網路,並且作為這個網路的協調器不斷地產生信標並廣播出去。

注意:乙個網路裡,有且只能有乙個協調器(coordinator)。

3.2 進行通道掃瞄過程。

包括能量掃瞄和主動掃瞄兩個過程:首先對指定的通道或者預設的通道進行能量檢測,以避免可能的干擾。以遞增的方式對所測量的能量值進行通道排序,拋棄那麼些能量值超出了可允許能量水平的通道,選擇可允許能量水平的通道並標註這些通道是可用通道。接著進行主動掃瞄,搜尋節點通訊半徑內的網路資訊。這些資訊以信標幀的形式在網路中廣播,節點通過主動通道掃瞄方式獲得這些信標幀,然後根據這些資訊,找到乙個最好的、相對安靜的通道,通過記錄的結果,選擇乙個通道,該通道應存在最少的zigbee網路,最好是沒有zigbee裝置。在主動掃瞄期間,mac層將丟棄phy層資料服務接收到的除信標以外的所有幀。

3.3 設定網路id。

找到合適的通道後,協調器將為網路選定乙個網路識別符號(pan id,取值《=0x3fff),這個id在所使用的通道中必須是唯一的,也不能和其他zigbee網路衝突,而且不能為廣播位址0xffff(此位址為保留位址,不能使用)。pan id可以通過偵聽其他網路的id然後選擇乙個不會衝突的id的方式來獲取,也可以人為的指定掃瞄的通道後,來確定不和其他網路衝突的pan id。

在zigbee網路中有兩種位址模式:擴充套件位址(64位)和短位址(16位),其中擴充套件位址由ieee組織分配,用於唯一的裝置標識;短位址用於本地網路中裝置標識,在乙個網路中,每個裝置的短位址必須唯一,當節點加入網路時由其父節點分配並通過使用短位址來通訊。對於協調器來說,短位址通常設定為0x0000。

上面步驟完成後,就成功初始化了zigbee網狀網路,之後就等待其他節點的加入。節點入網時將選擇範圍內訊號最強的父節點(包括協調器)加入網路,成功後將得到乙個網路短位址並通過這個位址進行資料的傳送和接收,網路拓撲關係和位址就會儲存在各自的flash中。

4.節點通過協調器加入網路

當節點協調器確定之後,節點首先需要和協調器建立連線加入網路。

為了建立連線,ffd節點需要向協調器提出請求,協調器接收到節點的連線請求後根據情況決定是否允許其連線,然後對請求連線的節點做出響應,節點與協調器建立連線後,才能實現資料的收發。節點加入網路的具體流程可以分為下面的步驟:

4.1 查詢網路協調器。

首先會主動掃瞄查詢周圍網路的協調器,如果在掃瞄期限內檢測到信 標,那麼將獲得了協調器的有關資訊,這時就向協調器發出連線請求。在選擇合適的網路之後,上層將請求mac層對物理層phy和mac層的phycurrentchannel、macpanid等pib屬性進行相應的設定。如果沒有檢測到,間隔一段時間後,節點重新發起掃瞄。

4.2 傳送關聯請求命令(associaterequest command)。

節點將關聯請求命令傳送給協調器,協調器收到後立即回覆乙個確認幀(ack),同時向它的上層傳送連線指示原語,表示已經收到節點的連線請求。但是這並不意味著已經建立連線,只表示協調器已經收到節點的連線請求。當協調器的mac層的上層接收到連線指示原語後,將根據自己的資源情況(儲存空間和能量)決定是否同意此節點的加入請求,然後給節點的mac層傳送響應。

4.3 等待協調器處理。

當節點收到協調器加入關聯請求命令的ack後,節點mac將等待一段時間,接受協調器的連線響應。在預定的時間內,如果接收到連線響應,它將這個響應向它的上層通告。而協調器給節點的mac層傳送響應時會設定乙個等待響應時間(t_responsewaittime)來等待協調器對其加入請求命令的處理,若協調器的資源足夠,協調器會給節點分配乙個16位的短位址,並產生包含新位址和連線成功狀態的連線響應命令,則此節點將成功的和協調器建立連線並可以開始通訊。若協調器資源不夠,待加入的節點將重新傳送請求資訊,直接入網成功。

4.4 傳送資料請求命令。

如果協調器在響應時間內同意節點加入,那麼將產生關聯響應命令(associateresponse command)並儲存這個命令。當響應時間過後,節點傳送資料請求命令(datarequest command)給協調器,協調器收到後立即回覆ack,然後將儲存的關聯響應命令發給節點。如果在響應時間到後,協調器還沒有決定是否同意節點加入,那麼節點將試圖從協調器的信標幀中提取關聯響應命令,成功的話就可以入網成功,否則重新傳送請求資訊直到入網成功。

4.5 回覆。

節點收到關聯響應命令後,立即向協調器回覆乙個確認幀(ack),以確認接收到連線響應命令,此時節點將儲存協調器的短位址和擴充套件位址,並且節點的mlme向上層傳送連線確認原語,通告關聯加入成功的資訊。

5.節點通過已有節點加入網路

當靠近協調器的ffd節點和協調器關聯成功後,處於這個網路範圍內的其他節點就以這些ffd節點作為父節點加入網路了,具體加入網路有兩種方式,一種是通過關聯(associate)方式,就是待加入的節點發起加入網路;另一種是直接(direct)方式,就是待加入的節點具體加入到那個節點下,作為該節點的子節點。其中關聯方式是zigbee網路中新節點加入網路的主要途徑。

對於乙個節點來說只有沒有加入過網路的才能進行加入網路。在這些節點中,有些是曾經加入過網路中,但是卻與它的父節點失去聯絡(這樣的被稱為孤兒節點),而有些則是新節點。當是孤兒節點時,在它的相鄰表中存有原父節點的資訊,於是它可以直接給原父節點傳送加入網路的請求資訊。如果父節點有能力同意它加入,於是直接告訴它的以前被分配的網路位址,它便入網成功;如果此時它原來的父節點的網路中,子節點數已達到最大值,也就是說網路位址已經分配滿,父節點便無法批准它加入,它只能以新節點身份重新尋找並加入網路。

而對於新節點來說,他首先會在預先設定的乙個或多個通道上通過主動或被動掃瞄周圍它可以找到的網路,尋找有能力批准自己加入網路的父節點,並把可以找到的父節點的資料存入自己的相鄰表。存入相鄰表的父節點的資料報括zigbee協議的版本、協議棧的規範、pan id和可以加入的資訊。在相鄰表中所有的父節點中選擇乙個深度最小的,並對其發出請求資訊,如果出現相同最小深度的兩個以上的父節點,那麼隨機選取乙個傳送請求。如果相鄰表中沒有合適的父節點的資訊,那麼表示入網失敗,終止過程。如果發出的請求被批准,那麼父節點同時會分配乙個16位的網路位址,此時入網成功,子節點可以開始通訊。如果請求失敗,那麼重新查詢相鄰表,繼續傳送請求資訊,直到加入網路。

Zigbee無線組網技術入門的學習路線

廣東職業技術學院 歐浩源 一 引言 在物聯網技術應用的知識體系中,zigbee無線組網技術是非常重要的一環,也是大家感覺比較難以掌握的乙個部分。zigbee無線組網技術之所以讓你感有學習難度,不是因為它真的複雜,而是它看起來很複雜,讓人望而止步。另一方面則是zigbee技術在應用層面上將硬體和軟體完...

基於STM32 ZIGBEE組網的防火防潮預警系統

u8 idsend 終端id號 範圍 0 99 u8 udp head 4 包頭 u8 udp tail 4 包尾 typedef struct send data t send data t send data2 short prf1 short prf2 short prf3 char bufg...

第六章 Zigbee模組組網例項

假設有乙個有線的溫濕度測量,傳輸系統。我們用zigbee模組連線起來,改造成乙個無線的zigbee網路溫濕度測量系統 1個上位機通過485匯流排連線了4臺溫濕度測量儀 或溫濕度變送器 連線的波特率為9600,modbus rtu協議 改造方法 1個模組設定成coordinator,連線到上位機,4個...