歡迎您光臨本站 登入註冊首頁

DS18B20的高精度溫度感測器設計

admin @ 2014-03-26 , reply:0

概述

1引言   單線數字溫度感測器(例如DS18B20)因其體積小、系統結構簡單等優點得到越來越廣泛的應用。DS18B20是美國Dallas半導體公司研製的一款單匯流排可編程……

1 引言
    單線數字溫度感測器(例如DS18B20)因其體積小、系統結構簡單等優點得到越來越廣泛的應用。DS18B20是美國Dallas半導體公司研製的一款單匯流排可編程智能溫度感測器。它將A/D轉換器、寄存器、介面電路集成在一個晶元中,可以直接輸出數字信號。與單片機的介面電路也很簡單,具有控制功能強、傳輸距離遠、抗干擾能力強等特點,非常適用於微型、低功耗的溫度測量器件。

2 DS18B20的性能特點
    DS18B20在-10℃~+85℃範圍內.可確保測量誤差不超過±0.5℃;在-55℃~+125℃範圍內,其測量誤差不超過±2℃。供電電壓範圍為3.0 V~5.5 V。
    DS18B20內置64位經過激光修正的ROM.出廠前作為唯一的產品序號存入ROM中。構成大型溫控系統時,允許在單匯流排上掛接多個DS18B20,理論上可掛接264個。
    DS18B20可分別設定各路溫度的上、下限並寫入RAM中.並能迅速識別出溫度越限的器件。
    採用Dallas公司獨特的“單匯流排(1-Wire)”專有技術,通過串列口(I/O)直接輸出所測溫度值。
    內含寄生電源。既可由單匯流排供電,亦可採用外部5 V電源供電。

3 系統簡介
    KJ05溫度感測器系統包括:單匯流排DS18B20溫度感測器。ATmega8單片機及其介面電路構成的溫度數據採集模塊;由數碼管,鍵盤和遙控電路構成友好的人機界面;報警燈和報警蜂鳴器電路,以及標準的4 mA~20 mA電流輸出模塊。其結構框圖如圖1所示。
 
圖1 系統結構框圖

4 利用測溫原理降低非線性誤差
    首先.由於DS18B20的解析度為9~12位可編程,為了得到較高精度的溫度,可採用l2位模式,理論上最小溫度解析度為0.0625℃ .但由於受各種因素影響,DS18B20測量溫度的解析度真實值只有0.5℃,該系統設計巧妙結合DS18B20的內部結構.進一步提高其解析度。DS18B20的內部結構框圖如圖2所示。
 
圖2 DSI8B20的內部結構框圖
    圖2中,高溫度係數振蕩器確定一個門控周期,然後在此門控周期內通過對低溫度係數振蕩器的時鐘個數進行計數便可測量溫度。在計數器和溫度寄存器內均預置了對應於-55℃的初值,如果在門控周期結束前,計數器的值沒有減到零,就表明當前測量溫度高於-55℃,溫度寄存器中的值要增加。同時,斜率累加器再給計數器預置初值,計數器重新計數到零.若門控周期沒有計數,則重複上述過程。
    利用下式可計算出高解析度的溫度值:
T=temp_read-0.25+(count-per_degree-count_remain)/count_per_degree
其中,temp_read:DS18B20中讀出的溫度讀數;count_per_degree:每攝氏度的計數值;count remain:門控周期結束時計數器中的餘數。
    為了提高溫度解析度,必須從DS18B20中讀出count_per_degree和count_remain.這兩個值存儲在便箋RAM的第6、7個位元組中。從DS18B20中讀出count_per_degree和count_remain的C語言程序如下:
void readtm
{unsigned char tmp;
reset(); /*複位DS18B20*/
sendcmd();/*發讀DS18B20 RAM命令*/
templ=read_tmp();/*讀溫度低位元組*/
temph=read_tmp(); / 讀溫度高位元組 /
tmp=read_tmp();
tmp=read_tmp();
tmp=read_tmp();
Count_remain=read_tmp();
Count_per_degree=read_tmp();
}

5 採用最小二乘估計降低線性誤差
    通過以上方法理論上可以得到0.1℃範圍內的誤差,但由於受各種因數的影響.往往誤差範圍能達到0.5℃。通過分析.得知誤差主要來源於晶元內部半導體熱雜訊。其類型為線性誤差,並隨溫度的上升而誤差增大。為了提高估計精度,對於不同的溫度區間應採用不同的修正係數.設該系統的線性誤差模型如下:
T=KTγ+C
其中,T為測量值,Tγ為真實值(採用更高精度MS6506測量而得).K為隨溫度變化的線性誤差修正係數,C為誤差補償參數。
    建立了DS18B20的誤差模型后,通過試驗來估計誤差模型的參數。設被估計量X是n維隨機向量,為了得到其估計量.對它進行k次線性觀測得到:
z=HiX+V,(i=1,2,…k) (2)
該式可寫成:
 
    其中,Z是m維觀測向量。Hi是mxn觀測矩陣是均值為零的m維觀測誤差向量。當km>n時,由於方程的數目多於未知數的數目,因此可以根據Z來估計X。如果要求選擇X的一個估計,使下列性能指標達到極小.那麼.就稱這個估計為X的最小二乘估計.上述最小二乘估計只是一個確定性的求極小值問題。因此可以通過使J(X)對X的梯度等於零的方法來實現。
    由梯度公式,可得:
 
令上式等於零,則當(HTH)為非奇異陣時,可得:
 
    上式就是由觀測數據Z求的最小二乘估計的表示式。其中XTS(Z)是觀測數據的Z的線性函數。
    某次實驗所得的數據如表1所列,取這五次DS18B20修正前的數據為Z向量,高精度溫度計(MS6506)的數據為H向量,被估計的溫度為X向量:
 

表1 溫度採集實驗數據表
DS18B20修正前 高精度溫度計(Ms6506) DS18B20修正後
25.0625 25.54 25.5000
28.1250 28.50 28.5000
31.1870 31.52 31.4375
34.9375 35.00 35.1250
37.8750 38.00 37.9375

    採用最小二乘法的最優估計公式(4)計算得出K=1.0408.C=-1.5256,該修正係數是在25℃~40℃溫度下得到的。其他溫度範圍內也可採用相同方法獲得修正係數。根據計算得到的修正係數編寫相應的單片機程序,就可得到誤差在0.1℃以內的溫度精度。基於以上的理論基礎,可以設計出高精度、低性價比的溫度感測器。

6 設計中遇到的問題和總結
    實驗中,如果連接DS18B20感測器的普通電纜長度超過50 m,採集到的溫度將會發生錯誤,若是採用雙絞線帶屏蔽電纜,通訊距離可以達到150 m,通過分析.可知是由於線路的分佈電容使信號波形失真,在實際井下應用中,所傳輸的距離更近,同時屏蔽層必須接地。
    通過以上方法在-10℃~+85℃之間精度提高了最少3倍。而在溫度超過+85℃和低於-10℃時誤差比較大,因為DS18B20器件的溫漂比較大。


[admin via 研發互助社區 ] DS18B20的高精度溫度感測器設計已經有5640次圍觀

http://cocdig.com/docs/show-post-44672.html