基于STM32的數(shù)據(jù)采集與監(jiān)控系統(tǒng)的遠(yuǎn)程監(jiān)控終端設(shè)計方案
掃描二維碼
隨時隨地手機(jī)看文章
導(dǎo)讀:針對處于偏遠(yuǎn)地區(qū)或惡劣環(huán)境中的無人值守設(shè)備的運(yùn)行狀態(tài)的監(jiān)控問題,本文應(yīng)用嵌入式技術(shù)以及工業(yè)以太網(wǎng)技術(shù)設(shè)計了一種數(shù)據(jù)采集與監(jiān)控系統(tǒng)的遠(yuǎn)程監(jiān)控終端。圍繞核心處理器STM32F107VC構(gòu)建了終端的硬件系統(tǒng),介紹了網(wǎng)絡(luò)接口設(shè)計、輸入/輸出接口設(shè)計和本地存儲電路設(shè)計。監(jiān)控終端軟件基于ARM公司的RL-ARM中間件,實現(xiàn)了多任務(wù)并行的網(wǎng)絡(luò)實時通信、基于WebServer的遠(yuǎn)程配置服務(wù)和臨時存儲現(xiàn)場數(shù)據(jù)的文件系統(tǒng)。應(yīng)用結(jié)果表明,系統(tǒng)可靠性高、實時性強(qiáng),有效降低了遠(yuǎn)程監(jiān)控系統(tǒng)成本。
引言
數(shù)據(jù)采集與監(jiān)控系統(tǒng)是以計算機(jī)為基礎(chǔ)的分布式控制系統(tǒng)與電力自動化監(jiān)控系統(tǒng),廣泛應(yīng)用于電力、冶金、石油、化工等諸多領(lǐng)域。數(shù)據(jù)采集與監(jiān)控系統(tǒng)依靠其數(shù)量龐大的遠(yuǎn)程終端單元收集各終端站點信息和執(zhí)行控制策略。遠(yuǎn)程終端單元的性能、成本、可靠性對整個系統(tǒng)而言舉足輕重。數(shù)據(jù)采集與監(jiān)控系統(tǒng)如圖1所示。
對于終端站點現(xiàn)場環(huán)境惡劣或站點廣泛分散的系統(tǒng),要求站點長期無人值守,如電信公司的電話光纖網(wǎng)絡(luò)交接設(shè)備、高速公路機(jī)電設(shè)備等。如何保證終端站點的信息高效、可靠地上傳,并能對中心系統(tǒng)的命令及時響應(yīng),成為目前廣泛研究的熱點問題。參考文獻(xiàn)提出了一種基于GPRS無線傳輸?shù)臒o人值守低功耗遠(yuǎn)程終端的設(shè)計方案;參考文獻(xiàn)設(shè)計了基于MODBUS協(xié)議的RS485通信方式的遠(yuǎn)程終端;參考文獻(xiàn)設(shè)計了基于CAN總線的智能監(jiān)控終端。但是基于以太網(wǎng)通信的無人值守遠(yuǎn)程監(jiān)控終端的設(shè)計方案還較少。本文基于以太網(wǎng)通信方式,以STM32F107VC網(wǎng)絡(luò)處理器為核心單元,實現(xiàn)了一種低成本、高效、穩(wěn)定的遠(yuǎn)程終端單元。
1 遠(yuǎn)程監(jiān)控終端硬件設(shè)計
對于電信公司EPON無人值守設(shè)備、高速公路無人值守機(jī)電設(shè)備等所處的遠(yuǎn)程站點,通常布設(shè)有可以利用的可靠光纖網(wǎng)絡(luò),基于網(wǎng)絡(luò)通信并充分利用網(wǎng)絡(luò)服務(wù)是監(jiān)控終端設(shè)計時優(yōu)先考慮的重點。作為現(xiàn)場環(huán)境的監(jiān)控設(shè)備,遠(yuǎn)程監(jiān)控終端應(yīng)具備下述功能:穩(wěn)定的工業(yè)網(wǎng)絡(luò)標(biāo)準(zhǔn)接口;與現(xiàn)場信息采集設(shè)備和執(zhí)行機(jī)構(gòu)的輸入/輸出接口;本地大容量備份信息存儲。
1.1 系統(tǒng)設(shè)計
系統(tǒng)結(jié)構(gòu)如圖2所示,采用STM32F107VC網(wǎng)絡(luò)處理器作為系統(tǒng)核心單元,此芯片具備72 MHz運(yùn)行頻率和90DMIPS的處理性能,集成了以太網(wǎng)、CAN總線、RS485、RS232、USBOTG等各種高性能工業(yè)標(biāo)準(zhǔn)接口,其標(biāo)準(zhǔn)外設(shè)包括10個定時器、16路12位1 Msps采樣速率的A/D模/數(shù)轉(zhuǎn)換器、2路12位D/A數(shù)模轉(zhuǎn)換器等,可以應(yīng)用于多種工業(yè)場合。在核心處理器的基礎(chǔ)上,充分利用其集成的外設(shè)單元,設(shè)計相應(yīng)的外圍接口電路,實現(xiàn)了需求功能,保證遠(yuǎn)程監(jiān)控終端的穩(wěn)定性,降低了系統(tǒng)成本。
1.2 網(wǎng)絡(luò)通信接口設(shè)計
STM32F107VC核心處理器內(nèi)部集成支持工業(yè)以太網(wǎng)標(biāo)準(zhǔn)IEEE1588的Ethernet MAC Interface,需要外部擴(kuò)展PHY連接物理層網(wǎng)絡(luò)。選用美國國家半導(dǎo)體公司的DP83848C芯片作為物理層接口芯片,該芯片是10/100Mb/s單路低功耗物理層接口器件,與核心處理器通過Media-Inde pendentInterface(MII)相接。以太網(wǎng)通信接口電路如圖3所示。
1.3 輸入/輸出接口設(shè)計
輸入/輸出接口包括AI(Analog Input)接口、DI(Digital Input)接口和DO(Digital Output)接口。AI接口連接傳感器獲取現(xiàn)場連續(xù)變化的信號,如溫度、濕度、煙霧等;DI接口連接傳感器采集現(xiàn)場的開關(guān)量信息,如設(shè)備震動、開關(guān)門動作、水浸超標(biāo)和系統(tǒng)斷電等;DO接口輸出數(shù)字信號控制執(zhí)行機(jī)構(gòu)動作,如繼電器等設(shè)備。
STM32F107VC內(nèi)部集成ADC,輸入通道的幅值范圍為0~3.3 V,傳感器輸出的模擬量數(shù)據(jù)需要經(jīng)過濾波、放大的處理過程輸入至ADC接口通道。ADC的精度很大程度上依賴于基準(zhǔn)電源的精度,系統(tǒng)采用高精度參考電壓源AD780為STM32F107VC提供基準(zhǔn)電壓。AD780是一款超高精度帶隙基準(zhǔn)電壓源,可以通過4~36 V的輸入電源提供2.5~3.0V輸出基準(zhǔn)電壓。它具有低初始誤差、低溫度漂移和低輸出噪聲,非常適合用于增強(qiáng)高分辨率ADC的功能。系統(tǒng)的AI接口電路如圖4所示。
STM32F107VC的GPIO引腳都可以由軟件配置為輸入/輸出模式,并且輸入可承受5 V TTL電平。系統(tǒng)采用PC817光電耦合器實現(xiàn)GPIO引腳與外圍電路的電氣隔離,提升終端的電絕緣和抗干擾能力。DO接口使用大電流三極管驅(qū)動繼電器輸出開關(guān)信號。
1.4 本地存儲電路設(shè)計
遠(yuǎn)程監(jiān)控終端系統(tǒng)的數(shù)據(jù)存儲分為兩部分:系統(tǒng)參數(shù)ROM,保證系統(tǒng)掉電后數(shù)據(jù)不丟失,選取8 KB存儲容量的24LC64芯片,使用I2C總線接口對其進(jìn)行讀寫操作。
選取SD卡作力現(xiàn)場數(shù)據(jù)的臨時存儲器。SD卡具有數(shù)據(jù)傳輸率快,移動靈活性好且具有較高的安全性等性能,當(dāng)網(wǎng)絡(luò)出現(xiàn)異常時暫時存儲現(xiàn)場信息,以便網(wǎng)絡(luò)恢復(fù)正?;颥F(xiàn)場檢修時將數(shù)據(jù)信息取出。使用STM32F107VC處理器的SPI總線實現(xiàn)與SD卡的存儲接口。
2 遠(yuǎn)程監(jiān)控終端軟件設(shè)計
遠(yuǎn)程監(jiān)控終端的性能和效率由系統(tǒng)軟件直接決定。遠(yuǎn)程監(jiān)控終端將現(xiàn)場傳感器采集的數(shù)據(jù)進(jìn)行分類整理過濾,形成有效信息通過網(wǎng)絡(luò)實時地上報給監(jiān)控中心的通信服務(wù)器。接收通信服務(wù)器的指令控制執(zhí)行機(jī)構(gòu)的動作,根據(jù)現(xiàn)場數(shù)據(jù)進(jìn)行預(yù)判,當(dāng)數(shù)據(jù)達(dá)到報警條件時,立即將報警信息報送監(jiān)控中心處理。由于遠(yuǎn)程監(jiān)控終端位于數(shù)據(jù)采集與監(jiān)視控制系統(tǒng)的最遠(yuǎn)端,經(jīng)常處于環(huán)境惡劣、地理位置偏僻的站點,還應(yīng)具備遠(yuǎn)程配置的功能。
系統(tǒng)軟件應(yīng)用ARM公司的RL-ARM中間件,實現(xiàn)了多任務(wù)實時處理、網(wǎng)絡(luò)通信應(yīng)用層程序及大容量文件系統(tǒng)。前文已述的物理層接口芯片(PHY)DP83848和STM32F107VC內(nèi)部集成的網(wǎng)絡(luò)控制器(MAC)分別實現(xiàn)了網(wǎng)絡(luò)傳輸模型的物理層和數(shù)據(jù)鏈路層,通過RL-ARM中間件提供的TCP/IP協(xié)議棧實現(xiàn)了傳輸層的TCP、UDP通信以及HTTP服務(wù)。通過RL-RTX實時多任務(wù)操作系統(tǒng)實現(xiàn)系統(tǒng)任務(wù)的實時運(yùn)行與任務(wù)間通信。系統(tǒng)軟件結(jié)構(gòu)如圖5所示。
2.1 網(wǎng)絡(luò)實時通信模塊設(shè)計
為了保證數(shù)據(jù)與命令傳輸?shù)目煽啃院蛯崟r性,將網(wǎng)絡(luò)實時通信程序分為三個子任務(wù):數(shù)據(jù)實時采集與處理任務(wù)、信息智能上傳任務(wù)、命令執(zhí)行任務(wù)。
數(shù)據(jù)實時采集與處理任務(wù)掃描GPIO端口讀取開關(guān)信號,完成狀態(tài)監(jiān)測任務(wù);通過處理器內(nèi)部集成的A/D轉(zhuǎn)換控制器采集現(xiàn)場模擬信號,經(jīng)過軟件濾波、量化等處理之后,得到現(xiàn)場環(huán)境的數(shù)據(jù);通知信息上傳任務(wù)提取現(xiàn)場環(huán)境信息。
系統(tǒng)通信命令分為兩類:一類命令為控制命令,用于控制智能終端控制執(zhí)行機(jī)構(gòu)動作,采用面向連接的TCP傳輸協(xié)議;另一類命令為查詢命令,用于監(jiān)控中心軟件查詢智能終端系統(tǒng)的配置信息,采用簡單、輕量級的UDP傳輸協(xié)議。命令執(zhí)行任務(wù)開啟網(wǎng)絡(luò)監(jiān)聽后,當(dāng)收到TCP連接吋,打開接收命令網(wǎng)絡(luò)端口(系統(tǒng)設(shè)計使用9003端口),與監(jiān)控中心服務(wù)器建立TCP連接,收到控制命令后,控制執(zhí)行機(jī)構(gòu)動作,如打開或關(guān)閉繼電器;當(dāng)收到UDP包時,打開端口,接收查詢命令,根據(jù)命令讀取配置信息,使用UDP傳輸協(xié)議發(fā)送給監(jiān)控中心通信服務(wù)器。
網(wǎng)絡(luò)實時通信模塊依托RL-ARM中間件系統(tǒng)提供的Sockets底層庫,基于傳輸層協(xié)議TCP和UDP,實現(xiàn)自定義網(wǎng)絡(luò)數(shù)據(jù)幀通信協(xié)議的發(fā)送和接收。
2.2 遠(yuǎn)程配置服務(wù)模塊設(shè)計
基于RL-ARM中間件系統(tǒng)提供的網(wǎng)絡(luò)應(yīng)用層HTTP服務(wù),實現(xiàn)了通過網(wǎng)絡(luò)對智能終端遠(yuǎn)程配置的功能。管理員使用任一臺網(wǎng)絡(luò)內(nèi)部的計算機(jī),通過網(wǎng)絡(luò)瀏覽器即可訪問智能終端系統(tǒng)的遠(yuǎn)程配置界面,經(jīng)過密碼認(rèn)證后,就可以對智能終端的參數(shù)進(jìn)行遠(yuǎn)程配置、查看系統(tǒng)狀態(tài)、對遠(yuǎn)端站點進(jìn)行手工控制等。
用HTML(Hyper Text Mark-up Language)和JavaScript語言設(shè)計了遠(yuǎn)程配置服務(wù)界面,包括主界面、控制參數(shù)配置界面、網(wǎng)絡(luò)參數(shù)配置界面、通信參數(shù)配置界面、數(shù)字通道狀態(tài)監(jiān)控界面、模擬通道狀態(tài)界面、用戶登錄管理界面、手動控制狀態(tài)界面和數(shù)據(jù)文件上傳界面。主界面如圖6所示。
控制參數(shù)配置界面用于修改和查詢系統(tǒng)預(yù)存儲的現(xiàn)場環(huán)境臨界參數(shù);網(wǎng)絡(luò)參數(shù)配置界面用于修改和查詢智能終端系統(tǒng)的網(wǎng)絡(luò)配置參數(shù),如本機(jī)IP地址、子網(wǎng)掩碼、網(wǎng)關(guān)IP地址等;通信參數(shù)配置界面用于修改和查詢通信主機(jī)IP地址、各通信任務(wù)的端口地址等參數(shù);數(shù)字通道狀態(tài)監(jiān)控界面用于對系統(tǒng)開關(guān)量輸入通道的狀態(tài)進(jìn)行監(jiān)測;模擬通道狀態(tài)界面用于對系統(tǒng)模擬量輸入通道的狀態(tài)進(jìn)行監(jiān)測;用戶登錄管理界面用于設(shè)置和查詢系統(tǒng)管理員ID和密碼;手動控制狀態(tài)界面用于對系統(tǒng)的執(zhí)行機(jī)構(gòu)進(jìn)行手動操作和測試;數(shù)據(jù)文件上傳界面可以將系統(tǒng)本地存儲的臨時數(shù)據(jù)文件上傳至管理員計算機(jī)。
2.3 本地數(shù)據(jù)存儲模塊設(shè)計
數(shù)據(jù)存儲軟件設(shè)計分為24LC64(EEPROM)驅(qū)動程序設(shè)計和文件系統(tǒng)的實現(xiàn)。在ST公司發(fā)布的I2C總線驅(qū)動程序基礎(chǔ)上,設(shè)計了24LC64驅(qū)動程序,包括單字節(jié)讀/寫函數(shù),按頁讀/寫函數(shù)和隨機(jī)讀/寫函數(shù)。
本地數(shù)據(jù)存儲程序的另一個重要任務(wù)是實現(xiàn)基于SD卡的文件系統(tǒng),目的是將網(wǎng)絡(luò)異常時的數(shù)據(jù)以文件格式保存,供網(wǎng)絡(luò)恢復(fù)時或操作員現(xiàn)場讀取。利用RL-ARM中間件系統(tǒng)提供的文件系統(tǒng)模塊,建立SD卡文件系統(tǒng),可以兼容FAT32格式文件,支持TFTP服務(wù)對文件的存取。由于系統(tǒng)硬件使用SPI總線連接SD卡,軟件采取數(shù)據(jù)流方式對SD卡進(jìn)行讀寫操作,文件系統(tǒng)依賴DMA(Direct Memory Access),所以在初始化程序中應(yīng)加入DMA的參數(shù)設(shè)置。
結(jié)語
本文所設(shè)計的遠(yuǎn)程監(jiān)控終端具有以下特點:
①以STM32網(wǎng)絡(luò)處理器為核心,充分利用其集成的外設(shè)單元,實現(xiàn)了低成本的工業(yè)網(wǎng)絡(luò)遠(yuǎn)程監(jiān)控終端,能夠?qū)o人值守機(jī)電設(shè)備現(xiàn)場運(yùn)行情況進(jìn)行有效監(jiān)測。
②基于RL-ARM的實時多任務(wù)操作系統(tǒng),分別實現(xiàn)現(xiàn)場信息同步上傳、智能報警信息上傳、通信命令執(zhí)行子任務(wù)的獨(dú)立運(yùn)行,保證了智能終端與遠(yuǎn)程主機(jī)網(wǎng)絡(luò)通信的實時性和可靠性。
③設(shè)計了基于HTTP的WebServer遠(yuǎn)程配置服務(wù)和基于TFTP的網(wǎng)絡(luò)文件傳送服務(wù),實現(xiàn)對智能終端的遠(yuǎn)程配置和管理。
④在SD卡上實現(xiàn)了智能終端的本地文件系統(tǒng),為網(wǎng)絡(luò)異常情況時的數(shù)據(jù)存儲提供了保證。
0次