基于Zigbee技術(shù)的無(wú)線傳感器網(wǎng)絡(luò)協(xié)議的設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
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)建簇樹(shù)形拓?fù)浣Y(jié)構(gòu)的無(wú)線傳感器網(wǎng)絡(luò)。網(wǎng)絡(luò)示意圖如圖1:
圖 1 簇形傳感網(wǎng)絡(luò)示意圖
在此網(wǎng)絡(luò)中鄰近區(qū)域內(nèi)的節(jié)點(diǎn)構(gòu)成了一個(gè)簇,每個(gè)簇有且僅有一個(gè)簇頭,相鄰的簇頭又循環(huán)構(gòu)成了另一個(gè)簇,這樣依次反復(fù),構(gòu)成了一個(gè)樹(shù)形結(jié)構(gòu)的傳感網(wǎng)絡(luò)。在此結(jié)構(gòu)中,樹(shù)根節(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)示意圖。
圖 2 設(shè)備自發(fā)建網(wǎng)示意圖
當(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è)簇樹(shù)狀的無(wú)線傳感網(wǎng)。圖3是節(jié)點(diǎn)入網(wǎng)握手示意圖:
圖 3 節(jié)點(diǎn)入網(wǎng)握手示意圖 圖 4 節(jié)點(diǎn)出網(wǎng)握手示意圖
同理,一個(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)求的握手示意圖。
圖5 節(jié)點(diǎn)orphan請(qǐng)求的握手示意圖
由于無(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ù)。
圖6 無(wú)線傳感器節(jié)點(diǎn)硬件概況圖
初步實(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è)觀。