王 濤
(中國(guó)電子科技集團(tuán)公司第20研究所,西安 710068)
?
一種無線傳感器網(wǎng)絡(luò)數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
王濤
(中國(guó)電子科技集團(tuán)公司第20研究所,西安 710068)
摘要:提出了一種無線傳感器網(wǎng)絡(luò)數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)方法,并以溫度數(shù)據(jù)采集為例,介紹了該系統(tǒng)的軟硬件實(shí)現(xiàn)方法。系統(tǒng)使用短距無線傳輸與遠(yuǎn)距離以太網(wǎng)傳輸將多個(gè)傳感器數(shù)據(jù)傳輸?shù)胶笈_(tái)監(jiān)測(cè)中心,并在后臺(tái)監(jiān)測(cè)程序開發(fā)中使用監(jiān)視與控制通用系統(tǒng)(MCGS)組態(tài)軟件實(shí)現(xiàn)數(shù)據(jù)的可視化。本系統(tǒng)通用性強(qiáng),只要更換傳感器就可實(shí)現(xiàn)對(duì)任意傳感器數(shù)據(jù)的采集,可滿足各種使用需要。
關(guān)鍵詞:數(shù)據(jù)采集;傳感器;監(jiān)視與控制通用系統(tǒng)
1技術(shù)背景
隨著傳感器技術(shù)的廣泛使用,傳感器被布放于各種環(huán)境下以獲取人們關(guān)心的物理量(如溫度、氣壓、場(chǎng)強(qiáng)等)。傳統(tǒng)嵌入式傳感器數(shù)據(jù)采集系統(tǒng)使用微控制單元(MCU)將傳感器原始數(shù)據(jù)采集后通過有線信道如通用異步收發(fā)傳輸器(UART)或以太網(wǎng)傳輸至后臺(tái)處理程序,由后臺(tái)處理程序?qū)鞲衅鲾?shù)據(jù)進(jìn)行解算、保存、分析等操作。筆者基于MSP430、S3C2440處理器與無線數(shù)傳模塊,提出了一種典型的無線傳感器網(wǎng)絡(luò)數(shù)據(jù)采集系統(tǒng)。與傳統(tǒng)傳感器數(shù)據(jù)采集系統(tǒng)相比,該系統(tǒng)具有開發(fā)周期短、實(shí)時(shí)性高、環(huán)境適應(yīng)性強(qiáng)、可拓展性強(qiáng)等特點(diǎn),并以溫度采集為例進(jìn)行了系統(tǒng)實(shí)現(xiàn)。
2系統(tǒng)組成概述
本系統(tǒng)由數(shù)據(jù)采集前端以及后臺(tái)監(jiān)測(cè)端組成。數(shù)據(jù)采集前端包括無線數(shù)據(jù)采集節(jié)點(diǎn)和數(shù)據(jù)集中器。后臺(tái)監(jiān)測(cè)端是安裝于PC上的監(jiān)測(cè)程序。多個(gè)無線數(shù)據(jù)采集節(jié)點(diǎn)收集的數(shù)據(jù)會(huì)被發(fā)送到數(shù)據(jù)集中器,由數(shù)據(jù)集中器處理之后通過以太網(wǎng)發(fā)往后臺(tái)監(jiān)測(cè)PC。
2.1無線數(shù)據(jù)采集節(jié)點(diǎn)
無線數(shù)據(jù)采集節(jié)點(diǎn)以MSP430超低功耗處理器為核心,配有高速無線收發(fā)模塊。在接收到數(shù)據(jù)集中器的數(shù)據(jù)采集指令后,獲取傳感器數(shù)據(jù),通過高速無線收發(fā)模塊向數(shù)據(jù)集中器發(fā)送傳感器數(shù)據(jù)。由于MSP430芯片具有超低功耗性能,使得無線數(shù)據(jù)采集節(jié)點(diǎn)可以使用電池供電,這樣無線數(shù)據(jù)采集節(jié)點(diǎn)可以被安裝到不便布線的特殊環(huán)境中。
2.2數(shù)據(jù)集中器
數(shù)據(jù)集中器的核心是一塊基于S3C2440處理器的嵌入式數(shù)據(jù)處理板,數(shù)據(jù)集中器通過輪詢方式訪問多個(gè)無線數(shù)據(jù)采集節(jié)點(diǎn),在獲取到足夠多的數(shù)據(jù)之后通過以太網(wǎng)將數(shù)據(jù)組幀發(fā)至后臺(tái)監(jiān)測(cè)軟件。通常在每個(gè)數(shù)據(jù)監(jiān)測(cè)點(diǎn)配置一個(gè)無線數(shù)據(jù)采集節(jié)點(diǎn),數(shù)個(gè)無線數(shù)據(jù)采集節(jié)點(diǎn)則需要配置一個(gè)數(shù)據(jù)集中器用以將數(shù)據(jù)進(jìn)行更遠(yuǎn)距離的傳輸。
2.3后臺(tái)監(jiān)測(cè)中心
后臺(tái)監(jiān)測(cè)中心開始運(yùn)行后,會(huì)不斷向連接到以太網(wǎng)上的遠(yuǎn)端數(shù)據(jù)集中器發(fā)送數(shù)據(jù)請(qǐng)求指令,遠(yuǎn)端數(shù)據(jù)集中器將自己所處范圍內(nèi)的數(shù)據(jù)采集節(jié)點(diǎn)的數(shù)據(jù)通過以太網(wǎng)傳輸給后臺(tái)監(jiān)測(cè)軟件。多個(gè)數(shù)據(jù)集中器的數(shù)據(jù)通過以太網(wǎng)傳輸?shù)胶笈_(tái)監(jiān)測(cè)中心,監(jiān)測(cè)中心對(duì)數(shù)據(jù)進(jìn)行實(shí)時(shí)存儲(chǔ)、分析。
3系統(tǒng)硬件設(shè)計(jì)
系統(tǒng)的硬件設(shè)計(jì)主要包括數(shù)據(jù)采集節(jié)點(diǎn)和數(shù)據(jù)集中器的設(shè)計(jì)。以溫度采集為例,溫度采集節(jié)點(diǎn)采用TI公司的MSP430處理器和利爾達(dá)LSDRF2401M05無線透?jìng)髂K,溫度數(shù)據(jù)來源于MSP430處理器[1]內(nèi)置溫度傳感器。溫度集中器使用三星S3C2440處理器和利爾達(dá)LSDRF2401M05無線透?jìng)髂K開發(fā)。示例系統(tǒng)的開發(fā)目的是要對(duì)距離較遠(yuǎn)的多個(gè)建筑內(nèi)的機(jī)房溫度進(jìn)行監(jiān)測(cè),如圖1所示,在每個(gè)機(jī)房安裝一個(gè)無線溫度采集節(jié)點(diǎn),在每個(gè)建筑安裝一個(gè)溫度集中器用于收集本建筑內(nèi)無線采集節(jié)點(diǎn)的數(shù)據(jù),所有溫度集中器都通過以太網(wǎng)與后臺(tái)監(jiān)測(cè)中心連接。
圖1 系統(tǒng)結(jié)構(gòu)圖
3.1溫度采集節(jié)點(diǎn)
溫度采集節(jié)點(diǎn)使用MSP430G2231作為主芯片,由于MSP430G2231芯片沒有內(nèi)置的UART接口資源,需要用2個(gè)通用輸入/輸出(GPIO)口模擬UART接口,模擬UART與利爾達(dá)LSDRF2401M05無線透?jìng)髂K連接,可以將溫度數(shù)據(jù)發(fā)送至溫度集中器。
MSP430G2231是一種通用型的超低功耗單片機(jī),由于其功耗低、成本低,非常適合本系統(tǒng)的應(yīng)用。超低功耗的特性使單片機(jī)內(nèi)部溫度和外部溫度基本相等,因此在溫度采集節(jié)點(diǎn)的電路設(shè)計(jì)時(shí)沒有外接單獨(dú)的傳感器模塊,而是以單片機(jī)內(nèi)部溫度傳感器的數(shù)據(jù)加以修正,作為室內(nèi)溫度值。
LSDRF2401M05是一種串口無線透?jìng)髂K,工作在2.4 GHz全球工業(yè)、科學(xué)、醫(yī)學(xué)(ISM)頻段,只需通過串行通信接口(UART)對(duì)模塊進(jìn)行簡(jiǎn)單的配置,就可以實(shí)現(xiàn)無線數(shù)據(jù)的收發(fā)功能,具有1.2~500 kBps的數(shù)據(jù)傳輸速率。
電路原理圖如圖2所示,溫度采集節(jié)點(diǎn)實(shí)物圖如圖3所示。
圖2 溫度采集節(jié)點(diǎn)原理圖
圖3 溫度采集節(jié)點(diǎn)實(shí)物圖
3.2溫度集中器
溫度集中器使用基于S3C2440處理器的ARM9數(shù)據(jù)處理板,并運(yùn)行Wince 6.0系統(tǒng),S3C2440的串口與LSDRF2401M05無線透?jìng)髂K連接,可以接收多個(gè)溫度采集節(jié)點(diǎn)上傳的溫度數(shù)據(jù),集中處理后通過網(wǎng)絡(luò)接口傳送至遠(yuǎn)程監(jiān)測(cè)中心。
電路原理圖如圖4所示,溫度集中器實(shí)物圖如圖5所示。
圖4 溫度集中器原理圖
圖5 溫度集中器實(shí)物圖
4系統(tǒng)軟件設(shè)計(jì)
系統(tǒng)的軟件設(shè)計(jì)主要包括:溫度采集節(jié)點(diǎn)的程序設(shè)計(jì)、溫度集中器的軟件設(shè)計(jì)和遠(yuǎn)程監(jiān)測(cè)中心的軟件設(shè)計(jì)。
4.1溫度采集節(jié)點(diǎn)程序設(shè)計(jì)
MSP430的程序開發(fā)使用IAR公司的Embedded Workbench for MSP430作為開發(fā)環(huán)境。開發(fā)語言使用單片機(jī)C語言。由于MSP430G2231屬于低端系列產(chǎn)品,沒有串口,需要通過Timer_A定時(shí)器產(chǎn)生波特率時(shí)鐘,再通過IO口來模擬串口的收發(fā)。圖6為Timer_A模擬串口收發(fā)流程圖。
圖6 Timer_A模擬串口收發(fā)流程圖
4.2溫度集中器軟件設(shè)計(jì)
溫度集中器程序是使用VS2005開發(fā)的智能設(shè)備MFC程序,主要功能是與后臺(tái)監(jiān)測(cè)程序建立TCP連接、接收遠(yuǎn)程后臺(tái)的數(shù)據(jù)請(qǐng)求幀、輪詢?cè)L問無線溫度傳感器模模塊、向遠(yuǎn)程后臺(tái)發(fā)送溫度數(shù)據(jù)幀,具體流程如圖7所示。溫度集中器與遠(yuǎn)程后臺(tái)之間的通信遵循Modbus TCP協(xié)議[2]。
圖7 溫度采集節(jié)點(diǎn)程序流程圖
由于溫度集中器與各個(gè)無線溫度采集節(jié)點(diǎn)的通信是在同一頻率上進(jìn)行,溫度集中器發(fā)出的數(shù)據(jù)請(qǐng)求幀采用廣播方式發(fā)出,為了使得溫度集中器可以成功輪詢每一個(gè)無線溫度采集節(jié)點(diǎn),溫度集中器以及每一個(gè)無線溫度采集節(jié)點(diǎn)都被設(shè)置一個(gè)ID,ID的分配如表1所示。
表1 設(shè)備ID分配
溫度集中器與無線溫度采集節(jié)點(diǎn)相互通信的幀中帶有源ID域和目的ID域,任何一方收到一幀數(shù)據(jù)后,只有當(dāng)該幀的目的ID域值與本地ID匹配時(shí)才會(huì)進(jìn)行后續(xù)的處理,否則拋棄該幀。幀的結(jié)構(gòu)如圖8所示。
由于無線信道本身的不可靠性,溫度集中器與無線溫度采集節(jié)點(diǎn)之間的通信使用停等自動(dòng)重傳請(qǐng)求(ARQ)的方式,當(dāng)溫度集中器等待無線溫度采集節(jié)點(diǎn)回傳數(shù)據(jù)幀頻繁超時(shí),或者無線溫度采集節(jié)點(diǎn)回傳的數(shù)據(jù)幀頻繁校驗(yàn)出錯(cuò)則將異常信息發(fā)送至后臺(tái)監(jiān)測(cè)軟件。
溫度集中器初始化后首先會(huì)作為傳輸控制協(xié)議(TCP)服務(wù)器端監(jiān)聽指定的端口,等待后臺(tái)監(jiān)測(cè)軟件建立TCP連接并等待接收數(shù)據(jù)請(qǐng)求幀,由于TCP連接提供可靠的數(shù)據(jù)傳輸服務(wù),所以幀中不再含有循環(huán)冗余碼校驗(yàn)(CRC)域,幀的結(jié)構(gòu)必須符合Modbus TCP協(xié)議規(guī)范,幀結(jié)構(gòu)如圖9和圖10所示。
圖8 溫度集中器與溫度采集節(jié)點(diǎn)通信的幀格式
圖9 監(jiān)測(cè)軟件發(fā)送的數(shù)據(jù)請(qǐng)求幀格式
圖10 溫度集中器回傳的數(shù)據(jù)幀格式
在本系統(tǒng)中用到Modbus TCP協(xié)議中數(shù)據(jù)請(qǐng)求幀和數(shù)據(jù)幀,數(shù)據(jù)請(qǐng)求幀中的“讀寄存器開始位置”與“讀寄存器個(gè)數(shù)”域不再具有其本來的含義,集中器中的程序會(huì)將其解析為其他的意義。集中器收到數(shù)據(jù)請(qǐng)求幀之后,就會(huì)逐一輪詢下游的溫度采集節(jié)點(diǎn),獲取溫度與傳感器狀態(tài)信息,組幀回傳給監(jiān)測(cè)軟件。集中器的工作流程如圖11所示。
圖11 溫度集中器軟件流程圖
4.3后臺(tái)監(jiān)測(cè)軟件設(shè)計(jì)
后臺(tái)監(jiān)測(cè)程序運(yùn)行于PC,使用北京昆侖通態(tài)公司研發(fā)的MCGS 6.2通用版組態(tài)軟件開發(fā)[3],該軟件具有良好的動(dòng)態(tài)顯示界面以及完善的數(shù)據(jù)庫操作功能,是當(dāng)前主流的數(shù)據(jù)采集后臺(tái)監(jiān)測(cè)開發(fā)軟件。通過為項(xiàng)目添加“通用TCP/IP父設(shè)備”與“標(biāo)準(zhǔn)Modbus TCP子設(shè)備”驅(qū)動(dòng),就可以實(shí)現(xiàn)與支持Modbus TCP協(xié)議的下位機(jī)通信。
本系統(tǒng)的后臺(tái)監(jiān)測(cè)程序主要功能有:獲取溫度集中器溫度與傳感器狀態(tài)數(shù)據(jù)、顯示實(shí)時(shí)溫度、溫度超標(biāo)自動(dòng)警報(bào)、歷史溫度數(shù)據(jù)查詢等。
(1) 顯示實(shí)時(shí)溫度與傳感器狀態(tài)
程序啟動(dòng)之后會(huì)自動(dòng)建立與溫度集中器的TCP連接,按照指定的采樣周期向溫度集中器發(fā)送數(shù)據(jù)請(qǐng)求幀,如在采樣超時(shí)之前收到溫度集中器回傳的數(shù)據(jù),則將數(shù)據(jù)更新至面板與數(shù)據(jù)庫。
通過將MCGS中用戶自建數(shù)據(jù)對(duì)象與標(biāo)準(zhǔn)Modbus TCP 子設(shè)備的數(shù)據(jù)通道相連接,MCGS就可將每次收到的數(shù)據(jù)幀更新至與之關(guān)聯(lián)的數(shù)據(jù)對(duì)象,設(shè)置方法如圖12所示。MCGS軟件同時(shí)提供了豐富的顯示控件,包括各類儀表、實(shí)時(shí)曲線、自由表格等,開發(fā)者只需將顯示控件與數(shù)據(jù)對(duì)象相關(guān)聯(lián),顯示控件就可以實(shí)時(shí)顯示數(shù)據(jù)對(duì)象的數(shù)值變化情況。
圖12 設(shè)置數(shù)據(jù)對(duì)象與Modbus TCP通道的連接
(2) 溫度超標(biāo)自動(dòng)警報(bào)
溫度超標(biāo)自動(dòng)警報(bào)的實(shí)現(xiàn)使用的是MCGS 6.2軟件自帶的數(shù)據(jù)對(duì)象自動(dòng)警報(bào)功能,只需為相應(yīng)的數(shù)據(jù)對(duì)象設(shè)置報(bào)警屬性并與相應(yīng)的顯示構(gòu)件關(guān)聯(lián)就可以實(shí)現(xiàn)溫度超限自動(dòng)警報(bào)、歷史警報(bào)數(shù)據(jù)存儲(chǔ)等功能。
MCGS中的任意數(shù)值型數(shù)據(jù)對(duì)象都可以設(shè)置報(bào)警屬性,設(shè)置界面如圖13所示,勾選了“允許進(jìn)行報(bào)警處理”并設(shè)置了相應(yīng)的報(bào)警限值之后,系統(tǒng)就會(huì)在相應(yīng)的數(shù)據(jù)對(duì)象值超出限值時(shí)自動(dòng)響應(yīng),顯示效果如圖14所示。
圖13 為數(shù)據(jù)對(duì)象設(shè)置報(bào)警屬性
圖14 后臺(tái)監(jiān)測(cè)程序房間1實(shí)時(shí)溫度與警報(bào)信息
(3) 歷史溫度數(shù)據(jù)
通過為工程添加“溫度歷史數(shù)據(jù)報(bào)表”用戶策略并在策略行中添加“存盤數(shù)據(jù)瀏覽”策略工具即可實(shí)現(xiàn)對(duì)于存儲(chǔ)于Access數(shù)據(jù)庫中的歷史溫度數(shù)據(jù)的瀏覽。
5結(jié)束語
本系統(tǒng)共使用了25個(gè)無線溫度采集節(jié)點(diǎn)與5個(gè)溫度集中器,后臺(tái)監(jiān)測(cè)軟件可實(shí)現(xiàn)單個(gè)溫度采集節(jié)點(diǎn)數(shù)據(jù)300 ms以內(nèi)的數(shù)據(jù)更新。只要更換采集節(jié)點(diǎn)傳感器,該系統(tǒng)就可改造為任意傳感器數(shù)據(jù)采集系統(tǒng),滿足復(fù)雜的傳感器數(shù)據(jù)采集需求。
參考文獻(xiàn)
[1]鄧鵬,隋波.基于MSP430單片機(jī)的多通道數(shù)據(jù)采集系統(tǒng)[J].艦船電子工程,2009(3):168-170.
[2]金青,戴勝華,歐陽勁松.基于Modbus/TCP的工業(yè)以太網(wǎng)通信[J].儀器儀表標(biāo)準(zhǔn)化與計(jì)量,2006(1):22-24.
[3]梁偉棟,郭浩.MCGS組態(tài)軟件設(shè)計(jì)及其應(yīng)用[J].廣東自動(dòng)化與信息工程,2005(1):33-35.
Design and Realization of A Data Collection System for Radio Sensor Network
WANG Tao
(The 20th Research Institute of CETC,Xi'an 710068,China)
Abstract:This paper puts forward a kind of design method of data collection system for radio sensor network,and introduces the soft/hardware realization methods of the system taking temperature data collection as an example.The system uses short-distance radio transmission and long-distance ethemet network transmission to transmit multiple sensor data to background monitoring center,and uses monitor and control general system to realize data visualization in background monitoring program development.The system has good generality,can realize the collection to random sensor data if only the sensor is changed,and can satisfy all kinds of usage demands.
Key words:data collection;sensor;monitor and control general system
收稿日期:2016-02-18
中圖分類號(hào):TP212
文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):CN32-1413(2016)02-0099-06
DOI:10.16426/j.cnki.jcdzdk.2016.02.025