羅晨汛
(中山大學(xué) 信息科學(xué)與技術(shù)學(xué)院,廣東 廣州 510006)
責(zé)任編輯:許 盈
擴(kuò)展型家庭網(wǎng)絡(luò)是一個(gè)多功能的綜合技術(shù)系統(tǒng),它以家庭住宅為平臺(tái),利用先進(jìn)的計(jì)算機(jī)技術(shù)、通信技術(shù)以及信息技術(shù)等現(xiàn)代科學(xué)技術(shù),將家庭中的各種電器設(shè)備通過(guò)特定的網(wǎng)絡(luò)有機(jī)地融合在一起,從而進(jìn)行網(wǎng)絡(luò)化的綜合管理與調(diào)控,為人們提供一個(gè)舒適、安全、方便、環(huán)保和高效率的生活環(huán)境。
長(zhǎng)期以來(lái),無(wú)線(xiàn)通信市場(chǎng)對(duì)低價(jià)、低傳輸率、短距離、低功率的應(yīng)用一直有所要求。而IEEE 802.15小組則一直致力于發(fā)展完善的適用于短程無(wú)線(xiàn)通信的標(biāo)準(zhǔn)。在他們的努力下,發(fā)展出了許多適用于各種場(chǎng)合的短程無(wú)線(xiàn)通信技術(shù),并且這些技術(shù)都展現(xiàn)出了它們本身巨大的應(yīng)用潛力與不同的應(yīng)用側(cè)重。在這個(gè)背景之下,擴(kuò)展型家庭網(wǎng)絡(luò)選用哪種無(wú)線(xiàn)通信技術(shù)成為了關(guān)鍵問(wèn)題。
通過(guò)如表1所示的常見(jiàn)無(wú)線(xiàn)通信技術(shù)的對(duì)比[1],可以發(fā)現(xiàn):藍(lán)牙的通信速率比較高,但是它的傳輸距離是瓶頸;WiFi的速率高且傳輸范圍也比較大。
通常,藍(lán)牙和ZigBee用于無(wú)線(xiàn)個(gè)人區(qū)域網(wǎng)(WPAN),而WiFi常用于無(wú)線(xiàn)局域網(wǎng)(WLAN)。無(wú)線(xiàn)局域網(wǎng)(WLAN)是局域網(wǎng)(LAN)的延伸,其目標(biāo)是針對(duì)更大的傳輸范圍和更快的傳輸速度。而無(wú)線(xiàn)個(gè)人區(qū)域網(wǎng)(WPAN)的發(fā)展不是為了取代局域網(wǎng),它的目標(biāo)是為了脫離那些復(fù)制的架構(gòu),從而提供更方便、更節(jié)能的個(gè)人無(wú)線(xiàn)操作區(qū)域(POS)。相對(duì)之下,ZigBee提供了一個(gè)比較廣的傳輸距離,同時(shí)數(shù)據(jù)率較低,因此功耗也比較低。應(yīng)用在擴(kuò)展型家庭網(wǎng)絡(luò)中可以提供建立整個(gè)家庭網(wǎng)絡(luò)、傳達(dá)服務(wù)器的指令以及對(duì)家庭內(nèi)無(wú)線(xiàn)設(shè)備的控制與操作等功能。因此,采用ZigBee技術(shù)可以給本項(xiàng)目帶來(lái)更好的擴(kuò)展性和更低的能耗。

表1 幾種常見(jiàn)的無(wú)線(xiàn)通信技術(shù)對(duì)比
本文所介紹的擴(kuò)展型家庭網(wǎng)絡(luò)利用ZigBee技術(shù)將家庭中許多相對(duì)獨(dú)立的家用電器聯(lián)系起來(lái),構(gòu)成了一個(gè)統(tǒng)一的智能家居系統(tǒng),從而方便對(duì)家居中的各種電器設(shè)備進(jìn)行本地操作。同時(shí)也可通過(guò)ZigBee網(wǎng)關(guān)連接到互聯(lián)網(wǎng),實(shí)現(xiàn)遠(yuǎn)程控制各個(gè)ZigBee終端以及各種電器設(shè)備[2]。
2000年12月IEEE成立了IEEE 802.15.4工作組。這個(gè)工作組致力于定義一種提供廉價(jià)的固定、便攜或者移動(dòng)設(shè)備使用的低復(fù)雜度、低成本、低速率的無(wú)線(xiàn)連接技術(shù)[2]。
ZigBee是建立在IEEE 802.15.4協(xié)議的基礎(chǔ)上的,是一種短距離、低功耗的無(wú)線(xiàn)自組網(wǎng)技術(shù)。這一名稱(chēng)來(lái)源于蜜蜂的八字舞,由于蜜蜂(bee)是靠飛翔和“嗡嗡”(zig)地抖動(dòng)翅膀的“舞蹈”來(lái)與同伴傳遞花粉所在方位信息,也就是說(shuō)蜜蜂依靠這樣的方式構(gòu)成了群體中的通信網(wǎng)絡(luò)[3]。ZigBee的特點(diǎn)是近距離、低復(fù)雜度、自組織、低功耗、低數(shù)據(jù)速率、低成本。基于這些特點(diǎn),ZigBee現(xiàn)在被廣泛用于機(jī)械自動(dòng)化控制、大型土木工程及智能家居等領(lǐng)域。
ZigBee聯(lián)盟是一個(gè)由多個(gè)電子半導(dǎo)體廠商聯(lián)合成立的高速成長(zhǎng)的非盈利業(yè)界組織,該聯(lián)盟為Zigbee的發(fā)展奠定了基礎(chǔ)和并作出了標(biāo)準(zhǔn)[3]。ZigBee聯(lián)盟指明了ZigBee并不是用來(lái)與藍(lán)牙或者其他已經(jīng)存在的標(biāo)準(zhǔn)競(jìng)爭(zhēng),它的目標(biāo)定位于現(xiàn)存的系統(tǒng)還不能滿(mǎn)足其需求的特定的市場(chǎng),它有著廣闊的應(yīng)用前景。他們預(yù)言在未來(lái)的4~5年,每個(gè)家庭將擁有50個(gè)ZigBee器件,最后將達(dá)到每個(gè)家庭150個(gè)。據(jù)ZigBee聯(lián)盟估計(jì),到2007年,ZigBee市場(chǎng)價(jià)值將達(dá)到數(shù)億美元。
ZigBee技術(shù)在國(guó)內(nèi)雖也有所發(fā)展,但對(duì)比于國(guó)外的廣泛應(yīng)用,還是稍顯滯后。其中自主研制且比較成熟的ZigBee產(chǎn)品在國(guó)內(nèi)還不常見(jiàn),只有一些研究性和簡(jiǎn)單應(yīng)用的文章出現(xiàn)于期刊雜志。ZigBee在國(guó)內(nèi)的研究主要集中在一些大學(xué)內(nèi),如清華大學(xué)、浙江大學(xué)、中山大學(xué)等[2]。他們多數(shù)通過(guò)自主研發(fā)或利用廠商提供的模塊組建出ZigBee網(wǎng)絡(luò),并在此之上建立出各自的應(yīng)用系統(tǒng)。相信隨著研究的深入,ZigBee無(wú)線(xiàn)技術(shù)在社會(huì)上將會(huì)有更多的實(shí)際應(yīng)用與產(chǎn)品。
ZigBee聯(lián)盟于2005年6月公布了第一份ZigBee規(guī)范《ZigBee Specification V1.0》[4]。這份規(guī)范詳細(xì)定義了ZigBee協(xié)議的細(xì)節(jié),對(duì)于ZigBee的應(yīng)用及發(fā)展起到了重要的作用。本節(jié)基于這份標(biāo)準(zhǔn),詳細(xì)分析ZigBee的組網(wǎng)技術(shù)和路由技術(shù)。
ZigBee標(biāo)準(zhǔn)由一組被稱(chēng)為層的模塊組成。每一層為上面的層執(zhí)行一組特定的服務(wù):數(shù)據(jù)實(shí)體提供了數(shù)據(jù)傳輸?shù)姆?wù),而管理實(shí)體提供了其他服務(wù)。
服務(wù)入點(diǎn)(SAP)是一個(gè)接口,每個(gè)服務(wù)實(shí)體通過(guò)這接口為上層提供服務(wù)。每個(gè)SAP可以提供多種功能,是通過(guò)支持一些特定的服務(wù)原語(yǔ)來(lái)實(shí)現(xiàn)的[4]。
ZigBee標(biāo)準(zhǔn)棧架構(gòu)與OSI的7層模型比較相像,但是與其比起來(lái),ZigBee的協(xié)議棧只有4層,較之更為精簡(jiǎn)。
其中底層的兩層:物理層PHY和媒體訪問(wèn)控制層MAC由IEEE 802.15.4—2003標(biāo)準(zhǔn)所定義[5]。ZigBee聯(lián)盟在此基礎(chǔ)上定義了網(wǎng)絡(luò)層NWK、應(yīng)用層APL架構(gòu)。應(yīng)用層架構(gòu)由應(yīng)用支持子層APS、應(yīng)用架構(gòu)AF以及ZigBee設(shè)備對(duì)象ZDO組成。整個(gè)協(xié)議構(gòu)架(如圖1所示)在標(biāo)準(zhǔn)制定的分工上,由ZigBee聯(lián)盟與IEEE 802.15.4的任務(wù)小組共同制定。

圖1 ZigBee協(xié)議體系
首先從研究ZigBee網(wǎng)絡(luò)設(shè)備類(lèi)型和節(jié)點(diǎn)類(lèi)型入手;然后通過(guò)認(rèn)識(shí)網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)、網(wǎng)絡(luò)的建立來(lái)學(xué)習(xí)ZigBee設(shè)備的建網(wǎng)流程和入網(wǎng)流程,最后將說(shuō)明Zig?Bee組網(wǎng)的主要流程與其中用到的算法。
2.2.1 ZigBee設(shè)備類(lèi)型
ZigBee網(wǎng)絡(luò)中主要工作的是兩種設(shè)備:全功能設(shè)備(FFD)和精簡(jiǎn)功能設(shè)備(RFD)。其中RFD設(shè)備只提供數(shù)據(jù)鏈路方面的部分服務(wù),因此硬件要求較低。RFD一般只具有收集信息與將采集信息回送給協(xié)調(diào)的功能,故其只能做為ZigBee網(wǎng)絡(luò)中的終端設(shè)備,也不具備路由功能;而FFD設(shè)備相對(duì)而言提供更全面的服務(wù),不僅可用于采集數(shù)據(jù),還可以轉(zhuǎn)發(fā)其他節(jié)點(diǎn)的數(shù)據(jù)。這點(diǎn)性質(zhì)使其可以做為協(xié)調(diào)器或路由器,是一個(gè)Zig?Bee網(wǎng)絡(luò)中的主要構(gòu)成[4]。
2.2.2 ZigBee節(jié)點(diǎn)類(lèi)型
ZigBee網(wǎng)絡(luò)中的節(jié)點(diǎn)一共分為3類(lèi),分別是協(xié)調(diào)器(Coordinator)、路由器(Router)和終端設(shè)備(End De?vice)。一個(gè)ZigBee網(wǎng)絡(luò)由一個(gè)協(xié)調(diào)器、多個(gè)路由器和多個(gè)終端組成。其中協(xié)調(diào)器和路由器是全功能設(shè)備(FFD),而終端設(shè)備則應(yīng)該是精簡(jiǎn)功能設(shè)備(RFD)[3]。
協(xié)調(diào)器(Coordinator):協(xié)調(diào)器的主要功能是啟動(dòng)一個(gè)ZigBee網(wǎng)絡(luò),啟動(dòng)后會(huì)掃描整個(gè)RF射頻環(huán)境,選擇一個(gè)信道以及一個(gè)唯一的網(wǎng)絡(luò)標(biāo)識(shí)符從而完成這個(gè)網(wǎng)絡(luò)的一些初始化問(wèn)題。協(xié)調(diào)器還可以對(duì)本網(wǎng)絡(luò)進(jìn)行一些配置以及對(duì)收集到的數(shù)據(jù)統(tǒng)一進(jìn)行加密。
路由器(Router):路由器允許更多的設(shè)置加入其所屬的網(wǎng)絡(luò)。它提供了新設(shè)備入網(wǎng)和設(shè)備離開(kāi)本網(wǎng)絡(luò)的接口。它還支持多跳,可以將子節(jié)點(diǎn)的信息路由傳輸給協(xié)調(diào)器。路由節(jié)點(diǎn)應(yīng)該在整個(gè)通信過(guò)程中一直保持激活狀態(tài)(一般不進(jìn)行睡眠)。
終端設(shè)備(End Device):終端設(shè)備是網(wǎng)絡(luò)中的特殊節(jié)點(diǎn),這些節(jié)點(diǎn)不具備維護(hù)本網(wǎng)絡(luò)的功能,所以它們是可以通過(guò)睡眠來(lái)節(jié)能的。終端設(shè)備只能和協(xié)調(diào)器或者路由器進(jìn)行通信,兩個(gè)終端設(shè)備之間是不能進(jìn)行直接的通信的。
2.2.3 ZigBee網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)
ZigBee協(xié)議標(biāo)準(zhǔn)中定義了3種網(wǎng)絡(luò)拓?fù)湫问剑謩e為星形拓?fù)洹?shù)形拓?fù)浜途W(wǎng)狀拓?fù)鋄2],如圖2所示。

圖2 ZigBee的3種拓?fù)浣Y(jié)構(gòu)
星形網(wǎng)絡(luò)是3種拓?fù)浣Y(jié)構(gòu)中最簡(jiǎn)單的,也是最基礎(chǔ)的。在星形網(wǎng)絡(luò)中,每個(gè)設(shè)備都與協(xié)調(diào)器直接通信。典型的傳感器網(wǎng)絡(luò)就是星形拓?fù)?一個(gè)FFD做為協(xié)調(diào)器位于網(wǎng)絡(luò)的中心,啟動(dòng)和初始化這個(gè)網(wǎng)絡(luò);這個(gè)協(xié)調(diào)器選一個(gè)唯一可標(biāo)識(shí)本網(wǎng)絡(luò)的標(biāo)識(shí)號(hào)后,其他連上此協(xié)調(diào)器的終端設(shè)備都將統(tǒng)一使用本標(biāo)識(shí)號(hào)。本網(wǎng)啟動(dòng)之后,其他網(wǎng)絡(luò)不得再使用此標(biāo)識(shí)號(hào)。星形網(wǎng)絡(luò)的通信基本上都是使用點(diǎn)對(duì)點(diǎn)的通信,終端設(shè)備與本網(wǎng)段的協(xié)調(diào)器之間互相通信,協(xié)調(diào)器采集各終端發(fā)來(lái)的數(shù)據(jù)再進(jìn)行下一步的處理。
在樹(shù)形網(wǎng)絡(luò)中,與星形網(wǎng)絡(luò)相同之處是都有一個(gè)協(xié)調(diào)器啟動(dòng)和初始化本網(wǎng)絡(luò),但是區(qū)別是樹(shù)形網(wǎng)絡(luò)中,F(xiàn)FD節(jié)點(diǎn)都可以包含自己的子節(jié)點(diǎn),而RFD只能作為葉子結(jié)點(diǎn)。這意味著協(xié)調(diào)器下還可以分路由器,這樣層層劃分,從而行成了樹(shù)形的網(wǎng)絡(luò)。在樹(shù)形拓?fù)浣Y(jié)構(gòu)中,每個(gè)節(jié)點(diǎn)都只能和他的父節(jié)點(diǎn)和子節(jié)點(diǎn)通信,其中終端節(jié)點(diǎn)作為這棵樹(shù)中的葉子結(jié)點(diǎn),而路由器則可以參于數(shù)據(jù)的路由,將數(shù)據(jù)信息層層上傳直到傳給非終端節(jié)點(diǎn)的目標(biāo)節(jié)點(diǎn)。在樹(shù)形網(wǎng)絡(luò)中,路由器同樣可以參于配置本網(wǎng)絡(luò),但是其缺點(diǎn)是網(wǎng)絡(luò)建好之后路由也隨之確定了,欠缺了靈活性。
網(wǎng)狀網(wǎng)絡(luò)中,ZigBee協(xié)調(diào)器負(fù)責(zé)啟動(dòng)和初始化整個(gè)網(wǎng)絡(luò),路由器則負(fù)責(zé)傳輸分支當(dāng)中的消息,而終端設(shè)備作為網(wǎng)絡(luò)的葉子節(jié)點(diǎn)負(fù)責(zé)收集信息,其沒(méi)有路由消息的能力,但可以將自身收集的數(shù)據(jù)發(fā)送給其他FFD。網(wǎng)狀拓?fù)涞囊粋€(gè)功能是多跳,當(dāng)傳輸過(guò)程中遇到障礙時(shí),可以采用多跳將數(shù)據(jù)從別的路由器傳送給目的設(shè)備。網(wǎng)狀拓?fù)涞慕M網(wǎng)過(guò)程和分址算法都較前兩個(gè)拓?fù)涓訌?fù)雜。
2.2.4 網(wǎng)絡(luò)的建立
如前所述,第一個(gè)啟動(dòng)的協(xié)調(diào)器設(shè)備會(huì)建立一個(gè)網(wǎng)絡(luò)。建立一個(gè)新的網(wǎng)絡(luò)包括一些初始化的過(guò)程,其中包括了選擇合適的信道和唯一的網(wǎng)絡(luò)標(biāo)識(shí)符(PAN ID),并設(shè)置自己的網(wǎng)絡(luò)地址為0x0000,如果希望建立信標(biāo)網(wǎng)絡(luò)還需要配置超幀結(jié)構(gòu)。
網(wǎng)絡(luò)層首先請(qǐng)求MAC子層通過(guò)信道掃描檢測(cè)各個(gè)信道的能量狀況,接收到能量檢測(cè)掃描結(jié)果后,拋棄能量超過(guò)可接受水平的信道,從中選擇一個(gè)能量干擾較低的信道并指定一個(gè)與現(xiàn)存
PAN ID不沖突的網(wǎng)絡(luò)標(biāo)識(shí)符,設(shè)置協(xié)調(diào)器的網(wǎng)絡(luò)地址為0x0000,通 過(guò) MLME-START.request原語(yǔ)開(kāi)始運(yùn)行新的PAN(個(gè)人區(qū)域網(wǎng))[6]。
2.2.5 設(shè)備入網(wǎng)
ZigBee協(xié)調(diào)器或路由器通過(guò) NLME-PERMIT-JOINING.request原語(yǔ)設(shè)置MAC子層的macAssoeiationPermit PIB為T(mén)RUE,允許設(shè)備加入網(wǎng)絡(luò)。NWK層有3種加入網(wǎng)絡(luò)的情況:1)子設(shè)備沒(méi)有加入任何網(wǎng)絡(luò),希望加入一個(gè)新的網(wǎng)絡(luò);2)子設(shè)備沒(méi)有加入網(wǎng)絡(luò),但是父設(shè)備希望它加入網(wǎng)絡(luò);3)子設(shè)備已經(jīng)加入了網(wǎng)絡(luò),但由于某些原因失去和網(wǎng)絡(luò)的聯(lián)系,希望重新加入網(wǎng)絡(luò)。
在ZigBee協(xié)議中常用的是分層次的樹(shù)型拓?fù)浣Y(jié)構(gòu)。因?yàn)槠錁?gòu)造簡(jiǎn)單,組網(wǎng)方便,運(yùn)算量少,非常適用于擴(kuò)展型家庭網(wǎng)絡(luò)這種組網(wǎng)結(jié)構(gòu)比較簡(jiǎn)單的網(wǎng)絡(luò)中。常用的層次拓?fù)渚W(wǎng)絡(luò)見(jiàn)圖3。

圖3 常用的層次拓?fù)渚W(wǎng)絡(luò)
2.3.1 ZigBee地址分配算法
先定義幾個(gè)要用到的參數(shù):Lm表示網(wǎng)絡(luò)所允許的最大深度;Cm表示每個(gè)父節(jié)點(diǎn)可接受的最大孩子數(shù);Rm表示每個(gè)父節(jié)點(diǎn)可接受的最大路由器數(shù);d表示設(shè)備所處的網(wǎng)絡(luò)中的深度。
所給出的算法實(shí)例以圖4進(jìn)行說(shuō)明。

圖4 Cskip地址分配算法圖例
為了運(yùn)算方便,這里的例子先假定Lm=3,Cm=Rm=2。首先給出計(jì)算Cskip(d)的公式

根據(jù)式(1),可以算出各個(gè)深度的Cskip(d)(如圖4)。Cskip(d)是整個(gè)Cskip算法的基礎(chǔ),進(jìn)一步的第n個(gè)設(shè)備的地址分配就可由Cskip(d)算出。

根據(jù)式(2)可以算出新加入網(wǎng)的設(shè)備n應(yīng)該被分配怎樣的地址。如圖4中,Addr=9的設(shè)備,其兩個(gè)子設(shè)備的地址分配可以這樣計(jì)算:
1)第1個(gè)子設(shè)備 =9+0×2+1=10;
2)第2個(gè)子設(shè)備 =9+0×2+2=11。
2.3.2 ZigBee路由算法
ZigBee網(wǎng)絡(luò)中采用的是一種按距離矢量路由(AODV)的路由算法。一個(gè)ZigBee路由器或協(xié)調(diào)器維護(hù)一個(gè)路由表,里面記錄了許多有關(guān)路由計(jì)算的信息,通過(guò)定期地更新此表與應(yīng)用下面的一些路由算法,可以比較快速地將信息路由至指定的設(shè)備[6]。
緊接著上一節(jié)的Cskip算法,根據(jù)得出的設(shè)備地址得出的一些路由算法如下:
當(dāng)路由數(shù)據(jù)時(shí),就可以知道設(shè)備X是否為設(shè)備A的子孫,利用以下判別式

根據(jù)式(3),可以很容易地判斷地址為11的設(shè)備X是不是地址為8的設(shè)備A的子孫。因?yàn)?<11<7+8,符合式(3),所以設(shè)備X是設(shè)備A的子孫。
當(dāng)設(shè)備確定目的地是自己子孫時(shí),就可以計(jì)算下一跳;如果目的地就是自己的子孫,直接交付。否則,由下式算出下一跳交付地址

根據(jù)式(4),可以算出當(dāng)如圖4的地址為8的設(shè)備Y要將數(shù)據(jù)轉(zhuǎn)發(fā)給設(shè)備11時(shí),應(yīng)該做的運(yùn)算代碼是next-hop=8+1+int{(11-(8+1))/3}×3=9,所以設(shè)備Y要將數(shù)據(jù)轉(zhuǎn)給地址為9的子設(shè)備。
2.3.3 ZigBee中的路由實(shí)現(xiàn)
ZigBee協(xié)調(diào)器和ZigBee路由器都包含有路由表和路由發(fā)現(xiàn)表[7]。
路由表中主要由路由狀態(tài)信息、目標(biāo)地址、組地址、下一跳地址等組成。
路由發(fā)現(xiàn)表主要由路由發(fā)現(xiàn)序列號(hào)、源地址、發(fā)送者地址(與源地址區(qū)別,這個(gè)可能是轉(zhuǎn)發(fā)器的地址)、前向耗廢,累計(jì)耗廢以及消忘時(shí)間等組成。
路由表能力是指一個(gè)設(shè)備有能力使用其路由表來(lái)建立到某個(gè)目標(biāo)設(shè)備的一條路由。一般把滿(mǎn)足以下條件的設(shè)備叫作有路由表能力:1)它是一個(gè)ZigBee協(xié)調(diào)器或ZigBee路由器;2)它維護(hù)一個(gè)路由表;3)它有一個(gè)空閑的路由表?xiàng)l目或已經(jīng)有一個(gè)對(duì)應(yīng)于目標(biāo)地址的路由表?xiàng)l目。
網(wǎng)絡(luò)設(shè)備在NWK層上通過(guò)路由發(fā)現(xiàn)程序來(lái)尋找和建立路由,它總是由指定的源設(shè)備和目標(biāo)設(shè)備共同參與完成的。網(wǎng)絡(luò)層從上層網(wǎng)絡(luò)實(shí)體收到NLDE.DA?TA.request原語(yǔ),并且該原語(yǔ)的DiscoverRoute參數(shù)為T(mén)RUE時(shí),在如下情況下,路由發(fā)現(xiàn)程序會(huì)被NWK層初始化:網(wǎng)絡(luò)層幀報(bào)頭中的目的地址不是當(dāng)前設(shè)備地址或者廣播地址;NWK層幀控制域的發(fā)現(xiàn)路由子域值為1;在路由表中沒(méi)有與DstAddr相對(duì)應(yīng)的入口[6]。
路由發(fā)現(xiàn)期間,一個(gè)ZigBee路由器或ZigBee協(xié)調(diào)器需要維護(hù)以便于參與發(fā)現(xiàn)某條路由的信息,分布在一個(gè)路由表?xiàng)l目和一個(gè)路由發(fā)現(xiàn)表?xiàng)l目之間。一旦發(fā)現(xiàn)完成,只有路由表?xiàng)l目需要維護(hù),以便NWK層可以沿著所發(fā)現(xiàn)的路由執(zhí)行路由尋找。
在本節(jié)中,提到了一個(gè)路由表?xiàng)l目及其對(duì)應(yīng)的路由發(fā)現(xiàn)表?xiàng)l目之間的這種關(guān)系,反之亦然。這一對(duì)應(yīng)的維護(hù)取決于執(zhí)行者,因?yàn)楸碇械臈l目沒(méi)有任何共同之處,但是值得注意的是定義一個(gè)路由發(fā)現(xiàn)的唯一密鑰,是路由發(fā)現(xiàn)命令幀的源地址,路由請(qǐng)求ID由該設(shè)備生成,并在命令幀負(fù)載中攜帶。
ZigBee所具有的低速率、低功耗的無(wú)線(xiàn)互聯(lián)應(yīng)用的特點(diǎn),非常適合家庭無(wú)線(xiàn)組網(wǎng)。本節(jié)主要討論Zig?Bee技術(shù)在擴(kuò)展型家庭網(wǎng)絡(luò)的應(yīng)用。
圖5給出了基于ZigBee技術(shù)擴(kuò)展型家庭網(wǎng)絡(luò)的網(wǎng)絡(luò)拓?fù)鋱D。
數(shù)字家庭網(wǎng)絡(luò)中的ZigBee子網(wǎng)關(guān)與ZigBee終端設(shè)備,依據(jù)ZigBee協(xié)議構(gòu)成自組織的ZigBee家居控制網(wǎng)絡(luò),該網(wǎng)絡(luò)通過(guò)數(shù)字家庭網(wǎng)關(guān)實(shí)現(xiàn)與處于公共網(wǎng)絡(luò)中的中心服務(wù)器的雙向通信。
擴(kuò)展型網(wǎng)絡(luò)子網(wǎng)關(guān)是智能家居中一個(gè)核心設(shè)備,它實(shí)現(xiàn)了與外網(wǎng)服務(wù)器的直接通信,同時(shí)對(duì)受控設(shè)備進(jìn)行直接的控制。其軟件架構(gòu)主要包括6個(gè)部分:主控制模塊、Zigbee通信模塊、TCP/IP通信模塊、指令解析模塊、數(shù)據(jù)處理模塊和外部事件處理模塊。各模塊

圖5 基于ZigBee技術(shù)擴(kuò)展型家庭網(wǎng)絡(luò)拓?fù)鋱D
間的關(guān)系如圖6所示。

圖6 功能模塊關(guān)系圖
圖6中實(shí)線(xiàn)箭頭表示模塊間有直接通信關(guān)系;虛線(xiàn)表示模塊間有牽制關(guān)系,它們通過(guò)主控制模塊進(jìn)行間接通信。
如圖6所示,主控制模塊時(shí)刻監(jiān)視著系統(tǒng)的運(yùn)行,以實(shí)現(xiàn)對(duì)各功能模塊的調(diào)度。外部事件處理模塊受到外部事件的觸發(fā),當(dāng)檢測(cè)到有外部事件發(fā)生時(shí)修改系統(tǒng)狀態(tài)并通知主控制模塊進(jìn)行相應(yīng)的處理。
擴(kuò)展型網(wǎng)絡(luò)子網(wǎng)關(guān)運(yùn)用上述幾個(gè)模塊,實(shí)現(xiàn)了家居設(shè)備與系統(tǒng)后臺(tái)之間的通信,其具體功能實(shí)現(xiàn)包括以下主要部分。
3.2.1 ZigBee通信具體實(shí)現(xiàn)
系統(tǒng)采用星型組網(wǎng)方式構(gòu)建了一個(gè)WPAN網(wǎng)絡(luò),在WPAN網(wǎng)絡(luò)中可同時(shí)存在兩種不同類(lèi)型的設(shè)備,一種是簡(jiǎn)化功能的設(shè)備(RFD),另一種是具有完整功能的設(shè)備(FFD)。FFD主要作為WPAN中的協(xié)調(diào)器,它可與多個(gè)RFD以及FFD建立直接通信;RFD作為WPAN中的一個(gè)終端設(shè)備,只能與一個(gè)FFD建立直接通信,在本系統(tǒng)中它用于連接家庭中的受控設(shè)備(如水電氣計(jì)量表、電器、傳感器等)。
3.2.2 數(shù)據(jù)采集、處理及設(shè)備控制
ZigBee技術(shù)在擴(kuò)展型家庭網(wǎng)絡(luò)中主要用于計(jì)量數(shù)據(jù)的采集以及設(shè)備的控制。為了實(shí)現(xiàn)ZigBee網(wǎng)絡(luò)中控制器和受控設(shè)備的正常通信,制定了一套標(biāo)準(zhǔn)的數(shù)據(jù)幀格式(見(jiàn)圖7)。

圖7 ZigBee網(wǎng)絡(luò)通信數(shù)據(jù)幀格式
在擴(kuò)展型家庭網(wǎng)絡(luò)中,ZigBee網(wǎng)絡(luò)協(xié)調(diào)器作為數(shù)據(jù)采集的集中處理及設(shè)備控制的中心節(jié)點(diǎn),存在于家庭子網(wǎng)關(guān)中。各數(shù)據(jù)采集設(shè)備及受控設(shè)備通過(guò)ZigBee網(wǎng)絡(luò)與子網(wǎng)關(guān)建立直接的通信。
3.2.3 TCP/IP通信
由于IPv4仍然廣泛使用,家庭局域網(wǎng)內(nèi)部使用的是私有IP地址[8],且一般情況下家庭網(wǎng)絡(luò)中外網(wǎng)入口IP是通過(guò)DHCP服務(wù)器自動(dòng)分配,有一定的租用期。因此,要實(shí)現(xiàn)外網(wǎng)服務(wù)器對(duì)家電設(shè)備進(jìn)行實(shí)時(shí)查詢(xún)和控制就必須使擴(kuò)展型網(wǎng)絡(luò)子網(wǎng)關(guān)能夠主動(dòng)與外網(wǎng)服務(wù)器建立穩(wěn)定的連接[9]。
基于以上需求,必須在擴(kuò)展型網(wǎng)絡(luò)子網(wǎng)關(guān)中加入一個(gè)TCP/IP網(wǎng)絡(luò)客戶(hù)端,與ZigBee協(xié)調(diào)器共同構(gòu)成一個(gè)整體。TCP/IP網(wǎng)絡(luò)客戶(hù)端的主要功能是與外網(wǎng)服務(wù)器建立穩(wěn)定的連接以實(shí)現(xiàn)實(shí)時(shí)的雙向通信,同時(shí)也具有一定的異常處理能力。
如圖8所示,擴(kuò)展型網(wǎng)絡(luò)子網(wǎng)關(guān)首先向服務(wù)器發(fā)送連接請(qǐng)求。連接成功建立后,擴(kuò)展型網(wǎng)絡(luò)子網(wǎng)關(guān)將用戶(hù)信息發(fā)送到遠(yuǎn)程服務(wù)器進(jìn)行注冊(cè),注冊(cè)后服務(wù)器可根據(jù)用戶(hù)信息查詢(xún)指定用戶(hù)的家電設(shè)備計(jì)量數(shù)據(jù),這是實(shí)現(xiàn)家電設(shè)備狀態(tài)查詢(xún)的關(guān)鍵。

圖8 網(wǎng)關(guān)注冊(cè)請(qǐng)求流程
3.2.4 指令解析模塊功能實(shí)現(xiàn)
指令解析模塊是實(shí)現(xiàn)ZigBee協(xié)議與TCP/IP協(xié)議轉(zhuǎn)換中間部件,它負(fù)責(zé)對(duì)服務(wù)器端的查詢(xún)、控制命令進(jìn)行解析,以便ZigBee協(xié)調(diào)器根據(jù)解析結(jié)果通知各站點(diǎn)做出相應(yīng)的操作。
數(shù)據(jù)幀格式的設(shè)計(jì)是實(shí)現(xiàn)擴(kuò)展型網(wǎng)絡(luò)子網(wǎng)關(guān)與服務(wù)器雙向交互的關(guān)鍵。在本系統(tǒng)中子網(wǎng)關(guān)需要與服務(wù)器交互的數(shù)據(jù)幀有如下幾種:1)注冊(cè)請(qǐng)求幀,由網(wǎng)關(guān)發(fā)出,用于向服務(wù)器請(qǐng)求注冊(cè);2)注冊(cè)狀態(tài)幀,由服務(wù)器發(fā)出,作為注冊(cè)請(qǐng)求幀的回應(yīng)幀,用于向擴(kuò)展型網(wǎng)絡(luò)子網(wǎng)關(guān)傳達(dá)注冊(cè)狀態(tài);3)查表命令幀,由服務(wù)器發(fā)出,用于向擴(kuò)展型網(wǎng)絡(luò)子網(wǎng)關(guān)發(fā)送查詢(xún)命令;4)設(shè)備控制幀,由服務(wù)器發(fā)出,用于向擴(kuò)展型網(wǎng)絡(luò)子網(wǎng)關(guān)發(fā)送設(shè)備的控制命令,如關(guān)閉水電氣供應(yīng);5)設(shè)備數(shù)據(jù)幀,由擴(kuò)展型網(wǎng)絡(luò)子網(wǎng)關(guān)發(fā)出,作為查表命令幀的回應(yīng)幀,用于返回所查家電設(shè)備的計(jì)量數(shù)據(jù);6)連接心跳幀,由服務(wù)器發(fā)出,網(wǎng)關(guān)通過(guò)該數(shù)據(jù)幀判斷服務(wù)器工作是否正常。
本文開(kāi)頭先對(duì)比了同為2.4 GHz頻段的ZigBee、藍(lán)牙、WiFi技術(shù),并通過(guò)對(duì)擴(kuò)展型家庭網(wǎng)絡(luò)的介紹,分析其特點(diǎn),給出了ZigBee技術(shù)用于擴(kuò)展型家庭網(wǎng)絡(luò)的可行性與優(yōu)勢(shì)。
本文先簡(jiǎn)略地介紹了ZigBee的歷史、發(fā)展,然后較為詳細(xì)地討論了ZigBee技術(shù)中的關(guān)鍵部分,包括Zig?Bee的組網(wǎng)技術(shù)和路由技術(shù)。在討論組網(wǎng)技術(shù)的時(shí)候重點(diǎn)介紹了ZigBee網(wǎng)絡(luò)的拓?fù)浼暗刂贩峙涞乃惴ā=又敿?xì)介紹了路由的算法以及ZigBee協(xié)議在一些具體的協(xié)議棧里面是如何實(shí)現(xiàn)的。
最后闡述了ZigBee技術(shù)如何應(yīng)用在一個(gè)具體的項(xiàng)目——擴(kuò)展型家庭網(wǎng)絡(luò)中。整個(gè)系統(tǒng)包括:Internet服務(wù)器端、家庭ZigBee子網(wǎng)關(guān)與ZigBee終端設(shè)備。較為詳細(xì)地介紹了其中主模塊的設(shè)計(jì)與實(shí)現(xiàn),包括通信模塊、數(shù)據(jù)采集模塊和指令解析模塊等。
ZigBee技術(shù)彌補(bǔ)了低成本、低功耗和低速率無(wú)線(xiàn)通信市場(chǎng)的空缺。但是在標(biāo)準(zhǔn)化、應(yīng)用推廣、安全性、數(shù)據(jù)庫(kù)集成等方面仍有待充實(shí)與提高,這幾點(diǎn)無(wú)疑會(huì)給今后的研究工作帶來(lái)更大的挑戰(zhàn),同時(shí)也是更多的期待[2]。相信通過(guò)不懈的努力和追求,本課題一定會(huì)取得更多的成果。
[1]Jennie. Zigbee home snesor demonstration user[EB/OL].[2011-06-10].http://wenku.baidu.com/view/bb7c5a33b90d6c85ec-3ac66a.html.
[2]劉青,宋立軍.ZigBee無(wú)線(xiàn)傳感器網(wǎng)絡(luò)組網(wǎng)研究[J].電腦開(kāi)發(fā)與應(yīng)用,2008(6):44-45.
[3]原羿,蘇鴻根.基于ZigBee技術(shù)的無(wú)線(xiàn)網(wǎng)絡(luò)應(yīng)用研究[J].計(jì)算機(jī)應(yīng)用軟件,2004,21(6):89-91.
[4]ZigBee Alliance.ZigBee specification[EB/OL].[2011-03-03].http://www.doc88.com/p-10387572691.html.
[5]IEEE Computer Society.IEEE Std 802.15.4-2003[EB/OL].[2011-05-03].http://www.docin.com/p-57745404.html.
[6]周武斌,羅大庸.ZigBee路由協(xié)議的研究[J].計(jì)算機(jī)工程與科學(xué),2009(6):12-14.
[7]江玲,周健明.ZigBee網(wǎng)絡(luò)層關(guān)鍵技術(shù)研究與實(shí)現(xiàn)[J].黃石理工學(xué)院學(xué)報(bào),2009(1):27-31.
[8]3Com Corp.White paper:understanding IP addressing:everything you ever wanted to know[EB/OL].[2011-05-10].http://wenku.baidu.com/view/4362ea75a417866fb84a8e55.html.
[9]科姆.計(jì)算機(jī)網(wǎng)絡(luò)與因特網(wǎng)[M].5版.北京:清華大學(xué)出版社,2010.