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