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