范雪琴
(丹東機床有限責任公司 技術科,遼寧 丹東 118000)
基于STM32單片機的熱量表低成本測溫電路設計
范雪琴
(丹東機床有限責任公司 技術科,遼寧 丹東 118000)
使用常見的電阻、電容器件,根據(jù)RC充放電原理,利用STM32單片機內置的16位定時器測量RC充電時間,再通過時間與阻值對應關系的計算,獲取測量阻值,從而實現(xiàn)了熱量表的低成本測溫.
STM32單片機;熱量表;低成本;測量溫度
目前市場中出現(xiàn)的熱量表普遍采用高性能、低成本、低功耗的STM32單片機作為核心,利用STM32F103單片機制作的熱量表具有成本低、計量精度高、通訊接口豐富等優(yōu)點.然而,基于STM32單片機熱量表的測溫電路仍采用傳統(tǒng)的電壓測量電路或者電流測量電路,兩種電路都需要復雜的外圍門電路以及高精度的AD轉換芯片,同時外圍器件的增多也會使電路板的面積增大,從而導致熱量表的成本增加.本文基于STM32單片機,使用簡單的電阻、電容,利用RC充放電原理實現(xiàn)了熱量表的低成本測溫.
STM32系列單片機是由意大利意法半導體推出的ARM32位Cortex-M3內核的單片機,采用高效的哈佛結構三級流水線,達到1.25 DMIPS/MHz,在功耗上更是達到0.6 mW/MHz.使用Thumb-2指令集,自動16/32位混合排列,具有很高的代碼密度.單周期的32位乘法以及硬件除法器,保證STM32的運算能力有大幅提高,在一些對計算能力要求相對較低而嵌入式要求相對較高的場合,STM32具有取代傳統(tǒng)DSP的潛力甚至優(yōu)勢[1].STM32包含嵌套向量中斷控制器NVIC,中斷響應速度最快僅6周期,內部集成總線矩陣,支持DMA操作及位映射.STM32有豐富的外設資源,F(xiàn)LASH、SRAM存儲器,豐富的串行通信接口,如IIC、SPI、USART、CAN、USB等,以及12位的ADC和DAC模塊,支持外部存儲器訪問的靈活的靜態(tài)存儲器控制器FSMC.本設計方案中,熱量表使用的是STM32F103R8T6單片機,具有64 kB程序存儲空間,20 kB程序運行SRAM,內置3個通用定時器、49個通用IO口、多種通訊接口.
本方案基本原理是利用RC充放電的時間來實現(xiàn)的.通過不同阻值電阻對同一個電容充電,其需要的充電時間是不同的,使用 STM32F103R8T6單片機內置的16位定時器,采集電容充電時間,與參考電阻對電容的充電時間對比,可以得出測量電阻的阻值,再通過查詢PT1000的分度表來實現(xiàn)測溫功能[2].在元器件上僅采用2個參考電阻、1個充電電容、2個PT1000溫度傳感器,因此屬于低成本的測溫方案.測溫電路原理圖如圖1所示.
測溫部分電路需要4路溫度測量,其中2路(R_PT1、R_PT2)作為熱量表實際測量使用的進水溫度和回水溫度電阻,選用德國九茂PT1000熱電阻.當水溫為0 ℃時,PT1000阻值約為100 Ω;當水溫為100 ℃時,PT1000阻值約為1 400 Ω.2路作為測量溫度使用的參考電阻(R_ref1、R_ref2),選擇低溫漂1%精度的1 000 Ω和1 400 Ω作為參考電阻.充電電容選擇TDK公司的低溫漂1%精度的COG電容(C_ref),在這里,選用電容的容值為1 μF.另外需要1路參考電壓(PA5),根據(jù)STM32單片機的特點,這里使用單片機的1個I/O口中斷來確定電容充電時間定時器的啟動與停止.在對電容充電之前,設置為上升沿中斷,禁止中斷;對電容充電開始后,啟動定時器,允許中斷,當PA5檢測到上升沿中斷后,停止定時器,這樣通過1個I/O口的中斷,就能確定出充電的時間,從而進行熱量計量.
圖1 測溫電路原理圖
測溫流程如下:
1) STM32單片機PA1、PA2、PA3、PA4、PA5設定為輸出低電平,使電容C_ref放電完成.
2) PA2、PA3、PA4設定為高阻態(tài),PA5設定為上升沿中斷觸發(fā).
3) 定時器TIM2設置為增計數(shù)模式.
4) A1設置為輸出高電平,啟動TIM2定時器.
5) 當PA5端口檢測到中斷后,停止計數(shù)器,獲取R_ref1充電時間.
6) STM32單片機PA1、PA2、PA3、PA4、PA5設定為輸出低電平,使電容C_ref放電完成.
7) PA1、PA3、PA4設定為高阻態(tài),PA5設定為上升沿中斷觸發(fā).
8) 定時器TIM2設置為增計數(shù)模式.
9) PA2設置為輸出高電平,啟動TIM2定時器.
10) 當PA5端口檢測到中斷后,停止計數(shù)器,獲取R_PT1充電時間.
11) STM32單片機PA1、PA2、PA3、PA4、PA5設定為輸出低電平,使電容C_ref放電完成.
12) PA1、PA2、PA4設定為高阻態(tài),PA5設定為上升沿中斷觸發(fā).
13) 定時器TIM2設置為增計數(shù)模式.
14) PA3設置為輸出高電平,啟動TIM2定時器.
15) 當PA5端口檢測到中斷后,停止計數(shù)器,獲取R_PT2充電時間.
16) STM32單片機PA1、PA2、PA3、PA4、PA5設定為輸出低電平,使電容C_ref放電完成.
17) PA1、PA2、PA3設定為高阻態(tài),PA5設定為上升沿中斷觸發(fā).
18) 定時器TIM2設置為增計數(shù)模式.
19) PA4設置為輸出高電平,啟動TIM2定時器.
20) 當PA5端口檢測到中斷后,停止計數(shù)器,獲取R_ref2充電時間.
通過上述步驟,可以獲得每個電阻對電容的充電時間.根據(jù)2個參考電阻的充電時間以及參考電阻的阻值,可以獲得時間與阻值的對應關系[5].假設R_ref1的充電時間為χ s,R_ref2的充電時間為y s,則可以獲得如圖2所示的充電時間與阻值的對應關系圖.
圖2 充電時間與阻值對應關系圖
根據(jù)等比定理,假設現(xiàn)有外部測量電阻對電容的充電時間為z,則z對應的阻值R_PT可以通過
計算獲得.由式(1)可以推導出測溫電阻R_PT與充電時間以及參考電阻阻值的關系為
通過式(2)可獲得要測量電阻的阻值,進而通過查表獲得對應的溫度值.
詳細介紹了基于STM32單片機的低成本測溫方案的硬件電路、測溫流程以及測溫程序.在應用中為了提高測量的準確度,2個參考電阻以及充電電容務必選用低溫漂高精度的器件,推薦選用TDK或村田廠家的產品.本方案成本僅用2個參考電阻和1個電容,實現(xiàn)了熱量表需要完成的溫度測量,不僅大大降低了熱量表的成本,而且器件采購方便.
[1] 張洋. 原子教你玩STM32(寄存器版)[M]. 北京:北京航空航天大學出版社,2013:140-177.
[2] 廖義奎. Cortex-M3之STM32嵌入式系統(tǒng)設計[M]. 北京:中國電力出版社,2012:255-324.
[3] 吳文光,周清華. 利用函數(shù)參數(shù)和返回值提高嵌入式軟件質量[J]. 單片機與嵌入式系統(tǒng)應用,2009(1):31-33.
(責任編輯:沈鳳英)
Low Cost Temperature Measurement Circuit Design Based on STM32 Microcontroller
FAN Xue-qin
(Technology Department,Dandong Machinery Ltd Co., Dandong 118000,China)
This design uses common resistors and capacitor elements according to the RC charge-discharge principle,applying the 16-bit timer in STM32 MCU to measure charging time.The low temperature cost measurement of Heat-meter is achieved by the resistor value measured which is obtained through the calculation of the matching relationship between charging time and resistor value.
STM32 microcontroller;heat-meter;low-cost;temperature measurement
TP368.1
A
1008-5475(2014)02-0014-04
2014-03-02;
2014-04-01
范雪琴(1966-),女,蒙古族,遼寧丹東人,工程師,主要從事單片機及其應用研究.