李馳1,,段智敏1,叢培田1,,張旗2
?。?.沈陽理工大學 機械工程學院,遼寧 沈陽 110159,;2.國網(wǎng)遼寧省電力有限公司營口供電公司,,遼寧 營口 115000)
摘要:針對工業(yè)上監(jiān)測現(xiàn)場數(shù)據(jù)采集的遠程網(wǎng)絡傳輸需求,提出了一種基于STM32F103微控制器和SIM900A通信模塊的網(wǎng)絡多點遠程數(shù)據(jù)監(jiān)測系統(tǒng),。STM32下位機可以完成各傳感器的周期性數(shù)據(jù)采集,,并利用SIM900A模塊實現(xiàn)其與遠程上位機在GPRS網(wǎng)絡上的不依賴監(jiān)測現(xiàn)場網(wǎng)絡環(huán)境的TCP數(shù)據(jù)通信。系統(tǒng)可以實現(xiàn)不間斷對多個監(jiān)測點的多個監(jiān)測對象同時進行數(shù)據(jù)采集和遠程數(shù)據(jù)傳輸?,F(xiàn)場實驗表明,,該監(jiān)測系統(tǒng)穩(wěn)定性高、實時性強,、測量誤差小,、功耗低,可以滿足工業(yè)上的設計要求,。
關鍵詞:數(shù)據(jù)采集,;TCP,;GPRS ;STM32,;SIM900A
中圖分類號:TP27文獻標識碼:ADOI: 10.19358/j.issn.1674-7720.2016.24.030
引用格式:李馳,,段智敏,叢培田,等. 基于STM32和SIM900A的網(wǎng)絡多點遠程數(shù)據(jù)監(jiān)測系統(tǒng)設計[J].微型機與應用,,2016,35(24):105-108.
0引言
在工業(yè)中,,數(shù)據(jù)的采集一直是生產(chǎn)過程中非常重要的環(huán)節(jié),無論是機械的正常運轉還是作業(yè)環(huán)境的保持,,都離不開準確高效的數(shù)據(jù)采集技術,。
基于嵌入式結構設計的數(shù)據(jù)采集系統(tǒng)一般采用RS232、RS485等串口的方式與上位機進行數(shù)據(jù)通信,雖然非??煽?,但受線纜限制,上位機必須保持在一定的距離內(nèi),。而在某些高溫,、強腐蝕性環(huán)境下,線纜的布置比較困難,,也容易損壞[1],。
隨著科技的進步,移動通信技術迅猛發(fā)展,,現(xiàn)在已經(jīng)具有了非常高的穩(wěn)定性,這也使移動通信技術在工業(yè)中應用成為可能,。利用現(xiàn)有的GPRS網(wǎng)絡,發(fā)揮其網(wǎng)絡覆蓋率高,、傳輸特性好的優(yōu)點,,為原有的數(shù)據(jù)采集系統(tǒng)提供了一種方便的無線傳輸功能。移動通信技術具有布置靈活和可獨立聯(lián)網(wǎng)的優(yōu)點[2],。
1總體設計
本文所設計的網(wǎng)絡多點遠程數(shù)據(jù)監(jiān)測系統(tǒng)由下位機與上位機組成,,下位機利用通信模塊與GPRS網(wǎng)絡直接連接,實現(xiàn)了基于TCP的不依賴現(xiàn)場網(wǎng)絡環(huán)境的可靠網(wǎng)絡數(shù)據(jù)傳輸,。其不僅可以在上位機上單獨查看各個終端上傳的數(shù)據(jù),,還可以對多個終端的數(shù)據(jù)進行交叉分析,大大提高了采集效率和數(shù)據(jù)的利用率,。
其中,,下位機可大體分為STM32微控制器、SIM900A通信模塊和多傳感器三部分,。整套設備的成本非常低廉,STM32微控制器與SIM900A通信模塊組成的核心部件僅需幾十元錢,,用戶可根據(jù)需求選擇理想的傳感器模塊,。上位機程序采用基于C++語言的Qt設計,,下位機與上位機之間通過TCP協(xié)議傳輸網(wǎng)絡數(shù)據(jù),每臺上位機均可以接收多個終端的傳感器上傳的數(shù)據(jù),。系統(tǒng)的總體設計框圖如圖1所示,。
2硬件設計
網(wǎng)絡多點遠程數(shù)據(jù)監(jiān)測系統(tǒng)可以完成幾乎所有種類的數(shù)據(jù)采集。因篇幅有限,,本文以溫度數(shù)據(jù)采集為例介紹整個系統(tǒng)的框架結構以及具體實現(xiàn)方法,。 其他種類的數(shù)據(jù)采集,設計邏輯與溫度數(shù)據(jù)采集基本相同,,只需在下位機主程序循環(huán)中加入相應傳感器的采集子程序和數(shù)據(jù)發(fā)送流程即可,。
遠程設備被安裝在監(jiān)測現(xiàn)場上,其通過各種傳感器采集數(shù)據(jù),,經(jīng)STM32微控制器處理發(fā)送至SIM900A通信模塊,,通信模塊會通過端口將TCP數(shù)據(jù)從GPRS網(wǎng)絡發(fā)送給上位機。上位機根據(jù)設備號的不同區(qū)別各個下位機,。該系統(tǒng)的硬件電路圖如圖2所示,。
2.1STM32F103ZET6微控制器
STM32F103ZET6增強型微控制器使用高性能的ARM CortexTM-M3 32位的RISC內(nèi)核,工作頻率為72 MHz,,其具有112個GPIO接口,,多種復用功能,具有非常高的可開發(fā)性[3],。
它的綜合性能高,,運行穩(wěn)定,價格便宜,,在工業(yè)應用中廣為使用,,是很多工程項目的理想解決方案[4]。
2.2SIM900A通信模塊
無線通信模塊采用SIM900A芯片實現(xiàn),,主要負責實現(xiàn)與遠程終端的數(shù)據(jù)傳輸功能,。SIM900A模塊是一款尺寸緊湊、內(nèi)置TCP/IP協(xié)議棧的GSM/GPRS模塊[5],。
2.3DS18B20溫度傳感器
DS18B20是美信公司的一款溫度傳感器,,單片機可以通過1Wire協(xié)議與DS18B20進行通信[6]。
3軟件設計
本文所設計的系統(tǒng)由下位機程序與上位機程序兩部分組成,。其中下位機STM32程序負責數(shù)據(jù)采集以及定時將各種數(shù)據(jù)以TCP協(xié)議經(jīng)由SIM900A模塊發(fā)送給上位機,。而上位機程序負責監(jiān)聽各端口TCP通信,處理由端口傳入的TCP數(shù)據(jù),。
3.1下位機程序設計
下位機程序由主程序,、發(fā)送TCP數(shù)據(jù)子程序和測量溫度子程序三部分組成,均通過C語言進行設計。三個模塊合作完成數(shù)據(jù)采集和上傳工作,。
3.1.1主程序
STM32主程序負責初始化各寄存器以及周期性地調(diào)用各功能子程序以采集數(shù)據(jù)并將采集到的數(shù)據(jù)通過GPRS網(wǎng)絡發(fā)送給各上位機,。這里需要注意的是,圖3主程序流程圖STM32微控制器的GPIO口和復用功能均有獨立的時鐘,,使用前必須進行初始化,,否則各外設無法正常工作。SysTick時鐘用來產(chǎn)生心跳中斷,,實現(xiàn)延時功能,。其系統(tǒng)流程圖如圖3所示。
3.1.2 發(fā)送TCP數(shù)據(jù)子程序
SIM900A通信模塊采用串行接口與STM32進行通信,。STM32應用AT指令與SIM900A通信[7],。本文主要應用SIM900A的TCP通信功能,涉及關于TCP協(xié)議的主要指令如表1所示,。
跟據(jù)AT指令以及相應的指令格式,,數(shù)據(jù)發(fā)送子程序的流程如圖4所示
3.1.3測量溫度傳感器子程序
DS18B20溫度傳感器采用1Wire協(xié)議與STM32微控制器進行通信,它只有一個DQ引腳負責傳遞數(shù)據(jù),,具有非常復雜的軟件時序,。其程序流程圖如圖5所示。
3.2上位機程序設計
本文所設計的上位機系統(tǒng)采用Qt設計,,它是一個跨平臺的C++圖形用戶界面應用程序框架,。它為應用程序開發(fā)者提供建立藝術級圖形用戶界面所需的所有功能。它是完全面向對象的,,很容易擴展,,并且允許真正的組件編程[8]。只需要編寫一次應用程序,,就可以在不同操作系統(tǒng)上部署這些程序,。
Qt通過信號和槽的機制來完成兩個Qt對象之間的通信。信號會在某個時機觸發(fā),,而槽就是響應和處理信號的對應函數(shù)[9],。
3.2.1 ReceivedData類
上位機程序的核心是ReceivedData類,它是一個繼承自QWidget類的自定義類,。每個ReceivedData類對象對應一個端口,,負責接收和處理不同下位機傳輸?shù)腡CP數(shù)據(jù)并完成數(shù)據(jù)在圖表上的顯示工作。
ReceivedData類中主要包含一個QCustomPlot類對象,、一個QTcpServer類對象和一個QTcpSocket類對象,。QCustomPlot類是一個體積小巧但功能很強的Qt繪圖類,它提供給程序一個繪制圖表的窗口,,使用者可以通過對參數(shù)的設置在一個窗口內(nèi)很容易地實現(xiàn)多條曲線繪制,、鼠標拖曳滾輪縮放圖像等功能。而QTcpServer類和QTcpSocket類對象的組合可以完成指定端口的TCP數(shù)據(jù)接收。ReceivedData類的主要構成如表2所示,。
3.2.2TCP協(xié)議通信處理流程
Qt通過套接字完成TCP數(shù)據(jù)的傳輸,,在接收到連接請求后TCP服務器會把新的連接綁定到套接字上,。作為TCP服務器的上位機與作為TCP客戶端的下位機交互流程圖如圖6所示,。
4實驗結果
分別在兩個地點布置下位機系統(tǒng),連接各傳感器后開啟下位機電源,,上位機開始從指定端口接收到TCP數(shù)據(jù),。經(jīng)過一段時間的監(jiān)測,從遠程的上位機處得到了監(jiān)測數(shù)據(jù)的曲線,。
圖7展示了上位機遠程監(jiān)測兩臺下位機數(shù)據(jù)的運行效果,,從當前圖中可以清楚地看出兩個監(jiān)測地點的溫度隨時間的變化情況,通過組合框可以切換監(jiān)測源的監(jiān)測對象,。上位機界面中包括兩路通道,,分別接收兩個下位機上傳的數(shù)據(jù),多路數(shù)據(jù)監(jiān)測界面的設計原理與其相同,,只需按要求實例ReceivedData類對象就可以完成指定數(shù)量下位機的數(shù)據(jù)監(jiān)測,。
5結論
本文所設計的數(shù)據(jù)采集系統(tǒng)是一種非常適合復雜現(xiàn)場環(huán)境和臨時測量的解決方案。這種測量終端與上位機沒有距離限制并且節(jié)省了大量的人力物力,,只要雙方可以連接互聯(lián)網(wǎng)就可以完成數(shù)據(jù)傳輸,。在物聯(lián)網(wǎng)技術迅猛發(fā)展的今天,這種結合了GPRS網(wǎng)絡的遠程數(shù)據(jù)采集系統(tǒng)非常具有實用價值,。
參考文獻
?。?] 王志義,苗亞春.有線傳輸技術特點分析和發(fā)展方向[J].電子工程技術與軟件工程,,2013(17):193193
?。?] 李陽輝.基于STM32和GSM的溫度遠程監(jiān)控系統(tǒng)設計[J].自動化與儀器儀表,2015(1):5659.
?。?] 盧有亮.基于STM32的嵌入式系統(tǒng)原理與設計[M].北京:機械工業(yè)出版社,,2014.
[4] YIU J. ARM CortexM3與CortexM4權威指南[M].吳常玉,,曹孟娟,,王麗紅,譯.北京:清華大學出版社,,2015.
?。?] 甘志偉,閆凱.基于SIM900A的無線數(shù)據(jù)采集卡設計與實現(xiàn)[J].山西電子技術,,2013(1):5558.
?。?] 宋雪松,李冬明,崔長勝.手把手教你學51單片機:C語言版[M].北京:清華大學出版社,,2014.
?。?] 鄭優(yōu)訊,李宗伯.基于STM32微處理器的GPRS數(shù)據(jù)傳輸技術的研究[J].微型機與應用,,2012,,31(21):6164.
[8] 陸文周.Qt5開發(fā)及實例(第2版)[M].北京:電子工業(yè)出版社,,2015.
?。?] 金大臣爾.Qt5開發(fā)實戰(zhàn)[M].張紅艷,譯.北京:人民郵電出版社,,2015.