摘 要: 設計了一個DS18B20溫度傳感器校驗平臺。將Pt100測得的溫度值作為標準溫度值,,校驗溫度傳感器是否合格,。為了提高Pt100測得溫度的精準性,使用格羅布斯準則和算術平均值法分別消除粗大誤差和隨機誤差,。以P89LPC935為核心設計了校驗平臺的硬件和軟件,,并使用Visual C++ 6.0設計了上位機顯示界面。
關鍵詞: DS18B20,;Pt100,;溫度傳感器;校驗
電冰箱出廠前需要試運行幾十分鐘甚至數(shù)小時,,同時檢測冷藏室,、冷凍室、壓縮機進氣口,、出氣口和環(huán)境溫度,、壓縮機功率等參數(shù),,以判斷電冰箱是否合格。一條電冰箱檢測線少則使用數(shù)百只溫度傳感器,,多則使用數(shù)千只溫度傳感器,。為了準確檢測溫度,曾經(jīng)采用熱電阻,、AD590等模擬式溫度傳感器,。由于模擬式溫度傳感器均需要檢測轉(zhuǎn)換電路與A/D轉(zhuǎn)換器,使得電冰箱檢測線的制造與維護成本很高,。DS18B20的問世給電冰箱檢測線數(shù)千點溫度檢測提供了極其方便的途徑,。DS18B20直接輸出相應溫度的數(shù)字量,無需轉(zhuǎn)換電路與A/D轉(zhuǎn)換器,,使用極其方便,,已被電冰箱生產(chǎn)廠家廣泛采用。
DS18B20采用“1-Wire”接口,,測量溫度范圍為-55 ℃~+125 ℃,,最高溫度分辨率為0.062 5 ℃,在-10 ℃~+85 ℃范圍內(nèi),精度為±0.5 ℃,。溫度值采用12位二進制數(shù)表示,,存儲在DS18B20的兩個8 bit的RAM中,其中高5位為符號位,,低11位為溫度值,。如果測得的溫度大于等于0 ℃,高5位為0,,將低11位的數(shù)值乘0.062 5即可得到實際溫度值,;如果測得的溫度低于0 ℃,高5位為1,,將低11位取反加1再乘0.062 5即可得到實際溫度值,。
通常電冰箱冷凍室的溫度低于-20 ℃,壓縮機排氣口溫度可高達60 ℃左右,,為了保證檢測線上數(shù)千只溫度傳感器測量偏差不大于±0.5 ℃,,必須對DS18B20在-30 ℃~+60 ℃溫度范圍內(nèi)進行校驗篩選。為此,,本文設計了一個DS18B20溫度傳感器校驗平臺,。
1 系統(tǒng)設計
校驗平臺由酒精恒溫槽與傳感器校驗系統(tǒng)構(gòu)成。酒精恒溫槽模擬不同的被測溫度,。系統(tǒng)以P89LPC935單片機為核心,,Pt100測溫電路為校驗平臺提供準確溫度值。DS18B20為待測溫度傳感器,,校驗平臺一次可以檢測16只傳感器,。繼電器接口用來控制酒精槽制冷,、制熱工作,為傳感器模擬-30 ℃~+60 ℃范圍的工作溫度,。采用七位數(shù)碼管,,顯示標準溫度、待測傳感器的溫度檢測值,、二者偏差值等數(shù)據(jù),。
上位機可以通過串口接收、顯示各個傳感器的測量數(shù)據(jù)和校驗結(jié)果,。通過按鍵實現(xiàn)系統(tǒng)的開始,、停止等功能。
DS18B20是單總線,、數(shù)字式溫度傳感器,,對時序要求比較嚴格。工作時序包括初始化時序,、讀時序和寫時序。常用的基本操作有Skip Rom(跳過Rom)[CCH],、Convert Temperature(溫度轉(zhuǎn)換)[44H]和Read Scratchpad(讀暫存存儲器)[BEH],。測得的溫度值存儲在高速暫存RAM的前兩個字節(jié)中。P89LPC935通過連續(xù)兩次讀操作,,可以獲得溫度值,。首先讀取的是低位字節(jié)TL,接著是高位字節(jié)TH[1],。P89LPC935與DS18B20的接口電路如圖1所示,。本系統(tǒng)需要一次校驗16個DS18B20,因單片機引腳有限,,故選用16選1模擬開關CD4067,。A、B,、C,、D為通道選擇端,INT為控制端,。當INT=1時,,關閉所有通道。
2 標準溫度值獲取
標準溫度值是校驗的參考溫度,,將DS18B20測得的溫度值和標準值進行比較,,以決定其是否合格。因此,,標準溫度值的獲取至關重要,。Pt100鉑電阻具有精度高,、穩(wěn)定性好、性能可靠等特點,。在0 ℃~650 ℃范圍內(nèi):Rt=R0(1+At+Bt2),;在-200 ℃~0 ℃范圍內(nèi):Rt=R0(1+At+Bt2+C(t-100)t3)。式中,,R0=100 Ω,,為t=0 ℃時的電阻值,A=3.968 47×10-3,,B=-5.847×10-7,,C=-4.22×10-12。
Pt100是電阻式溫度傳感器,,溫度變化引起電阻變化,。將電阻的變化轉(zhuǎn)換成電壓信號,經(jīng)放大后,,再將模擬電壓信號轉(zhuǎn)換成數(shù)字信號,,由單片機換算成相應的溫度。Pt100測溫電路采用三線制接法,,如圖2所示,。
LM334為恒流源,外加二極管和電阻,,就可以為Pt100提供恒定的電流,,調(diào)節(jié)電位器R3即可改變電流大小。當溫度改變時,,Pt100電阻改變,,引起電壓變化。MC1403為基準電壓源,,提供2.5 V精密電壓,,經(jīng)電位器分壓后送入運放作為調(diào)零信號。前端測得電壓值經(jīng)過運放OP07放大,,送入A/D轉(zhuǎn)換器,,轉(zhuǎn)換成數(shù)字信號后換算成溫度值,即可以實現(xiàn)溫度的測量[2-4],。
在Pt100測溫過程中,,由于各種原因,測量結(jié)果和真實值之間總會存在一定的誤差,,使得測量結(jié)果不能客觀地反映實際溫度,。根據(jù)測量誤差的性質(zhì),可以將誤差分為系統(tǒng)誤差,、隨機誤差和粗大誤差,。由于Pt100測得的溫度為標準溫度值,,因此,必須將它的誤差減到最小,,這就需要選擇合適的誤差分析和消除方法,。
為了消除Pt100測溫電路的系統(tǒng)誤差,必須調(diào)整好電路的零點和增益,。零點包括運放的零點和溫度的零點,。將J_Pt100的1號腳與B點短接時調(diào)節(jié)運放的調(diào)零電位器,使運放的輸出為零,;用標準電阻箱替代Pt100,,將其阻值打在100 Ω上,調(diào)節(jié)R3,,使A點電壓為0.3 V,,即恒流源為3 mA,再調(diào)節(jié)R5,,使B點電壓也為0.3 V,,此時溫度顯示值為零;再將標準電阻箱打在123.24 Ω上,,調(diào)節(jié)電位器R10,,使C點電壓為P89LPC935內(nèi)部A/D參考電壓3.3 V左右,溫度顯示值為60 ℃[5],。
隨機誤差主要是由對測量值影響微小但卻互不相關的大量因素共同造成的,這些因素主要有溫度波動,、噪聲干擾,、電磁場微變、空氣擾動等,。為減小Pt100測溫的隨機誤差,,采用算術平均值作為測量結(jié)果[6,7]。
將粗大誤差剔除后,,重新計算平均值x,、標準差σ、G0,、G1和Gn,,重復上述步驟繼續(xù)進行判斷,依此類推,,直至完全消除粗大誤差[8],。格羅布斯準則消除粗大誤差軟件流程如圖3所示。
3 實驗結(jié)果
在相同條件下,,進行15次測量測量數(shù)據(jù)如表1所示,。選用格羅布斯準則消除粗大誤差,。首先按測量值大小
通常消除粗大誤差和隨機誤差,都是采用去極值算術平均值法,。在這組數(shù)據(jù)中,,首先,去掉最大值20.55和最小值20.40,,再求剩下數(shù)據(jù)的算術平均值,,可得x=20.51。實驗數(shù)據(jù)表明,,采用格羅布斯準則消除粗大誤差,,要比去極值法效果更理想,更接近真實值,。
利用Visual C++ 6.0設計上位機顯示界面,,用來顯示標準溫度值、各個待校驗DS18B20的溫度值,、與標準溫度的差值以及最終校驗結(jié)果[9,10],。
為了保證電冰箱檢測線數(shù)千只DS18B20溫度傳感器,在-30 ℃~+60 ℃溫度范圍內(nèi),,測量偏差均不大于±0.5 ℃,,本文以P89LPC935為核心設計了DS18B20溫度傳感器校驗平臺。用Visual C++ 6.0設計了上位機校驗結(jié)果顯示界面,。采用Pt100熱電阻作為標準溫度傳感器,。為了提高Pt100熱電阻的檢測精度,設計了恒流三線制Pt100熱電阻溫度轉(zhuǎn)換電路,,采用算術平均值法,、格羅布斯準則分別減小隨機誤差和粗大誤差。實驗結(jié)果表明,,該校驗平臺設計合理,,判斷準確、使用方便,。篩選后的傳感器完全符合用戶的要求,。
參考文獻
[1] 雷建龍.數(shù)字溫度傳感器DS18B20讀出數(shù)據(jù)錯誤分析[J].電子器件,2007,,30(6):2183-2185.
[2] 張志勇,,辛長宇,朱玉龍,,等.Pt100溫度傳感器非線性的補償方法與電路實現(xiàn)[J].電子器件,,2007,30(6):2189-2191.
[3] 王龍.基于鉑電阻Pt100的高精度溫度測控系統(tǒng)設計[J]. 吉首大學學報,2009,,30(3):70-73.
[4] ALAN T.Improving the accuracy of temperature measurements[J].Sensor Review,,2009,21(3):193-198.
[5] 潘雄,,付宗堂,,范曉明.一種處理系統(tǒng)誤差的新方法[J].儀器儀表學報,2007,,28(4):630-634.
[6] 費業(yè)泰.誤差理論與數(shù)據(jù)處理[M].北京:機械工業(yè)出版社,,2005.
[7] Tao Chongde,Wang Guanglin,,Shao Dongxiang.New method on rigidity measurement of precision elastic elements[J].
Journal of Harbin Institute of Technology,,1995,12(1):34-36.
[8] 隋文濤,,張丹.測試數(shù)據(jù)中粗大誤差的判定技術及其軟件實現(xiàn)[J].電測及儀表,,2006,43(11):61-63.
[9] 龔建偉,,熊光明.Visual C++/ Turbo C串口通信編程實踐[M].北京:電子工業(yè)出版社,,2007.
[10] 王中訓,徐超,,王德法.基于VC++ 6.0的多串口通信方法[J].計算機應用,,2008,28(6):254-256.