余貴水 趙 奎 朱倪瑤 左 雷
(海軍工程大學(xué)電子工程學(xué)院 武漢 430033)
?
基于Zigbee技術(shù)的大氣溫濕數(shù)據(jù)采集系統(tǒng)設(shè)計與實現(xiàn)*
余貴水 趙 奎 朱倪瑤 左 雷
(海軍工程大學(xué)電子工程學(xué)院 武漢 430033)
論文設(shè)計實現(xiàn)了基于ZigBee技術(shù)的大氣溫度、濕度參數(shù)采集系統(tǒng),ZigBee無線傳感網(wǎng)絡(luò)在家居、工業(yè)、醫(yī)療等領(lǐng)域應(yīng)用的發(fā)展暗示著它已經(jīng)成為一種新的技術(shù)趨勢。為了快速構(gòu)建大氣溫濕參數(shù)采集無線通信網(wǎng)絡(luò),從應(yīng)用方面著手對ZigBee技術(shù)的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)進行研究和介紹。在IAR開發(fā)環(huán)境下,采用TI公司的Z-STACK協(xié)議棧,以CC2530芯片為核心構(gòu)建了一個由若干節(jié)點組成的星型無線傳感網(wǎng)絡(luò)。各終端器利用溫濕度傳感器DHT11采集溫度、濕度數(shù)據(jù),并通過網(wǎng)絡(luò)匯聚到協(xié)調(diào)器。實現(xiàn)了基于ZigBee網(wǎng)絡(luò)的溫度、濕度參數(shù)采集及通信。
CC2530; ZigBee; IAR; 無線傳感網(wǎng)絡(luò)
Class Number TP212
隨著現(xiàn)代技術(shù)的發(fā)展,無線通信技術(shù)在許多領(lǐng)域的優(yōu)勢使之得到了越來越多的應(yīng)用。使用無線傳感器網(wǎng)絡(luò)系統(tǒng)能彌補有線網(wǎng)絡(luò)系統(tǒng)需要進行大量布線,成本較高,且在惡劣的環(huán)境中無法進行布線的缺點。近年來成為國內(nèi)外的研究熱點。自Zigbee聯(lián)盟推出規(guī)范以來,Zigbee技術(shù)一直得到國內(nèi)外無線傳感領(lǐng)域的重視,目前已經(jīng)廣泛應(yīng)用在工業(yè)、農(nóng)業(yè)、家庭、醫(yī)院等各個領(lǐng)域。
世界上各大廠商紛紛推出實現(xiàn)ZigBee物理層功能的芯片,代表性的有Jennic的JN5139,Freescal的MC13192和Ember的EM250等。德州儀器也推出了一系列系統(tǒng)級芯片。其中CC2530是一款兼容IEEE 802.15.4的片上系統(tǒng),集成了增強型8051內(nèi)核,結(jié)合TI Z-STACK協(xié)議??煞奖愕慕M建自己的無線通信網(wǎng)絡(luò)[1]。
本系統(tǒng)通過構(gòu)建ZigBee網(wǎng)絡(luò)測量同一時刻,同一地點,不同高度條件下的大氣溫度、濕度參數(shù),其系統(tǒng)總結(jié)構(gòu)圖如圖1所示。
圖1 系統(tǒng)總結(jié)構(gòu)圖
ZigBee的協(xié)議結(jié)構(gòu)是建立在IEEE 802.15.4標(biāo)準(zhǔn)基礎(chǔ)之上的。IEEE 802.15.4標(biāo)準(zhǔn)定義了ZigBee的物理層(PHY)和媒體訪問控制層(MAC);ZigBee聯(lián)盟則定義了ZigBee協(xié)議的網(wǎng)絡(luò)層(NWK)、應(yīng)用層(APL)和安全服務(wù)規(guī)范。如圖2是ZigBee協(xié)議棧的結(jié)構(gòu)圖。ZigBee協(xié)議以O(shè)SI七層參考模型為基礎(chǔ),只定義了其中與LR-WPAN應(yīng)用相關(guān)的協(xié)議層。
圖2 ZigBee協(xié)議棧模型
ZigBee協(xié)議棧的每層為其上層提供一套服務(wù)功能:數(shù)據(jù)實體提供數(shù)據(jù)傳輸服務(wù),管理實體提供其它的服務(wù)。所有的服務(wù)實體通過服務(wù)接入點(SAP)為上層提供一個接口,每個SAP都支持一定數(shù)量的服務(wù)原語(即請求、指示、響應(yīng)和證實)來實現(xiàn)所需要的服務(wù)功能[2]。
IEEE 802.15.4的物理層提供兩類服務(wù):物理層數(shù)據(jù)服務(wù)和物理層管理服務(wù)。PHY層功能包括無線收發(fā)信機的開啟和關(guān)閉、能量檢測(ED)、鏈路質(zhì)量指示(LQI)、信道評估(CCA)和通過物理媒體收發(fā)數(shù)據(jù)包。MAC層提供MAC層數(shù)據(jù)服務(wù)和MAC層管理服務(wù),其主要功能包括采用CSMA/CA進行信道訪問控制、信標(biāo)幀發(fā)送、同步服務(wù)和提供MAC層可靠傳輸機制。
ZigBee網(wǎng)絡(luò)層提供設(shè)備加入/退出網(wǎng)絡(luò)的機制、幀安全機制、路由發(fā)現(xiàn)以及維護機制。ZigBee協(xié)調(diào)器的網(wǎng)絡(luò)層還負(fù)責(zé)新網(wǎng)絡(luò)并為新關(guān)聯(lián)的設(shè)備分配地址。ZigBee應(yīng)用層包括應(yīng)用支持子層(APS)、ZigBee設(shè)備對象(ZDO)和制造商定義的應(yīng)用對象。APS子層負(fù)責(zé)維護綁定列表,根據(jù)設(shè)備的服務(wù)和需求對設(shè)備進行匹配,并在綁定的設(shè)備之間傳送信息。ZDO負(fù)責(zé)發(fā)現(xiàn)網(wǎng)絡(luò)中的設(shè)備并明確其提供的應(yīng)用服務(wù)。
ZigBee網(wǎng)絡(luò)由一系列網(wǎng)絡(luò)節(jié)點組成,一個網(wǎng)絡(luò)節(jié)點可以包含多個設(shè)備,每個設(shè)備可支持240個端點。端點作為網(wǎng)絡(luò)通信中的數(shù)據(jù)通道,編號為1~240的端點對應(yīng)可以定義240個應(yīng)用對象。此外端點0作為ZigBee設(shè)備對象(ZDO)的數(shù)據(jù)接口。每個端點可定義多個群集(Cluster)。
在ZigBee網(wǎng)絡(luò)中進行數(shù)據(jù)收發(fā)都是建立在應(yīng)用規(guī)范(Profile)基礎(chǔ)上的,設(shè)定Profile是一種規(guī)定不同設(shè)備對消息幀的處理行為,使不同的設(shè)備之間可以通過發(fā)送命令、數(shù)據(jù)請求來實現(xiàn)互操作。它由ZigBee聯(lián)盟提供或用戶自行建立,在從ZigBee聯(lián)盟得到分配的ProfID后,就可以定義設(shè)備描述符和群集(Clusters)。其中描述符用來描述設(shè)備類型和應(yīng)用方式,包括節(jié)點、電源、簡單、復(fù)雜和用戶描述符。簡單描述符需要在節(jié)點的各個終端(endpoint)中定義,而其他描述符則適用于整個節(jié)點。
在ZibBee網(wǎng)絡(luò)中,設(shè)備可以分為兩類,即完整功能設(shè)備(FFD)和簡化功能設(shè)備(RFD)。完整功能設(shè)備(FFD)可以作為協(xié)調(diào)器或路由器在任何拓?fù)浣Y(jié)構(gòu)中工作,能同其他FFD或RFD通信。而RFD只能作為終端網(wǎng)絡(luò)節(jié)點,并且只能同網(wǎng)絡(luò)中的FFD通信。FFD和RFD在硬件結(jié)構(gòu)上相同,但在網(wǎng)絡(luò)層結(jié)構(gòu)中有差異。
圖3 ZigBee網(wǎng)絡(luò)拓?fù)?/p>
ZigBee網(wǎng)絡(luò)支持三種網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),為星型網(wǎng)絡(luò)拓?fù)?、網(wǎng)狀網(wǎng)絡(luò)拓?fù)浜蜆錉罹W(wǎng)絡(luò)拓?fù)鋄2]。三種拓?fù)浣Y(jié)構(gòu)見圖3。星型網(wǎng)絡(luò)中,PAN協(xié)調(diào)器提供組織網(wǎng)絡(luò)和路由功能,終端網(wǎng)絡(luò)節(jié)點通過協(xié)調(diào)器進行通信。這種拓?fù)浣Y(jié)構(gòu)主要用在智能家居、PC外設(shè)等領(lǐng)域。網(wǎng)狀網(wǎng)絡(luò)中每個節(jié)點都具智能化,網(wǎng)絡(luò)中任意節(jié)點故障時,附近的無線節(jié)點會自動代替該故障的節(jié)點,繼續(xù)進行信息的傳輸和轉(zhuǎn)發(fā),從而大大提高系統(tǒng)可靠性[3]。
Z-Stack是德州儀器推出的ZigBee協(xié)議棧軟件,其為應(yīng)用開發(fā)者提供了一個模板,在其基礎(chǔ)上進行開發(fā)可以大大加快應(yīng)用開發(fā)周期[4]。
Z-Stack采用操作系統(tǒng)的思想來構(gòu)建,采用事件輪詢機制,系統(tǒng)按照任務(wù)優(yōu)先級依次來處理事件,而在事件處理完后,進入低功耗模式,降低了系統(tǒng)的功耗。操作系統(tǒng)抽象層(OSAL)的工作就是對多個任務(wù)進行系統(tǒng)資源分配,核心是通過參數(shù)傳遞的事件類型來判斷對應(yīng)處理相應(yīng)任務(wù)的事件。在系統(tǒng)中,通過tasksEvents指針輪詢訪問事件表的每一項,如果有事件發(fā)生,則查找函數(shù)表找到事件處理函數(shù)進行處理,處理完成后,繼續(xù)訪問事件表,查看是否有事件發(fā)生,進而執(zhí)行事件處理函數(shù),完成各個任務(wù)事件處理。其中任務(wù)事件的觸發(fā)有兩種方式,一種是通過設(shè)置一個軟件定時器osal_start_timeEx()函數(shù)等待溢出來觸發(fā),一種是調(diào)用系統(tǒng)消息傳遞機制來觸發(fā)。
在進行應(yīng)用開發(fā)時,需要定義添加相應(yīng)的任務(wù)。其中主要包括任務(wù)初始化函數(shù)和事件處理函數(shù)。任務(wù)初始化函數(shù)定義一個TasksArr數(shù)組,存放所有任務(wù)事件處理函數(shù)的地址,給每個任務(wù)分配唯一的任務(wù)標(biāo)識號,最后注冊系統(tǒng)服務(wù)。ZStack協(xié)議棧中按照由高到低的優(yōu)先級已經(jīng)定義好了MAC層、網(wǎng)絡(luò)層、硬件驅(qū)動抽象層、應(yīng)用設(shè)備對象層的任務(wù),只需按照自己的需求編寫應(yīng)用層的任務(wù)及事件處理函數(shù)即可,一般情況下,用戶只需額外添加三個文件就可以完成一個項目,一個是主文件,存放具體的任務(wù)處理函數(shù),一個是這個主文件的頭文件,另外一個是操作系統(tǒng)接口文件(以O(shè)sal開頭),如圖4所示。大大增加了項目的通用性和易移植性。
圖4 用戶開發(fā)程序所需要新增編寫文件
CC2530是一個片上系統(tǒng)解決方案。CC2530芯片的RF性能佳,閃存容量大,封裝尺寸小,協(xié)議支持也多樣。在該芯片基礎(chǔ)上設(shè)計的溫濕采集節(jié)點在室外的最高傳輸距離可達300m。本節(jié)主要講解溫濕采集器硬件設(shè)計及SHT11溫濕度傳感器工作原理。
終端節(jié)點是ZigBee網(wǎng)絡(luò)中負(fù)責(zé)數(shù)據(jù)采集的節(jié)點,傳感器選擇是其重要組成部分。系統(tǒng)選用瑞士Sensirion公司生產(chǎn)的SHT11型傳感器。該傳感器具有相對濕度和溫度一體測量、超快的響應(yīng)時間等優(yōu)良特性。
SHT11是新型智能溫濕度傳感器,它將溫濕度傳感器、信號放大調(diào)理、A/D轉(zhuǎn)換、二線串行接口全部集成于一個芯片內(nèi),融合了CMOS芯片技術(shù)與傳感器技術(shù)[5]。SHT11傳感器默認(rèn)的測量溫度和相對濕度的分辨率一般分別為14位、12位,通過狀態(tài)寄存器可降至12位、8位。濕度測范圍是0~100RH,對于12位的測量精度為±3.0%RH;測溫范圍為-40℃~+123.8℃,對于14位的測量精度為±0.4℃。
溫濕度傳感器SHTl1送出的溫度、濕度數(shù)據(jù)必須經(jīng)過數(shù)據(jù)轉(zhuǎn)換,才能表示實際的溫度和濕度,其公式如下:
Tc=d1+d2×SOT
(1)
(2)
RHTure=(Tc-25)×(t1+t2×SORH)+RHLinear
(3)
式中:Tc為攝氏溫度;RHTure為經(jīng)過溫度補償?shù)南鄬穸?d1和d2為和溫度分辨率有關(guān)的校正系數(shù)c1、c2、c3、t1、t2為和濕度的分辨率有關(guān)的校正系數(shù);SOT為從SHT11中讀出的溫度值;SORH為從SHT11中讀出的濕度值。其對應(yīng)關(guān)系見表1和表2。
表1 溫度矯正系數(shù)
表2 濕度矯正系數(shù)
終端節(jié)點溫濕度采集流程為:終端節(jié)點接收到來自協(xié)調(diào)器節(jié)點的采集指令后,將SHT11傳感器定期采集的溫濕度數(shù)據(jù)進行預(yù)處理,然后通過無線網(wǎng)絡(luò)與協(xié)調(diào)器節(jié)點進行通訊。溫濕度采集流程圖如圖5所示,終端節(jié)點通常為節(jié)能考慮而間歇性工作,在傳輸數(shù)據(jù)之后會進入一定時間的休眠,等待下一個采集指令的到來。
圖5 溫濕度采集流程圖
本系統(tǒng)的硬件操作,需要軟件的設(shè)計來實現(xiàn)。利用美國德州儀器公司的Z-STACK協(xié)議棧。Z-STACK協(xié)議基于輪轉(zhuǎn)查詢式操作系統(tǒng)來實現(xiàn)。軟件設(shè)計主要分為終端節(jié)點軟件及協(xié)調(diào)器節(jié)點軟件兩部分。本節(jié)介紹終端節(jié)點、協(xié)調(diào)器節(jié)點的軟件設(shè)計部分。協(xié)調(diào)器節(jié)點上電后,會按照編譯時給定的參數(shù),選擇合適的信道、合適的網(wǎng)絡(luò)號,建立ZigBee無線網(wǎng)絡(luò)。終端節(jié)點上電后,會進行硬件電路初始化,然后搜索是否有ZigBee無線網(wǎng)絡(luò),如果有ZigBee無線網(wǎng)絡(luò)時,終端節(jié)點申請加入網(wǎng)絡(luò),協(xié)調(diào)器節(jié)點準(zhǔn)許加入并分配一個16位的網(wǎng)絡(luò)短地址,等待采集的溫濕數(shù)據(jù)命令,然后將接收的所有數(shù)據(jù)包通過串口通信發(fā)送到PC機上,以便更容易地進行溫濕數(shù)據(jù)分析和數(shù)據(jù)存儲。協(xié)調(diào)器節(jié)點、終端節(jié)點軟件流程圖如圖6、圖7所示。
圖6 協(xié)調(diào)器軟件流程圖
圖7 終端節(jié)點軟件流程圖
搭建好硬件環(huán)境后,在本系統(tǒng)中,終端節(jié)點每隔1min采集一次溫濕度數(shù)據(jù)并通過無線網(wǎng)絡(luò)發(fā)送給協(xié)調(diào)器節(jié)點,協(xié)調(diào)器節(jié)點再通過RS232串口總線將數(shù)據(jù)發(fā)送到PC機上,串口設(shè)置為COM1,波特率設(shè)置為19200bps。在實驗過程中本系統(tǒng)采集了五組數(shù)據(jù),同時用江蘇無線電科學(xué)研究所有限公司的ZQZ-CY移動氣象站來對比本系統(tǒng)測得的溫濕度數(shù)據(jù)。通過表格的形式可以直觀地分析數(shù)據(jù)的準(zhǔn)確性。通過表格可以發(fā)現(xiàn),溫度傳感器測量值與移動氣象站測得的溫度誤差在-0.1℃~+0.4℃之間,濕度傳感器測量值與移動氣象站測得濕度誤差在-0.7RH~+1.1RH之間,均符合實驗測量誤差值范圍,分析結(jié)果見表3。通過Matlab軟件畫圖更加直觀看出實驗結(jié)果,如圖8所示。
表3 實驗數(shù)據(jù)與移動式氣象站對比表
圖8 實驗數(shù)據(jù)與移動式氣象站對比圖
本文主要介紹了基于ZigBee網(wǎng)絡(luò)的大氣溫度、濕度測量系統(tǒng)硬件結(jié)構(gòu)和軟件流程,使用該系統(tǒng)進行實地測量,并與移動氣象站輸出數(shù)據(jù)進行比較。結(jié)果證明該方案構(gòu)建合理,能夠同時測量多點溫濕度參數(shù),具有測量精度較高且功耗較低的優(yōu)點??蛇M一步完善系統(tǒng)設(shè)計并推廣。
[1] 李俊斌,胡永忠.基于CC2530的ZigBee通信網(wǎng)絡(luò)的應(yīng)用設(shè)計[J].電子設(shè)計工程,2011(8):108-111.
[2] ZigBee Aliance. ZigBee Specification[EB/OL]. (2008). http://www.ZigBee.org./
[3] 李文仲,段朝玉.ZigBee無線網(wǎng)絡(luò)技術(shù)入門與實戰(zhàn)[M].北京:北京航空航天大學(xué)出版社,2007.
[4] 夏飛.基于Z-Stack協(xié)議的無線傳感器網(wǎng)絡(luò)節(jié)點研究[J].電子元器件應(yīng)用,2009,11(12):74-76.
[5] 張艷麗,楊仁弟.數(shù)字溫濕度傳感器SHT11及其應(yīng)用[J].工礦自動化,2007(3):113.
[6] 王小強,歐陽駿,黃寧淋.ZigBee無線傳感器網(wǎng)絡(luò)設(shè)計與實現(xiàn)[M].北京:化學(xué)工業(yè)出版社,2012.
[7] 高守瑋,吳燦陽.ZigBee技術(shù)實踐教程—基于CC2430/31的無線傳感器網(wǎng)絡(luò)解決方案[M].北京:北京航空航天大學(xué)出版社,2009.
[8] 呂治安.ZigBee網(wǎng)絡(luò)原理與應(yīng)用開發(fā)[M].北京:北京航空航天大學(xué)出版社,2008.
[9] 樊建明,陳淵睿.基于SHT11的溫室多點測量系統(tǒng)設(shè)計[J].國外電子測量技術(shù),2006(25):4-8.
[10] 沙國榮,趙不賄,景亮,等.基于ZigBee無線傳感器網(wǎng)絡(luò)的溫室大棚環(huán)境測控系統(tǒng)設(shè)計[J].電子技術(shù)應(yīng)用,2012,32(1):60-65.
Design and Implementation of Atmospheric Temperature and Humidity Data Acquisition System Based on ZigBee Technology
YU Guishui ZHAO Kui ZHU Niyao ZUO Lei
(School of Electronic Engineering, Naval University of Engineering, Wuhan 430033)
The paper designed and implemented an acquisition system which was used to collect temperature and humidity parameters based on ZigBee technology. The application of ZigBee wireless sensor network in the fields of intelligent home, industry, medical health and others implies that Zigbee was becoming one trend of new technology. In order to rapid construct the acquisition wireless communication network, the paper introduced and researched the network topology of ZigBee technology from a perspective of application. A kind of a star wireless network including several nodes was built using the SOC chip CC2530 and TI’s Z-STACK protocol under the development environment IAR. Each terminal could acquisite temperature and humidity data using DHT11 sensor, then converged the data to the coordinator through network, finally implemented the data acquisition and communication base on ZigBee network.
CC2530, ZigBee, IAR, wireless sensor network
2014年11月13日,
2014年12月29日
余貴水,男,副教授,研究方向:雷達信號處理。趙奎,男,碩士研究生,研究方向:雷達信號處理。朱倪瑤,女,碩士研究生,研究方向:雷達信號處理。左雷,男,講師,研究方向:雷達超視距。
TP212
10.3969/j.issn1672-9730.2015.05.025