任志健,莫偉健,萬智萍
(中山大學(xué) 新華學(xué)院,廣東 廣州 510520)
當(dāng)今計(jì)算機(jī)技術(shù)跟現(xiàn)代通信技術(shù)的進(jìn)步與發(fā)展使得Zigbee技術(shù)日漸成熟,本系統(tǒng)組建了一個(gè)基于Zigbee2007/PRO協(xié)議的網(wǎng)狀網(wǎng)網(wǎng)絡(luò),采用了新型低功耗的傳感設(shè)備進(jìn)行溫濕度信息采集,對(duì)終端節(jié)點(diǎn)進(jìn)行了設(shè)計(jì)使得終端節(jié)點(diǎn)可以自主發(fā)現(xiàn)和加入網(wǎng)絡(luò)并綁定,隨即將實(shí)時(shí)檢測(cè)到的溫濕度數(shù)據(jù)發(fā)送給終端節(jié)點(diǎn)。無線傳感器網(wǎng)絡(luò)這一綜合了傳感器技術(shù)、信息處理技術(shù)和無線通信技術(shù)的新興交叉學(xué)科目前已廣泛應(yīng)用于自動(dòng)控制、環(huán)境監(jiān)測(cè)等領(lǐng)域[1]。結(jié)合Zigbee2007/PRO協(xié)議的特點(diǎn)和當(dāng)今市場(chǎng)對(duì)環(huán)境監(jiān)控的要求,設(shè)計(jì)了基于CC2530的Zigbee2007/PRO協(xié)議的無線溫濕度監(jiān)控系統(tǒng),并通過實(shí)踐對(duì)系統(tǒng)中的關(guān)鍵部分進(jìn)行了可行性分析。
TI/Chipcon公司在IEEE802.15.4標(biāo)準(zhǔn)和ZigBee聯(lián)盟所推出的ZigBee2006規(guī)范的基礎(chǔ)上,發(fā)布并認(rèn)證了全功能的ZigBee 2006協(xié)議棧。該協(xié)議棧全用C語言編寫并向后兼容[2]。由于Zigbee2006改進(jìn)后仍然無法滿足需求,因此在Zigbee2006的基礎(chǔ)上又誕生了實(shí)用性更強(qiáng)的Zigbee2007/PRO,但對(duì)現(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個(gè)高性能的RF收發(fā)器和1個(gè)優(yōu)化的低功耗的8051微控制器內(nèi)核,具有優(yōu)秀的接收器靈敏度和優(yōu)越的抗干擾性[4]。同時(shí),CC2530可以配備TI的 RemoT I,ZStack或SimpliciT I等專有或標(biāo)準(zhǔn)兼容的網(wǎng)絡(luò)協(xié)議棧來簡(jiǎn)化開發(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標(biāo)準(zhǔn)作為通訊基礎(chǔ),定義了物理層(PHY)和媒體訪問控制層(MAC)的標(biāo)準(zhǔn);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)兩種拓?fù)浣Y(jié)構(gòu),如圖 2(a)、圖2(b)所示。星狀網(wǎng)連接方式比較簡(jiǎn)單,加上Zigbee收發(fā)器受限于本身的工作范圍,只能用于組建包含節(jié)點(diǎn)數(shù)比較少而且范圍相對(duì)也比較小的無線網(wǎng)絡(luò);網(wǎng)狀網(wǎng)的結(jié)構(gòu)能夠使得無線網(wǎng)絡(luò)范圍大大拓展開的同時(shí)也使得無線網(wǎng)絡(luò)中的節(jié)點(diǎn)數(shù)目大大增多,非常適用于位置分散,監(jiān)控節(jié)點(diǎn)需求量大監(jiān)控對(duì)象。本系統(tǒng)采用了網(wǎng)狀網(wǎng)結(jié)構(gòu),主要分為:協(xié)調(diào)器節(jié)點(diǎn)(Coordinator)、路由器節(jié)點(diǎn)(Router)和終端傳感器節(jié)點(diǎn)。系統(tǒng)結(jié)構(gòu)如圖3所示。
圖2 Zigbee網(wǎng)絡(luò)結(jié)構(gòu)拓?fù)鋱DFig.2 Topology structures of Zigbee network
本系統(tǒng)結(jié)構(gòu)圖中監(jiān)控中心為一臺(tái)計(jì)算機(jī),主要用于可視化各個(gè)終端傳感器節(jié)點(diǎn)檢測(cè)到的溫濕度數(shù)據(jù)信息并對(duì)數(shù)據(jù)信息進(jìn)行儲(chǔ)存記錄;協(xié)調(diào)器節(jié)點(diǎn)用于組建無線網(wǎng)絡(luò)、分配網(wǎng)絡(luò)位置外、收集終端傳感器節(jié)點(diǎn)檢測(cè)到的信息和數(shù)據(jù)傳送工作;路由器節(jié)點(diǎn)的主要為尋找、建立和修復(fù)資料封包,收集并轉(zhuǎn)發(fā)與其形成路由路徑的下級(jí)終端傳感器節(jié)點(diǎn)檢測(cè)到的數(shù)據(jù)信息;終端傳感器節(jié)點(diǎn)主要負(fù)責(zé)檢測(cè)所在位置的實(shí)時(shí)溫濕度數(shù)據(jù)信息并發(fā)送給其上級(jí)節(jié)點(diǎn),最終使得檢測(cè)到的溫濕度數(shù)據(jù)信息傳輸?shù)絽f(xié)調(diào)器節(jié)點(diǎn),同時(shí)具備路由器節(jié)點(diǎn)的能力。
圖3 系統(tǒng)結(jié)構(gòu)圖Fig.3 System topology structure
本系統(tǒng)溫濕度檢測(cè)部分選用了性能優(yōu)異的數(shù)字式溫濕度傳感器SHT15和CC2530 ZigBee模塊來搭建。SHT15集成了1個(gè)電容性聚合體測(cè)濕敏感元件、1個(gè)用能隙材料制成的測(cè)溫元件、1與14位的A/D轉(zhuǎn)換器以及串行接口電路。濕度傳感器在(10~50°C)正常溫度的工作環(huán)境下誤差低于±0.5°C,濕度的測(cè)量在10%RH~80%RH的環(huán)境下誤差低于±2%RH,是個(gè)相當(dāng)穩(wěn)定的溫濕度傳感器[8]。
終端傳感器節(jié)點(diǎn)硬件部分的工作電壓由5 V干電池提供,在SHT15電源引腳VCC與GND之間加了1個(gè)100 nF去耦濾波電容 C1;SHT15的 2、3端口分別與 CC2530F256 ZigBee模塊的P2_1口和P2_2口進(jìn)行連接,SHT15與CC2530之間通過I2C總線技術(shù)進(jìn)行數(shù)據(jù)交換。而協(xié)調(diào)器節(jié)點(diǎn)硬件部分主要使用了RS232串口電路與計(jì)算機(jī)進(jìn)行通信,RS232串口部分電路圖如圖5所示,CC2530外圍電路如圖6所示,使用Protel DXP 2004作圖軟件來作圖。
為提高測(cè)量的準(zhǔn)確性,本系統(tǒng)在信號(hào)轉(zhuǎn)換時(shí)候進(jìn)行非線性補(bǔ)償和溫度補(bǔ)償來獲得精確的數(shù)據(jù)。在收到CRC 8是確認(rèn)位后,通過保持ACK高電平來結(jié)束通訊并且自動(dòng)地進(jìn)入休眠模式。SHT15在信號(hào)轉(zhuǎn)換時(shí),進(jìn)行相對(duì)濕度信號(hào)的非線性補(bǔ)償,測(cè)量的分辨率為12 bit,公式如下:
RH linear= -2+0.5*SORH+(-4)*SORH2 (%RH)
式中:RH linear為相對(duì)濕度修正值,SO RH為傳感器相對(duì)濕度測(cè)量值。
本系統(tǒng)終端傳感器節(jié)點(diǎn)軟件設(shè)計(jì)流程如圖7所示。終端傳感器節(jié)點(diǎn)上電并開始工作后,先進(jìn)行初始化工作,分別對(duì)硬件還有協(xié)議棧進(jìn)行初始化,初始化后立即搜索附近存在的無線Zigbee網(wǎng)絡(luò)并發(fā)出加入請(qǐng)求。在成功加入該無線Zigbee網(wǎng)絡(luò)之后進(jìn)入休眠模式等待條件中斷的產(chǎn)生,若中斷產(chǎn)生則對(duì)中斷做出判別再作出相應(yīng)的響應(yīng)動(dòng)作。
圖4 RS232串口部分電路圖Fig.4 RS232 serial part of the schematic
圖5 CC2530外圍電路圖Fig.5 Peripheral circuit of CC2530
協(xié)調(diào)器節(jié)點(diǎn)軟件設(shè)計(jì)流程如圖8所示。同終端傳感器節(jié)點(diǎn)類似,協(xié)調(diào)器節(jié)點(diǎn)上電后首先也要對(duì)硬件還有協(xié)議棧進(jìn)行初始化。初始化之后進(jìn)行信道搜索和并對(duì)搜索到的空閑信道進(jìn)行評(píng)估選擇最優(yōu)信道建立ZigBee無線網(wǎng)絡(luò),在網(wǎng)絡(luò)組建成功后檢查是否收到其他節(jié)點(diǎn)的入網(wǎng)請(qǐng)求或控制中心的測(cè)量命令,并對(duì)這兩種情況作出相應(yīng)的響應(yīng)動(dòng)作,而在此過程中要檢查網(wǎng)絡(luò)的地址空間是否已滿,如果地址空間已經(jīng)滿了就轉(zhuǎn)到加入網(wǎng)絡(luò)失敗。一旦協(xié)調(diào)器節(jié)點(diǎn)接收到從控制中心發(fā)出的采集溫濕度數(shù)據(jù)的命令時(shí)馬上把從終端傳感器節(jié)點(diǎn)上接收到的溫濕度數(shù)據(jù)信息發(fā)送給控制中心。本系統(tǒng)部分程序如下:
/*頭文件包含程序片段*/
#include"OSAL.h"http://操作系統(tǒng)抽象層頭文件
#include"ZB_USER_EVENTS.h"http://用戶事件頭文件
...
int main(void)
{ /*初始化操程序作片段*/
圖6 終端傳感器節(jié)點(diǎn)部分軟件設(shè)計(jì)流程圖Fig.6 Software design flow of terminal sensor node
HAL_BOARD_INIT(); //初始化節(jié)點(diǎn)設(shè)備
圖7 協(xié)調(diào)器節(jié)點(diǎn)軟件設(shè)計(jì)流程圖Fig.7 Software design flow of coordination node
HalDriverInit(); //初始化硬件抽象層驅(qū)動(dòng)
...
if(event& (ZB_USER_EVENT))//當(dāng)用事件發(fā)
{ zb_HandleOsalEvent(user_event);//調(diào)用判斷事件類型并作出處理
if((user_event) &event_S)//若事件類型為測(cè)量溫濕度
{ myApp_StartReporting();//測(cè)量并發(fā)送溫濕度信息
}
else if((user_event) &event_T)//若事件類型為轉(zhuǎn)發(fā)數(shù)據(jù)
{ zb_TRANEvent();//轉(zhuǎn)發(fā)數(shù)據(jù)
}
...}
通過使用無線溫濕測(cè)量系統(tǒng)在工作環(huán)境中進(jìn)行當(dāng)?shù)丨h(huán)境氣候進(jìn)行測(cè)量,為了保證測(cè)量的結(jié)果和準(zhǔn)確性,我們?cè)诓煌臅r(shí)間進(jìn)行抽查測(cè)量,每過5分鐘時(shí)間段測(cè)量一次,測(cè)量一個(gè)小時(shí),并用MATLAB對(duì)數(shù)據(jù)進(jìn)行分析,溫度測(cè)量值與標(biāo)準(zhǔn)值比較圖如圖8所示以及濕度測(cè)量值與標(biāo)準(zhǔn)值比較圖如圖9所示。
圖8 溫度測(cè)量值與標(biāo)準(zhǔn)值比較圖Fig.8 Measurements and standard value comparison of temperature
圖9 濕度測(cè)量值與標(biāo)準(zhǔn)值比較圖Fig.9 Measurements and standard value comparison of humidity
文中基于CC2530芯片結(jié)合ZigBee2007/PRO協(xié)議,設(shè)計(jì)了一個(gè)無線溫濕度監(jiān)測(cè)系統(tǒng)并對(duì)系統(tǒng)功能做了實(shí)際驗(yàn)證,驗(yàn)證結(jié)果表明了本系統(tǒng)是切實(shí)可行的。系統(tǒng)不僅實(shí)現(xiàn)了對(duì)多個(gè)分散的節(jié)點(diǎn)的溫濕度監(jiān)控和數(shù)據(jù)的準(zhǔn)確傳輸,而且系統(tǒng)采用了網(wǎng)狀網(wǎng)的網(wǎng)絡(luò)結(jié)構(gòu)組建無線網(wǎng)絡(luò)使得監(jiān)控的范圍大幅度擴(kuò)大,在監(jiān)控范圍上比一般的采用星狀網(wǎng)結(jié)構(gòu)搭建網(wǎng)絡(luò)的監(jiān)控系統(tǒng)要大得多,同時(shí)這也使得本系統(tǒng)比星狀網(wǎng)結(jié)構(gòu)的網(wǎng)絡(luò)的節(jié)點(diǎn)容量大,在現(xiàn)在的無線檢測(cè)系統(tǒng)一般都采用星狀網(wǎng)結(jié)構(gòu)組網(wǎng)的形勢(shì)下本系統(tǒng)具有很大的市場(chǎng)優(yōu)勢(shì)。另外本系統(tǒng)的能穩(wěn)定性和可靠性也非常高使得本系統(tǒng)的環(huán)境適應(yīng)性非常強(qiáng),特別適用于工農(nóng)業(yè)環(huán)境現(xiàn)場(chǎng)和對(duì)環(huán)境因素要求比較苛刻的作業(yè)現(xiàn)場(chǎng)。
[1]李志方,鐘洪聲.CC2530的分布式無線數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)[J].單片機(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è)計(jì)無線網(wǎng)絡(luò)傳感器節(jié)點(diǎn)[J].計(jì)算機(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ì)[J].單片機(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)測(cè)系統(tǒng)設(shè)計(jì)[J].電子測(cè)量技術(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糧庫溫濕度檢測(cè)系統(tǒng)研究[J].長(zhǎng)春理工大學(xué)學(xué)報(bào):自然科學(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ì)[J].電子設(shè)計(jì)工程,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.