摘 要:本文提出了使用zigbee技術(shù)構(gòu)建簇樹形拓?fù)浣Y(jié)構(gòu)的無(wú)線傳感器網(wǎng)絡(luò)。首先,概述了無(wú)線傳感器網(wǎng)絡(luò)的特點(diǎn);其次,重點(diǎn)闡述了此類拓?fù)浣Y(jié)構(gòu)的無(wú)線傳感器網(wǎng)絡(luò)協(xié)議設(shè)計(jì)思想;最后,在實(shí)際的硬件環(huán)境下驗(yàn)證所設(shè)計(jì)的協(xié)議。
關(guān)鍵字:無(wú)線傳感器網(wǎng)絡(luò);zigbee;自愈合
Abstract: This paper brings forward to construct cluster-tree wireless sensor network which is based on zigbee technology. Firstly, it talks about features of wireless sensor networks. Then, it mainly talks about key points of designing this type of network. Finally, we test the protocol on real hardware.
Key words: Wireless Sensor Networks; Zigbee; Self-health
1 引言
無(wú)線傳感器網(wǎng)絡(luò)是由多個(gè)無(wú)線網(wǎng)絡(luò)傳感器構(gòu)成,這些傳感器集傳感器執(zhí)行、控制器和通信裝置于一體,集傳感與驅(qū)動(dòng)控制能力、計(jì)算能力、通信能力于一身的資源受限的嵌入式設(shè)備。由這些微型傳感器構(gòu)成的無(wú)線傳感器網(wǎng)絡(luò)能夠?qū)崟r(shí)監(jiān)測(cè)、感知和采集網(wǎng)絡(luò)分布區(qū)域內(nèi)的各種監(jiān)測(cè)對(duì)象信息,并對(duì)這些信息進(jìn)行處理,傳送給需要這些信息的用戶。無(wú)線傳感器網(wǎng)絡(luò)具有自組織、自愈、多跳等特點(diǎn),并且節(jié)點(diǎn)放置位置大多固定。由于有些無(wú)線傳感器現(xiàn)場(chǎng)工作環(huán)境比較惡劣,因此在設(shè)計(jì)無(wú)線傳感器網(wǎng)絡(luò)協(xié)議的時(shí)候就必須充分考慮傳感器節(jié)點(diǎn)的節(jié)能問(wèn)題和采集數(shù)據(jù)的實(shí)時(shí)性傳輸問(wèn)題。
ZigBee技術(shù)是一個(gè)具有統(tǒng)一技術(shù)標(biāo)準(zhǔn)的短距離無(wú)線通信技術(shù),其PHY層和MAC層協(xié)議為IEEE802.15.4協(xié)議標(biāo)準(zhǔn)。本文提出的無(wú)線傳感器網(wǎng)絡(luò)工作在全球通用的ISM(Industrial,Scientific and Medica1)免付費(fèi)頻段2.4GHz上,其數(shù)據(jù)傳輸速率為250Kb/s,劃分為16個(gè)信道。與藍(lán)牙或802.11b等同屬短距離無(wú)線通信技術(shù)相比,ZigBee技術(shù)具有先天的優(yōu)勢(shì)。ZigBee設(shè)備為低功耗設(shè)備,具有能量檢測(cè)和鏈路質(zhì)量指示的功能。同時(shí),由于采用了碰撞避免機(jī)制(CSMA—CA),避免了發(fā)送數(shù)據(jù)時(shí)的沖突。在網(wǎng)絡(luò)安全方面,采用了密鑰長(zhǎng)度為128位的加密算法,對(duì)所傳輸?shù)臄?shù)據(jù)信息進(jìn)行加密處理,保證了數(shù)據(jù)傳輸時(shí)的高可靠性和安全性。
用ZigBee技術(shù)組成的無(wú)線傳感器網(wǎng)絡(luò)結(jié)構(gòu)簡(jiǎn)單、體積小、性價(jià)比高、放置靈活、擴(kuò)展簡(jiǎn)便、成本低、功耗低、安全可靠,這種新興的無(wú)線傳感器網(wǎng)絡(luò)必將有廣泛的應(yīng)用前景。
2 Zigbee無(wú)線傳感器網(wǎng)絡(luò)
目前,zigbee技術(shù)在國(guó)外已經(jīng)在家庭網(wǎng)絡(luò)、控制網(wǎng)絡(luò)、手機(jī)移動(dòng)終端等領(lǐng)域有了一定的應(yīng)用,但是現(xiàn)有zigbee技術(shù)構(gòu)成的網(wǎng)絡(luò)都是僅限于zigbee技術(shù)的無(wú)線個(gè)域網(wǎng)(WPN)拓?fù)浣Y(jié)構(gòu),每個(gè)接入點(diǎn)所能接納的傳感器的節(jié)點(diǎn)數(shù)遠(yuǎn)遠(yuǎn)低于協(xié)議所標(biāo)稱的255個(gè),為了達(dá)到傳感器網(wǎng)絡(luò)密集覆蓋的目的,就必須進(jìn)行復(fù)雜的組網(wǎng),這不僅增加了網(wǎng)絡(luò)的復(fù)雜性,還增加了網(wǎng)絡(luò)整體的功耗,傳感器節(jié)點(diǎn)的壽命大大降低。本文提出的是構(gòu)建簇樹形拓?fù)浣Y(jié)構(gòu)的無(wú)線傳感器網(wǎng)絡(luò)。網(wǎng)絡(luò)示意圖如圖1:
[align=center]

圖 1 簇形傳感網(wǎng)絡(luò)示意圖[/align]
在此網(wǎng)絡(luò)中鄰近區(qū)域內(nèi)的節(jié)點(diǎn)構(gòu)成了一個(gè)簇,每個(gè)簇有且僅有一個(gè)簇頭,相鄰的簇頭又循環(huán)構(gòu)成了另一個(gè)簇,這樣依次反復(fù),構(gòu)成了一個(gè)樹形結(jié)構(gòu)的傳感網(wǎng)絡(luò)。在此結(jié)構(gòu)中,樹根節(jié)點(diǎn)作為整個(gè)網(wǎng)絡(luò)的協(xié)調(diào)器可以和PC機(jī)相連,接收傳感器所采集的數(shù)據(jù),并對(duì)數(shù)據(jù)進(jìn)行顯示和處理。
3 網(wǎng)絡(luò)協(xié)議的設(shè)計(jì)
3.1網(wǎng)絡(luò)的自組織
無(wú)線傳感器網(wǎng)絡(luò)最初是由全功能設(shè)備(FFD)的節(jié)點(diǎn)發(fā)起并建立,無(wú)線傳感器網(wǎng)絡(luò)建立后,此發(fā)起設(shè)備就作為整個(gè)網(wǎng)絡(luò)協(xié)調(diào)器,該協(xié)調(diào)器可以通過(guò)串行接口和PC相連接,處理接收到的各種數(shù)據(jù),也可以和其他異種網(wǎng)絡(luò)進(jìn)行數(shù)據(jù)交換。節(jié)點(diǎn)自發(fā)建網(wǎng)過(guò)程如下:FFD節(jié)點(diǎn)首先進(jìn)行信道能量檢測(cè)(ED),選取檢測(cè)到的能量峰值最小的那個(gè)信道作為要建立的無(wú)線傳感器網(wǎng)絡(luò)的數(shù)據(jù)傳輸信道;然后在此信道上發(fā)送跨網(wǎng)信標(biāo)(beacon)請(qǐng)求幀,用以獲取節(jié)點(diǎn)操作范圍內(nèi)其他無(wú)線傳感器網(wǎng)絡(luò)信息參數(shù),在接收到beacon幀后,選擇未被使用的網(wǎng)絡(luò)標(biāo)號(hào),最后根據(jù)已確定的網(wǎng)絡(luò)信道號(hào)、網(wǎng)絡(luò)標(biāo)號(hào)及其他相關(guān)參數(shù)來(lái)設(shè)定硬件中相關(guān)寄存器的值,至此無(wú)線傳感網(wǎng)中網(wǎng)絡(luò)協(xié)調(diào)器就形成了。圖2是設(shè)備自發(fā)建網(wǎng)示意圖。
[align=center]

圖 2 設(shè)備自發(fā)建網(wǎng)示意圖[/align]
當(dāng)一個(gè)節(jié)點(diǎn)要申請(qǐng)加入已經(jīng)建好的無(wú)線傳感器網(wǎng)絡(luò)的時(shí)候,此節(jié)點(diǎn)首先預(yù)設(shè)好網(wǎng)絡(luò)標(biāo)號(hào)和使用的信道,然后發(fā)送網(wǎng)內(nèi)beacon請(qǐng)求廣播幀,在接收到多個(gè)帶有鏈路質(zhì)量信號(hào)參數(shù)的beacon幀后,選取鏈路質(zhì)量較好、剩余能量較多的節(jié)點(diǎn)進(jìn)行連接,向相應(yīng)的協(xié)調(diào)器發(fā)送入網(wǎng)請(qǐng)求命令幀,協(xié)調(diào)器允許后會(huì)分配網(wǎng)內(nèi)短地址給該節(jié)點(diǎn)。每個(gè)節(jié)點(diǎn)都有一張鄰居表,并且對(duì)其動(dòng)態(tài)維護(hù)。在該鄰居表中含有一個(gè)父節(jié)點(diǎn)地址(除了根節(jié)點(diǎn))和多個(gè)子節(jié)點(diǎn)地址(除了葉結(jié)點(diǎn))。依次重復(fù)這樣的過(guò)程,所有的節(jié)點(diǎn)就可以自組成一個(gè)簇樹狀的無(wú)線傳感網(wǎng)。圖3是節(jié)點(diǎn)入網(wǎng)握手示意圖:
[align=center]

圖 3 節(jié)點(diǎn)入網(wǎng)握手示意圖

圖 4 節(jié)點(diǎn)出網(wǎng)握手示意圖[/align]
同理,一個(gè)節(jié)點(diǎn)要離開(kāi)網(wǎng)絡(luò)的話,只要向其父節(jié)點(diǎn)發(fā)送請(qǐng)求命令幀,父節(jié)點(diǎn)在接收到請(qǐng)求后會(huì)做出相應(yīng)的操作并發(fā)送響應(yīng)幀給于回應(yīng)。圖4是節(jié)點(diǎn)出網(wǎng)握手示意圖。
3.2網(wǎng)絡(luò)的自愈合和自節(jié)能
無(wú)線傳感器網(wǎng)絡(luò)除了節(jié)點(diǎn)有自組網(wǎng)能力外,還具有自愈和自節(jié)能的特點(diǎn)。當(dāng)某一節(jié)點(diǎn)因?yàn)槟撤N客觀環(huán)境原因或是原傳感網(wǎng)參數(shù)發(fā)生變化,導(dǎo)致此節(jié)點(diǎn)和傳感網(wǎng)脫離,脫離節(jié)點(diǎn)可以發(fā)送孤立(orphan)顯示請(qǐng)求幀給協(xié)調(diào)器,協(xié)調(diào)器在接收到請(qǐng)求幀后確定此節(jié)點(diǎn)是不是自己原先的孩子節(jié)點(diǎn),在做出判定后向該節(jié)點(diǎn)發(fā)送響應(yīng)幀,以確定是否重新接收該節(jié)點(diǎn)為自己的孩子節(jié)點(diǎn)。圖5 為orphan請(qǐng)求的握手示意圖。
[align=center]

圖5 節(jié)點(diǎn)orphan請(qǐng)求的握手示意圖[/align]
由于無(wú)線傳感器網(wǎng)絡(luò)中的協(xié)調(diào)器具有多跳的功能,那么充當(dāng)協(xié)調(diào)器的節(jié)點(diǎn)就會(huì)為轉(zhuǎn)發(fā)接收到的數(shù)據(jù)而耗費(fèi)額外的能量開(kāi)銷。因此,我們?cè)O(shè)定一個(gè)最低能量極限值,并且使節(jié)點(diǎn)周期性的檢測(cè)當(dāng)前所剩余的能量值,當(dāng)檢測(cè)到本節(jié)點(diǎn)的剩余能量低于此極限值時(shí),則此協(xié)調(diào)器向其所有孩子節(jié)點(diǎn)發(fā)送出網(wǎng)命令幀,隨之,各子節(jié)點(diǎn)相繼執(zhí)行入網(wǎng)的相關(guān)操作后,脫離了原先的父節(jié)點(diǎn),而依附于新的協(xié)調(diào)器節(jié)點(diǎn)。此時(shí)原先的協(xié)調(diào)器節(jié)點(diǎn)就成為了葉節(jié)點(diǎn),不用承擔(dān)數(shù)據(jù)轉(zhuǎn)發(fā)的責(zé)任,從而達(dá)到減小能耗的要求,增加了該節(jié)點(diǎn)使用壽命,進(jìn)而提高了整個(gè)無(wú)線傳感器網(wǎng)絡(luò)的使用年限。
3.3 幀的形成和轉(zhuǎn)發(fā)
每個(gè)節(jié)點(diǎn)通過(guò)傳感裝置所獲取到的數(shù)據(jù),經(jīng)過(guò)節(jié)點(diǎn)處理后形成幀,而后將此幀發(fā)向其父節(jié)點(diǎn),依次循環(huán),最終由網(wǎng)絡(luò)協(xié)調(diào)器獲得,隨后交由PC來(lái)處理。
Zigbee協(xié)議定義了四種幀,分別是:命令幀,數(shù)據(jù)幀,beacon幀,確認(rèn)幀。通用幀的格式如表1所示:
表 1通用幀格式
幀控制域中主要包括了幀類型和源、目的地址模式。
4.結(jié)束語(yǔ)
在測(cè)試中,我們使用三個(gè)無(wú)線傳感器節(jié)點(diǎn)來(lái)構(gòu)建對(duì)等網(wǎng)絡(luò)。其中,有一個(gè)節(jié)點(diǎn)通過(guò)串口和PC相連,作為網(wǎng)絡(luò)協(xié)調(diào)器,通過(guò)它可以將采集到的數(shù)據(jù)交給PC機(jī)。無(wú)線傳感器節(jié)點(diǎn)主要以Philips公司的p89lpc932單片機(jī)為核心,無(wú)線數(shù)據(jù)收發(fā)芯片采用Ubec公司的基于zigbee協(xié)議的UZ2400,節(jié)點(diǎn)硬件概況圖如下。通常情況下節(jié)點(diǎn)一般處于休眠狀態(tài),當(dāng)有中斷請(qǐng)求時(shí)激活節(jié)點(diǎn)工作,接收數(shù)據(jù)。
[align=center]

圖6 無(wú)線傳感器節(jié)點(diǎn)硬件概況圖[/align]
初步實(shí)驗(yàn)結(jié)果表明:由PC機(jī)向網(wǎng)絡(luò)協(xié)調(diào)器發(fā)送自組網(wǎng)指令后,其他兩個(gè)無(wú)線傳感器節(jié)點(diǎn)都能正常的入網(wǎng),各節(jié)點(diǎn)之間能夠正常的發(fā)送和接收數(shù)據(jù)。同時(shí),網(wǎng)絡(luò)協(xié)調(diào)器可以把自身采集的數(shù)據(jù)或是由其他傳感器傳送過(guò)來(lái)的數(shù)據(jù)交由PC機(jī)處理。
由于,相比使用其他無(wú)線設(shè)備來(lái)構(gòu)建傳感網(wǎng),所花費(fèi)的成本要低,自組網(wǎng)能力強(qiáng),相信利用此種技術(shù)來(lái)構(gòu)建無(wú)線傳感網(wǎng)的前景將非常樂(lè)觀。
參考文獻(xiàn):
[1]ZigBee Alliance. Catch the buzz on ZigBee[DB/OL]. http://www. ZigBee. Org/en/resources, 2007-02-11.
[2]Microchip Technology Inc. Microchip stack for the ZigBee protocol[DB/OL]. http://www. Microchip. Com,2007-03-14.
[3]Kevin Dankwardt. Real-Time and Linux[J].Embedded Linux Journa1,2002,issue7:29-32.
[4]Bate. real-time embedded system[J].Computing & Control Engineering Journal,2002, 13(4):154-156.
[5] 劉瑞強(qiáng),馮長(zhǎng)安.基于zigbee的無(wú)線傳感器網(wǎng)絡(luò)[J].遙測(cè)遙控,2006,9:12-13.
[6] 朱向慶,王建明.zigbee協(xié)議網(wǎng)絡(luò)層的研究與實(shí)現(xiàn)[J].電子技術(shù)應(yīng)用,2006,1:87-89.
[7] 施承,宋鐵成.基于zigbee協(xié)議的無(wú)線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)的研制[J].廣東通信技術(shù),2006,1:18-19.
[8] 陳新光,陸以勤,呂錦.基于Zigbee 協(xié)議的OSGi 無(wú)線家庭網(wǎng)關(guān)設(shè)計(jì)[J].微計(jì)算機(jī)信息,2006,9-2:22-26.