DS1820及其高精度溫度測量的實(shí)現(xiàn)
?。?DS1820簡介
DS1820是美國DALLAS半導(dǎo)體公司生產(chǎn)的可組網(wǎng)數(shù)字式溫度傳感器,在其內(nèi)部使用了在板(ON-B0ARD)專利技術(shù)。全部傳感元件及轉(zhuǎn)換電路集成在形如一只三極管的集成電路內(nèi)。與其它溫度傳感器相比,DS1820具有以下特性:
?。?)獨(dú)特的單線接口方式,DS1820在與微處理器連接時僅需要一條口線即可實(shí)現(xiàn)微處理器與DS1820的雙向通訊。
?。?)DS1820支持多點(diǎn)組網(wǎng)功能,多個DS1820可以并聯(lián)在唯一的三線上,實(shí)現(xiàn)多點(diǎn)測溫。
?。?)DS1820在使用中不需要任何外圍元件。
?。?)溫范圍-55℃~+125℃,固有測溫分辨率0.5℃。
?。?)測量結(jié)果以9位數(shù)字量方式串行傳送。
DS1820內(nèi)部結(jié)構(gòu)框圖如圖1所示。
DS1820測溫原理如圖2所示。圖中低溫度系數(shù)晶振的振蕩頻率受溫度影響很小,用于產(chǎn)生固定頻率的脈沖信號送給計數(shù)器1。高溫度系數(shù)晶振隨溫度變化其振蕩率明顯改變,所產(chǎn)生的信號作為計數(shù)器2的脈沖輸入。計數(shù)器1和溫度寄存器被預(yù)置在-55℃所對應(yīng)的一個基數(shù)值。計數(shù)器1對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進(jìn)行減法計數(shù),當(dāng)計數(shù)器1的預(yù)置值減到0時,溫度寄存器的值將加1 ,計數(shù)器1的預(yù)置將重新被裝入,計數(shù)器1重新開始對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進(jìn)行計數(shù),如此循環(huán)直到計數(shù)器2計數(shù)到0時,停止溫度寄存器值的累加,此時溫度寄存器中的數(shù)值即為所測溫度。圖2中的斜率累加器用于補(bǔ)償和修正測溫過程中的非線性,其輸出用于修正計數(shù)器1的預(yù)置值。
在正常測溫情況下,DS1820的測溫分辯率為0.5℃以9位數(shù)據(jù)格式表示,其中最低有效位(LSB)由比較器進(jìn)行0.25℃比較,當(dāng)計數(shù)器1中的余值轉(zhuǎn)化成溫度后低于0.25℃時,清除溫度寄存器的最低位(LSB),當(dāng)計數(shù)器1中的余值轉(zhuǎn)化成溫度后高于0.25℃,置位溫度寄存器的最低位(LSB),如-25.5℃對應(yīng)的9位數(shù)據(jù)格式如下:
2 提高DS1820測溫精度的途徑
2.1 DS1820高精度測溫的理論依據(jù)
DS1820正常使用時的測溫分辨率為0.5℃,這對于水輪發(fā)電機(jī)組軸瓦溫度監(jiān)測來講略顯不足,在對DS1820測溫原理詳細(xì)分析的基礎(chǔ)上,我們采取直接讀取DS1820內(nèi)部暫存寄存器的方法,將DS1820的測溫分辨率提高到0.1℃~0.01℃.
DS1820內(nèi)部暫存寄存器的分布如表1所示,其中第7字節(jié)存放的是當(dāng)溫度寄存器停止增值時計數(shù)器1的計數(shù)剩余值,第8字節(jié)存放的是每度所對應(yīng)的計數(shù)值,這樣,我們就可以通過下面的方法獲得高分辨率的溫度測量結(jié)果。首先用DS1820提供的讀暫存寄存器指令(BEH)讀出以0.5℃為分辨率的溫度測量結(jié)果,然后切去測量結(jié)果中的最低有效位(LSB),得到所測實(shí)際溫度整數(shù)部分T整數(shù),然后再用BEH指令讀取計數(shù)器1的計數(shù)剩余值M剩余和每度計數(shù)值M每度,考慮到DS1820測量溫度的整數(shù)部分以0.25℃、0.75℃為進(jìn)位界限的關(guān)系,實(shí)際溫度T實(shí)際可用下式計算得到:
T實(shí)際=(T整數(shù)-0.25℃)+(M每度-M剩余)/M每度
2.2 測量數(shù)據(jù)比較
表2為采用直接讀取測溫結(jié)果方法和采用計算方法得到的測溫數(shù)據(jù)比較,通過比較可以看出,計算方法在DS1820測溫中不僅是可行的,也可以大大的提高DS1820的測溫分辨率。
3 DS1820使用中注意事項
DS1820雖然具有測溫系統(tǒng)簡單、測溫精度高、連接方便、占用口線少等優(yōu)點(diǎn),但在實(shí)際應(yīng)用中也應(yīng)注意以下幾方面的問題:
(1)較小的硬件開銷需要相對復(fù)雜的軟件進(jìn)行補(bǔ)償,由于DS1820與微處理器間采用串行數(shù)據(jù)傳送,因此,在對DS1820進(jìn)行讀寫編程時,必須嚴(yán)格的保證讀寫時序,否則將無法讀取測溫結(jié)果。在使用PL/M、C等高級語言進(jìn)行系統(tǒng)程序設(shè)計時,對DS1820操作部分最好采用匯編語言實(shí)現(xiàn)。
(2)在DS1820的有關(guān)資料中均未提及單總線上所掛DS1820數(shù)量問題,容易使人誤認(rèn)為可以掛任意多個DS1820,在實(shí)際應(yīng)用中并非如此。當(dāng)單總線上所掛DS1820超過8個時,就需要解決微處理器的總線驅(qū)動問題,這一點(diǎn)在進(jìn)行多點(diǎn)測溫系統(tǒng)設(shè)計時要加以注意。
(3)連接DS1820的總線電纜是有長度限制的。試驗中,當(dāng)采用普通信號電纜傳輸長度超過50m時,讀取的測溫數(shù)據(jù)將發(fā)生錯誤。當(dāng)將總線電纜改為雙絞線帶屏蔽電纜時,正常通訊距離可達(dá)150m,當(dāng)采用每米絞合次數(shù)更多的雙絞線帶屏蔽電纜時,正常通訊距離進(jìn)一步加長。這種情況主要是由總線分布電容使信號波形產(chǎn)生畸變造成的。因此,在用DS1820進(jìn)行長距離測溫系統(tǒng)設(shè)計時要充分考慮總線分布電容和阻抗匹配問題。
(4)在DS1820測溫程序設(shè)計中,向DS1820發(fā)出溫度轉(zhuǎn)換命令后,程序總要等待DS1820的返回信號,一旦某個DS1820接觸不好或斷線,當(dāng)程序讀該DS1820時,將沒有返回信號,程序進(jìn)入死循環(huán)。這一點(diǎn)在進(jìn)行DS1820硬件連接和軟件設(shè)計時也要給予一定的重視。
評論