黃釘勁 楊劉柱 李 飛
(西安工業(yè)大學 光電工程學院,陜西 西安710032)
現(xiàn)代監(jiān)控系統(tǒng)包括兩個重要的領(lǐng)域,其一、工業(yè)現(xiàn)場監(jiān)控系統(tǒng);其二、廣義上的監(jiān)控系統(tǒng)。工業(yè)現(xiàn)場監(jiān)控系統(tǒng)主要應用工業(yè)自動化領(lǐng)域中,對工業(yè)過程中各種輸入、輸出參量進行采集和控制。工業(yè)現(xiàn)場監(jiān)控系統(tǒng)一般采用工控機設(shè)備進行監(jiān)控。而廣義上的監(jiān)控系統(tǒng)的研究領(lǐng)域更加廣泛,主要監(jiān)控對象包括自然環(huán)境、生物種群、區(qū)域監(jiān)控等。不同于工業(yè)現(xiàn)場監(jiān)控系統(tǒng)的通信技術(shù),廣義監(jiān)控系統(tǒng)的數(shù)據(jù)傳送常常使用無線傳輸技術(shù)實現(xiàn)。因此,對無線通信技術(shù)的研究將極大地促進監(jiān)控系統(tǒng)的運行。廣義監(jiān)控系統(tǒng)不僅要求實現(xiàn)無線傳輸,而且要求無線傳輸具有低成本、高可靠性、功耗低等特點。Zigbee網(wǎng)絡(luò)可以很大程度上滿足監(jiān)控系統(tǒng)對無線傳輸?shù)囊骩1]。
Zigbee網(wǎng)絡(luò)模塊,當功率為100mW時,其傳輸距離最高為1.6公里,當功率為1mW時,其傳輸距離最高為120m。Zigbee網(wǎng)絡(luò)模塊不工作時處于休眠狀態(tài),此時工作電流僅為0.7μA。由于采用了碰撞避免機制(CSMA-CA),避免了發(fā)送數(shù)據(jù)時的沖突。此外,Zigbee網(wǎng)絡(luò)采用密鑰長度為128位的加密算法,對所傳輸?shù)臄?shù)據(jù)進行加密處理,保證了數(shù)據(jù)傳輸時的可靠性和安全性[2]。由于Zigbee模塊通常和嵌入式監(jiān)控設(shè)備集成在一起,所以Zigbee網(wǎng)絡(luò)的體積可以做得很小,投放靈活。有時甚至可以裝在野外動物身上,以對其行動規(guī)律進行監(jiān)控。本文的主要工作并不集中于對Zigbee模塊進行設(shè)計,而是根據(jù)其網(wǎng)絡(luò)協(xié)議棧建立一定的網(wǎng)絡(luò)拓撲模型以實現(xiàn)大規(guī)模的組網(wǎng)。
Zigbee棧體系結(jié)構(gòu)分為四層,包括物理層(PHY:physical layer)、媒體訪問控制層 (MAC:medium access control sub-layer)、網(wǎng)絡(luò)層(NWK:network)以及應用層(APL:application layer)。
Zigbee設(shè)備有且只有一個64位IEEE地址,網(wǎng)絡(luò)連接后協(xié)調(diào)器給從設(shè)備分配一個16位的短地址。64位IEEE地址是絕對地址,16位短地址是相對地址。一個網(wǎng)絡(luò)結(jié)構(gòu)最多能容納255個全功能設(shè)備,一個Zigbee網(wǎng)絡(luò)能容納65000個節(jié)點。在Zigbee網(wǎng)絡(luò)中根據(jù)地位和功能不同,可以分為全功能設(shè)備(FFD:function device)和簡化功能設(shè)備(RFD:reduced function device)[3]。FFD是具有路由和中繼功能的網(wǎng)路設(shè)備,可以作為協(xié)調(diào)器(Coordinator),F(xiàn)FD設(shè)備與FFD設(shè)備之間不但能夠通信,F(xiàn)FD與RFD設(shè)備之間也能夠通信。但RFD只能與FFD設(shè)備通信,RFD設(shè)備之間不能夠通信。常見Zigbee網(wǎng)絡(luò)拓撲的有三種,星狀結(jié)構(gòu)、樹簇狀結(jié)構(gòu)和網(wǎng)狀結(jié)構(gòu)。其拓撲結(jié)構(gòu)如圖1所示。
Zigbee網(wǎng)絡(luò)支持三種不同的信號頻段,分別位于2450MHz波段(全球通用頻段)和 868MHZ(歐盟頻段)/915MHz(美國頻段)波段。2450MHz波段射頻可以提供250kbps的數(shù)據(jù)速率和16個不同的信道。868/915MHz波段中,868MHz支持1個數(shù)據(jù)速率為20kbps的信道,915MHz支持10個數(shù)據(jù)速率為40kbps的信道。
圖1 典型的Zigbee網(wǎng)絡(luò)協(xié)議拓撲結(jié)構(gòu)圖
本文根據(jù)Zigbee網(wǎng)絡(luò)協(xié)議棧及組網(wǎng)規(guī)則構(gòu)建了一種全新拓撲結(jié)構(gòu)。該拓撲結(jié)構(gòu)是一種全網(wǎng)拓撲結(jié)構(gòu),包括9層網(wǎng)絡(luò),每層網(wǎng)絡(luò)由可以相互通信FFD設(shè)備構(gòu)成。每個FFD設(shè)備同時與6個RFD設(shè)備構(gòu)成樹形拓撲結(jié)構(gòu)。該拓撲結(jié)構(gòu)可以根據(jù)實際工程任務(wù)的要求減少層數(shù),但是不能再增加新網(wǎng)絡(luò)層。如果該全網(wǎng)結(jié)構(gòu)不能滿足工程需要,可以構(gòu)建多個全網(wǎng)結(jié)構(gòu)。
網(wǎng)絡(luò)拓撲結(jié)構(gòu)建模:設(shè)每層有N個FFD路由,每個路由有M個RFD節(jié)點。FFD路由之間可以相互通信,RFD節(jié)點之間不可以相互通信。FFD路由之間的距離在射頻功率為100mW時,理論上最大距離可達到1.6公里。RFD設(shè)備在射頻功率為1mW時,理論上最大距離可達120m。為了保證通信的穩(wěn)定性和時效性,此處建立的模型基于FFD路由距離為800m,RFD節(jié)點距離為100m。
根據(jù)以上所述規(guī)則,F(xiàn)FD設(shè)備與RFD設(shè)備的距離為:rFR=0.1km,RFD設(shè)備與RFD設(shè)備的距離rRR=0.1km,則有下式:
代入求的M=6,也就是是在每個FFD設(shè)備周圍距離0.1km處布置6個RFD設(shè)備即可實現(xiàn)給FFD設(shè)備周圍的全網(wǎng)覆蓋。
計算每層FFD設(shè)備數(shù)N:第一層為中心層,只需要布置一個FFD設(shè)備,作為Zigbee網(wǎng)絡(luò)的終端路由與協(xié)調(diào)器,該FFD設(shè)備既可以與其他FFD設(shè)備通信可以和其他網(wǎng)絡(luò)進行融合,從而將Zigbee網(wǎng)絡(luò)檢測的數(shù)據(jù)實時地發(fā)送出去。
設(shè)第k層網(wǎng)絡(luò)需要N個FFD設(shè)備,根據(jù)上述規(guī)則,有rFF=0.8km。以第一個FFD設(shè)備為中心,第k層網(wǎng)路距離中心FFD設(shè)備的距離rk=krFF,其中k為層數(shù)。則,第k層網(wǎng)絡(luò)需要的FFD設(shè)備數(shù)Nk由以下公式求得:
根據(jù)(2)式可以求得任意k層的FFD設(shè)備數(shù)Nk,但FFD設(shè)備的總數(shù)并不是無限的,根據(jù)Zigbee組網(wǎng)協(xié)議的要求,全網(wǎng)結(jié)構(gòu)只能容納最多256個FFD設(shè)備,因此,由下式可以確定k的數(shù)目:
取 π=3.14,得 k2+k-81≤0
求k2+k-81=0,得k≈8,則該網(wǎng)絡(luò)拓撲結(jié)構(gòu)最多只能容納9層(k+1層)網(wǎng)絡(luò)FFD設(shè)備。每層網(wǎng)絡(luò)設(shè)備的數(shù)如表1。
表1 每層所需全功能設(shè)備數(shù)
以上我們構(gòu)建了全網(wǎng)設(shè)備的網(wǎng)絡(luò)拓撲結(jié)構(gòu)模型:該拓撲結(jié)構(gòu)共分9層FFD設(shè)備,每層FFD設(shè)備間距為0.8km,每個FFD設(shè)備周圍有0.1km處沿圓周布置6個RFD設(shè)備。則整個網(wǎng)絡(luò)的半徑R=(9-1)*0.8=6.4km??梢娙W(wǎng)覆蓋面積A=πR2≈128.6km2。
本文采用蟻群算法作為自組織路由算法[4-5]。當RFD設(shè)備采集到有效數(shù)據(jù)時,通過Zigbee網(wǎng)絡(luò)將數(shù)據(jù)發(fā)送到目標FFD設(shè)備。由于RFD設(shè)備只能與FFD設(shè)備通信,因此應用于Zigbee網(wǎng)路的蟻群算法的起始地址為該RFD設(shè)備的父FFD設(shè)備。目標地址為網(wǎng)絡(luò)中的任意FFD設(shè)備。Zigbee網(wǎng)絡(luò)的建立就是根據(jù)起始地址和目標地址的通信,而其他不參與通信的Zigbee設(shè)備處于休眠狀態(tài),這樣不僅可以實現(xiàn)網(wǎng)路根據(jù)需要通信而不需要再另外設(shè)置專門的網(wǎng)絡(luò),而且可以大大地降低功耗[6]。這正是Zigbee網(wǎng)絡(luò)的最大特點。因此,盡管全網(wǎng)拓撲結(jié)構(gòu)布置了多達217個FFD設(shè)備,但實際工作的FFD設(shè)備只是其中建立通信的相關(guān)FFD設(shè)備,其他FFD設(shè)備處于休眠狀態(tài),直到該FFD設(shè)備需要參與通信為止。
在每個FFD設(shè)備中保存網(wǎng)路路由表,作為網(wǎng)路通信路由的依據(jù)。網(wǎng)絡(luò)路由表記為IPd,領(lǐng)域表記為IPn,起始地址記為IPs,目標地址記為IPo。 τij(t)表示 t時刻 IPi到 IPj的信息素,ηij(t)表示啟發(fā)信息,ηij(t)=,其中 l(i,j)表示 IPi到 IPj的距離。螞蟻在移動過程中根據(jù)領(lǐng)域表IPn中到各個FFD設(shè)備的信息素與啟發(fā)信息決定轉(zhuǎn)移方向,其轉(zhuǎn)移方向(t) 按下式計算:
經(jīng)過n個時刻,螞蟻從初始目標到達終點目標,各路徑下的信息素根據(jù)下式進行更新:
其中ρ表示信息素揮發(fā)因素ρ?(0,1),Δτij表示所有螞蟻留在路徑上的信息素,表示第k只螞蟻在經(jīng)過路由表路徑的信息素。Q為常數(shù),Lk為螞蟻k建立的路由表中所有地址的路徑總長度。
根據(jù)以前分析,本文首先利用Matlab軟件生成了全網(wǎng)設(shè)備的網(wǎng)絡(luò)拓撲模型,如圖2所示為。圖中各點表示全網(wǎng)拓撲結(jié)構(gòu)的227個FFD設(shè)備。每個FFD設(shè)備周圍則分布著6個RFD設(shè)備。
圖2 全設(shè)備網(wǎng)絡(luò)拓撲結(jié)構(gòu)圖
目標地址 IPo選取的是(0,0)位置,起始地址 IPs選取的是(5.9182,2.4492)位置。仿真結(jié)果如圖3和圖4所示。圖3表示的是沒有人為干預的情況下,根據(jù)蟻群算法編制的自組織路由圖,其路徑為(5.9182, 2.4492)、(5.3512,1.6506)、(4.5105,1.6417)、(3.9126,0.8316)、(3.0910, 0.8282)、 (2.2553,0.8208)、(1.6,0)、(0.8,0)、(0,0)。 為了驗證系統(tǒng)的自組織能力,將圖3中的位置為(0.8,0)的點屏蔽,然后重新運行,得到圖 4所示的新的路由圖,其路徑為(5.9182,2.4492)、(5.3512,1.6506)、(4.5105,1.6417)、(3.9126,0.8316)、(3.0910,0.8282)、(2.2553, 0.8208)、(1.3856,0.8)、(0.4,0.6928)、(0,0)。
圖3 自組織路由圖1
圖4 自組織路由圖2
通過對衣裙算法的仿真可見,利用蟻群算法可以大大地提高系統(tǒng)的穩(wěn)定性和可靠性。同時可以大大提高監(jiān)控系統(tǒng)的覆蓋范圍,實現(xiàn)區(qū)域全覆蓋功能。同時由于沒有參與到路徑中的設(shè)備都處于休眠模式,可以最大限度地減少系統(tǒng)的功耗。
[1]劉新宇,李兵,黃珊,陳鳴.一種ZigBee無線傳感器網(wǎng)絡(luò)拓撲發(fā)現(xiàn)算法[J].計算機工程,2012,38(4):98-99.
[2]李建中,李金寶,石勝飛.傳感器網(wǎng)絡(luò)及其數(shù)據(jù)管理的概念、問題與進展[J].軟件學報,2003,14(10):1718-1725.
[3]張杰,涂巧玲,楊文剛.傳感器網(wǎng)絡(luò)節(jié)點通信模塊的低功耗研究[J].傳感器與微系統(tǒng),2009,28(9):28-30.
[4]劉彥鵬.蟻群優(yōu)化算法的理論研究及其應用[D].杭州:浙江大學,2007.
[5]倪劍慶,邢漢承,張志政.蟻群算法及其應用研究進展[J].計算機應用與軟件,2008,25(8):12-16.
[6]劉瓊.智能優(yōu)化算法及其研究[D].無錫:江南大學,2011.