當前位置:首頁 > 嵌入式 > 嵌入式軟件
[導讀]基于無線傳感網(wǎng)絡的智能機房環(huán)境監(jiān)控系統(tǒng)的設計與實現(xiàn)

摘要:針對傳統(tǒng)人工采集費時費力和有線監(jiān)控布線復雜、維護困難的局限性,將傳感器與ZigBee無線網(wǎng)絡技術(shù)相結(jié)合,提出了無線傳感網(wǎng)絡智能機環(huán)境監(jiān)控系統(tǒng)的設計方案,并進行了實現(xiàn)。該系統(tǒng)利用ZigBee技術(shù)實現(xiàn)對采集數(shù)據(jù)及信息的無線收發(fā),通過公共網(wǎng)關(guān)接口CGI將數(shù)據(jù)和控制信息傳送到互聯(lián)網(wǎng),操作人員從遠距離的PC機上實時查看數(shù)據(jù)、實施控制,從而實現(xiàn)了真正意義的遠程監(jiān)控。
關(guān)鍵詞:ZigBee;無線網(wǎng)絡;傳感器;環(huán)境控制;CGI

    現(xiàn)有的機房監(jiān)控主要采用人工監(jiān)控和有線監(jiān)控兩種方法。傳統(tǒng)的人工檢測和控制方法費時費力;有線傳輸面臨著布線復雜、維護和更新升級困難,而無線傳感網(wǎng)絡技術(shù)的誕生給它帶來了一場全新的革命。
    文中提出了一種基于ZigBee無線網(wǎng)絡技術(shù)的智能機房環(huán)境監(jiān)控系統(tǒng)設計方案,通過對機房的濕度、溫度、光照、火警和水浸等幾個重要因素進行實時的智能化監(jiān)測和控制,同時還可以通過手機短信通知管理者。文中重點介紹了基于ZStack的應用程序開發(fā),實現(xiàn)了對機房內(nèi)多種信息的遠程監(jiān)測、處理和控制。

1 ZigBee無線網(wǎng)絡技術(shù)
    ZigBee是一種新興的短距離、低速率無線網(wǎng)絡技術(shù)。它是一種介于無線標記和藍牙之間的技術(shù)方案。ZigBee是建立在IEEE 802.15.4標準之上的,IEEE規(guī)定了ZigBee的物理層和媒體接入控制層,網(wǎng)絡層、應用支持子層和高層應用規(guī)范由ZigBee聯(lián)盟制定。ZigBee協(xié)議規(guī)定了3個可用頻段868 MHz、915 MHz和2.4GHz,分別提供:1個、10個和16個共計27個信道。其中2.4GHz為全球通用頻段,傳輸速率達250Kb/S。   ZigBee技術(shù)采用CSMA—CA的信道接入方式,可有效避免通信的沖突。
    ZigBee網(wǎng)絡支持星狀、網(wǎng)狀和樹狀三種自組織無線網(wǎng)絡類型,其連接地址分為16位短地址和64位長地址,最多一個主節(jié)點可管理254個子節(jié)點;同時主節(jié)點還可由上一層網(wǎng)絡節(jié)點管理,可組成多達65 000個節(jié)點的大網(wǎng),一個區(qū)域可以有100個ZigBee網(wǎng)絡同時存在。
    基于ZigBee技術(shù)的無線傳感器網(wǎng)絡是集信息采集、信息傳輸、信息處理于一體的綜合智能信息系統(tǒng),具有低成本、低功耗、低速率、高可靠性等特點。

2 系統(tǒng)總體設計
2.1 系統(tǒng)結(jié)構(gòu)
    以自動控制原理為理論基礎,應用傳感器與執(zhí)行器件構(gòu)成閉環(huán)控制系統(tǒng)。傳感器節(jié)點配有傳感器感知機房環(huán)境,控制節(jié)點配有執(zhí)行器件改善機房環(huán)境。傳感器節(jié)點與控制節(jié)點相互配合,共同為機房內(nèi)機器運行提供適宜的環(huán)境。


    本系統(tǒng)由無線傳感器網(wǎng)絡、網(wǎng)關(guān)和主控中心組成。無線傳感器網(wǎng)絡是物聯(lián)網(wǎng)的神經(jīng)末梢,負責感知環(huán)境的變化,并將數(shù)據(jù)通過網(wǎng)關(guān)傳輸?shù)交ヂ?lián)網(wǎng)。系統(tǒng)結(jié)構(gòu)如圖1所示。
2.2 網(wǎng)關(guān)系統(tǒng)結(jié)構(gòu)
    網(wǎng)關(guān)是互聯(lián)網(wǎng)與無線傳感器網(wǎng)絡之間的數(shù)據(jù)通訊橋梁。本方案提供了3種網(wǎng)關(guān)接入方式:本地訪問、手機訪問和互聯(lián)網(wǎng)訪問。網(wǎng)關(guān)系統(tǒng)結(jié)構(gòu)如圖2所示。


2.3 傳感器網(wǎng)絡結(jié)構(gòu)
    ZigBee網(wǎng)絡存在3種邏輯設備類型,即協(xié)調(diào)器、路由器、終端設備,并且在一個ZigBee網(wǎng)絡中有且只有一個協(xié)調(diào)器。當協(xié)調(diào)器被激活后,它就會建立一個自己的網(wǎng)絡。本方案采用的是星型網(wǎng)絡,在星型網(wǎng)絡結(jié)構(gòu)中只有一個唯一的PAN主協(xié)調(diào)器,通過選擇一個PAN標識符確保網(wǎng)絡的唯一性。路由或終端都可以加入到這個網(wǎng)絡中來。

3 硬件設計
    本系統(tǒng)硬件主要包括3部分,其中無線傳感器網(wǎng)絡核心是基于TI公司的CC2430開發(fā)的無線模塊;網(wǎng)關(guān)是基于ARM微處理器的嵌入式平臺;主控中心是PC機。
    CC2430是挪威Chipcon公司的一款真正符合IEEE802.15.4標準的片上ZigBee產(chǎn)品。這種解決方案能夠提高性能并滿足以ZigBee為基礎的2.4 GHz ISM波段應用,及對低成本、低功耗的要求。CC2430無線單片機在待機時的電流消耗僅0.2μA,在32 kHz晶振下運行時的電流消耗小于1μA。因此,使用小型電池壽命可以長達10年。[!--empirenews.page--]
3.1 ZigBee協(xié)調(diào)器節(jié)點硬件設計
    ZigBee協(xié)調(diào)器節(jié)點主要由無線收發(fā)器CC2430、射頻天線RF、電源模塊、晶振模塊、串口模塊和LED指示燈組成,功能模塊如圖3所示。RF的輸入/輸出是高阻和差動的,用于RF口最合適的差動負載是(115+180 Ω)。當使用不平衡天線時為了優(yōu)化性能,應當使用不平衡變壓器。由于CC2430的工作電壓為3.3 V,所以要用電壓轉(zhuǎn)換模塊把5 V降到3.3 V。CC2430可以同時接32 MHz和32.768 kHz的兩種頻率的晶振電路,以滿足不同的要求。串口模塊用于ZigBee協(xié)調(diào)器將無線接收的數(shù)據(jù)信息傳送給網(wǎng)關(guān),同時接收網(wǎng)關(guān)傳送過來的控制命令。LED指示燈用于顯示網(wǎng)絡連接狀態(tài)。


3.2 傳感器節(jié)點硬件設計
    無線傳感器節(jié)點由各種數(shù)據(jù)采集模塊、CC2430數(shù)據(jù)傳輸模塊、電源模塊和外部數(shù)據(jù)存儲等功能模塊組成,功能模塊如圖4所示。數(shù)據(jù)采集模塊負責采集監(jiān)測區(qū)域的溫度、濕度、光照強度、火警和水浸等信息并完成數(shù)據(jù)轉(zhuǎn)換;CC2430數(shù)據(jù)傳輸模塊負責與路由節(jié)點進行無線數(shù)據(jù)交換、傳輸采集數(shù)據(jù)、接收控制命令。外部數(shù)據(jù)存儲模塊用來保存?zhèn)鞲衅鞴?jié)點采集的數(shù)據(jù)。電源管理模塊采用兩節(jié)5號干電池。LED指示燈顯示加入或退出網(wǎng)絡的狀態(tài)。


    路由器節(jié)點的主要任務是將不同區(qū)域的數(shù)據(jù)從傳感器節(jié)點路由到協(xié)調(diào)器節(jié)點,因此電路比較簡單,不再贅述。

4 軟件設計
    本系統(tǒng)采用的開發(fā)環(huán)境是IAR7,系統(tǒng)軟件是基于TI公司的Z-Stack 2006協(xié)議棧開發(fā)。從系統(tǒng)結(jié)構(gòu)中可以看出本系統(tǒng)軟件設計包括3大部分:無線傳感器網(wǎng)絡基于Z-Stack的應用程序開發(fā);網(wǎng)關(guān)基于Qt的應用程序開發(fā);主控中心Web應用程序開發(fā),本文著重實現(xiàn)基于Z-Stack的應用程序開發(fā)。
4.1 ZigBee協(xié)議棧
    ZigBee協(xié)議棧由一組子層構(gòu)成,每一層向它的上層提供數(shù)據(jù)和管理服務,分別為物理層(PHY)、媒體訪問控制層(MAC)、網(wǎng)絡層(NWK)和應用層(ADL),應用層又分為:應用支持子層(APS)、ZigBee設備對象(ZDO)和由制造商制定的應用對象。其中PHY和MAC位于最低層,且與硬件相關(guān);除此之外的其他層建立在PHY和MAC層之上,并且完全與硬件無關(guān)。分層的結(jié)構(gòu)脈絡清晰、一目了然,給設計和調(diào)試帶來極大的方便。

[!--empirenews.page--]
    實際開發(fā)中根據(jù)需要將協(xié)議棧的層次又做了細化,Z-Stack軟件的總體架構(gòu)如圖5所示。Z-Stack中的硬件抽象層HAL提供各種硬件模塊的驅(qū)動,基于HAL之上是操作系統(tǒng)抽象層OSAL,OSAL實現(xiàn)了一個易用的操作系統(tǒng)平臺,以實現(xiàn)多任務為核心的系統(tǒng)資源管理機制。Z-Stack采用操作系統(tǒng)的思想來構(gòu)建,采用事件輪循機制,當各個層初始化完成后,系統(tǒng)將會進入低功耗模式,當有事件發(fā)生時,系統(tǒng)立刻被喚醒,并轉(zhuǎn)而進入中斷處理事件,處理完成后再次進入低功耗模式,減少功耗。OSAL把優(yōu)先級放在了最重要的地位。當在處理的任務中有兩個以上事件待處理,處理完一件后,也要去查詢優(yōu)先級更高的任務。賦予優(yōu)先級高的任務最大的權(quán)利,盡可能保證高優(yōu)先級任務的每一個事件都能得到最及時的處理。操作系統(tǒng)任務調(diào)度流程如圖6所示。


    開發(fā)所用協(xié)議棧目錄結(jié)構(gòu)如圖7所示。主要用到的文件有:ZMain/ZMian.c、Tools/f8wConfig.cfg、App/OSAL_SampleApp.c和App /SampleApp.c。其中ZigBee協(xié)議棧的main函數(shù)在ZMain.c中,總體上來說它一共做了兩件事,一個是系統(tǒng)初始化,即由啟動代碼來初始化硬件系統(tǒng)和軟件架構(gòu)需要的各個模塊;一個是執(zhí)行操作系統(tǒng)實體。fSwConfig.cfg為網(wǎng)絡配置文件。App/OSAL_SampleApp.c為操作系統(tǒng)任務初始化和添加文件。App/SampleApp.c為應用程序核心文件。整個Z-stack的主要工作流程大致分為:系統(tǒng)啟動,驅(qū)動初始化,OSAL初始化和啟動,進入任務輪循幾個階段。

[!--empirenews.page--]
4.2 無線傳感網(wǎng)軟件平臺搭建
    操作系統(tǒng)是通過調(diào)度各項任務來使整個系統(tǒng)協(xié)調(diào)的運作起來的。對不同類型設備的處理作為一個任務,把新建的任務添加到系統(tǒng)中,操作系統(tǒng)便會把新任務與協(xié)議棧融合到一起,使系統(tǒng)具備新的功能,即完成了無線傳感器網(wǎng)絡軟件平臺的搭建。
    1)建立任務:任務初始化函數(shù)的建立
    任務初始化函數(shù)要做兩件事,首先是為任務獲取系統(tǒng)分配的任務ID,最后是初始化運行任務所需的硬件資源及變量。
    任務初始化函數(shù)的格式為:
    XXX_Init(unsigned char task_id)
    {
    XXX_TaskID=task_id;
    初始化任務運行所需的硬件資源及變量。
    }
    其中“XXX”表示任務的名稱。“XXX_TaskID”是用戶自己定義的變量,用于存儲任務的ID號。
    2)建立任務:任務事件處理函數(shù)的建立
    對模塊的各種外部變化操作系統(tǒng)以事件的方式來處理,不同的宏定義代表不同事件,比如:KEY_CHANGE為按鍵事件;ZD0_STATE_CHANGE為網(wǎng)絡狀態(tài)變化事件;AF_INCOMING_MSG CMD表示接收到其他節(jié)點發(fā)送來的數(shù)據(jù),該事件為無線處理的重要事件。
    任務事件處理函數(shù)原型為:uint16 Sample_ProcessEvent(uint8 task_id,uint16 events);形參task_id為任務ID號,events為事件代號。
    3)添加任務
    所有的任務添加都是在應用層App/OSAL_SampleApp.c中通過osalTaskAdd()函數(shù)添加一個OSAL任務,函數(shù)原型為:
    void osalTask Add(const pTaskInitFn pfninit,
    const pTaskEventHandlerFn pfnEventProcessor,
    const byte taskPriority)
    參數(shù)1:pfnInit(指向任務初始化函數(shù)的指針);
    參數(shù)2:pfnEventProcessor(指向任務事件處理函數(shù)的指針);
    參數(shù)3:taskPrioritv(任務優(yōu)先級)。
4.3 ZigBee網(wǎng)絡通訊設置與組網(wǎng)
4.3.1 網(wǎng)絡通訊設置
    在Tools/f8wConfig.cfg配置文件中定義了工程相關(guān)的網(wǎng)絡通訊設置。其中比較重要的是ZigBee通信相關(guān)的信道通道的設置和PAN ID的設置。用戶可以通過更改該文件中的相關(guān)宏定義,來控制ZigBee網(wǎng)絡的通道和PAN ID,以此來解決多個ZigBee網(wǎng)絡的沖突問題。信道是數(shù)據(jù)在物理層傳輸時使用的通道:PIN ID為ZigBee網(wǎng)絡的標識符,用來區(qū)別不同的網(wǎng)絡。
    除此之外在啟動網(wǎng)絡前還需要修改模塊的物理地址。在ZigBee網(wǎng)絡中,無論是協(xié)調(diào)器還是路由器或終端節(jié)點,每個模塊都有自己唯一的64位物理地址。物理地址的修改有兩種方式,一種是通過Zmain/Zmain.c中的zmain_ext_addr()函數(shù)設置;另一種是使用Chipeon Flash Programmer軟件。默認地址0xff ff ff ff ff ff ff ff為無效的,除此之外都是有效的,且保證在網(wǎng)絡中的唯一性即可。
4.3.2 網(wǎng)絡組建
    1)協(xié)調(diào)器格式化網(wǎng)絡
    協(xié)調(diào)器將掃描DEFAULT_CHANLIST指定的通道,最后在其中之一上形成網(wǎng)絡。如果ZDAPP_CONFIG_PAN_ID被定義為0xFFFF,那么協(xié)調(diào)器將根據(jù)自身的IEEE地址建立一個隨機的PAN ID。如果ZDAPP_CONFIG_PAN_ID沒有被定義為0xFFFF,那么協(xié)調(diào)器建立網(wǎng)絡的PAN ID將由ZDAPP_CONFIG _PAN_ID指定,通常這個值介于0~0x3FFF。
    2)路由器和終端設備加入網(wǎng)絡
    路由器和終端設備啟動后,將掃描DEFAULT_CHANLIST指定的頻道。如果ZDAPP_CONFIG_PAN_ID沒有被定義為0xFFFF,則路由器或終端將強制加入ZDAPP_CONFIG_PAN_ID定義的網(wǎng)絡。反之隨機加入網(wǎng)絡。
4.4 數(shù)據(jù)傳輸
    系統(tǒng)中涉及的數(shù)據(jù)傳輸方式有兩種:無線收發(fā)和串口收發(fā)。其中節(jié)點向協(xié)調(diào)器發(fā)送采集信息、協(xié)調(diào)器向控制節(jié)點發(fā)送控制信息是通過無線收發(fā)實現(xiàn)的;協(xié)調(diào)器將采集信息傳送給網(wǎng)關(guān)、網(wǎng)關(guān)向協(xié)調(diào)器發(fā)送控制命令是通過串口收發(fā)實現(xiàn)的。
4.4.1 無線數(shù)據(jù)收發(fā)
    1)無線發(fā)送  系統(tǒng)中采用短地址方式發(fā)送數(shù)據(jù),數(shù)據(jù)以幀格式傳輸。在發(fā)送前按照協(xié)議規(guī)定的幀形式構(gòu)建數(shù)據(jù)幀,然后調(diào)用無線發(fā)送函數(shù)。函數(shù)原型為:uint8 SendData(uint8*buf,uint16 addr,uint8 Leng);buf為發(fā)送數(shù)據(jù)指針;addr為目的地址;Leng發(fā)送數(shù)據(jù)長度。
    2)無線接收  對于無線接收并沒有像發(fā)送一樣單獨的處理函數(shù),而是在任務處理函數(shù)中通過處理無線接收數(shù)據(jù)事件來完成處理的,具體函數(shù)如下:

    其中AF_INCOMING_MSG_CMD為無線接收事件宏定義,SampleApp_MessageMSGCB()函數(shù)則為具體接收事件的處理函數(shù)。
4.4.2 串口數(shù)據(jù)收發(fā)
    系統(tǒng)中所用的串口為無線芯片CC2430自帶資源,通過自定義串口收發(fā)函數(shù)來使用該資源,從而實現(xiàn)網(wǎng)關(guān)與協(xié)調(diào)器節(jié)點數(shù)據(jù)傳輸。
    串口發(fā)送函數(shù)原型為:
    void UartTX_Send_String(char*Data,int len);
    串口接收函數(shù)原型為:
    char UartRX_Receive_Char(void);

5 結(jié)束語
    隨著物聯(lián)網(wǎng)概念的普及,基于ZigBee的無線傳感器網(wǎng)絡技術(shù)得到越來越廣泛的應用。文中將ZigBee網(wǎng)絡技術(shù)應用于機房環(huán)境監(jiān)控系統(tǒng)中,介紹了系統(tǒng)總體架構(gòu),無線傳感器網(wǎng)絡部分的軟、硬件設計及實現(xiàn)過程,重點介紹了無線網(wǎng)絡的構(gòu)建與數(shù)據(jù)傳輸。整個系統(tǒng)能實時、準確地測量并顯示機房內(nèi)各點的數(shù)據(jù)信息,使管理者能夠及時了解機器工作環(huán)境,從而及時、有效地采取措施。如果更換采集節(jié)點的傳感器,該監(jiān)控系統(tǒng)可以應用于不同的場合,可見無線傳感器網(wǎng)絡技術(shù)具有廣闊的應用前景。

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務中斷的風險,如企業(yè)系統(tǒng)復雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務引領增長 以科技創(chuàng)新為引領,提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉