何蘊良 耿淑琴 汪金輝
摘 要: 設(shè)計了一種基于ZigBee無線傳感的空氣溫濕度監(jiān)測系統(tǒng)。其由一個協(xié)調(diào)器和多個路由器、終端設(shè)備形成ZigBee無線網(wǎng)絡(luò),把傳感器采集數(shù)據(jù)處理后發(fā)送到協(xié)調(diào)器節(jié)點,協(xié)調(diào)器節(jié)點通過串口發(fā)送到PC進行顯示。利用IAR集成開發(fā)環(huán)境和TI公司Zstack協(xié)議棧進行軟件系統(tǒng)的設(shè)計,TI公司的CC2530芯片作為硬件系統(tǒng)的處理器,實現(xiàn)了對于空氣溫濕度的隨時觀測。設(shè)計從系統(tǒng)架構(gòu)、硬件、軟件3個方面進行思考和設(shè)計,成功建立了ZigBee無線傳感網(wǎng)絡(luò)。系統(tǒng)移植能力強,可擴展連接其他傳感器,應用到其他領(lǐng)域。
關(guān)鍵詞: ZigBee; 無線傳感; 空氣溫濕度監(jiān)測; 監(jiān)測系統(tǒng)
中圖分類號: TN92?34; TP277 文獻標識碼: A 文章編號: 1004?373X(2015)18?0133?04
Abstract: The air temperature and humidity monitoring system based on ZigBee wireless sensing was designed. The ZigBee wireless network is formed by a coordinator, multi routers and terminal device. The data acquired by the sensor are transmitted to coordinators nodes after processing, and then transmitted from the coordinators nodes to PC through the serial port for display. The software system is designed by means of IAR integrated development environment and Zstack protocol stack of TI. The observation of air temperature and humidity was realized by taking TI CC2530 chip as the processor of the hardware system. Three aspects of system architecture, hardware and software were considered in the process of the system design, and ZigBee wireless sensing network was built successfully. This system has better transplantation ability, can be extended and connected with else sensors, and be applied to other fields.
Keywords: ZigBee; wireless sensing; air temperature and humidity mornitoring; monitoring system
隨著空氣溫度和濕度對生產(chǎn)生活的影響日益顯著,人們對空氣溫度和濕度的關(guān)注程度也越來越高。與傳統(tǒng)的空氣溫濕度監(jiān)測系統(tǒng)相比,無線傳感網(wǎng)絡(luò)是當前國際上備受關(guān)注的、涉及多學科高度交叉、知識高度集成的前沿熱點研究領(lǐng)域。他綜合了傳感器、嵌入式計算、現(xiàn)代網(wǎng)絡(luò)及無線通信和分布式信息處理等技術(shù),能夠通過各類集成化的微型傳感器協(xié)同完成對各種環(huán)境或檢測對象的信息實時監(jiān)測、感知和采集,這些信息通過無線方式被發(fā)送,并且以自組多跳的網(wǎng)絡(luò)方式傳送到用戶終端,從而實現(xiàn)物理世界、計算機世界以及人類社會這三元世界的連通[1]。近年來,無線網(wǎng)絡(luò)得到了快速的發(fā)展,出現(xiàn)了各種無線網(wǎng)絡(luò)數(shù)據(jù)傳輸標準,如Wi?Fi、藍牙、Wireless USB、ZigBee等。
傳感器和自組織網(wǎng)絡(luò)為代表的無線應用不需要較高的傳輸帶寬,但卻需要較低的傳輸延時和極低的功率消耗。因此,迫切需要一種符合傳感器特點,低端的、面向控制和應用簡單的專用標準,ZigBee 協(xié)議的特點滿足了上述需求,它可與無線傳感器網(wǎng)絡(luò)完美地結(jié)合在一起[2]。因此,本文設(shè)計了一種基于ZigBee無線傳感網(wǎng)絡(luò)的空氣溫濕度監(jiān)測系統(tǒng)。
1 ZigBee無線傳感網(wǎng)絡(luò)
1.1 ZigBee技術(shù)
ZigBee是一種近距離、低復雜度、低功耗、低成本的雙向無線通信技術(shù),主要用于距離短、功耗低、且傳輸速率不高的各種電子設(shè)備之間的數(shù)據(jù)傳輸(包括典型的周期性數(shù)據(jù)、間歇性數(shù)據(jù)和低反應時間數(shù)據(jù))[3]。ZigBee作為一種被廣泛應用的通信技術(shù),有完善的協(xié)議架構(gòu),ZigBee協(xié)議架構(gòu)建立在IEEE 802.15.4標準的基礎(chǔ)之上[4],協(xié)議架構(gòu)如圖1所示。協(xié)議采用分層實現(xiàn)的思想,主要分為物理層、介質(zhì)訪問控制層、網(wǎng)絡(luò)層和應用層。其中物理層和介質(zhì)訪問控制層有IEEE 802.15.4標準定義,其他層有ZigBee聯(lián)盟定義。不同的層負責實現(xiàn)不同的功能,數(shù)據(jù)只能在相鄰的層之間流動。
ZigBee協(xié)議可支持自組網(wǎng)技術(shù)。自組網(wǎng)相對常規(guī)通信網(wǎng)絡(luò)而言,最大的區(qū)別就是可以在任何時刻、任何地點不需要現(xiàn)有信息基礎(chǔ)網(wǎng)絡(luò)設(shè)施的支持,快速構(gòu)建起一個移動通信網(wǎng)絡(luò)[5]。在無線傳感器網(wǎng)絡(luò)應用時,節(jié)點通常被放置在沒有基礎(chǔ)設(shè)施的地方,節(jié)點位置不能預先知道,節(jié)點之間鄰居關(guān)系也不知道,一般通過隨機布散的方式放置終端設(shè)備。這就要求無線傳感系統(tǒng)具有自組織能力,能夠自動進行配置和管理,自動形成網(wǎng)絡(luò)系統(tǒng)。
1.2 ZigBee網(wǎng)絡(luò)組成
構(gòu)成網(wǎng)絡(luò)的基本成員稱為設(shè)備。根據(jù)設(shè)備所具有的通信能力,可以分為全功能設(shè)備(Full?Function Device,F(xiàn)FD)和精簡功能設(shè)備(Reduced?Function Device,RFD)[6]。按照設(shè)備在網(wǎng)絡(luò)中功能的不同可以分為協(xié)調(diào)器,路由器和終端設(shè)備,如圖2所示。協(xié)調(diào)器和路由器是FFD,而終端設(shè)備是RFD。全功能設(shè)備具備完整的協(xié)議棧,可以在網(wǎng)絡(luò)中作為協(xié)調(diào)器建立網(wǎng)絡(luò)或者路由器實現(xiàn)路由組織功能。簡化功能的設(shè)備只能用作終端設(shè)備加入已有的網(wǎng)絡(luò),并且只能與而網(wǎng)絡(luò)中的全功能設(shè)備通信。協(xié)調(diào)器是整個網(wǎng)絡(luò)的中心,它的功能包括建立、維持和管理網(wǎng)絡(luò),分配網(wǎng)絡(luò)地址等,在整個網(wǎng)絡(luò)啟動完成以后,它的功能就相當于路由器的功能。路由器主要負責路由發(fā)現(xiàn)、消息傳輸、允許其他節(jié)點加入所在網(wǎng)絡(luò)。在距離遠的時候,路由器也可以作為數(shù)據(jù)的“跳板”或者是“接力棒”,使得傳輸距離可以大大加長。終端設(shè)備主要負責數(shù)據(jù)的采集和控制功能,然后將獲得的信息發(fā)送給路由器或者協(xié)調(diào)器節(jié)點。
2 系統(tǒng)硬件設(shè)計
2.1 系統(tǒng)核心芯片
硬件設(shè)計主要包括終端設(shè)備設(shè)計、路由器設(shè)計和協(xié)調(diào)器設(shè)計。設(shè)計均采用TI公司的CC2530F256芯片,它結(jié)合了TI業(yè)界領(lǐng)先的ZigBee協(xié)議棧Zstack,提供了一個強大的解決方案。CC2530芯片上系統(tǒng)(SoC)是高度集成的解決方案,可支持快速、廉價的ZigBee節(jié)點的構(gòu)建[7]。這比以往所用的CC2430芯片有了性能上的提高。它的內(nèi)部模塊大致分為3種類型CPU與內(nèi)存相關(guān)模塊、射頻相關(guān)模塊、外設(shè)、時鐘和電源管理模塊。CC2530芯片集成了2.4 GHz的射頻收發(fā)器、增強型工業(yè)標準的8051 MCU、最大256 KB可編程FLASH、8 KB的RAM,并提供有一套廣泛的外設(shè)(包括2個USART、12位ADC和21個通用GPIO)[8]。
2.2 終端設(shè)備設(shè)計
協(xié)調(diào)器主要是建立和啟動整個網(wǎng)絡(luò),路由器主要是傳輸數(shù)據(jù),而系統(tǒng)連接的各類傳感器和整個系統(tǒng)的數(shù)據(jù)的來源,都取決于終端設(shè)備的設(shè)計。因此終端設(shè)備的設(shè)計幾乎代表了整個系統(tǒng)的主要作用與功能,在此著重說明終端設(shè)備的設(shè)計。
圖3為終端設(shè)備的電路原理圖,由于CC2530內(nèi)部集成功能強大的外設(shè)資源,所以它在片外所需的電路設(shè)計大大精簡。電源VDD采用3.3 V直流供電,復位電路為低電平復位。溫濕度傳感器DHT11采集溫濕度的信息,然后通過芯片I/O口P0_6傳送給CC2530芯片。DHT11的輸出是數(shù)字信號,因此可以配置端口為普通I/O口,方向為輸入。值得提出的是,這個芯片內(nèi)部集成了ADC轉(zhuǎn)換電路模塊,使得一些模擬傳感器的信號端也可以直接連接到芯片的I/O引腳上,配置AD對應的端口即可完成模/數(shù)轉(zhuǎn)換,因而省去了外接ADC的電路復雜度。晶振有32 MHz和32.765 kHz兩種,可支持系統(tǒng)有不同的工作模式。終端設(shè)備電路可以處于工作或休眠狀態(tài),當終端設(shè)備不需要實時采集數(shù)據(jù)時,系統(tǒng)可以休眠。休眠時候的功耗很低,因此終端設(shè)備可以通過電池供電,方便了它的可移動性。協(xié)調(diào)器和路由器的電路結(jié)構(gòu)和大部分終端設(shè)備相同,增加了UART傳輸部分構(gòu)成,而沒有傳感器部分。因為協(xié)調(diào)器和路由器的工作量和工作時間要比終端設(shè)備要大得多,要具有實時性,所以不宜采用電池供電。
3 系統(tǒng)軟件設(shè)計
3.1 軟件開發(fā)概述
軟件設(shè)計包括終端設(shè)備軟件設(shè)計、路由器節(jié)點軟件設(shè)計和協(xié)調(diào)器節(jié)點軟件設(shè)計。系統(tǒng)軟件設(shè)計所用的工具包括瑞典公司的IAR System集成開發(fā)環(huán)境和TI公司開發(fā)的Zstack協(xié)議棧。TI在推出其CC2530芯片的同時,也向用戶推出了自己的ZigBee協(xié)議棧軟件Zstack,Zstack功能強大,它為用戶提供了許多必要的應用函數(shù)接口,用戶可以直接調(diào)用這些函數(shù)來實現(xiàn)特定功能。本文在Zstack的基礎(chǔ)之上,利用其已有的軟件架構(gòu),開發(fā)出了空氣溫濕度監(jiān)測軟件系統(tǒng)。
3.2 OSAL運行機制
從ZigBee 2006協(xié)議棧開始,ZigBee協(xié)議棧內(nèi)加入了實時操作系統(tǒng),稱為OSAL(Operating System Abstraction Layer)。OSAL作為一種資源管理機制,可以為多個任務分配資源,實現(xiàn)了類似操作系統(tǒng)的某些功能但其實質(zhì)與真正意義上的操作系統(tǒng)還是有一定區(qū)別[9]。OSAL作為一種支持多任務運行的系統(tǒng)資源分配機制,是整個Zstack協(xié)議棧的核心,在開發(fā)過程中需要創(chuàng)建OSAL任務來開發(fā)應用程序,每一個任務只有一個任務ID號。OSAL中有3個重要的變量tasksCnt,taskEvents和taskArr。其中tasksCnt是無符號整形變量,保存了任務的總個數(shù);taskEvents是一個指針變量,指向了事件表首地址;taskArr 是一個數(shù)組,該數(shù)組的每一項都一個函數(shù)指針,指向?qū)蝿仗幚砗瘮?shù)地址,如圖4所示。
OSAL的工作原理如下:通過taskEvents指針訪問事件表的每一項,如果有事件發(fā)生,則查找函數(shù)表找到事件處理函數(shù)進行處理,處理完后,繼續(xù)訪問事件表,查看是否有事件發(fā)生,無限循環(huán)[10]。協(xié)議棧中的每一層都設(shè)計了一個事件處理函數(shù),用來處理這一層操作相關(guān)的各種事件。利用Zstack中已被定義好的層,重新定義和編寫用戶自定義層,加入了實現(xiàn)設(shè)計中特定功能的代碼。
3.3 數(shù)據(jù)流與代碼實現(xiàn)
終端設(shè)備上的傳感器采集數(shù)據(jù)信息,傳遞給其CPU,CPU負責對接收到的數(shù)據(jù)進行讀取并經(jīng)過處理后保存。然后通過終端設(shè)備的射頻發(fā)送模塊無線發(fā)送這些數(shù)據(jù)到該節(jié)點的父節(jié)點。一般父節(jié)點是路由器,經(jīng)過轉(zhuǎn)發(fā),數(shù)據(jù)最終匯聚到協(xié)調(diào)器。協(xié)調(diào)器處理和保存數(shù)據(jù),并通過UART端口輸?shù)絇C顯示。由于終端設(shè)備連接有傳感器,在終端設(shè)備的程序代碼中包括了傳感器的編程。編寫溫濕度傳感器DHT11的數(shù)值讀取函數(shù)為DHT11_Read(),定義一個數(shù)組str[8]。編寫溫濕度讀取函數(shù)readRH(),把DHT11_Read()的返回值保存到str[8]中。
編寫函數(shù)MyApp_SendTheMessage(),先調(diào)用readRH()讀取數(shù)據(jù),之后配置地址、方式等信息,再調(diào)用AF_DataRequest()就可以實現(xiàn)數(shù)據(jù)發(fā)送,AF_DataRequest()的具體實現(xiàn)過程在協(xié)議棧已經(jīng)定義,只需要在調(diào)用時傳遞所需的實參。傳感器數(shù)據(jù)會被封裝成消息,然后被發(fā)送到了協(xié)調(diào)器路由器。同理,可在該函數(shù)中調(diào)用采集其他傳感器數(shù)據(jù)的函數(shù),得到其他傳感器采集的數(shù)據(jù),一起發(fā)往協(xié)調(diào)器或者路由器,實現(xiàn)多種數(shù)據(jù)的采集和發(fā)送。路由器在數(shù)據(jù)流中實現(xiàn)的是數(shù)據(jù)的轉(zhuǎn)發(fā)功能,統(tǒng)一轉(zhuǎn)發(fā)給協(xié)調(diào)器節(jié)點,由協(xié)調(diào)器再進行串口傳輸。編寫協(xié)調(diào)器接收數(shù)據(jù)的函數(shù),根據(jù)任務ID號識別含有待接收數(shù)據(jù)的消息,調(diào)用協(xié)議棧函數(shù)osal_memcpy()從消息包中讀取出終端設(shè)備傳遞來的數(shù)據(jù)之后,再調(diào)用HalUARTWrite()函數(shù)發(fā)給串口,即可在串口調(diào)試工具中實現(xiàn)觀測數(shù)據(jù)。
4 測試結(jié)果
通過串口調(diào)試工具AccessPort,可以協(xié)調(diào)器傳輸過來的數(shù)據(jù)顯示出來?,F(xiàn)在需要配置串口調(diào)試工具選項。設(shè)置串口為COM5,由于軟件UART配置的時候設(shè)置的波特率為115 200 b/s,所以在此處必須和配置的波特率一致,同為115 200 b/s,無校驗位,數(shù)據(jù)為8,停止位為1。配置好之后點擊確定打開串口。
開打串口,硬件初始化完成后,由終端設(shè)備發(fā)送到協(xié)調(diào)器的實驗數(shù)據(jù)可以顯示出來,如圖5所示。當前溫度為28 ℃,濕度為33%,經(jīng)過多種環(huán)境和實地驗證,實驗結(jié)果正確。由此證明整個硬件系統(tǒng)和軟件系統(tǒng)運轉(zhuǎn)正常。
5 結(jié) 語
設(shè)計實現(xiàn)了利用ZigBee無線傳感技術(shù)對空氣溫濕度的實時監(jiān)測,成功地把ZigBee無線通信技術(shù)與傳感器相結(jié)合,實現(xiàn)了傳感器數(shù)據(jù)的無線傳輸。整個ZigBee無線傳感器網(wǎng)絡(luò)成功建立起來,可在終端設(shè)備連接若干個不同類型的傳感器,實現(xiàn)多種傳感器數(shù)據(jù)的同時測量。與傳統(tǒng)的傳感器數(shù)據(jù)采集和傳輸相比,利用ZigBee進行無線數(shù)據(jù)傳輸,大大減少了布線的復雜度和成本,監(jiān)測范圍和可移動性更廣,使得數(shù)據(jù)采集和傳輸變得更加靈活與便捷。作為一種新型的網(wǎng)絡(luò),ZigBee無線傳感網(wǎng)在軍事、工業(yè)、農(nóng)業(yè)、交通、醫(yī)療和家庭辦公自動化等領(lǐng)域有著廣泛的用途,其在國家安全和經(jīng)濟發(fā)展等方面發(fā)揮了巨大作用。隨著無線傳感器網(wǎng)絡(luò)不斷的快速發(fā)展,它還將被擴展到越來越多新的應用領(lǐng)域。
參考文獻
[1] 姜仲,劉丹.ZigBee技術(shù)與實訓教程[M].北京:清華大學出版社,2014.
[2] 彭燕.基于ZigBee的無線傳感器網(wǎng)絡(luò)研究[J].現(xiàn)代電子技術(shù),2011,34(5):49?51.
[3] 青島東合信息技術(shù)有限公司.ZigBee開發(fā)技術(shù)及實踐[M].西安:西安電子科技大學出版社,2014.
[4] LANMAN Standards Committee. IEEE Std 802.15.4?2003. Wireless medium access control (MAC) and physical layer (PHY)specifications for low?rate wireless personal area networks (LR?WPANs) [S]. New Jersey: IEEE Computer Society, 2003.
[5] SCHILLER J H. Mobile communications [M]. 2nd ed. New York: Addison?Wesley, 2000.
[6] 孫彩云.基于ZigBee的無線組網(wǎng)技術(shù)研究[D].太原:中北大學,2011.
[7] 樊娜.基于ZigBee的智能糧倉溫度監(jiān)測系統(tǒng)研究與設(shè)[J].微型機與應用,2015,34(5):70?72.
[8] 徐健,楊珊珊.基于CC2530的ZigBee協(xié)調(diào)器節(jié)點設(shè)計[J].物聯(lián)網(wǎng)技術(shù),2012(5):55?57.
[9] 廖小琴.基于CC2430的ZigBee協(xié)議棧的研究與應用[D].南昌:南昌大學,2013.
[10] 王小強,歐陽俊,黃寧淋.ZigBee無線傳感器網(wǎng)絡(luò)設(shè)計與實現(xiàn)[M].北京:化學工業(yè)出版社,2012.