張 帆 察 豪 崔萌達
(海軍工程大學電子工程學院 武漢 430033)
ZHANG Fan CHA Hao CUI Mengda
(School of Electronic Engineering,Naval University of Engineering,Wuhan 430033)
?
基于ZigBee技術的蒸發波導高度采集系統設計與實現*
張帆察豪崔萌達
(海軍工程大學電子工程學院武漢430033)
論文設計實現了基于ZigBee技術的氣象參數采集系統,并通過模型計算了蒸發波導高度。ZigBee無線傳感網絡在家居、工業、醫療等領域應用的發展暗示著它已經成為一種新的技術趨勢。為了快速構建氣象參數采集無線通信網絡,從應用方面著手對ZigBee 技術的網絡拓撲結構進行研究和介紹。在IAR 開發環境下,采用TI 公司的Z-STACK 協議棧,以CC2530 芯片為核心構建了一個由若干節點組成的星型無線傳感網絡。各終端器利用溫濕度傳感器DHT11采集溫度、濕度數據,氣壓傳感器BMP085采集氣壓數據,并通過網絡匯聚到協調器。實現了基于ZigBee 網絡的氣象參數采集及通信,最終將數據帶入P-J模型得到蒸發波導高度。
CC2530; ZigBee; IAR; 蒸發波導高度
ZHANG FanCHA HaoCUI Mengda
(School of Electronic Engineering,Naval University of Engineering,Wuhan430033)
Class NumberTN959
隨著現代技術的發展,無線通信技術在許多領域的優勢使之得到了越來越多的應用。使用無線傳感器網絡系統能彌補有線網絡系統需要進行大量布線,成本較高,且在惡劣的環境中無法進行布線的缺點。近年來成為國內外的研究熱點。自ZigBee聯盟推出規范以來,ZigBee技術一直得到國內外無線傳感領域的重視,目前已經廣泛應用在工業、農業、家庭、醫院等各個領域。
關于ZigBee應用的物理層應用芯片已經有很多種類。世界各個國家都有相關廠商出品。比較有代表性的有Jennic的JN5139,Freescal的MC13192和Ember的EM250等。德州儀器也推出了一系列系統級芯片。其中CC2530 是一款兼容IEEE 802.15.4 的片上系統,集成了增強型8051內核,結合TI Z-STACK 協議棧可方便地組建自己的無線通信網絡[1]。
本系統通過構建ZigBee網絡測量同一時刻,同一地點,不同高度條件下的氣象參數,其系統總結構圖如圖1所示。

圖1 系統總結構圖
ZigBee的協議結構是建立在IEEE 802.15.4標準基礎之上的。IEEE 802.15.4標準定義了ZigBee的物理層(PHY)和媒體訪問控制層(MAC);ZigBee聯盟則定義了ZigBee協議的網絡層(NWK)、應用層(APL)和安全服務規范。如圖2是ZigBee協議棧的結構圖。ZigBee協議以OSI七層參考模型為基礎,只定義了其中與LR-WPAN應用相關的協議層。

圖2 ZigBee 協議棧模型
ZigBee協議棧的每層為其上層提供一套服務功能:數據實體提供數據傳輸服務,管理實體提供其它的服務。所有的服務實體通過服務接入點(SAP)為上層提供一個接口,每個SAP都支持一定數量的服務原語(即請求、指示、響應和證實)來實現所需要的服務功能[2]。
IEEE 802.15.4的物理層提供兩類服務:物理層數據服務和物理層管理服務。PHY層功能包括無線收發信機的開啟和關閉、能量檢測(ED)、鏈路質量指示(LQI)、信道評估(CCA)和通過物理媒體收發數據包。MAC層提供MAC層數據服務和MAC層管理服務,其主要功能包括采用CSMA/CA進行信道訪問控制、信標幀發送、同步服務和提供MAC層可靠傳輸機制。
ZigBee網絡層提供設備加入/退出網絡的機制、幀安全機制、路由發現以及維護機制。ZigBee協調器的網絡層還負責新網絡并為新關聯的設備分配地址。ZigBee應用層包括應用支持子層(APS)、ZigBee設備對象(ZDO)和制造商定義的應用對象。APS子層負責維護綁定列表,根據設備的服務和需求對設備進行匹配,并在綁定的設備之間傳送信息。ZDO負責發現網絡中的設備并明確其提供的應用服務。
ZigBee 網絡由一系列網絡節點組成,一個網絡節點可以包含多個設備,每個設備可支持240個端點。端點作為網絡通信中的數據通道,編號為1~240的端點對應可以定義240 個應用對象。此外端點0作為ZigBee設備對象(ZDO)的數據接口。每個端點可定義多個群集(Cluster)。
在ZigBee網絡中進行數據收發都是建立在應用規范(Profile)基礎上的,設定Profile 是一種規定不同設備對消息幀的處理行為,使不同的設備之間可以通過發送命令、數據請求來實現互操作。它由ZigBee 聯盟提供或用戶自行建立,在從ZigBee 聯盟得到分配的ProfID 后,就可以定義設備描述符和群集(Clusters)。其中描述符用來描述設備類型和應用方式,包括節點、電源、簡單、復雜和用戶描述符。簡單描述符需要在節點的各個終端(Endpoint)中定義,而其他描述符則適用于整個節點。
在ZigBee 網絡中,設備可以分為兩類,即完整功能設備(FFD)和簡化功能設備(RFD)。完整功能設備(FFD)可以作為協調器或路由器在任何拓撲結構中工作,能同其他FFD 或RFD 通信。而RFD 只能作為終端網絡節點,并且只能同網絡中的FFD 通信。FFD 和RFD 在硬件結構上相同,但在網絡層結構中有差異。
ZigBee 網絡支持三種網絡拓撲結構,為星型網絡拓撲、網狀網絡拓撲和樹狀網絡拓撲[2]。三種拓撲結構見圖3。星型網絡中,PAN協調器提供組織網絡和路由功能,終端網絡節點通過協調器進行通信。這種拓撲結構主要用在智能家居、PC 外設等領域。網狀網絡中每個節點都具智能化,網絡中任意節點故障時,附近的無線節點會自動代替該故障的節點,繼續進行信息的傳輸和轉發,從而大大提高系統可靠性[3]。

圖3 ZigBee網絡拓撲
ZStack是德州儀器推出的ZigBee協議棧軟件,其為應用開發者提供了一個模板,在其基礎上進行開發可以大大加快應用開發周期[4]。
ZStack 采用操作系統的思想來構建,采用事件輪詢機制,系統按照任務優先級依次來處理事件,而在事件處理完后,進入低功耗模式,降低了系統的功耗。操作系統抽象層(OSAL)的工作就是對多個任務進行系統資源分配,核心是通過參數傳遞的事件類型來判斷對應處理相應任務的事件。在系統中,通過tasksEvents指針輪詢訪問事件表的每一項,如果有事件發生,則查找函數表找到事件處理函數進行處理,處理完成后,繼續訪問事件表,查看是否有事件發生,進而執行事件處理函數,完成各個任務事件處理。其中任務事件的觸發有兩種方式,一種是通過設置一個軟件定時器osal_start_timeEx()函數等待溢出來觸發,一種是調用系統消息傳遞機制來觸發。

圖4 用戶開發程序所需要新增編寫文件
在進行應用開發時,需要定義添加相應的任務。其中主要包括任務初始化函數和事件處理函數。任務初始化函數定義一個TasksArr 數組,存放所有任務事件處理函數的地址,給每個任務分配唯一的任務標識號,最后注冊系統服務。ZStack協議棧中按照由高到低的優先級已經定義好了MAC層、網絡層、硬件驅動抽象層、應用設備對象層的任務,只需按照自己的需求編寫應用層的任務及事件處理函數即可,一般情況下,用戶只需額外添加三個文件就可以完成一個項目,一個是主文件,存放具體的任務處理函數,一個是這個主文件的頭文件,另外一個是操作系統接口文件(以Osal開頭),如圖4所示。大大增加了項目的通用性和易移植性。
CC2530是一個片上系統解決方案。CC2530芯片的RF性能佳,閃存容量大,封裝尺寸小,協議支持也多樣。在該芯片基礎上設計的氣象參數采集節點在室外的最高傳輸距離可達300m。本節主要講解氣壓傳感器BMP085[4]的結構(如圖5所示)及SHT11溫濕度傳感器的工作原理。

圖5 BMP085結構圖
SHT11型傳感器由瑞士Sensirion公司生產,該傳感器具有相對濕度和溫度一體測量、超快的響應時間等優良特性。
SHT11是新型智能溫濕度傳感器,它將溫濕度傳感器、信號放大調理、A/D轉換、二線串行接口全部集成于一個芯片內,融合了CMOS芯片技術與傳感器技術[5]。SHT11傳感器默認的測量溫度和相對濕度的分辨率一般分別為14位、12位,通過狀態寄存器可降至12位、8 位。濕度測范圍是0~100RH,對于12位的測量精度為±3. 0%RH; 測溫范圍為-40~+123. 8℃,對于14位的測量精度為±0. 4℃。
溫濕度傳感器SHTl1送出的溫度、濕度數據必須經過數據轉換,才能表示實際的溫度和濕度,其公式如下:
Tc=d1+d2×SOT
(1)
(2)
RHTure=(Tc-25)×(t1+t2×SORH)+RHLinear
(3)
式中:Tc為攝氏溫度;RHTure為經過溫度補償的相對濕度;d1和d2為和溫度分辨率有關的校正系c1、c2、c3、t1、t2為和濕度的分辨率有關的校正系數;SOT為從SHT11中讀出的溫度值;SORH為從SHT11中讀出的濕度值。
BMP085包含電阻式壓力傳感器、AD轉換器和控制單元。控制單元包括E2PROM和I2C接口。E2PROM存儲了176位單獨的標準數據,這些數據主要用于溫度補償等。
BMP085數據傳輸采用I2C總線技術,有四種測量模式,分別為極低功耗模式、標準模式、高分辨率模式、超高分辨率模式。氣壓輸出字長為19位,溫度輸出字長為15位。
實驗中利用BMP085氣壓傳感器通過I/O口模擬I2C總線協議進行氣壓參數測量,其具體工作過程如下。
1) 在利用I2C總線與BMP085進行數據通信時,首先由主機發送啟動信號來啟動I2C總線。啟動信號的格式為:在SCL在高電平期間SDA出現下降沿,圖6為啟動時序圖。

圖6 I2C總線啟動時序圖
2) 向BMP085發送命令:
(1)發送尋址信號
在主機發送完啟動信號后即需要發送尋址信號。尋址信號的結構是:設備地址(高7位)+方向位(最低位)。方向位為0則表明接下來主機對從器件進行寫操作;方向位為1則表明接下來主機對從器件進行讀操作,尋址字節的定義如表1所示。發送命令時尋址信號為從器件地址+0,讀取數據時尋址信號為從器件地址+1。

表1 尋址字節的定義
(2)發送寄存器地址
(3)發送需寫入寄存器的值
3) 從BMP085讀取數據
(1)發送尋址信號(從器件地址+0)
(2)發送寄存器地址
(3)重新開始數據傳輸
(4)發送尋址信號(從器件地址+1)
(5)取測量值高低各8位
4) 當數據傳輸完畢后,主機發送停止信號,SDA上產生一個上升沿信號,停止時序圖如圖7所示。

圖7 I2C總線停止時序圖
其中有幾點注意事項:
(1)I2C總線協議規定,總線上每傳送一個字節數據之后,接收設備都需要產生一個應答信號,以確認收到數據。應答信號的格式為:在SCL信號為高電平期間SDA拉低為低電平。應答時序圖如圖8所示。

圖8 I2C總線應答時序
(2)數據傳輸要在主機向從器件發送尋址信號并得到從器件應答之后,數據傳輸時每次一個字節,每次傳輸都應在得到應答信號后再進行下一字節的傳輸。
(3)當主機為接收設備時,不應答最后一個字節,以向發送設備表示數據傳送結束。
氣壓采集節點上BMP085工作的流程圖如圖9所示。

圖9 BMP085工作流程
終端節點和路由節點大氣壓采集流程為: 終端節點和路由節點接收到來自協調器節點的采集指令后,將BMP085傳感器定期采集的大氣壓數據進行預處理,然后通過無線網絡與協調器節點進行通訊。溫濕度采集流程圖如圖10所示,終端節點通常為節能考慮而間歇性工作,在傳輸數據之后會進入一定時間的休眠,等待下一個采集指令的到來。

圖10 溫濕度采集流程圖
軟件設計主要分為終端節點軟件、路由節點軟件及協調器節點軟件設計[6]。協調器節點上電后,會按照編譯時給定的參數,選擇合適的信道、合適的網絡號,建立ZigBee無線網絡。終端節點和路由節點上電后,會進行硬件電路初始化,然后搜索是否有ZigBee無線網絡,如果有ZigBee無線網絡時,終端節點和路由節點申請加入網絡,協調器節點準許加入并分配一個16位的網絡短地址,等待采集的氣象數據命令,然后將接收的所有數據包通過串口通信發送到PC機上,以便更容易地進行氣象數據分析和數據存儲。協調器節點、路由節點和終端節點工作流程如圖11~圖13所示。

圖11 協調器工作流程圖

圖12 路由器工作流程圖

圖13 路由器工作流程圖
搭建好硬件環境后,在本系統中,終端節點每隔1min采集一次溫濕度數據并通過無線網絡發送給協調器節點,協調器節點再通過RS232串口總線將數據發送到PC機上,串口設置為COM1,波特率設置為19200bps。氣壓數據串口設置為COM2,波特率設置為115200bps。將本系統測得的數據分別與江蘇無線電科學研究所有限公司的ZQZ-CY移動氣象站的溫濕度數據和VAISALA公司的WXT520移動氣象儀的氣壓數據進行對比。溫度傳感器測量值與移動氣象站測得的溫度誤差在-0.1~+0.4之間,濕度傳感器測量值與移動氣象站測得濕度誤差在-0.7~+1.1之間,氣壓傳感器BM085測量值與移動氣象站測得的氣壓誤差在-0.1~+0.1hPa之間,均符合實驗測量誤差值范圍。對比圖如圖14,圖15所示。


圖14 溫濕度對比圖


圖15 氣壓數據對比圖
從以上測試結果對比曲線可以看出,本系統的穩定性較好;從絕對誤差曲線可以看出,本系統氣壓的測量誤差范圍較小,系統的精度也達到了一定要求。



圖16 蒸發波導高度與隨氣象參數變化圖
將氣象數據帶入P-J模型中進行計算,最終得到蒸發波導高度與各數據之間的關系圖,如圖16所示。
從以上測試結果對比曲線可以看出,本系統的穩定性較好;從絕對誤差曲線可以看出,本系統各氣象參數測量誤差范圍較小,系統的精度也達到了一定要求。
本文主要介紹了基于ZigBee網絡的氣象參數測量系統的結構和相關軟件流程,使用該系統進行實地測量,并與移動氣象儀測得的數據進行比較,并根據模型以及測量數據得到蒸發波導高度。結果證明該方案構建合理,能夠同時測量多點氣象參數,得到波導高度,具有測量精度較高且功耗較低的優點。可進一步完善系統設計并推廣。
[1] Ling-Jyh Chen, Tony Sun, Nia-Chiang Liang.An Evaluation Study of Mobility Support in ZigBee Networks[J].J Sign Process Syst,2010,59:111-122.
[2] ZigBee Aliance. ZigBee Specification.[EB/OL].http://www.ZigBee.org./,2008.
[3] 李文仲,段朝玉.ZigBee無線網絡技術入門與實戰[M].北京:北京航空航天大學出版社,2007:28-30.
[4] 張金燕,劉高平,楊如祥.基于氣壓傳感器BMP085的高度測量系統實現[J].技術與方法,2014(6):64-67.
[5] 張艷麗,楊仁弟.數字溫濕度傳感器SHT11及其應用[J].工礦自動化,2007(3):113.
[6] 陳銘治,李精明,王侯清.基于CC2530的ZigBee無線氣壓測量模塊設計和實現[J].電腦知識與技術,2014(10):58-60.
[7] 樊建明,陳淵睿.基于SHT11的溫室多點測量系統設計[J].國外電子測量技術,2006(25):4-8.
[8] 呂治安.ZigBee網絡原理與應用開發[M].北京:北京航空航天大學出版社,2008:69-73.
[9] 沙國榮,趙不賄,景亮,等.基于ZigBee無線傳感器網絡的溫室大棚環境測控系統設計[J].電子技術應用,2012,32(1):60-65.
[10] 左雷,察豪,周沫,等.海上蒸發波導PJ模型在我國海區的適應性初步研究[J].電子學報,2009,37(5):1100-1105.
[11] 陳銘治,李精明,王候清,等.基于CC2530的ZigBee無線氣壓測量模塊設計和時間[J].電腦知識和技術,2014(10):58-60.
Design and Implementation of Evaporation Duct Height Data Acquisition System Based on ZigBee Technology*
The paper designs and implements an acquisition system which is used to collect the atmospheric databased on ZigBee technology then brings the data into model and obtains the evaporation duct height . The application of ZigBee wireless sensor network in the fields of intelligent home,industry,medical health andothers implies that ZigBee is becoming one trend of new technology. In order to rapidly construct the acquisition wireless communication network, the paper introduces and researches the network topology of ZigBee technology from a perspective of application. A kind of a starwireless network including severalnodes is built using theSOC chip CC2530 and TI’s Z-STACK protocol under the development environment IAR. Each terminal can acquisite temperature and humidity data using DHT11 sensor and atmospheric pressure data using BMP085 sensor, then the data is converged to the coordinator through network, finally the data acquisition and communication is implemented based on ZigBee network,then the data is imput into P-J model and the height of evaporation duct is obtained.
CC2530, ZigBee, IAR, height of evaporation duct
2016年2月8日,
2016年3月25日
張帆,男,碩士研究生,研究方向:雷達信號處理。
TN959
10.3969/j.issn.1672-9730.2016.08.023