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