趙立新,南楠
(三門峽職業(yè)技術學院 信息傳媒學院,河南 三門峽 472000)
ZigBee網(wǎng)絡是一種基于IEEE 802.15.4標準的低成本、低速率、低功耗的無線傳感器網(wǎng)絡,因其連接硬件設備要求低、廉價等特點被廣泛應用于各個自動化領域[1]。目前,多數(shù)論文的研究方向集中在網(wǎng)絡覆蓋率、功耗、數(shù)據(jù)廣播方法或路由算法的提高上,而這些研究的基礎都假設在ZigBee網(wǎng)絡具有良好的連通性。實際情況中,因無線傳感器節(jié)點多且隨機分布的特點,導致在互連過程中部分設備會成為孤立節(jié)點失去其通信功能,嚴重影響網(wǎng)絡的通信性能。本文提出了一種節(jié)點交換機制,促使每個節(jié)點都能重新建立連接,將盡可能多的節(jié)點加入到通信網(wǎng)絡中,使網(wǎng)絡獲得最佳的連通性,延長網(wǎng)絡的使用壽命。
ZigBee網(wǎng)絡中定義了三種類型的設備:ZigBee協(xié)調(diào)器 (ZC)、ZigBee 路由器 (ZR) 和 ZigBee 終端設備(ZED)。ZC負責啟動ZigBee網(wǎng)絡,接受ZR和ZED的連接請求,擴展ZigBee網(wǎng)絡。一個設備一般只能連接到一個協(xié)調(diào)器和路由器上。
ZigBee網(wǎng)絡常見拓撲結構類型有:星型、網(wǎng)狀和樹形[2]。在這些拓撲結構中,只有ZC或已經(jīng)加入網(wǎng)絡的ZR可以周期性發(fā)送信標幀傳輸信息通知其他節(jié)點,并判斷該節(jié)點是否能夠與孤立節(jié)點建立連接。若可以建立連接則成為父節(jié)點,并設置路由器和終端設備狀態(tài)為真。ZR或ZED 獲知可連接的ZC和ZR在其通信范圍內(nèi),隨即發(fā)送加入請求,通過驗證后成為該節(jié)點的子節(jié)點。
ZigBee網(wǎng)絡中采用分布式地址分配機制,為網(wǎng)絡中的聯(lián)合節(jié)點分配網(wǎng)絡地址。每個設備都有一個地址空間來放置其子節(jié)點。同時定義三個參數(shù)來管理網(wǎng)絡:設備最多子節(jié)點數(shù),設備最大深度,設備子路由器最大數(shù)。由于這些參數(shù)的限制,即使有些節(jié)點在通信范圍之內(nèi),也會成為孤立節(jié)點而不能加入網(wǎng)絡[3]。有研究提出,假設在通信范圍內(nèi)存在有一個節(jié)點具有可接受子節(jié)點的能力,可通知通信網(wǎng)絡中節(jié)點其有可移動性,則具有潛在父節(jié)點,該父節(jié)點可以通過擴展連接過程來分離器可移動子節(jié)點并讓孤立節(jié)點加入,減少孤立節(jié)點數(shù)改善網(wǎng)絡的連通性。但如果潛在父節(jié)點收到多個孤立節(jié)點的連接請求,則因無法選擇而不能達到網(wǎng)絡最佳連通性。
圖1 ZigBee網(wǎng)絡樹狀圖
圖1是一個ZigBee網(wǎng)絡的樹狀圖,在該網(wǎng)絡中,設置網(wǎng)絡參數(shù)為:路由器連接最大數(shù)2,子節(jié)點最大數(shù)3,路徑最大深度3。由于網(wǎng)絡參數(shù)的限制,節(jié)點C、D、E、K成為孤立節(jié)點,無法加入網(wǎng)絡。按照算法思路節(jié)點M沒有達到最大數(shù),可以將L與N斷開現(xiàn)有連接,接入結點M上,此時節(jié)點K或節(jié)點C有可能加入到網(wǎng)絡中,如果節(jié)點K加入,則減少1個孤立節(jié)點,如果節(jié)點C加入網(wǎng)絡,則減少三個孤立節(jié)點,如何在算法中選擇一個合適的節(jié)點加入,即所要解決問題。
為增強網(wǎng)絡連通性,將增強機制分為兩個階段實行:第一階段是從孤立節(jié)點中選取最有可能加入網(wǎng)絡的節(jié)點,并重構部分網(wǎng)絡以便能連接更多節(jié)點;第二階段則是斷開轉移節(jié)點以便接受更多節(jié)點過程。
斷開重構網(wǎng)絡結構提高網(wǎng)絡連通性,重點是子節(jié)點如何通知父節(jié)點其具有可移動性,在此提出使用告知提醒的方法。如可移動節(jié)點為ZR,在其MAC信標中添加以字段作為可移動標志,父節(jié)點接受子節(jié)點可移動信標后,將記錄添加到鄰表中,而ZED使用短消息通知父節(jié)點其可移動,父節(jié)點相繼添加記錄到鄰表中,同時運行擴展連接程序,接受新節(jié)點。父節(jié)點是否能接受新節(jié)點加入,需要在網(wǎng)絡信息庫中添加一項NSS,當NSS被設置為True時,可以接受更多子節(jié)點。所使用擴展程序描述如下:
(1)當NSS被設置為True時,其潛在父節(jié)點發(fā)布可接收更多子節(jié)點消息,反之,則發(fā)布不能接收節(jié)點消息;
(2)當潛在父節(jié)點同意子節(jié)點加入后,啟動最優(yōu)節(jié)點選擇機制:即如果請求節(jié)點為ZED設備,因其不能具有子節(jié)點的特點,選擇深度最小的ZED節(jié)點作為子節(jié)點;若請求加入節(jié)點為ZR節(jié)點,則父節(jié)點選擇具有最多子節(jié)點的ZR同意其加入;若請求加入節(jié)點既有ZR又有ZED,因ZED節(jié)點不能接受子節(jié)點,所以選擇ZR成為潛在父節(jié)點的子節(jié)點,但當ZED節(jié)點多于ZR節(jié)點時,則選擇深度最小的ZED節(jié)點作為子節(jié)點[4];
(3)確定可加入節(jié)點后,分離出原有父節(jié)點的可移動子節(jié)點,父節(jié)點接受孤立節(jié)點成為新的子節(jié)點;
(4)更新鄰表設置;
(5)如檢測父節(jié)點仍具有可分離子節(jié)點,并在其通信范圍內(nèi)還有孤立節(jié)點,則轉至(1)繼續(xù)運行,如沒有則停止構成新的網(wǎng)絡結構。
上述擴展程序中要首先判斷父節(jié)點是否具有可分離節(jié)點,該節(jié)點是否能連入附近節(jié)點構成新的網(wǎng)絡結構,其次才是判斷是否允許新的節(jié)點加入,加入時是選擇ZR或ZED,最優(yōu)節(jié)點選擇機制的引入使重構網(wǎng)絡提高聯(lián)通性得到了很好的改善。
分離節(jié)點重新加入網(wǎng)絡的過程稱為節(jié)點交換機制,該機制運行過程中定義一個新的關鍵字NUS添加到ZigBee 的網(wǎng)絡信息庫中,當關鍵字的值為True時,節(jié)點運行交換過程重新連入網(wǎng)絡中[5]。重新連入過程如圖2所示,即:
(1)當NUS設置為True,同時ZR連接節(jié)點的數(shù)量小于可接受路由器最大數(shù)量時,則該節(jié)點發(fā)布消息其可接收子節(jié)點,反之不能接收;
(2)當節(jié)點收到來自ZR的加入請求時,節(jié)點ZR以最大深度分離子ZED設備;
(3)ZR分離子節(jié)點成功后,選擇其有效通信范圍內(nèi)包含字節(jié)點最多的孤立節(jié)點接受加入,成為其新的自節(jié)點;
(4)如果節(jié)點發(fā)出請求,繼續(xù)步驟(1)。
圖2 ZigBee網(wǎng)絡示例結構圖
根據(jù)上述理論,在圖2中,該結構包含四個孤立節(jié)點:K,C,D,E。設ZC最大子節(jié)點數(shù)為3,ZR最大子節(jié)點數(shù)為2,ZED最大深度為3。圖2中A、B為其潛在父節(jié)點,其原有L、N子節(jié)點斷開后可能連接到節(jié)點M上。啟動擴展連接過程后,首先斷開原有子節(jié)點L、N的連接,同時各自掃描其通信范圍內(nèi)子節(jié)點個數(shù),因節(jié)點N具有兩個子節(jié)點,M節(jié)點只能添加一個子節(jié)點,所以接受N為其子節(jié)點,同時節(jié)點C與D、E一起加入節(jié)點B,構成新網(wǎng)絡。節(jié)點L 加入節(jié)點R為新節(jié)點,節(jié)點K連接到節(jié)點A成為其新的子節(jié)點。最終交換后的ZigBee網(wǎng)絡如圖3所示。
圖3 ZigBee網(wǎng)絡重構圖
模擬真實環(huán)境,設模擬環(huán)境寬度為200m2范圍內(nèi),每個節(jié)點傳輸直徑范圍為30米,在此范圍內(nèi)采用連接比率來檢測算法的可行性。ZR接入數(shù)為N1,ZED接入數(shù)為N2,ZC接入數(shù)為N3,總結點數(shù)為N,則連接比率J為:
根據(jù)上述表達式,設定實驗環(huán)節(jié)中ZC個數(shù)為1,ZR個數(shù)為40,ZED個數(shù)為0-60,同時ZC,ZR,ZED最大連接數(shù)分別為4、3、2。實驗時,所有設備都處于靜態(tài),ZC位于環(huán)境中心,其余隨機部署。如下表所示。
孤立點個數(shù)表
圖4 算法連接比率圖
上表為在ZigBee協(xié)議下和改進算法下孤立節(jié)點個數(shù),圖4為連接比率實驗結果對比圖。在試驗中ZR的數(shù)目保持不變,ZED的數(shù)目以10 為單位增加,從圖4中可以看到,當節(jié)點總個數(shù)增加到65左右時,連通達到飽和,所有連接比率開始下降,但改進算法的連接比率下降緩慢,且整體上改進算法的連接比率一直都比ZigBee協(xié)議下高出2%-9%。試驗表明,在改進算法下,ZR可以連接更多的子節(jié)點,減少孤立節(jié)點,有效改善ZigBee網(wǎng)絡環(huán)境的連通性。