任志健,莫偉健,萬智萍
(中山大學(xué) 新華學(xué)院,廣東 廣州 510520)
當(dāng)今計算機技術(shù)跟現(xiàn)代通信技術(shù)的進步與發(fā)展使得Zigbee技術(shù)日漸成熟,本系統(tǒng)組建了一個基于Zigbee2007/PRO協(xié)議的網(wǎng)狀網(wǎng)網(wǎng)絡(luò),采用了新型低功耗的傳感設(shè)備進行溫濕度信息采集,對終端節(jié)點進行了設(shè)計使得終端節(jié)點可以自主發(fā)現(xiàn)和加入網(wǎng)絡(luò)并綁定,隨即將實時檢測到的溫濕度數(shù)據(jù)發(fā)送給終端節(jié)點。無線傳感器網(wǎng)絡(luò)這一綜合了傳感器技術(shù)、信息處理技術(shù)和無線通信技術(shù)的新興交叉學(xué)科目前已廣泛應(yīng)用于自動控制、環(huán)境監(jiān)測等領(lǐng)域[1]。結(jié)合Zigbee2007/PRO協(xié)議的特點和當(dāng)今市場對環(huán)境監(jiān)控的要求,設(shè)計了基于CC2530的Zigbee2007/PRO協(xié)議的無線溫濕度監(jiān)控系統(tǒng),并通過實踐對系統(tǒng)中的關(guān)鍵部分進行了可行性分析。
TI/Chipcon公司在IEEE802.15.4標準和ZigBee聯(lián)盟所推出的ZigBee2006規(guī)范的基礎(chǔ)上,發(fā)布并認證了全功能的ZigBee 2006協(xié)議棧。該協(xié)議棧全用C語言編寫并向后兼容[2]。由于Zigbee2006改進后仍然無法滿足需求,因此在Zigbee2006的基礎(chǔ)上又誕生了實用性更強的Zigbee2007/PRO,但對現(xiàn)在的用戶來說只需要了解應(yīng)用層函數(shù)以及如何合適調(diào)用這些函數(shù)即可搭建出具有穩(wěn)定性能和完善功能的Zigbee網(wǎng)絡(luò)了。
TI公司的推出的CC2530[3]是第二代的Zigbee RF收發(fā)器,主要用于2.4 GHz的ISM頻段。其集成了1個高性能的RF收發(fā)器和1個優(yōu)化的低功耗的8051微控制器內(nèi)核,具有優(yōu)秀的接收器靈敏度和優(yōu)越的抗干擾性[4]。同時,CC2530可以配備TI的 RemoT I,ZStack或SimpliciT I等專有或標準兼容的網(wǎng)絡(luò)協(xié)議棧來簡化開發(fā)[5-6]。Zigbee2007/PRO協(xié)議棧Zstack-2.3.0是新一代Zigbee芯片CC2520基于Zigbee2007協(xié)議規(guī)范開發(fā)的協(xié)議棧。Zigbee協(xié)議結(jié)構(gòu)采用OSI七層模型。協(xié)議以IEEE802.15.4標準作為通訊基礎(chǔ),定義了物理層(PHY)和媒體訪問控制層(MAC)的標準;ZigBee聯(lián)盟則定義了ZigBee協(xié)議的網(wǎng)絡(luò)層(NWK)、應(yīng)用層(APL)和安全服務(wù)規(guī)范[7],其結(jié)構(gòu)如圖1所示。
圖1 Zigbee協(xié)議棧的體系結(jié)構(gòu)模型圖Fig.1 Structure of the Zigbee protocol stack
ZigBee無線網(wǎng)絡(luò)可分為星狀網(wǎng)(Star Network)和網(wǎng)狀網(wǎng)兩種拓撲結(jié)構(gòu),如圖 2(a)、圖2(b)所示。星狀網(wǎng)連接方式比較簡單,加上Zigbee收發(fā)器受限于本身的工作范圍,只能用于組建包含節(jié)點數(shù)比較少而且范圍相對也比較小的無線網(wǎng)絡(luò);網(wǎng)狀網(wǎng)的結(jié)構(gòu)能夠使得無線網(wǎng)絡(luò)范圍大大拓展開的同時也使得無線網(wǎng)絡(luò)中的節(jié)點數(shù)目大大增多,非常適用于位置分散,監(jiān)控節(jié)點需求量大監(jiān)控對象。本系統(tǒng)采用了網(wǎng)狀網(wǎng)結(jié)構(gòu),主要分為:協(xié)調(diào)器節(jié)點(Coordinator)、路由器節(jié)點(Router)和終端傳感器節(jié)點。系統(tǒng)結(jié)構(gòu)如圖3所示。
圖2 Zigbee網(wǎng)絡(luò)結(jié)構(gòu)拓撲圖Fig.2 Topology structures of Zigbee network
本系統(tǒng)結(jié)構(gòu)圖中監(jiān)控中心為一臺計算機,主要用于可視化各個終端傳感器節(jié)點檢測到的溫濕度數(shù)據(jù)信息并對數(shù)據(jù)信息進行儲存記錄;協(xié)調(diào)器節(jié)點用于組建無線網(wǎng)絡(luò)、分配網(wǎng)絡(luò)位置外、收集終端傳感器節(jié)點檢測到的信息和數(shù)據(jù)傳送工作;路由器節(jié)點的主要為尋找、建立和修復(fù)資料封包,收集并轉(zhuǎn)發(fā)與其形成路由路徑的下級終端傳感器節(jié)點檢測到的數(shù)據(jù)信息;終端傳感器節(jié)點主要負責(zé)檢測所在位置的實時溫濕度數(shù)據(jù)信息并發(fā)送給其上級節(jié)點,最終使得檢測到的溫濕度數(shù)據(jù)信息傳輸?shù)絽f(xié)調(diào)器節(jié)點,同時具備路由器節(jié)點的能力。
圖3 系統(tǒng)結(jié)構(gòu)圖Fig.3 System topology structure
本系統(tǒng)溫濕度檢測部分選用了性能優(yōu)異的數(shù)字式溫濕度傳感器SHT15和CC2530 ZigBee模塊來搭建。SHT15集成了1個電容性聚合體測濕敏感元件、1個用能隙材料制成的測溫元件、1與14位的A/D轉(zhuǎn)換器以及串行接口電路。濕度傳感器在(10~50°C)正常溫度的工作環(huán)境下誤差低于±0.5°C,濕度的測量在10%RH~80%RH的環(huán)境下誤差低于±2%RH,是個相當(dāng)穩(wěn)定的溫濕度傳感器[8]。
終端傳感器節(jié)點硬件部分的工作電壓由5 V干電池提供,在SHT15電源引腳VCC與GND之間加了1個100 nF去耦濾波電容 C1;SHT15的 2、3端口分別與 CC2530F256 ZigBee模塊的P2_1口和P2_2口進行連接,SHT15與CC2530之間通過I2C總線技術(shù)進行數(shù)據(jù)交換。而協(xié)調(diào)器節(jié)點硬件部分主要使用了RS232串口電路與計算機進行通信,RS232串口部分電路圖如圖5所示,CC2530外圍電路如圖6所示,使用Protel DXP 2004作圖軟件來作圖。
為提高測量的準確性,本系統(tǒng)在信號轉(zhuǎn)換時候進行非線性補償和溫度補償來獲得精確的數(shù)據(jù)。在收到CRC 8是確認位后,通過保持ACK高電平來結(jié)束通訊并且自動地進入休眠模式。SHT15在信號轉(zhuǎn)換時,進行相對濕度信號的非線性補償,測量的分辨率為12 bit,公式如下:
RH linear= -2+0.5*SORH+(-4)*SORH2 (%RH)
式中:RH linear為相對濕度修正值,SO RH為傳感器相對濕度測量值。
本系統(tǒng)終端傳感器節(jié)點軟件設(shè)計流程如圖7所示。終端傳感器節(jié)點上電并開始工作后,先進行初始化工作,分別對硬件還有協(xié)議棧進行初始化,初始化后立即搜索附近存在的無線Zigbee網(wǎng)絡(luò)并發(fā)出加入請求。在成功加入該無線Zigbee網(wǎng)絡(luò)之后進入休眠模式等待條件中斷的產(chǎn)生,若中斷產(chǎn)生則對中斷做出判別再作出相應(yīng)的響應(yīng)動作。
圖4 RS232串口部分電路圖Fig.4 RS232 serial part of the schematic
圖5 CC2530外圍電路圖Fig.5 Peripheral circuit of CC2530
協(xié)調(diào)器節(jié)點軟件設(shè)計流程如圖8所示。同終端傳感器節(jié)點類似,協(xié)調(diào)器節(jié)點上電后首先也要對硬件還有協(xié)議棧進行初始化。初始化之后進行信道搜索和并對搜索到的空閑信道進行評估選擇最優(yōu)信道建立ZigBee無線網(wǎng)絡(luò),在網(wǎng)絡(luò)組建成功后檢查是否收到其他節(jié)點的入網(wǎng)請求或控制中心的測量命令,并對這兩種情況作出相應(yīng)的響應(yīng)動作,而在此過程中要檢查網(wǎng)絡(luò)的地址空間是否已滿,如果地址空間已經(jīng)滿了就轉(zhuǎn)到加入網(wǎng)絡(luò)失敗。一旦協(xié)調(diào)器節(jié)點接收到從控制中心發(fā)出的采集溫濕度數(shù)據(jù)的命令時馬上把從終端傳感器節(jié)點上接收到的溫濕度數(shù)據(jù)信息發(fā)送給控制中心。本系統(tǒng)部分程序如下:
/*頭文件包含程序片段*/
#include"OSAL.h"http://操作系統(tǒng)抽象層頭文件
#include"ZB_USER_EVENTS.h"http://用戶事件頭文件
...
int main(void)
{ /*初始化操程序作片段*/
圖6 終端傳感器節(jié)點部分軟件設(shè)計流程圖Fig.6 Software design flow of terminal sensor node
HAL_BOARD_INIT(); //初始化節(jié)點設(shè)備
圖7 協(xié)調(diào)器節(jié)點軟件設(shè)計流程圖Fig.7 Software design flow of coordination node
HalDriverInit(); //初始化硬件抽象層驅(qū)動
...
if(event& (ZB_USER_EVENT))//當(dāng)用事件發(fā)
{ zb_HandleOsalEvent(user_event);//調(diào)用判斷事件類型并作出處理
if((user_event) &event_S)//若事件類型為測量溫濕度
{ myApp_StartReporting();//測量并發(fā)送溫濕度信息
}
else if((user_event) &event_T)//若事件類型為轉(zhuǎn)發(fā)數(shù)據(jù)
{ zb_TRANEvent();//轉(zhuǎn)發(fā)數(shù)據(jù)
}
...}
通過使用無線溫濕測量系統(tǒng)在工作環(huán)境中進行當(dāng)?shù)丨h(huán)境氣候進行測量,為了保證測量的結(jié)果和準確性,我們在不同的時間進行抽查測量,每過5分鐘時間段測量一次,測量一個小時,并用MATLAB對數(shù)據(jù)進行分析,溫度測量值與標準值比較圖如圖8所示以及濕度測量值與標準值比較圖如圖9所示。
圖8 溫度測量值與標準值比較圖Fig.8 Measurements and standard value comparison of temperature
圖9 濕度測量值與標準值比較圖Fig.9 Measurements and standard value comparison of humidity
文中基于CC2530芯片結(jié)合ZigBee2007/PRO協(xié)議,設(shè)計了一個無線溫濕度監(jiān)測系統(tǒng)并對系統(tǒng)功能做了實際驗證,驗證結(jié)果表明了本系統(tǒng)是切實可行的。系統(tǒng)不僅實現(xiàn)了對多個分散的節(jié)點的溫濕度監(jiān)控和數(shù)據(jù)的準確傳輸,而且系統(tǒng)采用了網(wǎng)狀網(wǎng)的網(wǎng)絡(luò)結(jié)構(gòu)組建無線網(wǎng)絡(luò)使得監(jiān)控的范圍大幅度擴大,在監(jiān)控范圍上比一般的采用星狀網(wǎng)結(jié)構(gòu)搭建網(wǎng)絡(luò)的監(jiān)控系統(tǒng)要大得多,同時這也使得本系統(tǒng)比星狀網(wǎng)結(jié)構(gòu)的網(wǎng)絡(luò)的節(jié)點容量大,在現(xiàn)在的無線檢測系統(tǒng)一般都采用星狀網(wǎng)結(jié)構(gòu)組網(wǎng)的形勢下本系統(tǒng)具有很大的市場優(yōu)勢。另外本系統(tǒng)的能穩(wěn)定性和可靠性也非常高使得本系統(tǒng)的環(huán)境適應(yīng)性非常強,特別適用于工農(nóng)業(yè)環(huán)境現(xiàn)場和對環(huán)境因素要求比較苛刻的作業(yè)現(xiàn)場。
[1]李志方,鐘洪聲.CC2530的分布式無線數(shù)據(jù)采集系統(tǒng)設(shè)計[J].單片機與嵌入式系統(tǒng)應(yīng)用,2011(9):40-42.LI Zhi-fang,ZHONB Hong-sheng. Distributed data acquisition system based on CC2530[J].Microcontrollers&Embedded Systems,2011(9):40-42.
[2]章偉聰,俞新武,李忠成.基于CC2530及ZigBee協(xié)議棧設(shè)計無線網(wǎng)絡(luò)傳感器節(jié)點[J].計算機系統(tǒng)應(yīng)用,2011,20(7):184-187.ZHANG Wei-cong,YU Xin-wu,LI Zhong-cheng.Wireless network sensor node design based on CC2530 and Zigbee protocol stack[J].Computer Systems&Applications, 2011,20(7):184-187.
[3]Texas Instruments.A True System-on-Chip Solution for 2.4-GHz IEEE 802.15.4 and ZigBee Applications[EB/OL].(2010)[2012].http://www.ti.com/lit/ds/symlink/cc2530.pdf.
[4]李志方,鐘洪聲.IEEE 802.15.4的CC2530無線數(shù)據(jù)收發(fā)設(shè)計[J].單片機與嵌入式系統(tǒng)應(yīng)用,2011(7):43-45.LIZhi-fang,ZHONGHong-sheng.Point-to-point communication based on CC2530 and IEEE 802.15.4[J].Microcontrollers&Embedded Systems,2011(7):43-45.
[5]樊靜,王建明.基于CC2530的博物館狀況無線監(jiān)測系統(tǒng)設(shè)計[J].電子測量技術(shù),2011,34(6):105-109.FAN Jing,WANG Jian-ming.Design of wireless monitoring system for environment status of museum based on CC2530[J].Electronic Measurement Technology,2011,34(6):105-109.
[6]衣翠平,柏逢明.基于ZigBee技術(shù)的CC2530糧庫溫濕度檢測系統(tǒng)研究[J].長春理工大學(xué)學(xué)報:自然科學(xué)版,2011,34(4):53-57.YI Cui-ping,BAI Feng-ming.ZigBee-based CC2530 Granary Temperature and Humidity Monitoring System[J].Journal of Changchun University of Science and Technology:Natural Science Edition,2011,34(4):53-57.
[7]李俊斌,胡永忠.基于CC2530的ZigBee通信網(wǎng)絡(luò)的應(yīng)用設(shè)計[J].電子設(shè)計工程,2011,19(16):108-111.LI Jun-bin,HU Yong-zhong.Design of ZigBee network based on CC2530[J].Electronic Design Engineering,2011,19(16):108-111.
[8]Sensirion.Datasheet SHT1x (SHT10, SHT11, SHT15)Humidity and Temperature Sensor IC [EB/OL]. (2011)[2012].http://www.sensirion.com/en/pdf/product_information/Datasheet-humidity-sensor-SHT1x.pdf.