《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 通信與網(wǎng)絡(luò) > 設(shè)計(jì)應(yīng)用 > 基于STM32和SIM900A的網(wǎng)絡(luò)多點(diǎn)遠(yuǎn)程數(shù)據(jù)監(jiān)測(cè)系統(tǒng)設(shè)計(jì)
基于STM32和SIM900A的網(wǎng)絡(luò)多點(diǎn)遠(yuǎn)程數(shù)據(jù)監(jiān)測(cè)系統(tǒng)設(shè)計(jì)
2016年微型機(jī)與應(yīng)用第24期
李馳1,段智敏1,叢培田1,張旗2
1.沈陽(yáng)理工大學(xué) 機(jī)械工程學(xué)院,遼寧 沈陽(yáng) 110159;2.國(guó)網(wǎng)遼寧省電力有限公司營(yíng)口供電公司,遼寧 營(yíng)口 115000
摘要: 針對(duì)工業(yè)上監(jiān)測(cè)現(xiàn)場(chǎng)數(shù)據(jù)采集的遠(yuǎn)程網(wǎng)絡(luò)傳輸需求,提出了一種基于STM32F103微控制器和SIM900A通信模塊的網(wǎng)絡(luò)多點(diǎn)遠(yuǎn)程數(shù)據(jù)監(jiān)測(cè)系統(tǒng)。STM32下位機(jī)可以完成各傳感器的周期性數(shù)據(jù)采集,并利用SIM900A模塊實(shí)現(xiàn)其與遠(yuǎn)程上位機(jī)在GPRS網(wǎng)絡(luò)上的不依賴監(jiān)測(cè)現(xiàn)場(chǎng)網(wǎng)絡(luò)環(huán)境的TCP數(shù)據(jù)通信。系統(tǒng)可以實(shí)現(xiàn)不間斷對(duì)多個(gè)監(jiān)測(cè)點(diǎn)的多個(gè)監(jiān)測(cè)對(duì)象同時(shí)進(jìn)行數(shù)據(jù)采集和遠(yuǎn)程數(shù)據(jù)傳輸?,F(xiàn)場(chǎng)實(shí)驗(yàn)表明,該監(jiān)測(cè)系統(tǒng)穩(wěn)定性高、實(shí)時(shí)性強(qiáng)、測(cè)量誤差小、功耗低,可以滿足工業(yè)上的設(shè)計(jì)要求。
關(guān)鍵詞: 數(shù)據(jù)采集 TCP GPRS STM32
Abstract:
Key words :

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

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

       摘要:針對(duì)工業(yè)上監(jiān)測(cè)現(xiàn)場(chǎng)數(shù)據(jù)采集的遠(yuǎn)程網(wǎng)絡(luò)傳輸需求,提出了一種基于STM32F103微控制器和SIM900A通信模塊的網(wǎng)絡(luò)多點(diǎn)遠(yuǎn)程數(shù)據(jù)監(jiān)測(cè)系統(tǒng)。STM32下位機(jī)可以完成各傳感器的周期性數(shù)據(jù)采集,并利用SIM900A模塊實(shí)現(xiàn)其與遠(yuǎn)程上位機(jī)在GPRS網(wǎng)絡(luò)上的不依賴監(jiān)測(cè)現(xiàn)場(chǎng)網(wǎng)絡(luò)環(huán)境的TCP數(shù)據(jù)通信。系統(tǒng)可以實(shí)現(xiàn)不間斷對(duì)多個(gè)監(jiān)測(cè)點(diǎn)的多個(gè)監(jiān)測(cè)對(duì)象同時(shí)進(jìn)行數(shù)據(jù)采集和遠(yuǎn)程數(shù)據(jù)傳輸?,F(xiàn)場(chǎng)實(shí)驗(yàn)表明,該監(jiān)測(cè)系統(tǒng)穩(wěn)定性高、實(shí)時(shí)性強(qiáng)、測(cè)量誤差小、功耗低,可以滿足工業(yè)上的設(shè)計(jì)要求。

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

  中圖分類號(hào):TP27文獻(xiàn)標(biāo)識(shí)碼:ADOI: 10.19358/j.issn.1674-7720.2016.24.030

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

0引言

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

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

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

1總體設(shè)計(jì)

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

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

 

001.jpg

2硬件設(shè)計(jì)

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

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

002.jpg

  2.1STM32F103ZET6微控制器

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

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

  2.2SIM900A通信模塊

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

  2.3DS18B20溫度傳感器

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

3軟件設(shè)計(jì)

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

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

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

  3.1.1主程序

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

003.jpg

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

  SIM900A通信模塊采用串行接口與STM32進(jìn)行通信。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測(cè)量溫度傳感器子程序

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

 

005.jpg

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

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

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

  3.2.1 ReceivedData類

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

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

007.jpg

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

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

  

008.jpg

  4實(shí)驗(yàn)結(jié)果

  分別在兩個(gè)地點(diǎn)布置下位機(jī)系統(tǒng),連接各傳感器后開啟下位機(jī)電源,上位機(jī)開始從指定端口接收到TCP數(shù)據(jù)。經(jīng)過一段時(shí)間的監(jiān)測(cè),從遠(yuǎn)程的上位機(jī)處得到了監(jiān)測(cè)數(shù)據(jù)的曲線。

  圖7展示了上位機(jī)遠(yuǎn)程監(jiān)測(cè)兩臺(tái)下位機(jī)數(shù)據(jù)的運(yùn)行效果,從當(dāng)前圖中可以清楚地看出兩個(gè)監(jiān)測(cè)地點(diǎn)的溫度隨時(shí)間的變化情況,通過組合框可以切換監(jiān)測(cè)源的監(jiān)測(cè)對(duì)象。上位機(jī)界面中包括兩路通道,分別接收兩個(gè)下位機(jī)上傳的數(shù)據(jù),多路數(shù)據(jù)監(jiān)測(cè)界面的設(shè)計(jì)原理與其相同,只需按要求實(shí)例ReceivedData類對(duì)象就可以完成指定數(shù)量下位機(jī)的數(shù)據(jù)監(jiān)測(cè)。

  

009.jpg

5結(jié)論

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

參考文獻(xiàn)

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

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

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

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

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

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

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

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

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


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