安凱
摘 ?要: 文獻[1]中給出一種DS18S20數(shù)字式溫度傳感器測溫修正算法,但這種算法還不能充分利用DS18S20寄存器所給出的數(shù)據(jù),最大限度地反映溫度傳感器的測量數(shù)值。其次是沒有考慮算法給出的溫度的校準問題,這里提出一種精確的測溫算法,可以無誤差地表示傳感器給出的溫度值,同時還研究了傳感器輸出值的校準問題,給出了基于最小二乘法的校準公式。在仿真過程中,以高精度的測溫儀器為標準,給出了算法的校正公式,結果表明校正公式的誤差優(yōu)于0.01 ℃。
關鍵詞: DS18S20; 測溫; 傳感器; 校正
中圖分類號: TN62?34; TK311 ? ? ? ? ? ? ? ?文獻標識碼: A ? ? ? ? ? ? ? ? ? ? ? 文章編號: 1004?373X(2014)23?0097?03
Algorithm of high?precision temperature measurement
and calibration for temperature sensor DS18S20
AN Kai
(Shandong Aerospace Electro?technology Institute, Yantai 264670, China)
Abstract: An algorithm on temperature measurement calibration for the digital temperature sensor DS18S20 is proposed in Reference [1], but it can′t make full use of the data given by DS18S20 registers to represent the temperature value from the sensor exactly. In addition, the algorithm does not pay attention to the calibration of temperature measurement. A accurate algorithm for temperature measurement is presented in this paper, which can derive the temperature values from the DS18S20 sensor. The calibration of temperature output value of DS18S20 is investigated in this paper. The calibration expression based on the least square method is offered. By dint of the measuring instrument with high precision, the calibration expression was developed. The simuliation results indicate that the calibration expression can greatly improve the measurement precision, and its measurement error is less than 0.01℃.
Keywords: DS18S20; temperature measurement; sensor; callibration
0 ?引 ?言
目前,測量溫度都是采用間接測量的方法,即利用溫度傳感器的性能隨溫度而變化的特性,通過測量該性能參數(shù)得到被測溫度的大小[2]。用以測量溫度的特性有材料的熱膨脹、電阻、熱電動勢、導磁率、介電系數(shù)、光學特性、彈性等[3]。溫度傳感器的選用是高精度測溫的重要環(huán)節(jié)。在溫度測量時由于被測對象常常遠離測試設備,傳統(tǒng)的模擬溫度傳感器與測試設備之間的導線的電阻值隨環(huán)境溫度產生變化,而流過傳感器的工作電流在導線電阻上產生的電壓將迭加在傳感器的輸出信號上,成為無法消除的原始誤差,這種誤差會嚴重制約溫度測量精度[4?7]。此外,多點測量切換和放大電路零點漂移也將嚴重影響溫度測量精度[8]。由于模擬溫度傳感器存在上述不足,新型溫度傳感器的研究與應用正從模擬式向數(shù)字式方向發(fā)展[9?10]。數(shù)字溫度傳感器不必進行誤差補償,并適配各種微控制器,具有較高的溫度分辨率。
1 ?DS18S20溫度傳感器特性
DS18S20是美國DALLAS半導體公司生產的可組網數(shù)字式溫度傳感器,在其內部使用了片上(ON?B0ARD)專利技術。全部傳感元件及轉換電路集成在形如一只三極管的集成電路內。與其他溫度傳感器相比,DS18S20具有以下特性:
(1) 獨特的單線接口方式,DS18S20在與微處理器連接時僅需要一條口線即可實現(xiàn)微處理器與DS18S20的雙向通信。
(2) DS18S20支持多點組網功能,多個DS18S20可以并聯(lián)在惟一的三線上,實現(xiàn)多點測溫。
(3) DS18S20在使用中不需要任何外圍元件。
(4) 溫范圍為-55~+125 ℃,固有測溫分辨率為0.5 ℃。
(5) 測量結果以9位數(shù)字量方式串行傳送。
由于DS18S20的上述優(yōu)點,因此被廣泛應用于各種測溫場合。然而在正常測溫情況下,DS18S20的測溫分辨率僅為0.5 ℃,對許多測溫精度要求較高場合DS18S20仍顯精度不足。為此文獻[1]中給出一種DS18S20測溫的修正算法。首先用DS18S20提供的讀暫存寄存器指令(BEH)讀出以0.5 ℃為分辨率的溫度測量結果,然后切去測量結果中的最低有效位(LSB),得到所測實際溫度整數(shù)部分[T整數(shù),]然后再用BEH指令讀取計數(shù)器1的計數(shù)剩余值[M剩余]和每度計數(shù)值[M每度,]考慮到DS18S20測量溫度的整數(shù)部分以0.25 ℃,0.75 ℃為進位界限的關系,實際溫度[T實際]可用下式計算得到:
[T實際=(T整數(shù)-0.25 ℃)+(M每度-M剩余)M每度] (1)
式中:[T整數(shù)]是所測實際溫度整數(shù)部分;[M剩余]是計數(shù)器1的計數(shù)剩余值;[M每度]是每度計數(shù)值。這些值都可從DS18S20的內部暫存寄存器中獲得。但是,這個公式存在很大問題。例如,實際溫度為25.18 ℃,不妨設[M每度=]100,則[M剩余=82,]根據(jù)式(1)算出來的[T實際=]24.93 ℃,誤差甚至大于原有輸出25.0 ℃。
針對這個問題,本文提出了改進公式,可以消除上述公式的計算誤差。此外,本文還提出了基于最小二乘法的溫度修正公式,用以消除計算溫度與實際溫度之間的誤差。
2 ?高精度測溫算法
文獻[1]中給出的測溫算法有兩個缺陷,其一是不能準確反映傳感器所給出的溫度;其二是不能消除傳感器本身存在輸出頻率隨時間漂移所引起的測量誤差。高精度測溫算法旨在消除計算誤差,準確給出溫度傳感器所反映的溫度。根據(jù)DS18S20內部暫存寄存器的工作原理,高精度測溫算法可表示為:
當LSB=0時:
[T實際=T輸出+(M每度-M剩余)M每度] (2)
當LSB=1時:
[T實際=(T輸出-0.5)+(M每度-M剩余)M每度] (3)
式中:[T輸出]為測量結束后DS18S20串行輸出的符號位以外的變換結果;LSB為溫度結果字符串的最低位。
假定實際溫度為25.18 ℃,仍然不妨假定[M每度=]100,則[M剩余=82,]并且LSB=0,選擇式(2),則:
[T實際=25.0+(100-82)100=25.18 ℃]
也就是說,分辨率提升到0.01 ℃。
再假定實際溫度為25.88 ℃,仍然不妨假定[M每度=]100,則[M剩余=12,]并且LSB=1,選擇式(3),則:
[T實際=(25.5-0.5)+(100-12)100=25.88 ℃]
因此這種測溫算法可以徹底消除溫度傳感器反映溫度與計算溫度之間的誤差。
3 ?測溫公式的校正
DS18S20溫度傳感器的測溫原理是建立在晶振頻率相對變化率與溫度存在線性關系基礎之上。但從晶體的頻率溫度特性曲線圖(見圖1)可以看出晶振頻相對變化率與溫度并不具有線性關系,只不過是在某一段溫度區(qū)間內“十分”接近線性關系而已。因此為了更準確地測量出實際溫度,還需要在上述高精度測溫算法的基礎上進行校正。
<;E:\2014年23期\2014年23期\Image\25t1.tif>;
圖1 頻率溫度特性曲線圖
假定[Y(1),Y(2),…,Y(n)]為不同時刻由標準測溫儀器測得的某一物體的溫度值,而[T(1),T(2),…,T(n)]是在相應時刻由DS18S20溫度傳感器利用上述算法計算得到的溫度值。由晶體的頻率溫度特性曲線可以發(fā)現(xiàn),這線曲線與三次拋物線比較接近,因此可以采用三次拋物線模型表示實際溫度,即:
[Y(t)=c0+c1T(t)+c2T2(t)+c3T3(t)] ? (4)
式中:[c0,c1,c2,c3]為待定系數(shù)。
由此可以得到方程組:
[Y(1)=c0+c1T(1)+c2T2(1)+c3T3(1)Y(2)=c0+c1T(2)+c2T2(2)+c3T3(2) ? ? ? ? ? ? ??Y(n)=c0+c1T(n)+c2T2(n)+c3T3(n)]
或:
[Y(1)Y(2)?Y(n)=1T(1)T2(1)T3(1)1T(2)T2(2)T3(2)????1T(n)T2(n)T3(n)c0c1c2c3]
記:
[Y=Y(1)Y(2)?Y(n),C=c0c1c2c3,T=1T(1)T2(1)T3(1)1T(2)T2(2)T3(2)????1T(n)T2(n)T3(n)]
則有:
[Y=TC]
其最小二乘解為:
[C=(TTT)-1TTY]
將求出的解代入式(4)中就得到高精度測溫的校正公式:
[Y(t)=c0+c1T(t)+c2T2(t)+c3T3(t)]
4 ?仿 ?真
在恒溫箱內利用CTC?1200A溫度校準儀和DS18S20溫度傳感器同時測溫,后者采用本文中給出的高精度測溫算法,測得的結果如表1所示。
由表1利用校正公式可求出:
[C=-0.222 21.023 0-0.000 80.000 008]
因此校正后的測溫公式為:
[Y=-0.222 2+1.023 0T-0.000 8T2+0.000 008T3]
利用這個公式得:
當溫度[T=79]時:
[Y=79.996 2]
當溫度[T=-18.990 6]時:
[Y=-19.990 7]
測溫精度優(yōu)于0.01 ℃。
5 ?結 ?論
仿真結果表明,通過采用高精度測溫算法和校正公式可以將測溫精度從原來的0.5 ℃提高到0.01 ℃。需要指出的是,由于DS18S20溫度傳感器本身的差異,校正公式只能針對具體的器件通過實驗給出,但一經校準,公式就可以確定。另外,由于DS18S20溫度傳感器比較便宜,利用廉價的器件進行高精度測溫,可以有效地降低高精度測溫系統(tǒng)的成本,具有廣泛的社會價值和經濟價值。
表1 CTC?1200A溫度校準儀和DS18S20溫度
傳感器測溫結果比較表
[[Y]\&;[T]\&;[Y]\&;[T]\&;[Y]\&;[T]\&;-20\&;-18.990 6\&;15\&;15.027 0\&;50\&;49.936 0\&;-15\&;-14.271 0\&;20\&;20.008 0\&;55\&;54.875 0\&;-10\&;-9.488 0\&;25\&;25.001 0\&;60\&;59.784 0\&;-5\&;-4.657 0\&;30\&;30.000 0\&;65\&;64.657 0\&;0\&;0.216 0\&;35\&;34.999 0\&;70\&;69.488 0\&;5\&;5.125 0\&;40\&;39.992 0\&;75\&;74.271 0\&;10\&;10.064 0\&;45\&;44.973 0\&;80\&;79.000 0\&;]
參考文獻
[1] Dallas Semiconductor. DS18S20 data books [M]. USA: Dallas Semiconductor, 1995.
[2] 曹玉璋.傳熱學[M].北京:北京航空航天大學出版社,2001.
[3] 羅文廣,蘭紅莉,陸子杰.基于單總線的多點溫度測量技術[J].傳感器技術,2002,21(3):47?50.
[4] 閔桂榮,郭舜.航天器熱控制[M].北京:科學出版社,1998.
[5] 楮桂柏,馬世俊.宇航技術概論[M].北京:航空工業(yè)出版社,2002.
[6] 張恩勤.模糊控制與PID控制方法的比較[J].上海交通大學學報,1999,33(5):501?503.
[7] 張開遜.遠程溫度測量的新原理[J].儀器儀表學報,1998,19(2):113?117.
[8] 高憲文,蔡曉燕.基于PID控制的遺傳神經網絡在焦爐溫度控制中的應用研究[J].信息與控制,2005,34(6):709?713.
[9] 趙肇田,許倫輝.基于模糊推理的人工氣候室溫度PID控制器參數(shù)的整定[J].現(xiàn)代電子技術,2006,29(4):13?15.
[10] 黃繼昌,徐巧魚,張海貴,等.傳感器工作原理及應用實例[M].北京:人民郵電出版社,1998.
表1 CTC?1200A溫度校準儀和DS18S20溫度
傳感器測溫結果比較表
[[Y]\&;[T]\&;[Y]\&;[T]\&;[Y]\&;[T]\&;-20\&;-18.990 6\&;15\&;15.027 0\&;50\&;49.936 0\&;-15\&;-14.271 0\&;20\&;20.008 0\&;55\&;54.875 0\&;-10\&;-9.488 0\&;25\&;25.001 0\&;60\&;59.784 0\&;-5\&;-4.657 0\&;30\&;30.000 0\&;65\&;64.657 0\&;0\&;0.216 0\&;35\&;34.999 0\&;70\&;69.488 0\&;5\&;5.125 0\&;40\&;39.992 0\&;75\&;74.271 0\&;10\&;10.064 0\&;45\&;44.973 0\&;80\&;79.000 0\&;]
參考文獻
[1] Dallas Semiconductor. DS18S20 data books [M]. USA: Dallas Semiconductor, 1995.
[2] 曹玉璋.傳熱學[M].北京:北京航空航天大學出版社,2001.
[3] 羅文廣,蘭紅莉,陸子杰.基于單總線的多點溫度測量技術[J].傳感器技術,2002,21(3):47?50.
[4] 閔桂榮,郭舜.航天器熱控制[M].北京:科學出版社,1998.
[5] 楮桂柏,馬世俊.宇航技術概論[M].北京:航空工業(yè)出版社,2002.
[6] 張恩勤.模糊控制與PID控制方法的比較[J].上海交通大學學報,1999,33(5):501?503.
[7] 張開遜.遠程溫度測量的新原理[J].儀器儀表學報,1998,19(2):113?117.
[8] 高憲文,蔡曉燕.基于PID控制的遺傳神經網絡在焦爐溫度控制中的應用研究[J].信息與控制,2005,34(6):709?713.
[9] 趙肇田,許倫輝.基于模糊推理的人工氣候室溫度PID控制器參數(shù)的整定[J].現(xiàn)代電子技術,2006,29(4):13?15.
[10] 黃繼昌,徐巧魚,張海貴,等.傳感器工作原理及應用實例[M].北京:人民郵電出版社,1998.
表1 CTC?1200A溫度校準儀和DS18S20溫度
傳感器測溫結果比較表
[[Y]\&;[T]\&;[Y]\&;[T]\&;[Y]\&;[T]\&;-20\&;-18.990 6\&;15\&;15.027 0\&;50\&;49.936 0\&;-15\&;-14.271 0\&;20\&;20.008 0\&;55\&;54.875 0\&;-10\&;-9.488 0\&;25\&;25.001 0\&;60\&;59.784 0\&;-5\&;-4.657 0\&;30\&;30.000 0\&;65\&;64.657 0\&;0\&;0.216 0\&;35\&;34.999 0\&;70\&;69.488 0\&;5\&;5.125 0\&;40\&;39.992 0\&;75\&;74.271 0\&;10\&;10.064 0\&;45\&;44.973 0\&;80\&;79.000 0\&;]
參考文獻
[1] Dallas Semiconductor. DS18S20 data books [M]. USA: Dallas Semiconductor, 1995.
[2] 曹玉璋.傳熱學[M].北京:北京航空航天大學出版社,2001.
[3] 羅文廣,蘭紅莉,陸子杰.基于單總線的多點溫度測量技術[J].傳感器技術,2002,21(3):47?50.
[4] 閔桂榮,郭舜.航天器熱控制[M].北京:科學出版社,1998.
[5] 楮桂柏,馬世俊.宇航技術概論[M].北京:航空工業(yè)出版社,2002.
[6] 張恩勤.模糊控制與PID控制方法的比較[J].上海交通大學學報,1999,33(5):501?503.
[7] 張開遜.遠程溫度測量的新原理[J].儀器儀表學報,1998,19(2):113?117.
[8] 高憲文,蔡曉燕.基于PID控制的遺傳神經網絡在焦爐溫度控制中的應用研究[J].信息與控制,2005,34(6):709?713.
[9] 趙肇田,許倫輝.基于模糊推理的人工氣候室溫度PID控制器參數(shù)的整定[J].現(xiàn)代電子技術,2006,29(4):13?15.
[10] 黃繼昌,徐巧魚,張海貴,等.傳感器工作原理及應用實例[M].北京:人民郵電出版社,1998.