吳遠(yuǎn)星,王雪梅,倪文波
(西南交通大學(xué)機(jī)械工程學(xué)院,四川 成都 610031)
保持良好的客車內(nèi)部環(huán)境是提高客車乘坐舒適性的重要內(nèi)容之一[1]。本文所設(shè)計(jì)的監(jiān)測系統(tǒng)選取了溫度、濕度、氣壓和CO濃度4個環(huán)境參量作為監(jiān)測對象[2-3]。為全面反映車廂內(nèi)部環(huán)境狀況,需檢測、綜合不同空間位置上的環(huán)境參數(shù)[4]。傳統(tǒng)的監(jiān)測方案一般采用EIA485或CAN等有線方式把多個分散的數(shù)據(jù)采集模塊連接起來形成一個分布式的監(jiān)測系統(tǒng)[5]。這種方式的好處是通信可靠性高、成本低廉,但是需要布線,不僅浪費(fèi)空間,而且限制采集節(jié)點(diǎn)的安放位置選擇。
ZigBee技術(shù)是一種新近出現(xiàn)的近距離、低復(fù)雜度、自組織、低功耗、低數(shù)據(jù)速率和低成本的無線網(wǎng)絡(luò)通信技術(shù)[6]。其本身保證的數(shù)據(jù)傳輸速率和可靠性也適用于低速率的、非關(guān)鍵性的環(huán)境參數(shù)采集場合。鑒于此,本文研制了基于ZigBee無線傳感器網(wǎng)絡(luò)的環(huán)境參數(shù)監(jiān)測實(shí)驗(yàn)系統(tǒng),并將其成功應(yīng)用于西南交通大學(xué)機(jī)車車輛實(shí)驗(yàn)室相關(guān)實(shí)驗(yàn)中。
系統(tǒng)總體方案的原理框圖如圖1所述。整個監(jiān)測系統(tǒng)由車輛管理計(jì)算機(jī)(上位機(jī))和一個ZigBee無線傳感器網(wǎng)絡(luò)組成。ZigBee無線傳感器網(wǎng)絡(luò)中有協(xié)調(diào)器、路由器和終端節(jié)點(diǎn)3種設(shè)備。其中協(xié)調(diào)器為網(wǎng)絡(luò)的發(fā)起和管理者;路由器負(fù)責(zé)路由轉(zhuǎn)發(fā)遠(yuǎn)方節(jié)點(diǎn)的信息,從而擴(kuò)充網(wǎng)絡(luò)的覆蓋范圍;終端節(jié)點(diǎn)即數(shù)據(jù)采集模塊。為省去電源線,使用兩節(jié)七號電池給終端采集節(jié)點(diǎn)供電。一個ZigBee網(wǎng)絡(luò)中有且僅有一個協(xié)調(diào)器,而路由器或終端節(jié)點(diǎn)則可以有多個。根據(jù)學(xué)校機(jī)車車輛實(shí)驗(yàn)室的車輛內(nèi)部空間和設(shè)備的分布,選擇了樹狀網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)。
車輛管理計(jì)算機(jī)通過USB接口與ZigBee無線傳感器網(wǎng)絡(luò)的協(xié)調(diào)器相互傳遞數(shù)據(jù)。數(shù)據(jù)采集模塊將采集到的環(huán)境參數(shù)直接或者通過路由器發(fā)送給協(xié)調(diào)器,協(xié)調(diào)器再實(shí)時轉(zhuǎn)發(fā)給車輛管理計(jì)算機(jī);管理計(jì)算機(jī)也可通過協(xié)調(diào)器給所有采集模塊發(fā)送命令。
圖1 系統(tǒng)原理框圖
系統(tǒng)硬件電路主要包括實(shí)現(xiàn)ZigBee網(wǎng)絡(luò)的無線射頻電路和實(shí)現(xiàn)環(huán)境參數(shù)采集的傳感器電路。為了節(jié)約成本和提高系統(tǒng)的可靠性,無線射頻電路利用市場上成熟的CC2430無線通信模塊實(shí)現(xiàn)。該模塊主要由一顆CC2430微控制器、少量的阻容器件以及天線組成。CC2430芯片內(nèi)部整合了高性能2.4 GHz ZigBee射頻(RF)前端、128 KB的片內(nèi)Flash和一顆加強(qiáng)型8051微控制器。CC2430芯片性能穩(wěn)定且功耗極低,特別適合于那些要求電池壽命非常長的應(yīng)用。而且芯片硬件支持CSMA/CA功能,無線接收靈敏度高、抗干擾能力強(qiáng)[7]。該模塊數(shù)據(jù)傳輸速率最大250kb/s,完全滿足本系統(tǒng)的無線通信要求。
ZigBee協(xié)調(diào)器電路結(jié)構(gòu)如圖2所示。協(xié)調(diào)器電路由電源、CC2430通信模塊、復(fù)位電路、USB通信接口等4部分組成。CC2430模塊本身具有兩個獨(dú)立的串口。其中一個串口通過FT232RL芯片轉(zhuǎn)化為USB接口與車輛管理計(jì)算機(jī)通信。整個電路模塊從USB總線上獲取電能。
圖2 協(xié)調(diào)器硬件結(jié)構(gòu)框圖
圖3 路由器/終端節(jié)點(diǎn)硬件結(jié)構(gòu)框圖
路由器和終端節(jié)點(diǎn)使用同樣的硬件電路,其電路結(jié)構(gòu)框圖如圖3所示。由于終端節(jié)點(diǎn)使用電池供電,因此必須盡量選用低功耗的傳感器。本文選用了SHT10傳感器來測量溫濕度。SHT10具有穩(wěn)定性好、響應(yīng)速度快、抗干擾能力強(qiáng)和性價比高等優(yōu)點(diǎn),其平均功耗僅150μW,并可自動進(jìn)入待機(jī)休眠狀態(tài)。SHT10溫度準(zhǔn)確度±0.5℃,相對濕度準(zhǔn)確度±4.5%RH,使用兩線制數(shù)字接口。氣壓測量選用MS5540C氣壓傳感器。該傳感器測量范圍為10~1100mbar,平均功耗僅10 μW,可自動轉(zhuǎn)入休眠狀態(tài)。MS5540C是一款小巧的壓阻式硅微機(jī)數(shù)字輸出傳感器,同時可輸出16位的溫度數(shù)字值。MS5540內(nèi)部的可編程存儲器中存有6個補(bǔ)償系數(shù)。根據(jù)這些補(bǔ)償系數(shù)可先后對氣壓測量結(jié)果作兩次補(bǔ)償?shù)玫健?.5mbar的氣壓測量精度。MS5540C使用其獨(dú)有的三線數(shù)字通信協(xié)議與微控制器通信。CO濃度測量選擇的是ME2-CO傳感器。ME2-CO是一種電化學(xué)傳感器,其本身是一個微型化學(xué)電池,無需電源,因此功耗極低。該傳感器靈敏度為0.015μA/ppm,測量重復(fù)性好,線性度高。圖4為傳感器電路原理圖。
ZigBee協(xié)議棧是指一組可實(shí)現(xiàn)ZigBee協(xié)議規(guī)范的代碼,支持ZigBee協(xié)議的應(yīng)用必須在此基礎(chǔ)上開發(fā)。本系統(tǒng)選用TI公司推出的ZigBee2006協(xié)議棧ZStack-1.4.2。ZStack-1.4.2完整實(shí)現(xiàn)ZigBee聯(lián)盟和IEEE 802.15規(guī)定的協(xié)議規(guī)范,具有功能完整、結(jié)構(gòu)清晰、應(yīng)用廣泛等特點(diǎn)[8],是開發(fā)ZigBee應(yīng)用的較為不錯的選擇。利用ZStack提供的基本程序框架和接口函數(shù),用戶可很方便地構(gòu)建自己的ZigBee應(yīng)用。
ZStack基于一個名為OSAL(operation system abstraction layer)的程序框架實(shí)現(xiàn)。OSAL是以實(shí)現(xiàn)多任務(wù)為核心的某種系統(tǒng)資源管理機(jī)制,可看成是一個簡易的基于任務(wù)優(yōu)先級的多任務(wù)、非搶占型操作系統(tǒng)。ZigBee協(xié)議規(guī)范中各層規(guī)定的原語操作均以具有優(yōu)先級的任務(wù)的形式嵌入到OSAL當(dāng)中實(shí)現(xiàn)。每個任務(wù)處理函數(shù)由若干個事件處理函數(shù)構(gòu)成。OSAL以一定的順序不斷地輪詢各層任務(wù),一旦某一層任務(wù)有事件發(fā)生時,OSAL便會跳到相應(yīng)任務(wù)處理函數(shù)中的相應(yīng)事件處理函數(shù)中去完成事件的處理。事件處理完后又從最高優(yōu)先級任務(wù)開始輪詢,如此周而復(fù)始。當(dāng)一輪循環(huán)中找不到待處理任務(wù)時,系統(tǒng)將進(jìn)入低功耗模式直到下一個事件發(fā)生。ZStack程序流程圖如圖5所示。
ZigBee協(xié)議規(guī)范把應(yīng)用抽象為“端點(diǎn)”,端點(diǎn)駐扎在設(shè)備對象層(ZDO)上。每個設(shè)備最多有1~240個端點(diǎn),端點(diǎn)0可看做設(shè)備本身。不同設(shè)備之間的通信實(shí)際上是不同設(shè)備端點(diǎn)之間的通信。ZigBee協(xié)議規(guī)范使用一種稱為簡單描述符的數(shù)據(jù)結(jié)構(gòu)來描述端點(diǎn)。簡單描述符由端點(diǎn)號、設(shè)備號、版本號、簇等描述性信息組成。簇指一組屬性——如溫度、濕度等物理量的集合。簇分為輸入簇和輸出簇,即信息的流入和流出。一個設(shè)備上的輸入簇和另一個設(shè)備上的輸出簇配對。為使協(xié)調(diào)器能和終端采集節(jié)點(diǎn)或路由節(jié)點(diǎn)相互通信,給協(xié)調(diào)器定義了兩個輸入簇,一個輸出簇:一個輸入簇用于接收采集模塊的采集報(bào)告,另一個用于接收其他節(jié)點(diǎn)對協(xié)調(diào)器發(fā)出的命令的響應(yīng),輸出簇則用于向終端采集節(jié)點(diǎn)或路由節(jié)點(diǎn)發(fā)送命令。路由器和終端節(jié)點(diǎn)中定義的輸入輸出簇與協(xié)調(diào)器相反。
協(xié)調(diào)器在所有任務(wù)層完成初始化后自動建立網(wǎng)絡(luò)。之后,在每次操作系統(tǒng)大循環(huán)中協(xié)調(diào)器都要查詢串口。如果上位機(jī)有數(shù)據(jù)傳送至協(xié)調(diào)器,將會產(chǎn)生一個發(fā)送給應(yīng)用層的系統(tǒng)消息,這將觸發(fā)應(yīng)用層的用戶事件。協(xié)調(diào)器的無線數(shù)據(jù)接收最終觸發(fā)應(yīng)用層的數(shù)據(jù)接收事件,在該事件處理函數(shù)中對接收到的數(shù)據(jù)作進(jìn)一步處理。數(shù)據(jù)采集報(bào)告在該事件處理函數(shù)中被通過串口發(fā)往上位機(jī)。
路由器和終端節(jié)點(diǎn)完成所有層的任務(wù)初始化后會自動搜索網(wǎng)絡(luò)(掃描信道),并加入?yún)f(xié)調(diào)器發(fā)起的網(wǎng)絡(luò)(如果此時協(xié)調(diào)器存在并且成功啟動)中。之后,路由器或終端節(jié)點(diǎn)向協(xié)調(diào)器發(fā)送綁定請求。獲得協(xié)調(diào)器的允許綁定響應(yīng)后,終端節(jié)點(diǎn)觸發(fā)周期性傳感器報(bào)告事件,在該事件中完成環(huán)境參數(shù)的采集并以一定的格式將采集結(jié)果無線發(fā)送至協(xié)調(diào)器。
圖4 傳感器電路原理圖
圖5 ZStack程序流程圖
本系統(tǒng)中的ZigBee網(wǎng)絡(luò)是一種非信標(biāo)的網(wǎng)絡(luò)。終端節(jié)點(diǎn)和路由節(jié)點(diǎn)周期性地向協(xié)調(diào)器發(fā)送數(shù)據(jù)采集報(bào)告,協(xié)調(diào)器根據(jù)應(yīng)用程序可主動向網(wǎng)絡(luò)中的成員廣播或單播命令。終端節(jié)點(diǎn)大部分時間處于休眠狀態(tài),只在有事件發(fā)生時醒來。這使得終端節(jié)點(diǎn)具有很低的功耗。
上位機(jī)監(jiān)控程序基于LabVIEW10.0平臺開發(fā)。其主要功能是圖形化顯示各采集模塊采集的數(shù)據(jù),如溫濕度、氣壓、CO濃度、露點(diǎn)(根據(jù)溫濕度算得)、海拔高度(根據(jù)氣壓、溫度算得)、顯示當(dāng)前網(wǎng)絡(luò)成員、CO濃度超限報(bào)警、顯示采集模塊電池電壓、歷史數(shù)據(jù)記錄等。此外,上位機(jī)還可對協(xié)調(diào)器發(fā)送一些命令,如重新設(shè)置傳感器采樣頻率、復(fù)位所有采集節(jié)點(diǎn)、獲取并顯示當(dāng)前網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)等。實(shí)驗(yàn)過程中,系統(tǒng)通信穩(wěn)定,網(wǎng)絡(luò)在被暫時阻斷情況下可自行快速修復(fù)。
測試過程中,終端采集節(jié)點(diǎn)休眠電流在0.5~7mA的范圍內(nèi)跳動。如果減少單個采集模塊上的傳感器種類,適當(dāng)降低傳感器采樣頻率,功耗還可進(jìn)一步減小。實(shí)驗(yàn)時只采用4個終端采集節(jié)點(diǎn)。如果要擴(kuò)大監(jiān)測范圍,可增加采集節(jié)點(diǎn)和路由器的個數(shù)。這時無須使其他改變,增加上位機(jī)顯示單元即可。
本文設(shè)計(jì)了基于ZigBee無線傳感器網(wǎng)絡(luò)的列車車廂內(nèi)部環(huán)境參數(shù)監(jiān)測系統(tǒng),并將其成功應(yīng)用于西南交通大學(xué)機(jī)車車輛相應(yīng)實(shí)驗(yàn)系統(tǒng)中。相對于原先的有線檢測方案,本系統(tǒng)具有通信方式靈活、安裝方便快捷、易于配置和方便增加采集節(jié)點(diǎn)數(shù)量的良好特點(diǎn);同時針對原系統(tǒng)上位機(jī)軟件功能單一、交互性弱的不足,設(shè)計(jì)了基于LabVIEW虛擬儀器平臺的功能豐富、交互性強(qiáng)的上位機(jī)軟件,使得系統(tǒng)的實(shí)用性和易用性更強(qiáng)。最后經(jīng)實(shí)驗(yàn)檢驗(yàn),系統(tǒng)性能表現(xiàn)良好,達(dá)到預(yù)期設(shè)計(jì)的功能要求。
[1]張吉光,王利,史自強(qiáng),等.空調(diào)客車車內(nèi)空氣品質(zhì)的評價方法[J].鐵道機(jī)車車輛,2001,39(3):22-23.
[2]趙恒.空調(diào)列車室內(nèi)微循環(huán)研究現(xiàn)狀綜述[J].鐵道機(jī)車車輛,2005,25(1):44-47.
[3]滕廣武,歐陽仲志.鐵路高速動車組空調(diào)試驗(yàn)和舒適性要求[J].鐵道車輛,2009,37(10):30-32.
[4]兆文忠,曹亞楠,王東屏,等.高速動車組空調(diào)系統(tǒng)數(shù)值仿真及引入U(xiǎn)IC標(biāo)準(zhǔn)的評價[J].大連交通大學(xué)學(xué)報(bào),2011,32(1):7-10.
[5]吳曉娜,王雪梅,倪文波.基于CAN總線的客車車內(nèi)環(huán)境實(shí)驗(yàn)檢測系統(tǒng)設(shè)計(jì)[J].中國測試,2010,36(6):82-85.
[6]周怡寤,凌志浩,吳勤勤.ZigBee無線通信技術(shù)及其應(yīng)用探討[J].自動化儀表,2005,26(6):5-9.
[7]蔣凌云,馬奧,呂亞超,等.基于CC2430片上溫度傳感器的溫度監(jiān)控系統(tǒng)[J].計(jì)算機(jī)技術(shù)與發(fā)展,2012,22(4):191-194.
[8]馬駿.基于ZigBee技術(shù)的嵌入式監(jiān)控系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[D].成都:電子科技大學(xué),2009:52-97.