ZigBee無(wú)線傳感器網(wǎng)絡(luò)在遠(yuǎn)程環(huán)境監(jiān)測(cè)中的應(yīng)用
0 引言
2008年5月12日,8級(jí)強(qiáng)震襲擊了中國(guó)西南部,遇難69227人,受傷374643人,失蹤17923人,直接經(jīng)濟(jì)損失達(dá)845l億元;2009年8月2日臺(tái)風(fēng)莫拉克登陸,造成財(cái)產(chǎn)損失至少34億美元。上述這些駭人的數(shù)據(jù)足以提醒人們迫切需要對(duì)環(huán)境進(jìn)行精確、實(shí)時(shí)監(jiān)控,以降低火災(zāi)、自然災(zāi)害等對(duì)人類造成的生命財(cái)產(chǎn)損失。但是,傳統(tǒng)的有線方式布線難度大、成本高且維護(hù)困難,因而需要另一種體系結(jié)構(gòu)來(lái)對(duì)無(wú)人職守的環(huán)境進(jìn)行實(shí)時(shí)連續(xù)地監(jiān)控,從而讓監(jiān)控網(wǎng)絡(luò)擺脫電纜布線和人工堅(jiān)守的束縛。
1 Zigbee無(wú)線傳感器網(wǎng)絡(luò)
在無(wú)線傳感器網(wǎng)絡(luò)中,傳感器節(jié)點(diǎn)可通過(guò)飛機(jī)布撒,人工布置等方式,以一定的間隔距離分布在監(jiān)控區(qū)域內(nèi)。這些節(jié)點(diǎn)再通過(guò)自組織方式構(gòu)成無(wú)線網(wǎng)絡(luò),并以協(xié)作的方式感知、采集和處理網(wǎng)絡(luò)覆蓋區(qū)域中特定的信息,從而實(shí)現(xiàn)對(duì)任意地點(diǎn)信息在任意時(shí)間的采集、處理和分析。這種以自組織形式構(gòu)成的網(wǎng)絡(luò),可通過(guò)多跳中繼方式將數(shù)據(jù)傳回中心控制節(jié)點(diǎn),最后將整個(gè)區(qū)域內(nèi)的數(shù)據(jù)傳送到遠(yuǎn)程控制中心來(lái)進(jìn)行集中處理。
目前迫切需要一種符合低端、面向控制、應(yīng)用簡(jiǎn)單的專用標(biāo)準(zhǔn),而Zigbee的出現(xiàn)正好解決了這一問(wèn)題。Zigbee有著高通信效率、低復(fù)雜度、低功耗、低成本、高安全性以及全數(shù)字化等諸多優(yōu)點(diǎn)。這些優(yōu)點(diǎn)使得Zigbee和無(wú)線傳感器網(wǎng)絡(luò)完美地結(jié)合在一起。目前,基于Zigbee技術(shù)的無(wú)線傳感器網(wǎng)絡(luò)的研究和開(kāi)發(fā)已得到越來(lái)越多的關(guān)注。
ZigBee是基于IEEE802.15.4無(wú)線標(biāo)準(zhǔn)研制開(kāi)發(fā)的一種短距離、低功耗、低成本的無(wú)線組網(wǎng)技術(shù)。ZigBee所使用的頻段是免費(fèi)開(kāi)放的,分別為2.4GHz(全球)、915MHz(美國(guó))和868MHz(歐洲),傳輸范圍依賴于輸出功率和信道環(huán)境,一般介于10米到100米之間,并支持無(wú)限擴(kuò)展。在ZigBee網(wǎng)絡(luò)中存在三種邏輯設(shè)備類型:協(xié)調(diào)器、路由器和終端設(shè)備。協(xié)調(diào)器包含所有的網(wǎng)絡(luò)消息,并具有存儲(chǔ)容量大、計(jì)算能力強(qiáng)等特點(diǎn),其主要任務(wù)是發(fā)送網(wǎng)絡(luò)信標(biāo)、建立一個(gè)網(wǎng)絡(luò)、管理網(wǎng)絡(luò)節(jié)點(diǎn)、存儲(chǔ)網(wǎng)絡(luò)節(jié)點(diǎn)信息、尋找一對(duì)節(jié)點(diǎn)間的路由消息和不斷地接收信息;路由器的功能主要是允許其他設(shè)備加入網(wǎng)絡(luò)、多跳路由和協(xié)助自己由電池供電的子終端設(shè)備的通訊;終端設(shè)備沒(méi)有特定的維持網(wǎng)絡(luò)結(jié)構(gòu)的責(zé)任??梢运呋蛘邌拘?,因此,它可作為一個(gè)電池供電設(shè)備。
本文提出的無(wú)線傳感器解決方案的體系結(jié)構(gòu)由傳感器節(jié)點(diǎn)、中心控制節(jié)點(diǎn)和環(huán)境信息監(jiān)控中心三部分組成。其系統(tǒng)結(jié)構(gòu)框圖如圖l所示。基于實(shí)時(shí)性、便捷性和運(yùn)行成本的考慮,本系統(tǒng)采用基于ZigBee技術(shù)的無(wú)線傳感器網(wǎng)絡(luò)來(lái)實(shí)現(xiàn)環(huán)境數(shù)據(jù)的采集和上傳。傳感器節(jié)點(diǎn)則通過(guò)人工布置或飛機(jī)分撒等方式分布在監(jiān)測(cè)區(qū)域內(nèi),通過(guò)自組織形式形成無(wú)線多跳網(wǎng)絡(luò),在采集環(huán)境數(shù)據(jù)后,可直接或經(jīng)路由器間接地將環(huán)境數(shù)據(jù)上傳到中心控制節(jié)點(diǎn),中心控制節(jié)點(diǎn)則通過(guò)串口將環(huán)境數(shù)據(jù)傳輸?shù)奖O(jiān)控中心計(jì)算機(jī)上進(jìn)行環(huán)境數(shù)據(jù)分析、存儲(chǔ)和預(yù)警。
2 無(wú)線傳感器網(wǎng)絡(luò)硬件設(shè)計(jì)
無(wú)線傳感器網(wǎng)絡(luò)是整個(gè)系統(tǒng)的核心,也是本設(shè)計(jì)的重點(diǎn)。它主要由一個(gè)中心控制節(jié)點(diǎn)和多個(gè)傳感器節(jié)點(diǎn)構(gòu)成,主要功能是利用傳感器技術(shù)采集環(huán)境數(shù)據(jù),同時(shí)采用ZigBee技術(shù)形成無(wú)線多跳網(wǎng)絡(luò),從而實(shí)現(xiàn)環(huán)境數(shù)據(jù)在無(wú)線傳感器網(wǎng)絡(luò)中的傳輸。
2.1 無(wú)線通信模塊選型
目前市場(chǎng)上針對(duì)ZigBee標(biāo)準(zhǔn)研制的芯片已經(jīng)有很多種,比較典型的產(chǎn)品有TI公司的CC2430、Helicomm公司的IP-Link系列和Freeseale公司的MCl3192/3等。綜合考慮到系統(tǒng)的穩(wěn)定性、節(jié)能性和傳輸頻率的需求,本系統(tǒng)的無(wú)線通信模塊采用TI公司針對(duì)低系統(tǒng)成本、低功耗方面發(fā)布的射頻芯片CC2430來(lái)設(shè)計(jì)。圖2所示是CC2430的應(yīng)用設(shè)計(jì)電路。
CC2430是真正的系統(tǒng)芯片CMOS解決方案。這種解決方案能夠提高性能并滿足以ZigBee為基礎(chǔ)的2.4 GHz ISM波段應(yīng)用對(duì)低成本、低功耗的要求。CC2430在單個(gè)芯片上整合了ZigBee射頻前端、內(nèi)存和微控制器。它使用1個(gè)8位8051MCU,并具有32/64/128 KB可編程閃存和8 KB的RAM,還包含模擬數(shù)字轉(zhuǎn)換器、幾個(gè)定時(shí)器、AESl28協(xié)同處理器、看門狗定時(shí)器、32 kHz晶振、休眠模式定時(shí)器、上電復(fù)位電路、掉電檢測(cè)電路以及21個(gè)可編程I/O引腳。
對(duì)于環(huán)境遠(yuǎn)程監(jiān)測(cè)系統(tǒng)來(lái)說(shuō)。一方面需要對(duì)監(jiān)測(cè)區(qū)域內(nèi)的環(huán)境參數(shù)進(jìn)行實(shí)時(shí)、精確地采集,整體了解監(jiān)測(cè)區(qū)域的溫度、濕度等參數(shù)分布狀況,并進(jìn)行必要的預(yù)測(cè);另一方面,當(dāng)某一參數(shù)值出現(xiàn)異常時(shí),還要求網(wǎng)絡(luò)應(yīng)能及時(shí)報(bào)警,以預(yù)防事故發(fā)生。野外環(huán)境的各種參數(shù)變化比較緩慢,但是從緩慢的變化中可以看出變化的趨勢(shì),因而需要對(duì)環(huán)境數(shù)據(jù)做周期性的采集并向上報(bào)告,以便管理人員根據(jù)數(shù)據(jù)的變化對(duì)可能出現(xiàn)的危險(xiǎn)提前做出預(yù)測(cè)并采取相應(yīng)的處理措施,從而盡可能避免災(zāi)難的發(fā)生。但考慮到節(jié)點(diǎn)的能耗要求,節(jié)點(diǎn)不應(yīng)該一直不停歇的對(duì)監(jiān)測(cè)區(qū)域的環(huán)境參數(shù)進(jìn)行采集,因此,本系統(tǒng)傳感器節(jié)點(diǎn)的設(shè)計(jì)采用電池供電,中心控制節(jié)點(diǎn)采用穩(wěn)壓電源供電。中心控制節(jié)點(diǎn)與監(jiān)控中心通過(guò)串口相連。
2.2 無(wú)線傳感器節(jié)點(diǎn)的結(jié)構(gòu)設(shè)計(jì)
傳感器節(jié)點(diǎn)是系統(tǒng)的數(shù)據(jù)源,它主要由濕度、溫度、煙塵等多路傳感器采集模塊、信號(hào)調(diào)理模塊和無(wú)線收發(fā)模塊組成,負(fù)責(zé)采集和上傳監(jiān)測(cè)區(qū)域內(nèi)的各種環(huán)境參數(shù)和接收環(huán)境監(jiān)控中心發(fā)送的模式控制命令。為滿足野外無(wú)人值守的需求,設(shè)計(jì)可采用電池供電方式。其硬件結(jié)構(gòu)框圖如圖3所示。
中心控制節(jié)點(diǎn)負(fù)責(zé)啟動(dòng)整個(gè)網(wǎng)絡(luò)和維護(hù)節(jié)點(diǎn),采集無(wú)線傳感器網(wǎng)絡(luò)上傳來(lái)的環(huán)境參數(shù),并通過(guò)串口發(fā)送到監(jiān)控中心計(jì)算機(jī)上,同時(shí)偵聽(tīng)串口接收中斷,用以向傳感器節(jié)點(diǎn)發(fā)送模式控制指令,因此,在中心控制節(jié)點(diǎn)的硬件平臺(tái)上可擴(kuò)展使用RS232串口。考慮到功耗等問(wèn)題,電源系統(tǒng)的設(shè)計(jì)采用穩(wěn)壓電源供電,這樣電量較為充足,能夠滿足系統(tǒng)需求。除了上述特殊需求外,中心控制節(jié)點(diǎn)的結(jié)構(gòu)設(shè)計(jì)與傳感器節(jié)點(diǎn)的不同之處是其不包含傳感器組和信號(hào)調(diào)理模塊。
3 軟件程序設(shè)計(jì)
3.1 無(wú)線傳感器網(wǎng)絡(luò)層數(shù)據(jù)幀
傳感器節(jié)點(diǎn)、中心控制節(jié)點(diǎn)之間的數(shù)據(jù)傳輸必須遵循一定的數(shù)據(jù)格式,才能保證傳輸數(shù)據(jù)的正確性和有效性。一種有效的數(shù)據(jù)幀格式對(duì)于通信網(wǎng)絡(luò)中數(shù)據(jù)的準(zhǔn)確傳輸能起到事半功倍的效果。數(shù)據(jù)幀的定義應(yīng)該滿足兩個(gè)條件:一是要具有很好的擴(kuò)展性,以方便系統(tǒng)擴(kuò)展其他服務(wù);二是要盡量簡(jiǎn)潔,以減少通信網(wǎng)絡(luò)中的數(shù)據(jù)流量,使數(shù)據(jù)通信更通暢。
當(dāng)傳感器節(jié)點(diǎn)向中心控制節(jié)點(diǎn)發(fā)送數(shù)據(jù)時(shí),必須讓中心控制節(jié)點(diǎn)知道自己上傳數(shù)據(jù)的類型以及自己的設(shè)備特征,這樣,當(dāng)出現(xiàn)異常時(shí),監(jiān)測(cè)網(wǎng)絡(luò)就可以報(bào)告出現(xiàn)異常的區(qū)域以及異常的特征??紤]到這個(gè)需求,在網(wǎng)絡(luò)中傳輸?shù)臄?shù)據(jù)就必須按照網(wǎng)絡(luò)約定的格式進(jìn)行存儲(chǔ)。圖4所示是無(wú)線傳感器網(wǎng)絡(luò)層數(shù)據(jù)幀的格式定義。
其中OXAAH為幀頭,是一個(gè)數(shù)據(jù)幀開(kāi)始的標(biāo)志;
0XBBH為幀尾,是一個(gè)數(shù)據(jù)幀結(jié)束的標(biāo)志;
校驗(yàn)和用于表示通過(guò)校驗(yàn)位來(lái)檢驗(yàn)數(shù)據(jù)幀在傳輸過(guò)程中是不是發(fā)生了數(shù)據(jù)位的改變,通常從幀類型到數(shù)據(jù)域尾進(jìn)行加和校驗(yàn);
通過(guò)幀類型域可以判斷此數(shù)據(jù)幀所攜帶的是哪一種數(shù)據(jù)。為了滿足系統(tǒng)需求,一般可設(shè)置周期采集數(shù)據(jù)和中斷數(shù)據(jù)兩種數(shù)據(jù)類型。其中“0X01H”表示中斷數(shù)據(jù), “0X02H”表示周期采集數(shù)據(jù)。
利用設(shè)備標(biāo)識(shí),在無(wú)線傳感器網(wǎng)絡(luò)中,傳感器節(jié)點(diǎn)在此域中寫(xiě)入自己的短地址的低字節(jié)作為自己的標(biāo)志,上級(jí)網(wǎng)絡(luò)根據(jù)這個(gè)標(biāo)志就可以知道是哪個(gè)設(shè)備的數(shù)據(jù)。
數(shù)據(jù)域是數(shù)據(jù)幀的主要部分。在無(wú)線傳感器網(wǎng)絡(luò)中,數(shù)據(jù)域包括系統(tǒng)定義的幾種參數(shù)測(cè)量值(3字節(jié)ASII碼)。在系統(tǒng)定義的數(shù)據(jù)幀格式中,各個(gè)參數(shù)的位置是固定不變的,順序依次為溫度值、濕度值、節(jié)點(diǎn)電池電壓值,因此,數(shù)據(jù)域的長(zhǎng)度為固定的9字節(jié)。存放測(cè)量值的數(shù)據(jù)域每次都在傳感器點(diǎn)采集數(shù)據(jù)前都將民初始化為全0,這樣,如果某個(gè)參數(shù)沒(méi)有傳遞過(guò)來(lái)自己的測(cè)量值,上級(jí)設(shè)備就可以根據(jù)某段數(shù)據(jù)是否為全0來(lái)判斷數(shù)據(jù)是否成功采集。
3.2 中心控制節(jié)點(diǎn)程序設(shè)計(jì)
中心控制節(jié)點(diǎn)是無(wú)線傳感器網(wǎng)絡(luò)與監(jiān)控中心交互的關(guān)鍵部分。它作為無(wú)線傳感器網(wǎng)絡(luò)的協(xié)調(diào)器,可建立一個(gè)新的ZigBee無(wú)線通信網(wǎng)絡(luò),以負(fù)責(zé)網(wǎng)絡(luò)標(biāo)識(shí)符的選取,并允許加入網(wǎng)絡(luò),實(shí)施節(jié)點(diǎn)綁定;接收傳感器節(jié)點(diǎn)的環(huán)境數(shù)據(jù),并進(jìn)行預(yù)處理;同時(shí),還通過(guò)RS232串口將數(shù)據(jù)傳輸?shù)奖O(jiān)控中心進(jìn)行數(shù)據(jù)分析和處理。因此,中心控制節(jié)點(diǎn)應(yīng)該一直處于活躍的工作狀態(tài),時(shí)刻監(jiān)聽(tīng)無(wú)線數(shù)據(jù)和串口數(shù)據(jù),其中心控制節(jié)點(diǎn)的設(shè)計(jì)流程如圖5所示。
中心控制節(jié)點(diǎn)在無(wú)線傳感器網(wǎng)絡(luò)中充當(dāng)著協(xié)調(diào)器的角色,它應(yīng)該具有建立一個(gè)新的網(wǎng)絡(luò)并允許其他節(jié)點(diǎn)加入的能力;同時(shí),中心控制節(jié)點(diǎn)還要實(shí)現(xiàn)無(wú)線傳感器網(wǎng)絡(luò)和監(jiān)控中心計(jì)算機(jī)的數(shù)據(jù)通信功能。中心控制節(jié)點(diǎn)工作時(shí),首先用電源開(kāi)關(guān)S1啟動(dòng)監(jiān)測(cè)站網(wǎng)關(guān),以開(kāi)始建立一個(gè)新的網(wǎng)絡(luò)過(guò)程,并進(jìn)行串口初始化。監(jiān)測(cè)站網(wǎng)關(guān)的應(yīng)用程序應(yīng)通過(guò)應(yīng)用層接口與協(xié)議棧連接,從而建立網(wǎng)絡(luò)、允許加入網(wǎng)絡(luò)和綁定等,而且這些工作應(yīng)在協(xié)議棧內(nèi)自動(dòng)完成。
初始化完畢后,中心控制節(jié)點(diǎn)即進(jìn)入一個(gè)無(wú)限循環(huán)。在此循環(huán)中,中心控制節(jié)點(diǎn)首先判斷是否有串口中斷指令,然后響應(yīng)指令,并將指令廣播發(fā)送到傳感器節(jié)點(diǎn);若無(wú)串口中斷數(shù)據(jù),則偵聽(tīng)空中無(wú)線數(shù)據(jù),若偵聽(tīng)到無(wú)線數(shù)據(jù)經(jīng)加和校驗(yàn)判斷為有效數(shù)據(jù),則將數(shù)據(jù)通過(guò)串口發(fā)送到監(jiān)控中心。
3.3 傳感器節(jié)點(diǎn)程序設(shè)計(jì)
考慮到節(jié)點(diǎn)對(duì)能耗的要求,節(jié)點(diǎn)不應(yīng)該一直不停歇的對(duì)監(jiān)測(cè)區(qū)域的環(huán)境參數(shù)進(jìn)行采集,因此,本系統(tǒng)為傳感器節(jié)點(diǎn)設(shè)計(jì)了周期采集和睡眠兩種工作模式。在周期采集模式下,網(wǎng)絡(luò)中采集數(shù)據(jù)的節(jié)點(diǎn)將按照設(shè)定的時(shí)間間隔和循環(huán)采集次數(shù)對(duì)環(huán)境數(shù)據(jù)進(jìn)行采集和上傳,當(dāng)采集發(fā)送指定次數(shù)后,傳感器節(jié)點(diǎn)自動(dòng)進(jìn)入睡眠模式。傳感器節(jié)點(diǎn)的工作流程如圖6所示。
傳感器節(jié)點(diǎn)初始化工作完成后,即可運(yùn)行ZStack協(xié)議棧,以自動(dòng)完成加入網(wǎng)絡(luò)、建立鄰居表等底層操作。應(yīng)用層在收到成功入網(wǎng)的事件消息后,將設(shè)置睡眠定時(shí)器并開(kāi)啟全局中斷,此后節(jié)點(diǎn)將進(jìn)入睡眠狀態(tài)以實(shí)現(xiàn)低功耗工作。在睡眠狀態(tài)下,傳感器節(jié)點(diǎn)的大部分內(nèi)部電路掉電關(guān)閉,只有上電復(fù)位、外部中斷、32.768 kHz睡眠時(shí)鐘處于活躍狀態(tài),但此時(shí)傳感器節(jié)點(diǎn)能夠時(shí)刻偵聽(tīng)空中的無(wú)線數(shù)據(jù)。在睡眠模式下,若傳感器節(jié)點(diǎn)偵聽(tīng)到無(wú)線數(shù)據(jù),則對(duì)接收到的數(shù)據(jù)進(jìn)行解析。若為有效的周期采集命令,則喚醒傳感器節(jié)點(diǎn)進(jìn)入周期采集工作模式,同時(shí)設(shè)置周期采集時(shí)間間隔Tc和采集次數(shù)N。開(kāi)始循環(huán)采集上傳環(huán)境數(shù)據(jù)。當(dāng)采集發(fā)送到指定次數(shù)時(shí),傳感器節(jié)點(diǎn)又自動(dòng)進(jìn)入睡眠偵聽(tīng)模式。
若傳感器節(jié)點(diǎn)未偵聽(tīng)到無(wú)線數(shù)據(jù),則判斷睡眠定時(shí)器是否溢出,若睡眠定時(shí)器未溢出,則繼續(xù)睡眠偵聽(tīng);反之,定時(shí)器溢出中斷觸發(fā)一次環(huán)境數(shù)據(jù)采集過(guò)程,并判斷環(huán)境參數(shù)是否超出閾值,若超出閾值,則啟動(dòng)報(bào)警電路,并將異常數(shù)據(jù)打包發(fā)送到監(jiān)測(cè)站網(wǎng)關(guān);如果采集到的環(huán)境參數(shù)在正常范圍內(nèi),則丟棄該數(shù)據(jù),節(jié)點(diǎn)繼續(xù)睡眠偵聽(tīng)。
4 結(jié)束語(yǔ)
本文提出了無(wú)線傳感器網(wǎng)絡(luò)環(huán)境監(jiān)控系統(tǒng)的整體架構(gòu)、底層硬件和應(yīng)用程序軟件的設(shè)計(jì)方法。該系統(tǒng)經(jīng)連接測(cè)試可組成多層分簇?zé)o線網(wǎng)絡(luò),從而實(shí)現(xiàn)數(shù)據(jù)的傳輸,并可達(dá)到預(yù)期效果,同時(shí)系統(tǒng)穩(wěn)定性、響應(yīng)速度等性能都可滿足實(shí)際需求。此外,本系統(tǒng)還具有良好的擴(kuò)展性,可以根據(jù)具體要求方便地在數(shù)據(jù)采集模塊上進(jìn)行相應(yīng)傳感器的擴(kuò)充以完成特定數(shù)據(jù)采集的需要。Zigbee無(wú)線傳感器網(wǎng)絡(luò)因其組網(wǎng)靈活、節(jié)點(diǎn)耗電低、可自動(dòng)恢復(fù)等強(qiáng)大功能,其應(yīng)用領(lǐng)域?qū)?huì)越來(lái)越廣泛。
adc相關(guān)文章:adc是什么
傳感器相關(guān)文章:傳感器工作原理
路由器相關(guān)文章:路由器工作原理
路由器相關(guān)文章:路由器工作原理
波段開(kāi)關(guān)相關(guān)文章:波段開(kāi)關(guān)原理
風(fēng)速傳感器相關(guān)文章:風(fēng)速傳感器原理
評(píng)論