鐘 科
(中國電子科技集團公司第二十九研究所,成都610036)
·微機應用·
基于STM32的溫度測量系統
鐘 科
(中國電子科技集團公司第二十九研究所,成都610036)
溫度采集系統以STM32F103VET6芯片為核心控制芯片,應用該芯片的定時器功能、串口功能、I2C接口等完成該溫度采集系統的數據采集,數據處理、誤差控制、數據上報等功能。該芯片具有功耗小,集成度高,穩定可靠等特點,是溫度控制系統中一款理想的核心控制芯片。同時系統中采用了TI公司的LM77作為溫度傳感芯片。該芯片是一款I2C接口的溫度傳感芯片,該芯片具有精度高,直接數字輸出等特點。系統采用RS232接口與上位控制機進行接口,實現了溫度數據的上報和上位機對該系統的控制。同時為減小溫度采集誤差,該系統采用了多項式擬合溫度傳感器特性曲線的方法來控制測量誤差,使測量誤差得到了有效改善。
STM32微處理器;溫度傳感;誤差控制
隨著遠程自動控制、物聯網等行業的快速發展,傳感網絡有了更加廣泛的應用需求,對傳感網絡的精度、智能化程度等也提出了更加嚴格的要求。而在傳感器網絡采集的眾多指標中,又以溫濕度指標應用最為廣泛。因此溫度采集系統有著寬廣的應用背景,開發一款精度高、智能程度強的溫度采集系統有著非常重要的現實意義。
系統以STM32F103VET6為處理器,用了4個LM77作為溫度采集端實現多點測量。它主要包括上位機、微處理器、溫度采集器和串行通信電路等幾個部分。可以通過上位機實現對現場數據監測或者對現場環境遠程操控。微處理器負責執行上位機發送的命令,完成對現場溫度的數據采集,是整個系統的控制中心。系統整體框圖如圖1所示。
3.1 溫度采集端
LM77是由TI半導體公司推出的一款數字化的I2C接口的溫度測量器件,無需任何外部元件,直接將環境溫度轉換成數字信號。利用I2C這種總線方式,可以將多個溫度測量點掛接在一條I2C總線上,從而大大簡化了多點測量系統的傳感器與微處理器之間的接口。
系統實現4通道的多點溫度測量,如圖2所示,將4個LM77的I2C接口都掛接在一條I2C[1]總線上就可以了。然后利用外部電路將每片LM77的地址固定,具體操作時,微處理器首先發送一個LM77的地址,然后緊跟一個讀溫度命令,相應地址的LM77就會將現在的溫度回傳給微處理器,方便操作,容易實現。

圖1 系統整體框圖

圖2 溫度采集模塊
3.2 處理器
系統處理器是基于Cortex-M3內核的STM32F103VET6[2-4]。這款芯片是STM32系列增強型微處理器,工作頻率可達到72MHz,內置高速存儲器(高達512K字節的閃存和64K字節的SRAM),豐富的增強I/O端口和聯接到兩條AHB總線的外設。該器件還包含3個12位ADC、4個通用16位定時器和2個PWM定時器,還包含標準的通信接口:多達兩個I2C接口、3個SPI接口、2個I2S接口、5個USART接口、一個USB接口和一個CAN接口。內置Cortex-M3內嵌跟蹤模塊(ETM)、串行單線調試(SWD)和JTAG接口,通過選擇ETM部件,能實現對指令的跟蹤功能,而FLASH Patch技術更是方便了開發人員在調試過程中對代碼直接分析、修改等,極大方便了調試過程。
3.3 液晶顯示模塊介紹
設計選用了液晶顯示模塊MzLH08。MzLH08模塊采用的是高速同步串行口SPI通信,能同時進行數據和指令的同步傳輸,控制效果良好,同時開發起來也非常容易。其內部文字庫資源非常豐富,西文、漢字等多種字體被包含,更加方便用戶顯示所要表達的內容。通過SPI口給定指定的命令完成對顯示環境的配置,其中的主要指令內容包括對背光亮度、文字類型、數據大小等進行相應的設置。液晶硬件連接圖如圖3所示,其中液晶屏的時鐘端CLK、忙信號輸入線BY、片選端CS、復位端RST、數據輸入端SDA分別連在MCU的P12~PC11口上,并通過5V電壓為液晶屏提供電源控制。
3.4 上下位機通訊
外界與系統進行交互的橋梁和通道是通信接口,因此,設計通信接口是系統非常重要的部分。為了保證同上位機通信,該系統設計了串行通訊接口RS-232[5]。
設計選用的是RS-232收發器SP3232EEN。其硬件電路如圖4所示。SP3232EEN是RS232收發器對便攜式或手持式應用如筆記本或掌上型電腦的一種解決方案。SP3232EEN系列有一個高效的電荷泵,工作電壓為3.3V時只需0.1μF電容就可進行操作。

圖3 液晶顯示模塊

圖4 串口通信模塊
3.5 電源模塊設計
電源模塊設計是決定單片機系統是否可靠的重要保障,電源系統的合理設計也是系統能否穩定長久有效運行的必要前提。電源設計中不僅要考慮選擇合理的輸入輸出電壓額度、負載電流范圍、功耗等,保證各個芯片模塊的正常有效運行,同時還要考慮到如何盡量避免出現噪聲、震蕩等干擾因素使得傳感器的測量準確性出現偏差。
系統設計中,需要3.3V電源對處理器和溫度傳感器LM77進行供電,而顯示模塊需要5V進行供電。綜合各方面考慮,選擇15V外部電源對系統進行供電。首先考慮電源的效率,通過DCDC,將15V的外部供電變化到5.5V,該變化采用Linear的LTC3633,電路設計如下:
在實際應用中,該模塊的輸出電壓通過電阻來配置。


在第一級電源之后再加入一級LDO穩壓電源,將5.5V變成5V。LDO的效率雖然沒有DCDC高,但是LDO具有更好的電源噪聲性能,能夠輸出更加純凈的電源電壓。
在該級變換中采用MIC5207,這是一款定壓輸出的LDO,輸入大于5V時,輸出固定為5V電壓。該器件具有輸出電壓精度高,壓降小,低溫度系數的特點,電流輸出能力為180mA。
按照設計要求,系統軟件部分主要完成溫度數據的采集和存儲、報警、LCD液晶屏顯示以及通過串口同上位機通信。程序在Real View MDK的開發環境下進行編寫,系統的軟件流程圖如圖7所示[6]。

圖5 DCDC電源設計

圖7 系統軟件流程
4.1 初始化
首先完成STM32的時鐘系統初始化,然后初始化GPIO,串口以及LCD液晶屏,系統進入循環狀態。每隔1S采集一次溫度值,在液晶屏上顯示出來,并對比當前溫度值與系統設定的報警溫度閾值,如果超出閾值范圍,發出蜂鳴報警,并且將報警信息也顯示在液晶屏上。利用串口通訊,將溫度信息和報警信息每隔1S送入到PC機上存儲。
4.2 串口通訊
該軟件中還包含串口同PC通訊的程序,將測量的溫度每隔一秒通過串口輸出到上位機(這里指PC機),PC端用超級終端顯示。
超級終端是一個程序,可以通過調制解調器、零調制解調器電纜或以太網連接,使用該程序連接到其他計算機、Telnet站點、公告板系統、聯機服務和主機。超級終端的原理是將用戶輸入隨時發向串口,但并不顯示輸入。它顯示的是從串口接收到的字符。可以通過超級終端發送命令,然后檢查結果。超級終端具有滾動功能,它使用戶能夠看到已經滾動出屏幕的已接收文本。
采用STM32的固件函數配置串口的參數如下:波特率是115200bps,8位數據長度,無校驗位,1位停止位。使用串口線連接板上的COM1口和PC的串口可以實現信息通訊。
在實際應用中,溫濕度數據的精確度是衡量一個測量系統是否可靠的重要前提,所以如何盡量降低系統工作時產生的誤差是一個重要課題。
連接測量裝置與被測量之間的紐帶就是傳感器。傳感器的性能對整個測試系統有直接影響,在保證測量精確度方面起著非常關鍵的作用。在信號檢測過程中,傳感器影響系統性能的參數有:線性度、靈敏度、重復性、回程誤差、靜態誤差、量程和環境參數等。
設計中使用智能傳感器,是將溫濕度采集電路,A/D轉換電路,放大電路等集成一體的數字傳感器。其內部已經完成封裝,所以無法從硬件電路設計方面進行改良。
考慮到溫度測量過程中尤其是戶外環境下,受環境影響比較大,所以改進措施一方面通過探頭盡量減少外部干擾,另一方面,通過軟件和算法對系統進行非線性修正。軟件矯正相對于硬件矯正減少了復雜的外部硬件電路,通過計算機處理數據的能力,通過編程,實現非線性數據的自動校準。這樣降低了系統開發成本,提高了系統數據的準確性。
將采集的數據存儲到內存中,然后用微處理器,通過編程算法,對數據進行處理實現線性化補償。
采用多項式插值的方式,擬合離散點上的函數值,使得該多項式估計數據點之間的函數值逼近傳感器的函數值。由于傳感器輸入輸出關系為非線性的,因此該多項式的次數至少需要在三次以上。
采用如下曲線擬合傳感器的溫度特性:

其中自變量x代表傳感器的實際輸出數據,y代表計算后的溫度輸出。在使用前,先用高精度的溫度傳感器測量一組(x1,y1),(x2,y2)...(xn,yn)。這組數據要覆蓋溫度傳感器實際工作時所覆蓋的溫度范圍。通過這組數值,擬合出多項式中的四個未知量,k1,k2,k3以及y0,則這個多項式的表達式就可以確定下來。
實際工作時,溫度傳感器輸出一個溫度采樣數據xi,可以根據該多項式得到一個輸出溫度yi。該溫度即為誤差糾正后的溫度值。
多點溫度測量系統盡可能采用數字化模塊,以達到模塊化、數字化、小型化和簡易化的目的,具有抗干擾、精度高、操作簡單和實用性強等優點,可以用于生產生活中的各類溫度測量。
[1] 唐鵬程,鄒九朋.I2C串行總線原理及其在單片機接口中的實現[J].世界電子元器件,2003(6):72-74.
Pengcheng Tang,Jiupeng Zou.The Principle of I2C Bus and Its Realization in SCM[J].Interface Global Electronics China,2003(6):72-74.
[2] Joseeph Y,宋巖.ARM Cortex-M3權威指南[M].北京:北京航空航天大學出版社,2009.
Joseeeph Y,Yan Song.The definitive guide to the ARM Cortex-M3[M].Beijing:Beihang University Press 2009.
[3] STMicroelectronics corporation.STM32F103-XXdatasheet[EB/OL].2009-06-02 http://www.keil.com/dd/docs/datashts/st/stm32f10xxx.pdf.
[4] 喻金錢,喻斌.STM32F系列ARM Cortex-M3核微控制器開發與應用[M].北京:清華大學出版社,2011.
Jinqian Yu,Bin YU.Development and Application of Micro Processor based on STM32F series ARM Cortex-M3[M].Beijing Tsinghua University Press,2011.
[5] 段吉祥,李志華.一種RS232多點通信系統的實現方法[J].工礦自動化,2007(1):106-108.
Jixiang Duan,Zhihua Li.A Realization Method of multi points communication system based on RS232[J].Industry and Mine Automation 2007(1):106-108.
[6] 馬忠梅.單片機的C語言應用程序設計[M].北京:北京航天航空大學出版社,2002.
Zhongmei Ma.C Language Application Program Design of Single Chip Microcomputer[M].Beijing:Beihang University Press 2002.
Tem perature Measuring System Based on STM32
Zhong Ke
(The29th Research Institute of China Electronics Technology Group Corporation,Chengdu 610036,China)
The temperature acquisition system,using STM32 as the core control chip,applies its functions of timer,serial port,I2C interface to realize the functions such as temperature acquisition,data processing error controlling and data reporting,etc.It has the characteristics of low power consumption,high degree of integration and high stability,so it's an ideal choice for the system.At the same time,a type of temperature sensor LM77 from TI is used in this system.It has I2C interface with the characteristic of high-accuracy and direct digital output.The 485 bus interface is used in this system to realize the function of communication and controlling with the host computer,and the method of polynomial curve fitting is used to decrease the error.
STM32 micro processor;Temperature sensor networks;Error controlling
10.3969/j.issn.1002-2279.2015.01.018
TN4
B
1002-2279(2015)01-0063-05
鐘科(1982-),男,四川廣漢人,工程師,碩士,主研方向:信號處理。
2014-11-10