天天看點

智能溫度傳感器DS18B20的原理與應用

作者:趙海蘭 趙祥偉    文章來源:現代電子技術

    摘  要:DS18B20是DALLAS公司生産的單線數字溫度傳感器,他具有獨特的單線總線接口方式。文章詳細的介紹了單線數字溫度傳感器DS18B20的測量原理、特性以及在溫度測量中的硬體和軟體設計,具有接口簡單、精度高、抗幹擾能力強、工作穩定可靠等特點。

    關鍵詞:DS18B20;單線制;溫度傳感器;單片機

    DS18B20是美國DALLAS半導體公司繼DS1820之後最新推出的一種改進型智能溫度傳感器。與傳統的熱敏電阻相比,他能夠直接讀出被測溫度并且可根據實際要求通過簡單的程式設計實作9~12位的數字值讀數方式。可以分别在93.75 ms和750 ms内完成9位和12位的數字量,并且從DS18B20讀出的資訊或寫入DS18B20的資訊僅需要一根口線(單線接口)讀寫,溫度變換功率來源于資料總線,總線本身也可以向所挂接的DS18B20供電,而無需額外電源。因而使用DS18B20可使系統結構更趨簡單,可靠性更高。他在測溫精度、轉換時間、傳輸距離、分辨率等方面較DS1820有了很大的改進,給使用者帶來了更友善的使用和更令人滿意的效果。

1.DS18B20簡介

    (1)獨特的單線接口方式:DS18B20與微處理器連接配接時僅需要一條口線即可實作微處理器與DS18B20的雙向通訊。

    (2)在使用中不需要任何外圍元件。

    (3)可用資料線供電,電壓範圍:+3.0~+5.5 V。

    (4)測溫範圍:-55 ~+125 ℃。固有測溫分辨率為0.5 ℃。

    (5)通過程式設計可實作9~12位的數字讀數方式。

    (6)使用者可自設定非易失性的報警上下限值。

    (7)支援多點組網功能,多個DS18B20可以并聯在惟一的三線上,實作多點測溫。

    (8)負壓特性,電源極性接反時,溫度計不會因發熱而燒毀,但不能正常工作。

2.DS18B20的内部結構

    DS18B20采用3腳PR35封裝或8腳SOIC封裝,其内部結構框圖如圖1所示。

智能溫度傳感器DS18B20的原理與應用

    (1) 64 b閃速ROM的結構如下:

智能溫度傳感器DS18B20的原理與應用

    開始8位是産品類型的編号,接着是每個器件的惟一的序号,共有48位,最後8位是前56位的CRC校驗碼,這也是多個DS18B20可以采用一線進行通信的原因。

    (2) 非易市失性溫度報警觸發器TH和TL,可通過軟體寫入使用者報警上下限。

    (3) 高速暫存存儲器

    DS18B20溫度傳感器的内部存儲器包括一個高速暫存RAM和一個非易失性的可電擦除的E2RAM。後者用于存儲TH,TL值。資料先寫入RAM,經校驗後再傳給E2RAM。而配置寄存器為高速暫存器中的第5個位元組,他的内容用于确定溫度值的數字轉換分辨率,DS18B20工作時按此寄存器中的分辨率将溫度轉換為相應精度的數值。該位元組各位的定義如下:

智能溫度傳感器DS18B20的原理與應用

    低5位一直都是1,TM是測試模式位,用于設定DS18B20在工作模式還是在測試模式。在DS18B20出廠時該位被設定為0,使用者不要去改動,R1和R0決定溫度轉換的精度位數,即是來設定分辨率,如表1所示(DS18B20出廠時被設定為12位)。

智能溫度傳感器DS18B20的原理與應用

    由表1可見,設定的分辨率越高,所需要的溫度資料轉換時間就越長。是以,在實際應用中要在分辨率和轉換時間權衡考慮。

    高速暫存存儲器除了配置寄存器外,還有其他8個位元組組成,其配置設定如下所示。其中溫度資訊(第1,2位元組)、TH和TL值第3,4位元組、第6~8位元組未用,表現為全邏輯1;第9位元組讀出的是前面所有8個位元組的CRC碼,可用來保證通信正确。

智能溫度傳感器DS18B20的原理與應用

    當DS18B20接收到溫度轉換指令後,開始啟動轉換。轉換完成後的溫度值就以16位帶符号擴充的二進制補碼形式存儲在高速暫存存儲器的第1,2位元組。單片機可通過單線接口讀到該資料,讀取時低位在前,高位在後,資料格式以0062 5 ℃/LSB形式表示。溫度值格式如下:

智能溫度傳感器DS18B20的原理與應用

    對應的溫度計算:當符号位S=0時,直接将二進制位轉換為十進制;當S=1時,先将補碼變換為原碼,再計算十進制值。表2是對應的一部分溫度值。

智能溫度傳感器DS18B20的原理與應用

    DS18B20完成溫度轉換後,就把測得的溫度值與TH,TL作比較,若T>TH或T<TL,則将該器件内的告警标志置位,并對主機發出的告警搜尋指令作出響應。是以,可用多隻DS18B20同時測量溫度并進行告警搜尋。

    (4) CRC的産生

    在64 b ROM的最高有效位元組中存儲有循環備援校驗碼(CRC)。主機根據ROM的前56位來計算CRC值,并和存入DS18B20中的CRC值做比較,以判斷主機收到的ROM資料是否正确。

智能溫度傳感器DS18B20的原理與應用

3.DS18B20的測溫原理

    DS18B20的測溫原理如圖2所示,圖中低溫度系數晶振的振蕩頻率受溫度的影響很小[1],用于産生固定頻率的脈沖信号送給減法計數器1,高溫度系數晶振随溫度變化其震蕩頻率明顯改變,所産生的信号作為減法計數器2的脈沖輸入,圖中還隐含着計數門,當計數門打開時,DS18B20就對低溫度系數振蕩器産生的時鐘脈沖後進行計數,進而完成溫度測量。計數門的開啟時間由高溫度系數振蕩器來決定,每次測量前,首先将-55 ℃所對應的基數分别置入減法計數器1和溫度寄存器中,減法計數器1和溫度寄存器被預置在-55 ℃所對應的一個基數值。減法計數器1對低溫度系數晶振産生的脈沖信号進行減法計數,當減法計數器1的預置值減到0時溫度寄存器的值将加1,減法計數器1的預置将重新被裝入,減法計數器1重新開始對低溫度系數晶振産生的脈沖信号進行計數,如此循環直到減法計數器2計數到0時,停止溫度寄存器值的累加,此時溫度寄存器中的數值即為所測溫度。圖2中的斜率累加器用于補償和修正測溫過程中的非線性,其輸出用于修正減法計數器的預置值,隻要計數門仍未關閉就重複上述過程,直至溫度寄存器值達到被測溫度值,這就是DS18B20的測溫原理。

    另外,由于DS18B20單線通信功能是分時完成的,他有嚴格的時隙概念,是以讀寫時序很重要。系統對DS18B20的各種操作必須按協定進行。操作協定為:初始化DS18B20(發複位脈沖)→發ROM功能指令→發存儲器操作指令→處理資料。各種操作的時序圖與DS1820相同,可參看文獻[2]。

智能溫度傳感器DS18B20的原理與應用

4.DS18B20與單片機的典型接口設計

   以MCS51單片機為例,圖3中采用寄生電源供電方式, P11口接單線總線為保證在有效的DS18B20時鐘周期内提供足夠的電流,可用一個MOSFET管和89C51的P10來完成對總線的上拉[2]。當DS18B20處于寫存儲器操作和溫度A/D變換操作時,總線上必須有強的上拉,上拉開啟時間最大為10 μs。采用寄生電源供電方式是VDD和GND端均接地。由于單線制隻有一根線,是以發送接收口必須是三态的。主機控制DS18B20完成溫度轉換必須經過3個步驟:初始化、ROM操作指令、存儲器操作指令。假設單片機系統所用的晶振頻率為12 MHz,根據DS18B20的初始化時序、寫時序和讀時序,分别編寫3個子程式:INIT為初始化子程式,WRITE為寫(指令或資料)子程式,READ為讀資料子程式,所有的資料讀寫均由最低位開始,實際在實驗中不用這種方式,隻要在資料線上加一個上拉電阻4.7 kΩ,另外2個腳分别接電源和地。

5.DS18B20的精确延時問題

    雖然DS18B20有諸多優點,但使用起來并非易事,由于采用單總線資料傳輸方式,DS18B20的資料I/O均由同一條線完成。是以,對讀寫的操作時序要求嚴格。為保證DS18B20的嚴格I/O時序,需要做較精确的延時。在DS18B20操作中,用到的延時有15 μs,90 μs,270 μs,540 μs等。因這些延時均為15 μs的整數倍,是以可編寫一個DELAY15(n)函數,源碼如下:

智能溫度傳感器DS18B20的原理與應用

    隻要用該函數進行大約15 μs×N的延時即可。有了比較精确的延時保證,就可以對DS18B20進行讀寫操作、溫度轉換及顯示等操作。

6.結語

    我們已成功地将DS18B20應用于所開發的“LCD顯示氣溫”的控制系統中,其測溫系統簡單,測溫精度高,連接配接友善,占用口線少,轉換速度快,與微處理器的接口簡單,給硬體設計工作帶來了極大的友善,能有效地降低成本,縮短開發周期。

參考文獻

[1]胡振宇,劉魯源,杜振輝DS18B20接口的C語言程式設計[J]單片機與嵌入式系統應用,2002,(7)

[2]金偉正單線數字溫度傳感器的原理與應用[J].電子技術應用,2000,(6):6668

繼續閱讀