蘭州交通大學機電技術研究所 李 濤 馬殷元
太原理工大學 楊 東
基于STM32的GPRS遠程監測終端設計
蘭州交通大學機電技術研究所 李 濤 馬殷元
太原理工大學 楊 東
隨著網絡通信及嵌入式系統的發展,遠程監測廣泛應用到了各個領域。本文以32位STM32F103RBT6處理器為核心,利用SIM900模塊設計出了基于采用GPRS的遠程監測終端,并介紹了其硬件和軟件的設計方案。
遠程監測;STM32;SIM900模塊
隨著網絡和通信技術的迅速發展,遠程監測系統在工業控制領域中有著非常重要的意義。在工控領域,由于需要監控的區域廣,監控的對象種類繁多,需要花費大量的人力和物力,再者,在許多條件惡劣或人們不易到達或不能長久的停留的地方采集數據,是很不方便的。所以,在這種情況下,采用基于GPRS的無線網絡通信技術,具有相當大的優勢。將嵌入式應用系統與無線通信技術結合在一起是未來嵌入式應用的必然趨勢。
遠程數據監測終端以STM32為主控制器,實現現場數據采集和遠程數據傳輸兩大功能。傳感器采集模擬信號轉換成相應的數字量,通過串口發送給SIM900模塊,SIM900自動將要發送的數據打包成TCP/IP數據包,并通過GPRS網絡與Internet上的服務器建立連接,將采集到的數據發送給服務器。系統原理圖如圖1所示。
圖1 系統原理圖
圖2 終端硬件結構框圖
本監測終端是通過STM32控制傳感器采集被監測對象數據并通過GPRS模塊把數據傳輸給服務器,系統中所涉及的硬件電路主要包括以下幾部分:微控制器模塊,無線GPRS模塊,數據采集模塊,電源模塊。數據采集模塊由各種類型的傳感器構成,主要負責采集監測對象的相關參數,并將采集來的模擬量轉換成數字量,因此數據采集部分具有一定的通用性,只要接不同的傳感器,就可以采集不同信號源的數據。微控制器模塊通過串口實現數據采集模塊與GPRS模塊的數據傳輸,并實現對各個部分的控制。GPRS模塊主要是把采集的數據轉發并接入Internet網。電源模塊主要是為整個系統提供可靠的電源。整體的硬件結構如圖2。
STM32F103RBT6是一款基于CORTEX-M3內核、高性能、低成本、低功耗的微控制器,在軟件和引腳封裝方面同其他STM32系列處理器是兼容的。它的時鐘頻率達到72MHz,能實現高端運算。內嵌128KBFLASH程序存儲器。豐富的外設,UART、SPI等串行接口以及最大翻轉率18MHz的GPIO。所以使用STM32作為核心控制器是一個非常不錯的選擇。
STM32F103RBT6采用LQFP64封裝,GPIO中PA0,PA1,PA2,PA3分別接到SIM900GPRS模塊的7,8,9,10引腳,作為與GPRS通訊引腳使用,串口1(PA8,PA9)與數據采集模塊連接,STM32的PA5連接SIM900的引腳1,利用電平的高低變化控制SIM900模塊的的開關
SIM900是SIMCom推出一款新型無線模塊,它屬于四頻GSM/GPRS模塊,。完全采用SMT封裝形式,同時采用了功能強大的ARM926EJ-S芯片處理器。SIM900性能穩定,外觀小巧,性價比高,能滿足使用者的多種需求。SIM900采用工業標準接口,工作頻率為GSM/GPRS 850/900/1800/1900MHz,支持標準的AT命令,可以低功耗實現語音、SMS、數據和傳真信息的傳輸。SIM900模塊的電路設計如圖3所示。
SIM900和STM32之間的數據通信主要是通過端口RXD與UART2_TXD,TXD與UART2_RXD之間的數據傳輸來完成。其中SIM900上的引腳10RXD口是用于接收STM32傳來的數據,最終數據通過SIM900上的天線發送出去,引腳9TXD口是用于向STM32發送數據。
STM32通過AT指令和SIM900模塊進行通信.整個通信的過程可分為:(1)初始化。STM32處理器發送AT指令,控制GPRS模塊,完成系統的啟動,初始化串口,包括波特率、數據位、停止位、數據流控制、奇偶校驗等,如使用AT指令AT+IPR=“115200”,把波特率設為115200b/s;(2)配置參數.在GPRS通訊過程中,需要使用到一些重要的參數,主要的配置項有:設置接入網關、設置移動終端類別、激活GPRS、AT+CGACT=1.1;(3)建立連接.STM32利用AT指令控制GPRSModem連接服務器,連接成功后即可進行數據的透明傳輸。
圖3 SIM900模塊
本方案中采用的是6針連接器.主要包括SIM卡的電源線、數據線、SIM卡時鐘、復位線和狀態線.SIM卡的供電電壓為3.0V或1.8V,由SIM900模塊進行供電,根據通信公司提供的SIM卡模塊自動進行選擇.硬件連接圖如圖4所示,串在IO口線中的22Ω電阻用于匹配模塊和SIM卡之間的阻抗,數據信號線SIM_DATA已在模塊內部上拉。
由于SIM900模塊供電電壓為3.2-4.8(典型值為4V),在突發傳輸時,峰值電流可達到2A,電流突增會引起SIM900電壓突降,因此,系統電源模塊采用MIC29302芯片,該芯片是一種高電流、高精確度、低回差電壓、電壓可調的電源芯片,最高可提供3A的電流,回差壓降最大為350mV,能夠滿足SIM900峰值電流2A的要求,芯片的外圍接口如圖5所示,其中電壓輸出的計算公式為:V=1.235×[1+R3/R2]。而STM32的供電電壓是2.0-3.6V(典型值為3.3V),所以這里至少存在兩種電壓的轉換,如果采用5V供電的話,就要提供5V到4V,5V到3.3V的電壓轉換.在本監測終端中,一方面采用MICREL公司的MIC29302芯片,為SIM900模塊提供4V的電壓,同時其輸出電流可以達到3A,完全可以滿足需要;另一方面,采用REG1117-3.3芯片,為STM32提供3.3V的電壓.如圖6所示
遠程監測終端軟件用C語言在Keil uVision3編譯環境下編寫,整體流程如下:
給監測終端上電,完成各模塊的初始化以及開中斷,STM32通過串口1接收傳感器的數據,并對數據進行分析,判斷采集的數據是否正確有效,有效則將接收的數據存入外部存儲器,同時編程處理提取所需的信息發送至串口2,無效則返回中斷入口;STM32同步控制GPRS模塊連接到GPRS網絡并登錄服務器,登錄成功后,程序進入主循環,監測終端實時發送數據到服務器。STM32還可以根據GPRS模塊的反饋信息自動監測網絡連接情況,并實現斷線重連。由于程序比較復雜、龐大,下面只給出了軟件流程圖,如圖7所示。
本文設計的基于STM32的遠程監測終端,具有成本低、體積小、布設方便、運行穩定等特點,克服了現場環境改造困難、布線成本高,條件惡劣等問題,為現場對象的監測提出了一種解決方案。
圖4 SIM卡與GPRS模塊的連接
圖5 SIM900供電模塊
圖6 STM32供電模塊
圖7 終端軟件流程圖
[1]王永虹,徐偉,郝立平.STM32系列ARM Cortex-M3微控制器原理與實踐[M].北京:北京航空航天大學出版社,2008.
[2]劉亮,王擊,楊澤.基于ARM Cortex-M3和Internet的實時數據采集系統設計[J].2011(11).
[3]李美俊,李光明.基于嵌入式的數據采集系統設計[J].2012(2).