1 測溫模塊硬件原理:
1.1 溫度信息的獲取:
實(shí)現(xiàn)溫度的檢測需要使用溫度傳感器,。溫度傳感器種類很多,,熱敏電阻器是其中應(yīng)用較多的一種,具有靈敏度高,、穩(wěn)定性好,、熱慣性小、體積小、阻值大及價(jià)格便宜等特點(diǎn),,廣泛應(yīng)用于溫度測控領(lǐng)域,。熱敏電阻應(yīng)用于溫度檢測,最核心的一個(gè)工作就是要比較精確地獲取熱敏電阻的阻值變化,。常見的處理方式是通過外加電源,,把熱敏電阻的阻值變化轉(zhuǎn)換為電壓或電流變化,再通過A/D 轉(zhuǎn)換器進(jìn)行轉(zhuǎn)換后將數(shù)字量傳送給處理器進(jìn)行處理,。這種方式硬件電路設(shè)計(jì)及數(shù)據(jù)處理相對(duì)麻煩,,成本較高,并且所獲取的熱敏電阻阻值精度受電源穩(wěn)定性和A/D 轉(zhuǎn)換器的位數(shù)限制,,一般比較低,,對(duì)測溫精度造成較大影響。同時(shí),,由于熱敏電阻的非線性,,為提高測溫精度通常還需要附加較復(fù)雜的補(bǔ)償電路。在設(shè)計(jì)中,,為解決這一問題,,將RC 充放電采樣方式引入到熱敏電阻的阻值測量中,將阻值轉(zhuǎn)換為電容的充放電時(shí)間進(jìn)行檢測,,原理如圖1 所示,。
圖1 中,P1.0,、P1.1 和P1.2 均是處理器的通用I/O 口,,RF為精密參考電阻,RT為檢測溫度的熱敏電阻,,RS為0.1 kΩ 普通電阻,;C 為0.1 μF 普通電容。
實(shí)現(xiàn)熱敏電阻阻值獲取的步驟及原理如下:1)先將端口P1.0,、P1.1,、P1.2 都設(shè)為低電平輸出,使電容C 完全放電,。2)將P1.1,、P1.2 設(shè)置為輸入狀態(tài),P1.0 設(shè)為高電平輸出,, 通過電阻RF對(duì)C 充電,,處理器內(nèi)部計(jì)時(shí)器清零并開始計(jì)時(shí),檢測P1.2口狀態(tài),,當(dāng)P1.2 口檢測為高電平時(shí),,即電容C 兩端的電壓達(dá)到處理器I/O 口高電平輸入的門嵌電壓時(shí),計(jì)時(shí)器停止計(jì)數(shù),記錄下從開始充電到P1.2 口檢測到高電平的時(shí)間T1,。3)將P1.0,、P1.1、P1.2 再次設(shè)為低電平輸出,,使C 完全放電,。4)再將P1.0、P1.2 設(shè)置為輸入狀態(tài),,P1.1 設(shè)為高電平輸出,, 通過熱敏電阻RT對(duì)C 充電,再進(jìn)行步驟2)相同的過程,,記錄下時(shí)間T2,。
熱敏電阻的阻值由T1和T2確定。RC 充放電電路中,,電容C 兩端的電壓確定為:
由上述過程可得:
簡化式(2)即可得到熱敏電阻的阻值:
由式(3)計(jì)算出熱敏電阻阻值后,,通過熱敏電阻測溫曲線,即可把阻值轉(zhuǎn)換為對(duì)應(yīng)的溫度值,,實(shí)現(xiàn)溫度信息的獲取,。
1.2 處理器的選型:
處理器是整個(gè)測溫模塊的控制及數(shù)據(jù)處理的核心。特別是在本設(shè)計(jì)中,,由于熱敏電阻的阻值需要直接由處理器進(jìn)行檢測,,其性能會(huì)對(duì)測溫效果、精度,、數(shù)據(jù)處理速度等產(chǎn)生較大影響,。綜合處理器速度,、性能與價(jià)格的考慮,,選用ARM 處理器LM3S101。LM3S101 是基于ARM CortexTM-M3 內(nèi)核的控制器,,該器件是32 位處理器,,采用哈佛架構(gòu)、Thumb-2 指令集,,主要特點(diǎn)[2]如下:1)具有32 位RISC 性能,;2)具有2 個(gè)內(nèi)部存儲(chǔ)器,內(nèi)部集成了8 KB 單周期的Flash ROM,,2 KB 單周期的SRAM,;3)具有2 個(gè)32 位的通用定時(shí)器,其中每個(gè)都可配置為1 個(gè)32 位定時(shí)器或2 個(gè)16 位定時(shí)器,,同時(shí)還有遵循ARM FiRM 規(guī)范的看門狗定時(shí)器,;4)具有同步串行接口SSI,和UART 串行接口,具有很強(qiáng)的信號(hào)傳輸功能,;5)2~18 個(gè)GPIO 端口,,可編程靈活配置;6)時(shí)鐘頻率達(dá)到20 MHz,。
除此之外,, 該款處理器由于采用CortexTM-M3 內(nèi)核,支持單周期乘法運(yùn)算,,這在測溫?cái)?shù)據(jù)處理時(shí)會(huì)有較高的數(shù)據(jù)處理速度與效率,。同時(shí),該處理器成本低,。
1.3 影響測溫精度的主要因素:
由于采用RC 充放電的方式獲取熱敏電阻阻值,,因此整個(gè)測溫模塊所需外圍元件很少,熱敏電阻阻值獲取的精度是影響模塊測溫精度的主要因素之一,。由熱敏電阻阻值獲取原理可以看出,,影響測溫精度的主要因素有:1)參考電阻RF的精度;2)熱敏電阻RT的精度,;3)處理器內(nèi)部定時(shí)器的位數(shù)與精度,。處理器工作頻率越高,定時(shí)器位數(shù)越大,,則處理精度越好,。
阻值獲取的精度是與處理器的輸出電壓值、門限電壓值,、電容C 的精度,、電阻RD的精度無關(guān)的,因此只要合理選擇處理器和高精度的RF與RT,, 就可以使熱敏電阻阻值的測量有較小的誤差,。為保證測溫精度,熱敏電阻RT選用標(biāo)稱值為10 kΩ(或100 kΩ),,B 值為3 950,,1%精度熱敏電阻,參考電阻RF選用10 kΩ(或100 kΩ),,1%精度的金屬膜電阻,。
1.4 模塊硬件電路設(shè)計(jì):
以ARM 處理器LM3S101 為核心, 結(jié)合上述熱敏電阻阻值獲取原理,,給出該測溫模塊核心部分電路原理圖,,如圖2 所示。
由圖2 可看出,,按上述的電容充放電熱敏阻值檢測原理進(jìn)行硬件設(shè)計(jì),,核心部分電路較為簡潔,,避免了傳統(tǒng)方式中A/D 器件的應(yīng)用,達(dá)到了簡化硬件電路設(shè)計(jì),,降低硬件成本的目的,。同時(shí),這種設(shè)計(jì)又不過多占用處理器的I/O 端口,,對(duì)處理器資源的占用也較少,。由于這種方式在阻值獲取時(shí)需處理器具有較高的計(jì)數(shù)精度,而在阻值到溫度值轉(zhuǎn)換時(shí)需處理器具有較強(qiáng)的運(yùn)算能力,,因此選用LM3S101 進(jìn)行核心處理,,其20 MHz 的時(shí)鐘頻率及ARMCortex-M 內(nèi)核集成的硬件乘法單元對(duì)此有很好的保證。電路圖中,,其他部分簡要說明:SP6201是集復(fù)位功能于一體的低壓差線性穩(wěn)壓(LDO)器,,將5 V 電源轉(zhuǎn)換為處理器LM3S101 所需的3.3 V, 同時(shí)產(chǎn)生處理器工作所需的復(fù)位信號(hào),。電阻RF,、RT、RS和電容C6構(gòu)成RC 充放電電路,,用以實(shí)現(xiàn)熱敏電阻阻值的檢測,,與處理器通過PA2、PA3,、PA4 3 個(gè)GPIO 接口相連,。LM3S101 的10 和11 引腳使用其UART 功能,連接至電平轉(zhuǎn)換電路,,以實(shí)現(xiàn)模塊通過串口的通信及溫度數(shù)據(jù)發(fā)送功能,。
2 數(shù)據(jù)處理及軟件設(shè)計(jì):
2.1 熱敏電阻測溫曲線的線性化處理:
熱敏電阻的測溫曲線反映了熱敏電阻阻值與被測溫度值之間的關(guān)系,由Steinhart-Hart 方程確定:
式中,,RT是熱敏電阻在T1溫度下的電阻值,;R 是熱敏電阻在常溫T2(T2=25 ℃)下的標(biāo)稱電阻值;B 值是熱敏電阻的材料常數(shù),;T1和T2為開爾文溫度,。
由Steinhart-Hart 公式可知熱敏電阻的阻值溫度特性曲線是一條非線性的指數(shù)曲線,,直接使用該方程運(yùn)算量大并且編程麻煩,,需要進(jìn)行線性化處理。由于該方程非線性程度較大,,同時(shí)阻值到溫度值的轉(zhuǎn)換也是影響測溫精度的主要原因之一,,為使線性化處理不至于帶來較大的誤差,線性化過程進(jìn)行了以下特殊處理:
1)如果用一條直線代替該指數(shù)測溫曲線,,則不管采用什么樣的線性化處理方法,,誤差都比較大,。為解決這一問題,在整個(gè)測溫范圍之內(nèi)對(duì)該曲線進(jìn)行了分段的線性化處理,,使誤差能夠控制在合理的范圍內(nèi),;2)分段線性化時(shí),對(duì)測溫曲線的分段采用非等間隔分段,,在曲線非線性程度較小的區(qū)域內(nèi)采用5 ℃分段間隔,,在曲線非線性較為嚴(yán)重的區(qū)域內(nèi),采用較小的1 ℃分段間隔,,以減小處理誤差,;3)在每一段測溫曲線的線性化處理中,采用最小二乘法確定直線方程,,以減小直線擬合的均方誤差,。
實(shí)測結(jié)果證明,采用上述的線性化處理方法,,可以有效提高處理精度,,大大減小線性化處理的誤差,保證測溫的精度要求,,同時(shí)運(yùn)算速度也能得到保證,。
2.2 測溫?cái)?shù)據(jù)的濾波處理:
測溫模塊工作過程中不可避免會(huì)受到噪聲干擾。為減少測溫過程中噪聲干擾信號(hào),,特別是突發(fā)噪聲的影響,,提高測溫模塊的工作穩(wěn)定性,需要結(jié)合濾波算法對(duì)測溫?cái)?shù)據(jù)進(jìn)行濾波處理,。這里采用簡單的加窗平滑低通濾波的方法,,即連續(xù)測量N 個(gè)值,取平均后作為測量的有效值,,即:
在具體的應(yīng)用中,,N 越大對(duì)數(shù)據(jù)的平滑越好,但N 過大會(huì)降低測溫的速度和靈敏度,。經(jīng)實(shí)際試驗(yàn),,選擇N=5~10 之間較為合適,可在計(jì)算速度和平滑濾波效果之間取得較好平衡,,實(shí)際應(yīng)用中,,可根據(jù)具體的測溫要求進(jìn)行合理設(shè)置。
2.3 測溫模塊的軟件設(shè)計(jì):
以上述的數(shù)據(jù)處理思路為基礎(chǔ),,結(jié)合串口通信編程及必要的初始化處理工作,,即可進(jìn)行測溫模塊的軟件設(shè)計(jì)。完成一次溫度測量及測溫結(jié)果傳輸?shù)闹髁鞒倘鐖D3 所示,。
整個(gè)模塊的軟件設(shè)計(jì)編程基于Crossworks1.7 開發(fā)環(huán)境進(jìn)行,,將整個(gè)程序的核心部分劃分為4 個(gè)函數(shù)進(jìn)行設(shè)計(jì),,即:
1)主函數(shù),完成系統(tǒng)參數(shù)配置,、端口初始化及濾波處理等功能,;2)測溫函數(shù),完成熱敏電阻的阻值獲取,,并將其轉(zhuǎn)換為實(shí)際的溫度值,;3)測溫結(jié)果傳輸函數(shù),完成測溫結(jié)果通過串口的發(fā)送傳輸功能,;4)串口接收函數(shù),,通過串口接收控制指令,完成測溫間隔時(shí)間,、串口通信速率,、平滑濾波加窗寬度、及測溫結(jié)果顯示格式等工作參數(shù)的設(shè)置,。
3 測溫效果分析
所設(shè)計(jì)的測溫模塊結(jié)合精密恒溫槽進(jìn)行了實(shí)際測溫效果的實(shí)驗(yàn)測試,。利用精密恒溫槽在-10~+80 ℃的測溫范圍內(nèi),設(shè)置3 個(gè)溫度檢測點(diǎn),,把熱敏電阻放在精密恒溫槽內(nèi),,利用該模塊進(jìn)行溫度的測量。各個(gè)溫度點(diǎn)的溫度測量值通過串口調(diào)試工具進(jìn)行觀測,,實(shí)驗(yàn)測試數(shù)據(jù)如表1 所示,。
表1 所示的測量數(shù)據(jù)表明, 所設(shè)計(jì)的測溫模塊測溫穩(wěn)定,,在整個(gè)測量溫度范圍內(nèi)測溫精度基本上能夠達(dá)到0.2 ℃,,優(yōu)于傳統(tǒng)熱敏電阻測溫采用單片機(jī)結(jié)合A/D 器件的方式,同時(shí)也證明了測溫曲線分段線性化處理的有效性,。
4 結(jié)論
本文提出了一種簡單實(shí)用,、性價(jià)比高、測溫效果好的熱敏電阻溫度測量模塊的設(shè)計(jì),,所設(shè)計(jì)的測溫模塊由于對(duì)熱敏電阻阻值的獲取引入RC 充放電方式,, 簡化了硬件設(shè)計(jì)和模塊成本;而選用32 位ARM 處理器LM3S101[4-5]以及數(shù)據(jù)處理所采用的分段線性化處理方式則有效保證了測溫精度與數(shù)據(jù)處理的速度,。通過測溫實(shí)驗(yàn)及在具體溫度測控系統(tǒng)中的使用,,該測溫模塊在-10~80 ℃范圍內(nèi)有良好的測溫效果。在具體的模塊設(shè)計(jì)與應(yīng)用過程中,,還有其他一些因素會(huì)對(duì)測溫的精度產(chǎn)生影響,,若要進(jìn)一步提高該方案的測溫精度,可在以下幾個(gè)方面做進(jìn)一步的改進(jìn)處理[6]:1)電源的穩(wěn)定性,,由于采用RC 充放電方式獲取熱敏電阻的阻值,,系統(tǒng)電源的穩(wěn)定性對(duì)充放電時(shí)間有較顯著的影響,實(shí)際設(shè)計(jì)與應(yīng)用中,,采用低噪聲,、高穩(wěn)定的電源有利于測量精度的提高。2)熱敏電阻形狀,,熱敏電阻的體積非常小,,可以制造成各種形狀,應(yīng)根據(jù)具體使用場合的不同,,選擇合適形狀的熱敏電阻,,使測量值能準(zhǔn)確反映測量溫度。3)傳感器的一致性,,傳感器的一致性差,,會(huì)引起很大的測量誤差,熱敏電阻在作為精密的溫度傳感器使用時(shí),,應(yīng)選擇產(chǎn)品的互換性在0.1%以上,。4)計(jì)算精度,測溫?cái)?shù)據(jù)的處理運(yùn)算較為復(fù)雜,,在進(jìn)行處理程序編寫時(shí),,應(yīng)注意保持較高的計(jì)算精度,防止計(jì)算過程帶來較大的誤差,。