吳昊++彭懋磊++張亦梅
摘 要:為了滿足地震臺(tái)站觀測(cè)環(huán)境實(shí)時(shí)監(jiān)測(cè)的需求,設(shè)計(jì)了一種基于STM32F407和ZigBee的無線傳感器環(huán)境監(jiān)測(cè)系統(tǒng)。系統(tǒng)采用多種傳感器對(duì)觀測(cè)環(huán)境狀態(tài)進(jìn)行實(shí)時(shí)采集,STM32F407微處理器對(duì)采集到的數(shù)據(jù)進(jìn)行實(shí)時(shí)壓縮處理,并通過ZigBee無線網(wǎng)絡(luò)實(shí)現(xiàn)數(shù)據(jù)傳輸,最后將多個(gè)觀測(cè)點(diǎn)的環(huán)境監(jiān)測(cè)數(shù)據(jù)存儲(chǔ)在網(wǎng)關(guān)上位機(jī)中。文中給出了環(huán)境觀測(cè)終端采集節(jié)點(diǎn)、網(wǎng)關(guān)協(xié)調(diào)器的硬件設(shè)計(jì)和軟件流程。經(jīng)實(shí)際應(yīng)用表明,該系統(tǒng)具有易拓展、自動(dòng)組網(wǎng)、穩(wěn)定性好等優(yōu)點(diǎn),可廣泛應(yīng)用于多領(lǐng)域的環(huán)境監(jiān)測(cè)。
關(guān)鍵詞:STM32;ZigBee;CC2530;無線傳感器網(wǎng)絡(luò);LZO
中圖分類號(hào):TN919.72 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):2095-1302(2016)11-00-03
0 引 言
隨著地震臺(tái)站觀測(cè)儀器數(shù)量的不斷增多,整個(gè)地震臺(tái)站觀測(cè)系統(tǒng)變的越來越復(fù)雜,其受環(huán)境因素的影響也不容忽視。由于觀測(cè)環(huán)境潮濕、凝露等原因會(huì)導(dǎo)致電力設(shè)備絕緣性能下降;溫度變化則會(huì)影響電子元件的壽命及金屬材料的機(jī)械強(qiáng)度;電磁環(huán)境會(huì)對(duì)儀器的性能、數(shù)據(jù)質(zhì)量和解算精度產(chǎn)生影響;而UPS不間斷電源供電的穩(wěn)定性會(huì)影響數(shù)據(jù)記錄的完整性。為了減小環(huán)境因素的不利影響,提高觀測(cè)數(shù)據(jù)的可信度,必須對(duì)地震觀測(cè)系統(tǒng)所處的環(huán)境進(jìn)行實(shí)時(shí)監(jiān)測(cè),為后續(xù)補(bǔ)償控制提供依據(jù)。
常見的環(huán)境監(jiān)測(cè)系統(tǒng)采用有線方式傳輸數(shù)據(jù)。采用有線方式傳輸監(jiān)測(cè)數(shù)據(jù)具有可靠性高,實(shí)時(shí)性好等優(yōu)點(diǎn),但該方式通常布設(shè)繁瑣,不適合環(huán)境惡劣、布線不便的場(chǎng)合,且無法滿足臨時(shí)部署、快速部署等要求。針對(duì)以上情況,本文設(shè)計(jì)了一種低功耗多點(diǎn)無線環(huán)境監(jiān)測(cè)采集傳輸系統(tǒng),在硬件方面,整個(gè)系統(tǒng)由觀測(cè)環(huán)境終端采集節(jié)點(diǎn)、中繼節(jié)點(diǎn)和匯集網(wǎng)關(guān)組成。在軟件方面,為了滿足多個(gè)采集節(jié)點(diǎn)的數(shù)據(jù)實(shí)時(shí)傳輸需求,并盡量降低ZigBee通信信道的占用,故采用LZO(Lempel Ziv Oberhumer)算法對(duì)采集的數(shù)據(jù)進(jìn)行壓縮后傳輸,從而降低ZigBee網(wǎng)絡(luò)傳輸信道的數(shù)據(jù)量[1]。
1 系統(tǒng)整體結(jié)構(gòu)及設(shè)計(jì)方案
本無線環(huán)境監(jiān)測(cè)采集系統(tǒng)以某地震臺(tái)站的多個(gè)觀測(cè)室為背景,實(shí)現(xiàn)多點(diǎn)無線環(huán)境監(jiān)測(cè)及中繼遠(yuǎn)距離數(shù)據(jù)傳輸。系統(tǒng)總體結(jié)構(gòu)如圖1所示。該系統(tǒng)主要由觀測(cè)環(huán)境終端采集節(jié)點(diǎn)、網(wǎng)關(guān)(協(xié)調(diào)器)、上位機(jī)組成,當(dāng)網(wǎng)關(guān)協(xié)調(diào)器啟動(dòng)后,觀測(cè)環(huán)境終端采集節(jié)點(diǎn)在網(wǎng)關(guān)協(xié)調(diào)器的配合下自動(dòng)組網(wǎng)。環(huán)境終端采集節(jié)點(diǎn)將環(huán)境監(jiān)測(cè)數(shù)據(jù)實(shí)時(shí)壓縮后通過ZigBee網(wǎng)絡(luò)傳輸給網(wǎng)關(guān),當(dāng)傳輸路徑較遠(yuǎn)時(shí)可以增加中繼后傳輸給網(wǎng)關(guān)。網(wǎng)關(guān)協(xié)調(diào)器將各采集終端節(jié)點(diǎn)的數(shù)據(jù)通過以太網(wǎng)方式傳輸給計(jì)算機(jī)。
2 系統(tǒng)的硬件設(shè)計(jì)
系統(tǒng)硬件部分主要包括觀測(cè)環(huán)境終端采集節(jié)點(diǎn)和網(wǎng)關(guān)部分的設(shè)計(jì),系統(tǒng)總體框架如圖2所示。
觀測(cè)環(huán)境終端采集節(jié)點(diǎn)由環(huán)境采集傳感器、微處理器STMF32F407VGT6、ZigBee網(wǎng)絡(luò)收發(fā)芯片CC2530組成。當(dāng)系統(tǒng)啟動(dòng)時(shí),STM32F407首先完成環(huán)境采集傳感器及CC2530的初始化,環(huán)境采集傳感器將臺(tái)站觀測(cè)室的環(huán)境信息采集后傳遞給微處理器STMF32F407,微處理器STMF32F407將數(shù)據(jù)進(jìn)行實(shí)時(shí)壓縮處理后通過ZigBee網(wǎng)絡(luò)傳輸給網(wǎng)關(guān)協(xié)調(diào)器。
網(wǎng)關(guān)協(xié)調(diào)器部分由微處理器STMF32F407VGT6、ZigBee模塊CC2530和以太網(wǎng)W5500模塊組成。主要實(shí)現(xiàn)ZigBee網(wǎng)絡(luò)組網(wǎng)、數(shù)據(jù)收發(fā)、各觀測(cè)采集點(diǎn)數(shù)據(jù)匯聚并上傳至上位機(jī)等功能。
2.1 微處理器模塊
在本系統(tǒng)中,由于ZigBee傳輸信道較窄,在多個(gè)終端節(jié)點(diǎn)采集節(jié)點(diǎn)同時(shí)進(jìn)行數(shù)據(jù)采集時(shí),需要對(duì)采集到的數(shù)據(jù)進(jìn)行壓縮后再傳輸,因此采用STM32F407VGT6微處理器完成數(shù)據(jù)的壓縮處理、A/D轉(zhuǎn)換以及以太網(wǎng)模塊的控制。STMF32F407VGT6是基于Cortex-M4內(nèi)核的微處理器,帶有FPU單元,工作頻率為168 MHz,片上包含1 MB程序存儲(chǔ)器,192+4 KB的RAM,具有超低動(dòng)態(tài)功耗。在VBAT模式下,典型RTC小于1 A,適合低電壓或電池供電的應(yīng)用,僅需少量外圍電路即可正常工作。外圍電路結(jié)構(gòu)如圖3所示。
2.2 以太網(wǎng)模塊
以太網(wǎng)模塊用于網(wǎng)關(guān)協(xié)調(diào)器與上位機(jī)通訊,主要由W5500以太網(wǎng)芯片以及網(wǎng)絡(luò)變壓器PM4G-100KH組成。W5500通過SPI通訊協(xié)議與主控芯片STM32F407通信,除SPI協(xié)議所需的MISO、MOSI、SCLK和NSS信號(hào)線引腳與主控芯片相連外,還要RESET、INT和PWDN引腳與STM32的普通I/O連接。W5500采用低電平復(fù)位方式,需要在其復(fù)位引腳至少保持20 ms30 ms的復(fù)位時(shí)間。網(wǎng)絡(luò)變壓器PM4G-100KH用于以太網(wǎng)信號(hào)電氣隔離阻抗匹配以及電平耦合,增強(qiáng)以太網(wǎng)信號(hào)與延長(zhǎng)傳輸距離。其電路設(shè)計(jì)如圖4所示。
2.3 采集模塊
為精簡(jiǎn)硬件,降低硬件成本,提高硬件系統(tǒng)穩(wěn)定性,采集模塊采用STM32F407VGT6內(nèi)部自帶A/D模數(shù)轉(zhuǎn)換器,該模數(shù)轉(zhuǎn)換器是一個(gè)12位逐次比較趨近型A/D轉(zhuǎn)換器[2]。STM32F407內(nèi)部ADC有19個(gè)復(fù)用通道,可測(cè)量16個(gè)外部和3個(gè)內(nèi)部信號(hào)源。各通道的模數(shù)轉(zhuǎn)換均可采用單次、間斷模式或連續(xù)掃描方式執(zhí)行,通過對(duì)掃描方式的選擇,STM32F407可以對(duì)多個(gè)環(huán)境傳感器的模擬量進(jìn)行快速模數(shù)轉(zhuǎn)換。
2.4 ZigBee模塊
ZigBee網(wǎng)絡(luò)有對(duì)等結(jié)構(gòu)、樹簇結(jié)構(gòu)、星形結(jié)構(gòu)三種拓?fù)浣Y(jié)構(gòu)。考慮到星形結(jié)構(gòu)所需的協(xié)調(diào)器較少,而協(xié)調(diào)器的功耗通常是終端節(jié)點(diǎn)設(shè)備功耗的幾十倍,因此本系統(tǒng)采用星形結(jié)構(gòu)來降低環(huán)境監(jiān)測(cè)網(wǎng)絡(luò)的整體功耗[3]。
ZigBee模塊主要由CC2530芯片及其外圍電路組成。CC2530內(nèi)部集成了兼容IEEE802.15.4規(guī)范的微控制器、存儲(chǔ)器和RF收發(fā)器,其工作在主動(dòng)接收模式下的最低電流為24 mA,主動(dòng)發(fā)送模式在1 dBm輸出功率下的電流為29 mA。CC2530包含3種不同的工作模式,且工作電壓范圍為2 V3.6 V,可以滿足本系統(tǒng)低功耗應(yīng)用的特殊需求。其外圍電路如圖5所示。
3 系統(tǒng)的軟件設(shè)計(jì)
本系統(tǒng)軟件采用模塊化設(shè)計(jì)方式。軟件程序包括LZO壓縮算法子程序、觀測(cè)環(huán)境終端采集節(jié)點(diǎn)的程序設(shè)計(jì)、網(wǎng)關(guān)協(xié)調(diào)器程序設(shè)計(jì)以及上位機(jī)存儲(chǔ)顯示終端設(shè)計(jì)。
3.1 LZO算法程序設(shè)計(jì)
整個(gè)系統(tǒng)硬件設(shè)計(jì)中,考慮到當(dāng)采集終端節(jié)點(diǎn)數(shù)量增加時(shí),ZigBee網(wǎng)絡(luò)的吞吐率會(huì)成為傳輸通道瓶頸,在本設(shè)計(jì)中采用LZO壓縮算法來減小數(shù)據(jù)量,從而提高整個(gè)系統(tǒng)的傳輸效率。
LZO數(shù)據(jù)壓縮算法是一種數(shù)據(jù)無損壓縮算法,進(jìn)行實(shí)時(shí)LZO壓縮時(shí)需占用64 KB系統(tǒng)內(nèi)存,同時(shí)還需8 KB系統(tǒng)內(nèi)存作為壓縮級(jí)別。LZO壓縮執(zhí)行時(shí)具有較低內(nèi)存占用、壓縮效率高等特點(diǎn),適合在Cortex-M4微處理器中實(shí)現(xiàn)。此外,LZO解壓縮速度非常快,解壓過程無需占用內(nèi)存。LZO算法執(zhí)行流程如圖6所示。
3.2 觀測(cè)終端采集節(jié)點(diǎn)程序設(shè)計(jì)
觀測(cè)終端節(jié)點(diǎn)的主要功能是加入已有的ZigBee網(wǎng)絡(luò),接收ZigBee網(wǎng)絡(luò)的控制命令并收發(fā)數(shù)據(jù),將環(huán)境傳感器采集的模擬信號(hào)進(jìn)行實(shí)時(shí)模數(shù)轉(zhuǎn)換,并對(duì)轉(zhuǎn)換后的數(shù)據(jù)進(jìn)行LZO壓縮。
在給觀測(cè)終端節(jié)點(diǎn)加電后,STM32F407微處理器和ZigBee網(wǎng)絡(luò)芯片CC2530會(huì)分別進(jìn)入程序的初始化。STM32F407完成ADC模數(shù)轉(zhuǎn)換的初始化后,通過中斷方式輪詢轉(zhuǎn)換各通道的模擬量并對(duì)采集的數(shù)據(jù)進(jìn)行實(shí)時(shí)壓縮處理。CC2530芯片在初始化協(xié)議棧后會(huì)試圖加入已有的ZigBee網(wǎng)絡(luò),當(dāng)無法加入網(wǎng)絡(luò)時(shí),會(huì)自動(dòng)轉(zhuǎn)入低功耗模式以節(jié)省電能。加入網(wǎng)絡(luò)成功后,會(huì)自動(dòng)獲取網(wǎng)絡(luò)ID,等待網(wǎng)關(guān)協(xié)調(diào)器發(fā)送讀取數(shù)據(jù)命令。其程序流程如圖7所示。
圖7 終端采集節(jié)點(diǎn)流程
3.3 網(wǎng)關(guān)協(xié)調(diào)器的程序設(shè)計(jì)
在星形架構(gòu)的ZigBee網(wǎng)絡(luò)中,網(wǎng)關(guān)作為中央控制節(jié)點(diǎn),主要完成ZigBee網(wǎng)絡(luò)新建、數(shù)據(jù)收發(fā)以及相應(yīng)控制信號(hào)發(fā)送等功能。協(xié)調(diào)器具有自組織功能。在網(wǎng)關(guān)協(xié)調(diào)器上電時(shí),協(xié)調(diào)器首先進(jìn)行初始化工作,然后查詢通信信道,查找合適的信道建立ZigBee網(wǎng)絡(luò),并設(shè)置具有唯一標(biāo)識(shí)的ZigBee網(wǎng)絡(luò)PAN ID,最后等待觀測(cè)終端節(jié)點(diǎn)或者路由節(jié)點(diǎn)的加入。當(dāng)觀測(cè)到終端節(jié)點(diǎn)加入ZigBee網(wǎng)絡(luò)后,網(wǎng)關(guān)協(xié)調(diào)器就可以收發(fā)觀測(cè)終端節(jié)點(diǎn)傳送的數(shù)據(jù),當(dāng)校驗(yàn)收到的數(shù)據(jù)準(zhǔn)確無誤后,即傳送至STM32F407微處理器進(jìn)行處理。網(wǎng)關(guān)協(xié)調(diào)器程序流程如圖8所示。
3.4 上位機(jī)程序設(shè)計(jì)
上位機(jī)應(yīng)用程序的主要功能包括環(huán)境終端節(jié)點(diǎn)監(jiān)控?cái)?shù)據(jù)瀏覽、歷史環(huán)境監(jiān)測(cè)數(shù)據(jù)的存儲(chǔ)與索引、各觀測(cè)采集終端節(jié)點(diǎn)參數(shù)設(shè)置、ZigBee網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)顯示、數(shù)據(jù)實(shí)時(shí)解壓功能配置等。歷史環(huán)境數(shù)據(jù)的存儲(chǔ)與索引功能可方便用戶查看歷史環(huán)境監(jiān)測(cè)數(shù)據(jù),參數(shù)設(shè)置功能用于配置采集終端的采集通道、節(jié)點(diǎn)配置,網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)查看可以顯示網(wǎng)關(guān)協(xié)調(diào)器和采集節(jié)點(diǎn)之間的拓?fù)潢P(guān)系。
4 實(shí)驗(yàn)結(jié)果與分析
在結(jié)合實(shí)際的基礎(chǔ)上,對(duì)硬件和軟件進(jìn)行了測(cè)試。將環(huán)境終端采集節(jié)點(diǎn)和UPS供電裝置封裝在一起,網(wǎng)關(guān)協(xié)調(diào)器可使用上位機(jī)USB口直接供電。待終端采集節(jié)點(diǎn)與網(wǎng)關(guān)協(xié)調(diào)器成功通訊后,通過上位機(jī)設(shè)置遠(yuǎn)端節(jié)點(diǎn)的采集頻率、采集通道等參數(shù)。整個(gè)系統(tǒng)便開始環(huán)境監(jiān)測(cè)采集工作。上位機(jī)運(yùn)行界面如圖9所示。
5 結(jié) 語
針對(duì)地震臺(tái)站觀測(cè)環(huán)境實(shí)時(shí)監(jiān)測(cè)需求,本文采用基于Cortex-M4內(nèi)核的STM32F407微處理器和ZigBee無線網(wǎng)絡(luò)構(gòu)建臺(tái)站環(huán)境監(jiān)測(cè)采集傳輸系統(tǒng),具有易組網(wǎng)、低功耗、易擴(kuò)展的特點(diǎn)??赏瑫r(shí)采集多個(gè)不同觀測(cè)環(huán)境現(xiàn)場(chǎng)的實(shí)時(shí)環(huán)境狀態(tài),采集終端采用模塊化設(shè)計(jì)以便于后期的功能擴(kuò)展。在多個(gè)地震觀測(cè)臺(tái)站進(jìn)行測(cè)試,達(dá)到了良好的效果,表明該系統(tǒng)具有廣泛的應(yīng)用前景。
參考文獻(xiàn)
[1]李玉爽,劉東明,朱愛玲.基于LZO算法的嵌入式高速無線數(shù)據(jù)采集系統(tǒng)[J].電子測(cè)量技術(shù),2011,34(7):67-70.
[2]彭紅星,郭威.基于STM32的礦井微震數(shù)據(jù)采集監(jiān)測(cè)分站[J].儀表技術(shù)與傳感器,2013(10):67-69.
[3]王驥,林杰華,謝仕義.基于無線傳感網(wǎng)絡(luò)的環(huán)境監(jiān)測(cè)系統(tǒng)[J].傳感技術(shù)學(xué)報(bào),2015,28(11):1732-1740.
[4]李軍科,吳建軍,石祖?zhèn)?基于F2806平臺(tái)碳硫分析儀數(shù)據(jù)采集板設(shè)計(jì)[J].計(jì)算機(jī)測(cè)量與控制,2015,23(11):3773-3776.
[5]方浩,李艾華,王濤,等.基于STM32單片機(jī)的智能槍柜系統(tǒng)設(shè)計(jì)[J].電子技術(shù)應(yīng)用,2014,40(3):12-14.
[6]張河新,王曉輝,黃曉東.基于STM32和CAN總線的智能數(shù)據(jù)采集節(jié)點(diǎn)設(shè)計(jì)[J].化工自動(dòng)化及儀表,2012,39(1):78-80.