《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 通信與網(wǎng)絡(luò) > 設(shè)計應(yīng)用 > 基于STM32和SIM900A的網(wǎng)絡(luò)多點遠程數(shù)據(jù)監(jiān)測系統(tǒng)設(shè)計
基于STM32和SIM900A的網(wǎng)絡(luò)多點遠程數(shù)據(jù)監(jiān)測系統(tǒng)設(shè)計
2016年微型機與應(yīng)用第24期
李馳1,段智敏1,叢培田1,張旗2
1.沈陽理工大學(xué) 機械工程學(xué)院,遼寧 沈陽 110159;2.國網(wǎng)遼寧省電力有限公司營口供電公司,遼寧 營口 115000
摘要: 針對工業(yè)上監(jiān)測現(xiàn)場數(shù)據(jù)采集的遠程網(wǎng)絡(luò)傳輸需求,提出了一種基于STM32F103微控制器和SIM900A通信模塊的網(wǎng)絡(luò)多點遠程數(shù)據(jù)監(jiān)測系統(tǒng)。STM32下位機可以完成各傳感器的周期性數(shù)據(jù)采集,并利用SIM900A模塊實現(xiàn)其與遠程上位機在GPRS網(wǎng)絡(luò)上的不依賴監(jiān)測現(xiàn)場網(wǎng)絡(luò)環(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è)計要求。
關(guān)鍵詞: 數(shù)據(jù)采集 TCP GPRS STM32
Abstract:
Key words :

  李馳1,段智敏1,叢培田1,張旗2

 ?。?.沈陽理工大學(xué) 機械工程學(xué)院,遼寧 沈陽 110159;2.國網(wǎng)遼寧省電力有限公司營口供電公司,遼寧 營口 115000)

       摘要:針對工業(yè)上監(jiān)測現(xiàn)場數(shù)據(jù)采集的遠程網(wǎng)絡(luò)傳輸需求,提出了一種基于STM32F103微控制器和SIM900A通信模塊的網(wǎng)絡(luò)多點遠程數(shù)據(jù)監(jiān)測系統(tǒng)。STM32下位機可以完成各傳感器的周期性數(shù)據(jù)采集,并利用SIM900A模塊實現(xiàn)其與遠程上位機在GPRS網(wǎng)絡(luò)上的不依賴監(jiān)測現(xiàn)場網(wǎng)絡(luò)環(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è)計要求。

  關(guān)鍵詞:數(shù)據(jù)采集;TCP;GPRS ;STM32;SIM900A

  中圖分類號:TP27文獻標識碼:ADOI: 10.19358/j.issn.1674-7720.2016.24.030

  引用格式:李馳,段智敏,叢培田,等. 基于STM32和SIM900A的網(wǎng)絡(luò)多點遠程數(shù)據(jù)監(jiān)測系統(tǒng)設(shè)計[J].微型機與應(yīng)用,2016,35(24):105-108.

0引言

  在工業(yè)中,數(shù)據(jù)的采集一直是生產(chǎn)過程中非常重要的環(huán)節(jié),無論是機械的正常運轉(zhuǎn)還是作業(yè)環(huán)境的保持,都離不開準確高效的數(shù)據(jù)采集技術(shù)。

  基于嵌入式結(jié)構(gòu)設(shè)計的數(shù)據(jù)采集系統(tǒng)一般采用RS232、RS485等串口的方式與上位機進行數(shù)據(jù)通信,雖然非??煽?,但受線纜限制,上位機必須保持在一定的距離內(nèi)。而在某些高溫、強腐蝕性環(huán)境下,線纜的布置比較困難,也容易損壞[1]。

  隨著科技的進步,移動通信技術(shù)迅猛發(fā)展,現(xiàn)在已經(jīng)具有了非常高的穩(wěn)定性,這也使移動通信技術(shù)在工業(yè)中應(yīng)用成為可能。利用現(xiàn)有的GPRS網(wǎng)絡(luò),發(fā)揮其網(wǎng)絡(luò)覆蓋率高、傳輸特性好的優(yōu)點,為原有的數(shù)據(jù)采集系統(tǒng)提供了一種方便的無線傳輸功能。移動通信技術(shù)具有布置靈活和可獨立聯(lián)網(wǎng)的優(yōu)點[2]。

1總體設(shè)計

  本文所設(shè)計的網(wǎng)絡(luò)多點遠程數(shù)據(jù)監(jiān)測系統(tǒng)由下位機與上位機組成,下位機利用通信模塊與GPRS網(wǎng)絡(luò)直接連接,實現(xiàn)了基于TCP的不依賴現(xiàn)場網(wǎng)絡(luò)環(huán)境的可靠網(wǎng)絡(luò)數(shù)據(jù)傳輸。其不僅可以在上位機上單獨查看各個終端上傳的數(shù)據(jù),還可以對多個終端的數(shù)據(jù)進行交叉分析,大大提高了采集效率和數(shù)據(jù)的利用率。

  其中,下位機可大體分為STM32微控制器、SIM900A通信模塊和多傳感器三部分。整套設(shè)備的成本非常低廉,STM32微控制器與SIM900A通信模塊組成的核心部件僅需幾十元錢,用戶可根據(jù)需求選擇理想的傳感器模塊。上位機程序采用基于C++語言的Qt設(shè)計,下位機與上位機之間通過TCP協(xié)議傳輸網(wǎng)絡(luò)數(shù)據(jù),每臺上位機均可以接收多個終端的傳感器上傳的數(shù)據(jù)。系統(tǒng)的總體設(shè)計框圖如圖1所示。

 

001.jpg

2硬件設(shè)計

  網(wǎng)絡(luò)多點遠程數(shù)據(jù)監(jiān)測系統(tǒng)可以完成幾乎所有種類的數(shù)據(jù)采集。因篇幅有限,本文以溫度數(shù)據(jù)采集為例介紹整個系統(tǒng)的框架結(jié)構(gòu)以及具體實現(xiàn)方法。 其他種類的數(shù)據(jù)采集,設(shè)計邏輯與溫度數(shù)據(jù)采集基本相同,只需在下位機主程序循環(huán)中加入相應(yīng)傳感器的采集子程序和數(shù)據(jù)發(fā)送流程即可。

  遠程設(shè)備被安裝在監(jiān)測現(xiàn)場上,其通過各種傳感器采集數(shù)據(jù),經(jīng)STM32微控制器處理發(fā)送至SIM900A通信模塊,通信模塊會通過端口將TCP數(shù)據(jù)從GPRS網(wǎng)絡(luò)發(fā)送給上位機。上位機根據(jù)設(shè)備號的不同區(qū)別各個下位機。該系統(tǒng)的硬件電路圖如圖2所示。

002.jpg

  2.1STM32F103ZET6微控制器

  STM32F103ZET6增強型微控制器使用高性能的ARM CortexTM-M3 32位的RISC內(nèi)核,工作頻率為72 MHz,其具有112個GPIO接口,多種復(fù)用功能,具有非常高的可開發(fā)性[3]。

  它的綜合性能高,運行穩(wěn)定,價格便宜,在工業(yè)應(yīng)用中廣為使用,是很多工程項目的理想解決方案[4]。

  2.2SIM900A通信模塊

  無線通信模塊采用SIM900A芯片實現(xiàn),主要負責實現(xiàn)與遠程終端的數(shù)據(jù)傳輸功能。SIM900A模塊是一款尺寸緊湊、內(nèi)置TCP/IP協(xié)議棧的GSM/GPRS模塊[5]。

  2.3DS18B20溫度傳感器

  DS18B20是美信公司的一款溫度傳感器,單片機可以通過1Wire協(xié)議與DS18B20進行通信[6]。

3軟件設(shè)計

  本文所設(shè)計的系統(tǒng)由下位機程序與上位機程序兩部分組成。其中下位機STM32程序負責數(shù)據(jù)采集以及定時將各種數(shù)據(jù)以TCP協(xié)議經(jīng)由SIM900A模塊發(fā)送給上位機。而上位機程序負責監(jiān)聽各端口TCP通信,處理由端口傳入的TCP數(shù)據(jù)。

  3.1下位機程序設(shè)計

  下位機程序由主程序、發(fā)送TCP數(shù)據(jù)子程序和測量溫度子程序三部分組成,均通過C語言進行設(shè)計。三個模塊合作完成數(shù)據(jù)采集和上傳工作。

  3.1.1主程序

  STM32主程序負責初始化各寄存器以及周期性地調(diào)用各功能子程序以采集數(shù)據(jù)并將采集到的數(shù)據(jù)通過GPRS網(wǎng)絡(luò)發(fā)送給各上位機。這里需要注意的是,圖3主程序流程圖STM32微控制器的GPIO口和復(fù)用功能均有獨立的時鐘,使用前必須進行初始化,否則各外設(shè)無法正常工作。SysTick時鐘用來產(chǎn)生心跳中斷,實現(xiàn)延時功能。其系統(tǒng)流程圖如圖3所示。

003.jpg

  3.1.2 發(fā)送TCP數(shù)據(jù)子程序

  SIM900A通信模塊采用串行接口與STM32進行通信。STM32應(yīng)用AT指令與SIM900A通信[7]。本文主要應(yīng)用SIM900A的TCP通信功能,涉及關(guān)于TCP協(xié)議的主要指令如表1所示。

006.jpg

  跟據(jù)AT指令以及相應(yīng)的指令格式,數(shù)據(jù)發(fā)送子程序的流程如圖4所示 

004.jpg

  3.1.3測量溫度傳感器子程序

  DS18B20溫度傳感器采用1Wire協(xié)議與STM32微控制器進行通信,它只有一個DQ引腳負責傳遞數(shù)據(jù),具有非常復(fù)雜的軟件時序。其程序流程圖如圖5所示。

 

005.jpg

  3.2上位機程序設(shè)計

  本文所設(shè)計的上位機系統(tǒng)采用Qt設(shè)計,它是一個跨平臺的C++圖形用戶界面應(yīng)用程序框架。它為應(yīng)用程序開發(fā)者提供建立藝術(shù)級圖形用戶界面所需的所有功能。它是完全面向?qū)ο蟮模苋菀讛U展,并且允許真正的組件編程[8]。只需要編寫一次應(yīng)用程序,就可以在不同操作系統(tǒng)上部署這些程序。

  Qt通過信號和槽的機制來完成兩個Qt對象之間的通信。信號會在某個時機觸發(fā),而槽就是響應(yīng)和處理信號的對應(yīng)函數(shù)[9]。

  3.2.1 ReceivedData類

  上位機程序的核心是ReceivedData類,它是一個繼承自QWidget類的自定義類。每個ReceivedData類對象對應(yīng)一個端口,負責接收和處理不同下位機傳輸?shù)腡CP數(shù)據(jù)并完成數(shù)據(jù)在圖表上的顯示工作。

  ReceivedData類中主要包含一個QCustomPlot類對象、一個QTcpServer類對象和一個QTcpSocket類對象。QCustomPlot類是一個體積小巧但功能很強的Qt繪圖類,它提供給程序一個繪制圖表的窗口,使用者可以通過對參數(shù)的設(shè)置在一個窗口內(nèi)很容易地實現(xiàn)多條曲線繪制、鼠標拖曳滾輪縮放圖像等功能。而QTcpServer類和QTcpSocket類對象的組合可以完成指定端口的TCP數(shù)據(jù)接收。ReceivedData類的主要構(gòu)成如表2所示。

007.jpg

  3.2.2TCP協(xié)議通信處理流程

  Qt通過套接字完成TCP數(shù)據(jù)的傳輸,在接收到連接請求后TCP服務(wù)器會把新的連接綁定到套接字上。作為TCP服務(wù)器的上位機與作為TCP客戶端的下位機交互流程圖如圖6所示。

  

008.jpg

  4實驗結(jié)果

  分別在兩個地點布置下位機系統(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)測界面的設(shè)計原理與其相同,只需按要求實例ReceivedData類對象就可以完成指定數(shù)量下位機的數(shù)據(jù)監(jiān)測。

  

009.jpg

5結(jié)論

  本文所設(shè)計的數(shù)據(jù)采集系統(tǒng)是一種非常適合復(fù)雜現(xiàn)場環(huán)境和臨時測量的解決方案。這種測量終端與上位機沒有距離限制并且節(jié)省了大量的人力物力,只要雙方可以連接互聯(lián)網(wǎng)就可以完成數(shù)據(jù)傳輸。在物聯(lián)網(wǎng)技術(shù)迅猛發(fā)展的今天,這種結(jié)合了GPRS網(wǎng)絡(luò)的遠程數(shù)據(jù)采集系統(tǒng)非常具有實用價值。

參考文獻

 ?。?] 王志義,苗亞春.有線傳輸技術(shù)特點分析和發(fā)展方向[J].電子工程技術(shù)與軟件工程,2013(17):193193

 ?。?] 李陽輝.基于STM32和GSM的溫度遠程監(jiān)控系統(tǒng)設(shè)計[J].自動化與儀器儀表,2015(1):5659.

 ?。?] 盧有亮.基于STM32的嵌入式系統(tǒng)原理與設(shè)計[M].北京:機械工業(yè)出版社,2014.

 ?。?] YIU J. ARM CortexM3與CortexM4權(quán)威指南[M].吳常玉,曹孟娟,王麗紅,譯.北京:清華大學(xué)出版社,2015.

  [5] 甘志偉,閆凱.基于SIM900A的無線數(shù)據(jù)采集卡設(shè)計與實現(xiàn)[J].山西電子技術(shù),2013(1):5558.

 ?。?] 宋雪松,李冬明,崔長勝.手把手教你學(xué)51單片機:C語言版[M].北京:清華大學(xué)出版社,2014.

 ?。?] 鄭優(yōu)訊,李宗伯.基于STM32微處理器的GPRS數(shù)據(jù)傳輸技術(shù)的研究[J].微型機與應(yīng)用,2012,31(21):6164.

 ?。?] 陸文周.Qt5開發(fā)及實例(第2版)[M].北京:電子工業(yè)出版社,2015.

 ?。?] 金大臣爾.Qt5開發(fā)實戰(zhàn)[M].張紅艷,譯.北京:人民郵電出版社,2015.


此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。