鐘 科
(中國(guó)電子科技集團(tuán)公司第二十九研究所,成都610036)
·微機(jī)應(yīng)用·
基于STM32的溫度測(cè)量系統(tǒng)
鐘 科
(中國(guó)電子科技集團(tuán)公司第二十九研究所,成都610036)
溫度采集系統(tǒng)以STM32F103VET6芯片為核心控制芯片,應(yīng)用該芯片的定時(shí)器功能、串口功能、I2C接口等完成該溫度采集系統(tǒng)的數(shù)據(jù)采集,數(shù)據(jù)處理、誤差控制、數(shù)據(jù)上報(bào)等功能。該芯片具有功耗小,集成度高,穩(wěn)定可靠等特點(diǎn),是溫度控制系統(tǒng)中一款理想的核心控制芯片。同時(shí)系統(tǒng)中采用了TI公司的LM77作為溫度傳感芯片。該芯片是一款I(lǐng)2C接口的溫度傳感芯片,該芯片具有精度高,直接數(shù)字輸出等特點(diǎn)。系統(tǒng)采用RS232接口與上位控制機(jī)進(jìn)行接口,實(shí)現(xiàn)了溫度數(shù)據(jù)的上報(bào)和上位機(jī)對(duì)該系統(tǒng)的控制。同時(shí)為減小溫度采集誤差,該系統(tǒng)采用了多項(xiàng)式擬合溫度傳感器特性曲線的方法來(lái)控制測(cè)量誤差,使測(cè)量誤差得到了有效改善。
STM32微處理器;溫度傳感;誤差控制
隨著遠(yuǎn)程自動(dòng)控制、物聯(lián)網(wǎng)等行業(yè)的快速發(fā)展,傳感網(wǎng)絡(luò)有了更加廣泛的應(yīng)用需求,對(duì)傳感網(wǎng)絡(luò)的精度、智能化程度等也提出了更加嚴(yán)格的要求。而在傳感器網(wǎng)絡(luò)采集的眾多指標(biāo)中,又以溫濕度指標(biāo)應(yīng)用最為廣泛。因此溫度采集系統(tǒng)有著寬廣的應(yīng)用背景,開(kāi)發(fā)一款精度高、智能程度強(qiáng)的溫度采集系統(tǒng)有著非常重要的現(xiàn)實(shí)意義。
系統(tǒng)以STM32F103VET6為處理器,用了4個(gè)LM77作為溫度采集端實(shí)現(xiàn)多點(diǎn)測(cè)量。它主要包括上位機(jī)、微處理器、溫度采集器和串行通信電路等幾個(gè)部分??梢酝ㄟ^(guò)上位機(jī)實(shí)現(xiàn)對(duì)現(xiàn)場(chǎng)數(shù)據(jù)監(jiān)測(cè)或者對(duì)現(xiàn)場(chǎng)環(huán)境遠(yuǎn)程操控。微處理器負(fù)責(zé)執(zhí)行上位機(jī)發(fā)送的命令,完成對(duì)現(xiàn)場(chǎng)溫度的數(shù)據(jù)采集,是整個(gè)系統(tǒng)的控制中心。系統(tǒng)整體框圖如圖1所示。
3.1 溫度采集端
LM77是由TI半導(dǎo)體公司推出的一款數(shù)字化的I2C接口的溫度測(cè)量器件,無(wú)需任何外部元件,直接將環(huán)境溫度轉(zhuǎn)換成數(shù)字信號(hào)。利用I2C這種總線方式,可以將多個(gè)溫度測(cè)量點(diǎn)掛接在一條I2C總線上,從而大大簡(jiǎn)化了多點(diǎn)測(cè)量系統(tǒng)的傳感器與微處理器之間的接口。
系統(tǒng)實(shí)現(xiàn)4通道的多點(diǎn)溫度測(cè)量,如圖2所示,將4個(gè)LM77的I2C接口都掛接在一條I2C[1]總線上就可以了。然后利用外部電路將每片LM77的地址固定,具體操作時(shí),微處理器首先發(fā)送一個(gè)LM77的地址,然后緊跟一個(gè)讀溫度命令,相應(yīng)地址的LM77就會(huì)將現(xiàn)在的溫度回傳給微處理器,方便操作,容易實(shí)現(xiàn)。
圖1 系統(tǒng)整體框圖
圖2 溫度采集模塊
3.2 處理器
系統(tǒng)處理器是基于Cortex-M3內(nèi)核的STM32F103VET6[2-4]。這款芯片是STM32系列增強(qiáng)型微處理器,工作頻率可達(dá)到72MHz,內(nèi)置高速存儲(chǔ)器(高達(dá)512K字節(jié)的閃存和64K字節(jié)的SRAM),豐富的增強(qiáng)I/O端口和聯(lián)接到兩條AHB總線的外設(shè)。該器件還包含3個(gè)12位ADC、4個(gè)通用16位定時(shí)器和2個(gè)PWM定時(shí)器,還包含標(biāo)準(zhǔn)的通信接口:多達(dá)兩個(gè)I2C接口、3個(gè)SPI接口、2個(gè)I2S接口、5個(gè)USART接口、一個(gè)USB接口和一個(gè)CAN接口。內(nèi)置Cortex-M3內(nèi)嵌跟蹤模塊(ETM)、串行單線調(diào)試(SWD)和JTAG接口,通過(guò)選擇ETM部件,能實(shí)現(xiàn)對(duì)指令的跟蹤功能,而FLASH Patch技術(shù)更是方便了開(kāi)發(fā)人員在調(diào)試過(guò)程中對(duì)代碼直接分析、修改等,極大方便了調(diào)試過(guò)程。
3.3 液晶顯示模塊介紹
設(shè)計(jì)選用了液晶顯示模塊MzLH08。MzLH08模塊采用的是高速同步串行口SPI通信,能同時(shí)進(jìn)行數(shù)據(jù)和指令的同步傳輸,控制效果良好,同時(shí)開(kāi)發(fā)起來(lái)也非常容易。其內(nèi)部文字庫(kù)資源非常豐富,西文、漢字等多種字體被包含,更加方便用戶顯示所要表達(dá)的內(nèi)容。通過(guò)SPI口給定指定的命令完成對(duì)顯示環(huán)境的配置,其中的主要指令內(nèi)容包括對(duì)背光亮度、文字類型、數(shù)據(jù)大小等進(jìn)行相應(yīng)的設(shè)置。液晶硬件連接圖如圖3所示,其中液晶屏的時(shí)鐘端CLK、忙信號(hào)輸入線BY、片選端CS、復(fù)位端RST、數(shù)據(jù)輸入端SDA分別連在MCU的P12~PC11口上,并通過(guò)5V電壓為液晶屏提供電源控制。
3.4 上下位機(jī)通訊
外界與系統(tǒng)進(jìn)行交互的橋梁和通道是通信接口,因此,設(shè)計(jì)通信接口是系統(tǒng)非常重要的部分。為了保證同上位機(jī)通信,該系統(tǒng)設(shè)計(jì)了串行通訊接口RS-232[5]。
設(shè)計(jì)選用的是RS-232收發(fā)器SP3232EEN。其硬件電路如圖4所示。SP3232EEN是RS232收發(fā)器對(duì)便攜式或手持式應(yīng)用如筆記本或掌上型電腦的一種解決方案。SP3232EEN系列有一個(gè)高效的電荷泵,工作電壓為3.3V時(shí)只需0.1μF電容就可進(jìn)行操作。
圖3 液晶顯示模塊
圖4 串口通信模塊
3.5 電源模塊設(shè)計(jì)
電源模塊設(shè)計(jì)是決定單片機(jī)系統(tǒng)是否可靠的重要保障,電源系統(tǒng)的合理設(shè)計(jì)也是系統(tǒng)能否穩(wěn)定長(zhǎng)久有效運(yùn)行的必要前提。電源設(shè)計(jì)中不僅要考慮選擇合理的輸入輸出電壓額度、負(fù)載電流范圍、功耗等,保證各個(gè)芯片模塊的正常有效運(yùn)行,同時(shí)還要考慮到如何盡量避免出現(xiàn)噪聲、震蕩等干擾因素使得傳感器的測(cè)量準(zhǔn)確性出現(xiàn)偏差。
系統(tǒng)設(shè)計(jì)中,需要3.3V電源對(duì)處理器和溫度傳感器LM77進(jìn)行供電,而顯示模塊需要5V進(jìn)行供電。綜合各方面考慮,選擇15V外部電源對(duì)系統(tǒng)進(jìn)行供電。首先考慮電源的效率,通過(guò)DCDC,將15V的外部供電變化到5.5V,該變化采用Linear的LTC3633,電路設(shè)計(jì)如下:
在實(shí)際應(yīng)用中,該模塊的輸出電壓通過(guò)電阻來(lái)配置。
在第一級(jí)電源之后再加入一級(jí)LDO穩(wěn)壓電源,將5.5V變成5V。LDO的效率雖然沒(méi)有DCDC高,但是LDO具有更好的電源噪聲性能,能夠輸出更加純凈的電源電壓。
在該級(jí)變換中采用MIC5207,這是一款定壓輸出的LDO,輸入大于5V時(shí),輸出固定為5V電壓。該器件具有輸出電壓精度高,壓降小,低溫度系數(shù)的特點(diǎn),電流輸出能力為180mA。
按照設(shè)計(jì)要求,系統(tǒng)軟件部分主要完成溫度數(shù)據(jù)的采集和存儲(chǔ)、報(bào)警、LCD液晶屏顯示以及通過(guò)串口同上位機(jī)通信。程序在Real View MDK的開(kāi)發(fā)環(huán)境下進(jìn)行編寫,系統(tǒng)的軟件流程圖如圖7所示[6]。
圖5 DCDC電源設(shè)計(jì)
圖7 系統(tǒng)軟件流程
4.1 初始化
首先完成STM32的時(shí)鐘系統(tǒng)初始化,然后初始化GPIO,串口以及LCD液晶屏,系統(tǒng)進(jìn)入循環(huán)狀態(tài)。每隔1S采集一次溫度值,在液晶屏上顯示出來(lái),并對(duì)比當(dāng)前溫度值與系統(tǒng)設(shè)定的報(bào)警溫度閾值,如果超出閾值范圍,發(fā)出蜂鳴報(bào)警,并且將報(bào)警信息也顯示在液晶屏上。利用串口通訊,將溫度信息和報(bào)警信息每隔1S送入到PC機(jī)上存儲(chǔ)。
4.2 串口通訊
該軟件中還包含串口同PC通訊的程序,將測(cè)量的溫度每隔一秒通過(guò)串口輸出到上位機(jī)(這里指PC機(jī)),PC端用超級(jí)終端顯示。
超級(jí)終端是一個(gè)程序,可以通過(guò)調(diào)制解調(diào)器、零調(diào)制解調(diào)器電纜或以太網(wǎng)連接,使用該程序連接到其他計(jì)算機(jī)、Telnet站點(diǎn)、公告板系統(tǒng)、聯(lián)機(jī)服務(wù)和主機(jī)。超級(jí)終端的原理是將用戶輸入隨時(shí)發(fā)向串口,但并不顯示輸入。它顯示的是從串口接收到的字符??梢酝ㄟ^(guò)超級(jí)終端發(fā)送命令,然后檢查結(jié)果。超級(jí)終端具有滾動(dòng)功能,它使用戶能夠看到已經(jīng)滾動(dòng)出屏幕的已接收文本。
采用STM32的固件函數(shù)配置串口的參數(shù)如下:波特率是115200bps,8位數(shù)據(jù)長(zhǎng)度,無(wú)校驗(yàn)位,1位停止位。使用串口線連接板上的COM1口和PC的串口可以實(shí)現(xiàn)信息通訊。
在實(shí)際應(yīng)用中,溫濕度數(shù)據(jù)的精確度是衡量一個(gè)測(cè)量系統(tǒng)是否可靠的重要前提,所以如何盡量降低系統(tǒng)工作時(shí)產(chǎn)生的誤差是一個(gè)重要課題。
連接測(cè)量裝置與被測(cè)量之間的紐帶就是傳感器。傳感器的性能對(duì)整個(gè)測(cè)試系統(tǒng)有直接影響,在保證測(cè)量精確度方面起著非常關(guān)鍵的作用。在信號(hào)檢測(cè)過(guò)程中,傳感器影響系統(tǒng)性能的參數(shù)有:線性度、靈敏度、重復(fù)性、回程誤差、靜態(tài)誤差、量程和環(huán)境參數(shù)等。
設(shè)計(jì)中使用智能傳感器,是將溫濕度采集電路,A/D轉(zhuǎn)換電路,放大電路等集成一體的數(shù)字傳感器。其內(nèi)部已經(jīng)完成封裝,所以無(wú)法從硬件電路設(shè)計(jì)方面進(jìn)行改良。
考慮到溫度測(cè)量過(guò)程中尤其是戶外環(huán)境下,受環(huán)境影響比較大,所以改進(jìn)措施一方面通過(guò)探頭盡量減少外部干擾,另一方面,通過(guò)軟件和算法對(duì)系統(tǒng)進(jìn)行非線性修正。軟件矯正相對(duì)于硬件矯正減少了復(fù)雜的外部硬件電路,通過(guò)計(jì)算機(jī)處理數(shù)據(jù)的能力,通過(guò)編程,實(shí)現(xiàn)非線性數(shù)據(jù)的自動(dòng)校準(zhǔn)。這樣降低了系統(tǒng)開(kāi)發(fā)成本,提高了系統(tǒng)數(shù)據(jù)的準(zhǔn)確性。
將采集的數(shù)據(jù)存儲(chǔ)到內(nèi)存中,然后用微處理器,通過(guò)編程算法,對(duì)數(shù)據(jù)進(jìn)行處理實(shí)現(xiàn)線性化補(bǔ)償。
采用多項(xiàng)式插值的方式,擬合離散點(diǎn)上的函數(shù)值,使得該多項(xiàng)式估計(jì)數(shù)據(jù)點(diǎn)之間的函數(shù)值逼近傳感器的函數(shù)值。由于傳感器輸入輸出關(guān)系為非線性的,因此該多項(xiàng)式的次數(shù)至少需要在三次以上。
采用如下曲線擬合傳感器的溫度特性:
其中自變量x代表傳感器的實(shí)際輸出數(shù)據(jù),y代表計(jì)算后的溫度輸出。在使用前,先用高精度的溫度傳感器測(cè)量一組(x1,y1),(x2,y2)...(xn,yn)。這組數(shù)據(jù)要覆蓋溫度傳感器實(shí)際工作時(shí)所覆蓋的溫度范圍。通過(guò)這組數(shù)值,擬合出多項(xiàng)式中的四個(gè)未知量,k1,k2,k3以及y0,則這個(gè)多項(xiàng)式的表達(dá)式就可以確定下來(lái)。
實(shí)際工作時(shí),溫度傳感器輸出一個(gè)溫度采樣數(shù)據(jù)xi,可以根據(jù)該多項(xiàng)式得到一個(gè)輸出溫度yi。該溫度即為誤差糾正后的溫度值。
多點(diǎn)溫度測(cè)量系統(tǒng)盡可能采用數(shù)字化模塊,以達(dá)到模塊化、數(shù)字化、小型化和簡(jiǎn)易化的目的,具有抗干擾、精度高、操作簡(jiǎn)單和實(shí)用性強(qiáng)等優(yōu)點(diǎn),可以用于生產(chǎn)生活中的各類溫度測(cè)量。
[1] 唐鵬程,鄒九朋.I2C串行總線原理及其在單片機(jī)接口中的實(shí)現(xiàn)[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權(quán)威指南[M].北京:北京航空航天大學(xué)出版社,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核微控制器開(kāi)發(fā)與應(yīng)用[M].北京:清華大學(xué)出版社,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多點(diǎn)通信系統(tǒng)的實(shí)現(xiàn)方法[J].工礦自動(dòng)化,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] 馬忠梅.單片機(jī)的C語(yǔ)言應(yīng)用程序設(shè)計(jì)[M].北京:北京航天航空大學(xué)出版社,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-),男,四川廣漢人,工程師,碩士,主研方向:信號(hào)處理。
2014-11-10