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