400-808-5829
大數據分析將與物聯(lián)網(wǎng)技術(shù)結合,實(shí)現更精確的預測和智能化決策
?ZigBee作為一種低功耗、低成本的無(wú)線(xiàn)網(wǎng)狀網(wǎng)絡(luò )標準,廣泛應用于家庭自動(dòng)化、工業(yè)控制、醫療保健、智能建筑等多個(gè)領(lǐng)域。其高效的路由機制是實(shí)現這些應用場(chǎng)景的關(guān)鍵。本文將深入解析ZigBee協(xié)議棧中的路由機制,包括Table Routing、Broadcast Routing、Multicast Routing以及Many-to-One/Source Routing等經(jīng)典路由策略。
ZigBee協(xié)議棧由四層組成:物理層(PHY Layer)、媒體訪(fǎng)問(wèn)控制層(MAC Layer)、網(wǎng)絡(luò )層(Network Layer)和應用層(Application Layer)。每層通過(guò)服務(wù)訪(fǎng)問(wèn)點(diǎn)(SAP)向上層提供服務(wù)。物理層和MAC層遵循IEEE 802.15.4標準,而網(wǎng)絡(luò )層和應用層則由ZigBee聯(lián)盟定義。
物理層(PHY Layer)
物理層負責無(wú)線(xiàn)信號的發(fā)送和接收,包括RF信號的調制和解調,以及信道選擇等功能。ZigBee在2.4 GHz、868 MHz和915 MHz頻段下工作,其中2.4 GHz頻段是全球通用的ISM頻段,支持16個(gè)通信信道。物理層使用偏移鍵控的相位調制技術(shù)(O-QPSK)在2.4 GHz頻段下提供高誤碼性能,而在868 MHz和915 MHz頻段則分別采用二進(jìn)制相位移位鍵控(BPSK)調制。
媒體訪(fǎng)問(wèn)控制層(MAC Layer)
MAC層負責節點(diǎn)之間的通信接入和碰撞避免,也負責數據包的組裝和解組裝,包括確認機制和加密處理。MAC層通過(guò)CSMA-CA機制控制對無(wú)線(xiàn)信道的訪(fǎng)問(wèn),確保數據傳輸的可靠性。
網(wǎng)絡(luò )層(Network Layer)
網(wǎng)絡(luò )層負責路由和設備發(fā)現等功能,也負責創(chuàng )建、管理和維護網(wǎng)絡(luò )。它通過(guò)數據實(shí)體(NLDE)和管理實(shí)體(NLME)提供服務(wù),確保數據包在網(wǎng)絡(luò )中的正確傳輸。網(wǎng)絡(luò )層還支持多種網(wǎng)絡(luò )拓撲結構,包括星型、樹(shù)型和網(wǎng)狀結構,提高了網(wǎng)絡(luò )的容錯性和靈活性。
應用層(Application Layer)
應用層包括應用支持子層(APS)和ZigBee設備對象(ZDO)。APS提供NWK和APL之間的接口,負責數據包的匹配和轉發(fā)。ZDO則負責設備和服務(wù)發(fā)現,安全管理,網(wǎng)絡(luò )管理等高級功能。
Part 1: Table Routing
Table Routing是ZigBee網(wǎng)絡(luò )中最基本的路由機制。當源節點(diǎn)需要向目標節點(diǎn)發(fā)送數據時(shí),它首先發(fā)送路由發(fā)現請求,以建立從源節點(diǎn)到目標節點(diǎn)的路由表。一旦路由建立,源節點(diǎn)只需將數據發(fā)送給路由表中的第一個(gè)節點(diǎn),該節點(diǎn)再根據自己的路由表將數據轉發(fā)給下一個(gè)節點(diǎn),直到數據到達目標節點(diǎn)。
如果路由失敗,比如某個(gè)中間節點(diǎn)無(wú)法將數據轉發(fā)給下一個(gè)節點(diǎn),路由錯誤將被發(fā)送回給源節點(diǎn),源節點(diǎn)將重新發(fā)起路由發(fā)現請求。這種機制確保了數據的可靠傳輸,同時(shí)也提高了網(wǎng)絡(luò )的健壯性。
Part 2: Broadcast Routing
Broadcast Routing是一種在網(wǎng)絡(luò )中向所有設備發(fā)送消息的機制。網(wǎng)絡(luò )層廣播具有選項,可以選擇將消息發(fā)送給所有路由設備、非休眠的終端設備或帶休眠的終端設備。由于廣播消息會(huì )被網(wǎng)絡(luò )中所有路由設備重復廣播多次(通常為3次),以確保消息能夠傳達到所有設備,因此廣播機制在網(wǎng)絡(luò )性能上需要謹慎使用。
雖然廣播是發(fā)送消息的可靠方法,但過(guò)多的廣播可能會(huì )限制網(wǎng)絡(luò )中其他正在進(jìn)行的通信,導致網(wǎng)絡(luò )擁塞。此外,廣播也不是向休眠設備發(fā)送消息的可靠方式,因為父設備可能會(huì )在休眠子設備喚醒前丟失消息。
Part 3: Multicast Routing
Multicast Routing提供了一對多的通信路由選項。在這種機制下,設備可以將消息發(fā)送給一組特定的設備,而不是整個(gè)網(wǎng)絡(luò )。當一個(gè)設備想要向一組設備(如一組燈)發(fā)送消息時(shí),它可以使用Multicast Routing。只有屬于該組的設備才會(huì )收到消息,而其他設備則負責將消息轉發(fā)給組成員。
Multicast Routing可以看作是受限的廣播,它減少了不必要的消息傳輸,提高了網(wǎng)絡(luò )效率。然而,過(guò)多地使用Multicast Routing仍然會(huì )降低網(wǎng)絡(luò )性能,因此需要根據實(shí)際需求謹慎使用。
Part 4: Many-to-One/Source Routing
Many-to-One Routing是一種簡(jiǎn)單的路由機制,使得網(wǎng)絡(luò )中的所有路由設備都擁有回到中心節點(diǎn)(集中器)的路由。中心節點(diǎn)周期性發(fā)送Many-to-One route discovery廣播,網(wǎng)絡(luò )中的路由設備收到廣播后,更新自己的路由表,以便知道回到中心節點(diǎn)的路由。
Source Routing則是中心節點(diǎn)通過(guò)接收路由記錄(Route Record)來(lái)建立到網(wǎng)絡(luò )中其他設備的路由。當路由設備向中心節點(diǎn)發(fā)送單播數據時(shí),它會(huì )先發(fā)送一條Route Record給中心節點(diǎn),中心節點(diǎn)收到后將路由反向并存儲在源路由表中。這樣,中心節點(diǎn)就可以通過(guò)查詢(xún)源路由表來(lái)獲取發(fā)往任何路由設備的路由信息。
Many-to-One Routing 機制在 ZigBee 網(wǎng)絡(luò )中非常關(guān)鍵,尤其是在需要收集來(lái)自多個(gè)設備的數據到中心節點(diǎn)(如協(xié)調器或網(wǎng)關(guān))的場(chǎng)景中。通過(guò)定期發(fā)送 Many-to-One route discovery 廣播,中心節點(diǎn)能夠確保所有路由設備都了解其到中心節點(diǎn)的路徑。這種機制不僅簡(jiǎn)化了數據收集過(guò)程,還提高了網(wǎng)絡(luò )的可擴展性和可靠性。
廣播發(fā)現過(guò)程:
中心節點(diǎn)周期性(如每60秒)發(fā)送 Many-to-One route discovery 廣播。
網(wǎng)絡(luò )中的每個(gè)路由設備在收到此廣播后,會(huì )更新自己的路由表,記錄到達中心節點(diǎn)的最佳路徑。
路由設備也會(huì )轉發(fā)此廣播,確保網(wǎng)絡(luò )中所有可達的路由設備都能接收到,并更新路由信息。
路由表更新:
每個(gè)路由設備都會(huì )維護一個(gè)路由表,該表包含到達網(wǎng)絡(luò )中其他關(guān)鍵節點(diǎn)(如中心節點(diǎn))的路徑信息。
當路由設備接收到 Many-to-One route discovery 廣播時(shí),它會(huì )檢查是否已經(jīng)有到達中心節點(diǎn)的路由。如果沒(méi)有,或者新路徑比現有路徑更優(yōu),則更新路由表。
數據收集:
一旦路由設備有了到達中心節點(diǎn)的路由,它們就可以直接將數據發(fā)送給中心節點(diǎn),而無(wú)需進(jìn)行額外的路由發(fā)現。
中心節點(diǎn)負責收集這些數據,并進(jìn)行進(jìn)一步的處理或轉發(fā)。
異常處理:
如果中心節點(diǎn)復位或斷電重啟,其 Source routing 表的信息會(huì )丟失。此時(shí),中心節點(diǎn)需要重新廣播 Many-to-One route discovery 廣播,并等待路由設備回復單播以重建 Source routing 表。
如果路由設備全部斷電或重啟,它們需要等待一段時(shí)間(如16秒)以重新建立與鄰居路由設備的鏈路,然后再次響應 Many-to-One route discovery 廣播。
Source Routing 的詳細分析
Source Routing 機制允許中心節點(diǎn)通過(guò)查詢(xún)預存儲的路由信息來(lái)發(fā)送數據到任何路由設備。這種機制特別適用于那些需要精確控制數據傳輸路徑的場(chǎng)景,例如,在復雜的網(wǎng)絡(luò )拓撲結構中避免擁塞或干擾。
路由記錄收集:
當路由設備需要向中心節點(diǎn)發(fā)送數據時(shí),它首先會(huì )發(fā)送一個(gè)包含其到中心節點(diǎn)路徑的 Route Record 給中心節點(diǎn)。
中心節點(diǎn)收到 Route Record 后,會(huì )將其反向存儲在自己的 Source routing 表中。這個(gè)表記錄了網(wǎng)絡(luò )中所有路由設備到中心節點(diǎn)的路徑。
數據發(fā)送:
當中心節點(diǎn)需要向某個(gè)路由設備發(fā)送數據時(shí),它會(huì )查詢(xún) Source routing 表,找到對應的路由信息。
然后,中心節點(diǎn)按照路由表中的路徑信息,將數據包逐跳轉發(fā)到目標路由設備。
異常處理與恢復:
如果 Source routing 表中的信息過(guò)時(shí)或丟失(如中心節點(diǎn)復位),中心節點(diǎn)需要重新通過(guò) Many-to-One route discovery 和單播回復來(lái)重建 Source routing 表。
在網(wǎng)絡(luò )拓撲發(fā)生變化時(shí)(如路由設備加入或離開(kāi)網(wǎng)絡(luò )),中心節點(diǎn)也需要更新 Source routing 表以確保數據能夠正確傳輸。