基于ZigBee協(xié)議的溫濕度監(jiān)測系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
環(huán)境溫濕度是影響工農(nóng)業(yè)生產(chǎn)的重要因素,而傳統(tǒng)的溫濕監(jiān)測系統(tǒng)多以人為主體,不僅費(fèi)時(shí)費(fèi)力,且在某些監(jiān)測系統(tǒng)中,危險(xiǎn)系數(shù)也較高。近年來,通過無線傳感器網(wǎng)絡(luò)對工農(nóng)業(yè)生產(chǎn)環(huán)境實(shí)時(shí)地監(jiān)測、監(jiān)控已成為行業(yè)研究的熱點(diǎn)。由于采用了無線網(wǎng)絡(luò),使得數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)更加安全、可靠和智能化。ZigBee作為一種低功耗、低成本、易于開發(fā)和應(yīng)用的無線通信技術(shù),被廣泛應(yīng)用于無線數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)中。但實(shí)際應(yīng)用中,基于ZigBee的數(shù)據(jù)采集系統(tǒng)仍不同程度的面臨以下問題:傳輸距離短;可擴(kuò)展性差,若終端節(jié)點(diǎn)增加其他用途的測量傳感器,多需重新設(shè)計(jì)連接電路;為增加傳輸距離而引入的射頻前端占用主控芯片的引腳資源等。
為實(shí)現(xiàn)對工農(nóng)業(yè)生產(chǎn)環(huán)境中的溫濕度進(jìn)行實(shí)時(shí)、準(zhǔn)確地監(jiān)測,及時(shí)為生產(chǎn)策略的調(diào)整提供更多、更具價(jià)值的數(shù)據(jù)分析依據(jù),文中設(shè)計(jì)了以CC2530和RFX2401C為射頻單元、SHT 71為傳感節(jié)點(diǎn)的ZigBee監(jiān)測網(wǎng)絡(luò)。
1 系統(tǒng)設(shè)計(jì)
該監(jiān)測系統(tǒng)主要由一個(gè)直接與上位機(jī)相連的ZigBee協(xié)調(diào)器,兩個(gè)SHT71傳感器數(shù)據(jù)采集節(jié)點(diǎn)組成。為實(shí)現(xiàn)ZigBee數(shù)據(jù)采集網(wǎng)絡(luò),分別進(jìn)行系統(tǒng)的軟硬件設(shè)計(jì):系統(tǒng)硬件主要負(fù)責(zé)采集周圍環(huán)境的溫濕度數(shù)據(jù)信息;系統(tǒng)軟件則負(fù)責(zé)數(shù)據(jù)信息的傳遞與處理等功能。
2 系統(tǒng)硬件設(shè)計(jì)
協(xié)調(diào)器和傳感器終端節(jié)點(diǎn)的核心為CC2530F256芯片。CC2530F256是TI公司生產(chǎn)的一款片上系統(tǒng)(System On a Chip,SOC)解決方案,應(yīng)用于2.4 GHz頻段,支持IEEE802.1 5.4、ZigBee和RF4CE。該芯片結(jié)合了領(lǐng)先的RF(Radio Frequency,RF)收發(fā)器的優(yōu)良性能、工業(yè)增強(qiáng)型8051 MCU內(nèi)核、系統(tǒng)內(nèi)256 kB可編程閃存Flash、8 kB RAM、支持CSMA/CA功能、多種工作模式以滿足低功耗系統(tǒng)的需求。CC2530芯片系列尺寸更小,價(jià)格普遍低于CC2430/CC2431芯片,傳輸距離更遠(yuǎn),支持目前普遍使用的ZigBee-2007/PRO協(xié)議。Zig Bee 2007/PRO相對于以前的協(xié)議棧具有更好的互操作性、節(jié)點(diǎn)密度管理、數(shù)據(jù)負(fù)荷管理、支持網(wǎng)狀網(wǎng)絡(luò)等特點(diǎn)。同時(shí),與CC2430相比,CC2530片上通用I/O口,均具有獨(dú)立的中斷請求能力,設(shè)計(jì)者可自定義中斷請求引腳?;谝陨蟽?yōu)點(diǎn),運(yùn)用CC2530設(shè)計(jì)出的節(jié)點(diǎn)通信距離更遠(yuǎn),組網(wǎng)性能更穩(wěn)定可靠,且性價(jià)比更高,適用于系統(tǒng)設(shè)計(jì)。但CC2530本身具有的射頻功能只適用于小功率傳感網(wǎng)絡(luò),為增加節(jié)點(diǎn)的傳輸距離,采用RFX2401C作為射頻前端,以放大輸出功率。RF射頻模塊電路如圖1所示。RFX2401C只需2個(gè)控制引腳,P1.1和P1.4,RXEN為高電平時(shí),TXEN決定數(shù)據(jù)的收發(fā)。與采用CC2591的射頻前端放大電路相比,連接、控制簡單,節(jié)省引腳資源。在室外測試環(huán)境中,引入RFX2401C的ZigBee網(wǎng)絡(luò),通信距離平均增加了約60 m。
2.1 協(xié)調(diào)器節(jié)點(diǎn)硬件設(shè)計(jì)
協(xié)調(diào)器為全功能設(shè)備(Full Function Device,F(xiàn)FD),是ZigBee傳感器網(wǎng)絡(luò)的中心,負(fù)責(zé)網(wǎng)絡(luò)的組建、維護(hù)、管理及協(xié)調(diào)各傳感器節(jié)點(diǎn)的工作。協(xié)調(diào)器節(jié)點(diǎn)硬件電路主要由RF射頻模塊、RS232串口模塊和電源模塊組成。射頻模塊如圖1所示,主要負(fù)責(zé)無線傳輸數(shù)據(jù),增加RFX2401C芯片以提高傳輸距離,P0.2、P0.3用作串口通信引腳;RS232串口模塊用于協(xié)調(diào)器與上位機(jī)通信,使用SP3223E完成RS232與TTL間的電平轉(zhuǎn)換,電路連接如圖2所示;5 V電源通過TPS79533低壓穩(wěn)壓器輸出穩(wěn)定的3.3 V工作電壓,對ZigBee射頻模塊和SP3223E供電。
2.2 傳感器節(jié)點(diǎn)硬件設(shè)計(jì)
傳感器節(jié)點(diǎn)多為簡化功能設(shè)備(Reduce Function Device,RFD),其功能簡單,無需進(jìn)行復(fù)雜的數(shù)據(jù)處理,且接口外設(shè)較少。該節(jié)點(diǎn)的射頻模塊設(shè)計(jì)與協(xié)調(diào)器節(jié)點(diǎn)相同,采用的傳感器為數(shù)字溫濕度傳感器SHT71。SHT71內(nèi)部包括電容式聚合體測濕部件及能隙式測溫部件、校驗(yàn)存儲(chǔ)器等,與一個(gè)14位的A/D轉(zhuǎn)換器和二線雙向串行接口電路在同一芯片上實(shí)現(xiàn)無縫連接。默認(rèn)測量分辨率為14 bit(溫度)、12 bit(濕度),在高速或超低功耗的應(yīng)用中可將分辨率分別降至12 bit和8 bit。該傳感器工作性能穩(wěn)定、可靠,與MCU之間以二線雙向串行接口方式通信,連接電路如圖3所示。此外,電源引腳(Vdd,GND)之間還封裝了一個(gè)100 nF的去耦濾波電容。
SCK用于MCU與傳感器之間的同步通信,DATA三態(tài)門用于數(shù)據(jù)的讀取。通過“啟動(dòng)傳輸”時(shí)序,完成數(shù)據(jù)傳輸?shù)某跏蓟ぷ?,然后通過傳輸相應(yīng)的命令指定SHT71的工作方式。測量過程為:微控制器先發(fā)一組測量指令,SHT71測量完成后,下拉DATA至低電平表示測量結(jié)束,接著傳輸2個(gè)字節(jié)的測量數(shù)據(jù)和1 Byte的CRC奇偶校驗(yàn),其測量時(shí)序如圖4所示。
實(shí)驗(yàn)中,電源電壓為5 V,溫濕傳感器的分辨率分別為12和8位。由于SHT71內(nèi)部溫度傳感器的線性度較好,直接利用式(1)計(jì)算實(shí)際溫度值T
T=d1+d2·SOT (1)
其中,d1=-40,d2=0.04,SOT為溫度測量值。而濕度傳感器的線性度較差,為補(bǔ)償濕度傳感器的非線性以獲取準(zhǔn)確數(shù)據(jù),采用式(2)修正輸出數(shù)值RHline
c1=-4,c2=0.648,c3=-7.2×10-4,SORH為濕度傳感器相對濕度測量值。在測量與通信結(jié)束后,SHT71自動(dòng)轉(zhuǎn)入休眠模式,以減少能耗。
3 系統(tǒng)軟件設(shè)計(jì)
3.1 ZigBee協(xié)議棧
ZigBee協(xié)議由IEEE802.15.4定義的物理層(PHY)、媒體訪問控制層(MAC)、ZigBee聯(lián)盟定義的網(wǎng)絡(luò)層(NWK)、應(yīng)用層(APL)及安全協(xié)議規(guī)范組成。協(xié)議??蚣苋鐖D5所示。
ZigBee支持星型、樹形和網(wǎng)狀型3種拓?fù)浣Y(jié)構(gòu)。在星型網(wǎng)絡(luò)中,所有的終端設(shè)備均只與協(xié)調(diào)器通信,不同終端的數(shù)據(jù)交換需通過協(xié)調(diào)器實(shí)現(xiàn),故星型網(wǎng)為單跳網(wǎng)絡(luò)。樹形和網(wǎng)狀網(wǎng)具有在網(wǎng)絡(luò)間對數(shù)據(jù)包路由的功能,因而為多跳網(wǎng)絡(luò)。為簡化設(shè)計(jì),實(shí)驗(yàn)室中以協(xié)調(diào)器為中心,組建星型網(wǎng)絡(luò)。
軟件設(shè)計(jì)上,采用符合ZigBee2007規(guī)范的ZStack-2.3.0協(xié)議棧,可兼容CC2530片上系統(tǒng)解決方案;開發(fā)環(huán)境為IAR EW,使用C語言編寫應(yīng)用程序。ZStack協(xié)議棧中嵌入了OSAL(Operating System Abstraction Layer)多任務(wù)操作系統(tǒng),以便于對ZigBee協(xié)議進(jìn)行管理。當(dāng)某事件時(shí)間發(fā)生后,OSAL根據(jù)事件類型將其分配給能處理該事件的具體任務(wù),并對事件加以處理。
協(xié)調(diào)器負(fù)責(zé)ZigBee無線傳感網(wǎng)絡(luò)的組建。通電后,分別對硬件模塊和OSAL初始化。在周圍空間進(jìn)行能量檢測和信道掃描,選擇一個(gè)合適的信道組建無線網(wǎng)絡(luò)。為網(wǎng)絡(luò)分配一個(gè)PANID標(biāo)識(shí),并為該ZigBee協(xié)調(diào)節(jié)點(diǎn)分配一個(gè)16位網(wǎng)絡(luò)短地址(默認(rèn)為0x0000)。在組網(wǎng)成功后,接收傳感器節(jié)點(diǎn)的入網(wǎng)請求并為其分配網(wǎng)絡(luò)地址、接收傳感器節(jié)點(diǎn)發(fā)送的溫濕度數(shù)據(jù)信息及上位機(jī)的控制命令等。協(xié)調(diào)器主體工作流程如圖6所示。
傳感器終端節(jié)點(diǎn)主要負(fù)責(zé)溫濕度的采集。初始化后掃描空間中是否有ZigBee網(wǎng)絡(luò)存在,若有,則申請加入,并周期性發(fā)送溫濕度測量數(shù)據(jù)給協(xié)調(diào)器,其工作流程如圖7所示。
3.2 上位機(jī)監(jiān)控界面
在Microsoft Visual Stdio 2010開發(fā)平臺(tái)中,利用C#/.NET。開發(fā)上位機(jī)用戶監(jiān)控界面。傳感器節(jié)點(diǎn)采集的數(shù)據(jù)以ZigBee無線方式傳遞給協(xié)調(diào)器,再由協(xié)調(diào)器遞交給上位機(jī)處理和顯示。圖8為溫濕度實(shí)時(shí)監(jiān)測界面,橫軸為測量時(shí)間,縱軸為SHT71采集的數(shù)據(jù)。突變處是人為干預(yù)時(shí)產(chǎn)生的現(xiàn)象??梢姡琒HT71有較好的靈敏度及穩(wěn)定性。
4 結(jié)束語
文中利用CC2530和SHT71,設(shè)計(jì)并實(shí)現(xiàn)了可對溫濕度進(jìn)行無線采集的監(jiān)測系統(tǒng)。在射頻前端加入RFX2401C功放單元,有效增加了傳輸距離。系統(tǒng)將傳感器終端節(jié)點(diǎn)采集的溫濕信息經(jīng)ZigBee網(wǎng)絡(luò)傳遞給上位機(jī)存儲(chǔ)和實(shí)時(shí)顯示,便于生產(chǎn)人員分析處理。設(shè)計(jì)中,由于采用星型單跳網(wǎng)絡(luò),ZigBee網(wǎng)絡(luò)覆蓋范圍小,可加入的傳感器節(jié)點(diǎn)數(shù)目有限,滿足實(shí)驗(yàn)中的應(yīng)用要求,而應(yīng)用在實(shí)際的生產(chǎn)過程中可能存在一定限制。下一步研究的重點(diǎn)是在傳感器節(jié)點(diǎn)增加路由功能或引入有路由功能的RFD,組建網(wǎng)狀或樹形網(wǎng)絡(luò),增加ZigBee網(wǎng)絡(luò)的覆蓋范圍。另外,設(shè)計(jì)擁有更多功能的傳感器節(jié)點(diǎn),以采集多種類型的環(huán)境因子,使系統(tǒng)更具實(shí)用價(jià)值。