ZigBee協議學習之網絡層


ZigBee的體系結構中,底層采用IEEE 802.15.4的物理層和媒介層,再次基礎上,ZigBee聯盟建立了自己的網絡層(NWL)和應用層框架。

ZigBee網絡層的主要功能包括設備的連接和斷開、在幀信息傳遞時采用的安全機制、路由發現和路由維護的交互,並且,網絡層完成對一跳鄰居設備的發現和相關節點信息的存儲。

ZigBee網絡由所有節點都有兩個地址:16位的網絡地址和64位的IEEE擴展地址。其中,16位的網絡地址僅僅在網絡內部使用,用於路由機制和數據傳輸。這個地址實在節點加入網絡時,有其父節點動態分配的。

Technorati 標簽: ZigBee 網絡層

1. ZigBee組網功能

ZigBee網絡層的主要功能室路由,路由算法是它的核心。根據組網類型的不同,支持三種路由算法,星型路由、樹形路由和網狀路由。

1.1 星型網絡

星型網絡有一個中心節點,所有消息都經它傳輸。

1.2 樹型網絡

樹型網絡由一個頂端節點,下面有枝有葉,消息先上行再下傳。

樹型路由把網絡看成是以協調器為根的一棵樹,因為整個網絡是由協調器所建立的,而協調器的子節點可以是路由器或者末端節點。

樹型路由利用一種默認分布式地址分配算法,使用四個參數(由PAN協調器確定):PAN協調器的地址為0,深度為0,

  •     樹狀網絡的最大深度(不包括PAN協調器本身) Lm
  •     網絡路由器所能擁有的最大子節點數            Cm 
  •     網絡路由器所能擁有的最大子路由器數         Rm
  •     設備在網絡中的深度 d (0---Lm-1)
  • 來計算新節點的地址。在尋址時,根據地址就能計算出路徑。路由只有兩個方向--向子節點發送或者向父節點發送。無需路由表,節省存儲資源。

一個父設備通過Lm,Cm和Rm來完成Cskip(d)的計算。

 image

如果一個設備Cskip值為0,則表明該設備為終端設備。

如果設備的Cskip的值大於0,則表示其可以接受子設備,並且將

1. 父設備首先為它的第一個路由器子設備分配一個比它自己更大(+1)的地址

2. 給隨后的路由器分配的地址將以Cskip(d)的數值為間隔,依次類推為所有的路由器分配地址

第n個終端設備的網絡地址按照如下公式來分配:

image

 

以下圖作為實例說明:Lm=3,Cm=2,Rm=2,d取值為[0,3]

image

 

每個深度對於的Cski值都計算出來,在每層之間,首先加入的節點(X)比父節點地址(C)大1,其次加入的節點(Y)的地址值為上一個節點X的地址值加上父節點的Cskip值。依次類推。

Cskip值為0的設備為終端設備,對於每個終端設備來說,其地址計算方式如下:image

 

父設備直連的,第一(n)個終端設備的地址=它的父設備地址+該父設備的Cskip*Rm+1(n)

當一個設備想要去路由信息時,Cskip的值很重要。路由設備需要知道將要傳遞的信息的目的設備是否為自身的子節點。

如果路由設備在深度d,它自身的地址為A,需要傳遞的目的設備有一個目的地址D。如果滿足A< D < Cskip(d-1)的話,那么設備D一定為設備A的子孫節點,進行下行路由(route down)。否則進行上行路由(route up)。

一旦可以確定目的地址是自身地址的子節點,下一步就是計算下一跳的地址。如果目的地址為終端設備類型,下一跳地址就是為目的地址(l例如信息在設備Y,前往地址為9的設備)。

如果目的地址為非直連子節點(例如信息在設備Y,前往地址為10的設備),則下一跳地址遵循如下的計算方式:

image

 

樹族型拓撲的樹簇算法是指消息沿着樹形拓撲進行傳輸的算法,它是靜態的,不需要存儲路由表,適用於節點靜止或者移動較少的場合

 

 

網狀路由AODVjr算法是對Ad Hoc按照距離矢量路由算法的改進,按需分配的路由協議,只有在路由節點收到網絡數據包時,並且網絡數據包不在節點的路由表中時才會進行路由發現過程。AODVjr的優點是,相對於有線網絡的路由協議而言,它不需要周期性的路由信息廣播,節省了一定的網絡資源和網絡功耗。缺點是在需要時才發起路由尋找過程,會增加數據到達目的地的時間。由於ZigBee網絡中個,對數據的實時性要求不大,而更重視對網絡能量的節省,因此AODVjr更適合在ZigBee網絡中。

 

依次路由的建立由以下三個步驟組成:

1. 路由發現

2. 反向路由建立

3. 正向路由建立

經過這三個步驟,即可建立起一條路由節點到目的節點的有效傳輸路徑,在此過程中,AODVjr使用3種消息

Route Request(路由請求,RREQ), Route Replies(路由回復,RREP),Route Error(路由錯誤,RERR)

路由發現流程:

image 

 

路由建立:

 image

 

 

這兩種算法的結合使用確定了WSN路由的三種模式

1. 禁止路由模式(SUPPRESS):   禁止對路徑進行查找,只能使用樹簇算法沿着樹型拓撲進行路由。

   具體操作,如果發現網絡路由器存在,則數據包指向該路由器,否則,數據包沿着樹形推進。

 

2. 使能路由模式(ENABLE): 將樹簇算法和AODVjr算法相結合,視具體情況使用哪種算法。

具體操作:

如果發現網絡路由器存在,則數據包指向該路由器

如果網絡路由器不存在,路由器可以啟動路由發現能力的話,則發起路由發現,數據包沿着計算的路由傳送。

如果該路由器沒有路由發現能力,數據包沿着樹形推進。

3. 強制路由模式(FORCE):完全使用AODVjr算法,。

具體操作:只要設備具備路徑查找能力,不管消息傳輸路徑是否已經存在,都要啟動路徑查找過程,當查找完成后,數據包將沿着計算出來的路徑傳送,如果沒有路由發現能力,數據包沿着樹形推進。

這三種方式具體怎么選擇?在代碼里面,目前沒有找到,疑惑中…..

 

 

1.3 mesh網絡

網狀網絡與樹型類型,但它的某些枝葉可以直接連接。網狀路由是AODV路由算法的一個簡化版本,非常適合於低成本的無線自組織網絡的路由,適用於較大規模的網絡,需要節點維護一個路由表,使用靈活,路由效率高。使用路由發現和維護機制。

 

除了以上兩種路由方式外,PAN協調器或路由器本身還有鄰接設備表,記錄一定區域內與其具有鄰接關系的設備。只需要一跳就可以發送到目的節點。

對於網狀拓撲結構來說,要使用路由表來進行路由。

網狀網絡提供路徑維護和網絡自愈功能。

每一個路由器(包含協調器)都包含一個路由表,設備在路由表中保存數據包參與路由所需的信息,每一條路由記錄都包含目的地址、下一級節點和連接狀態。

路徑發現表:保存路徑發現過程中的臨時信息,這些記錄只在路徑發現操作期間存在。

 image

 

參考資料:http://blog.csdn.net/skyxfire/article/details/6698469

http://blog.csdn.net/tanqiuwei/article/details/7641375


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM