DS18B20測溫原理及邏輯時序


DS18B20測溫原理:

圖中低溫度系數晶振的振盪頻率受溫度的影響很小,用於產生固定頻率的脈沖信號送給減法計數器1,高溫度系數晶振隨溫度變化其震盪頻率明顯改變,所產生的信號作為減法計數器2的脈沖輸入,

DS18B20內部的低溫度系數振盪器是一個振盪頻率隨溫度變化很小的振盪器,為計數器1提供一頻率穩定的計數脈沖。

高溫度系數振盪器是一個振盪頻率對溫度很敏感的振盪器,為計數器2提供一個頻率隨溫度變化的計數脈沖。

初始時,溫度寄存器被預置成-55℃,每當計數器1從預置數開始減計數到0時,溫度寄存器中寄存的溫度值就增加1℃,這個過程重復進行,直到計數器2計數到0時便停止。

 

DS18B20工作過程一般遵循以下協議:初始化——ROM操作命令——存儲器操作命令——處理數據

 

① 初始化

 

單總線上的所有處理均從初始化序列開始。初始化序列包括總線主機發出一復位脈沖,接着由從屬器件送出存在脈沖。存在脈沖讓總線控制器知道DS1820 在總線上且已准備好操作。

 

② ROM操作命令

 

一旦總線主機檢測到從屬器件的存在,它便可以發出器件ROM操作命令之一。所有ROM操作命令均為8位長。這些命令列表如下:

 

Read ROM(讀ROM)[33h]

 

此命令允許總線主機讀DS18B20的8位產品系列編碼,唯一的48位序列號,以及8位的CRC。此命令只能在總線上僅有一個DS18B20的情況下可以使用。如果總線上存在多於一個的從屬器件,那么當所有從片企圖同時發送時將發生數據沖突的現象(漏極開路會產生線與的結果)。

 

Match ROM( 符合ROM)[55h]

 

此命令后繼以64位的ROM數據序列,允許總線主機對多點總線上特定的DS18B20尋址。只有與64位ROM序列嚴格相符的DS18B20才能對后繼的存貯器操作命令作出響應。所有與64位ROM序列不符的從片將等待復位脈沖。此命令在總線上有單個或多個器件的情況下均可使用。

 

Skip ROM( 跳過ROM )[CCh]

 

在單點總線系統中,此命令通過允許總線主機不提供64位ROM編碼而訪問存儲器操作來節省時間。如果在總線上存在多於一個的從屬器件而且在Skip ROM命令之后發出讀命令,那么由於多個從片同時發送數據,會在總線上發生數據沖突(漏極開路下拉會產生線與的效果)。

 

Search ROM( 搜索ROM)[F0h]

 

當系統開始工作時,總線主機可能不知道單線總線上的器件個數或者不知道其64位ROM編碼。搜索ROM命令允許總線控制器用排除法識別總線上的所有從機的64位編碼。

 

Alarm Search(告警搜索)[ECh]

 

此命令的流程與搜索ROM命令相同。但是,僅在最近一次溫度測量出現告警的情況下,DS18B20才對此命令作出響應。告警的條件定義為溫度高於TH 或低於TL。只要DS18B20一上電,告警條件就保持在設置狀態,直到另一次溫度測量顯示出非告警值或者改變TH或TL的設置,使得測量值再一次位於允許的范圍之內。貯存在EEPROM內的觸發器值用於告警。

 

③ 存儲器操作命令

 

Write Scratchpad(寫暫存存儲器)[4Eh]

 

這個命令向DS18B20的暫存器中寫入數據,開始位置在地址2。接下來寫入的兩個字節將被存到暫存器中的地址位置2和3。可以在任何時刻發出復位命令來中止寫入。

 

Read Scratchpad(讀暫存存儲器)[BEh]

 

這個命令讀取暫存器的內容。讀取將從字節0開始,一直進行下去,直到第9(字節8,CRC)字節讀完。如果不想讀完所有字節,控制器可以在任何時間發出復位命令來中止讀取。

 

Copy Scratchpad(復制暫存存儲器)[48h]

 

這條命令把暫存器的內容拷貝到DS18B20的E2存儲器里,即把溫度報警觸發字節存入非易失性存儲器里。如果總線控制器在這條命令之后跟着發出讀時間隙,而DS18B20又正在忙於把暫存器拷貝到E2存儲器,DS18B20就會輸出一個“0”,如果拷貝結束的話,DS18B20 則輸出“1”。如果使用寄生電源,總線控制器必須在這條命令發出后立即起動強上拉並最少保持10ms。

 

Convert T(溫度變換)[44h]

 

這條命令啟動一次溫度轉換而無需其他數據。溫度轉換命令被執行,而后DS18B20保持等待狀態。如果總線控制器在這條命令之后跟着發出讀時間隙,而DS18B20又忙於做時間轉換的話,DS18B20將在總線上輸出“0”,若溫度轉換完成,則輸出“1”。如果使用寄生電源,總線控制器必須在發出這條命令后立即起動強上拉,並保持500ms。

 

Recall E2(重新調整E2)[B8h]

 

這條命令把貯存在E2中溫度觸發器的值重新調至暫存存儲器。這種重新調出的操作在對DS18B20上電時也自動發生,因此只要器件一上電,暫存存儲器內就有了有效的數據。在這條命令發出之后,對於所發出的第一個讀數據時間片,器件會輸出溫度轉換忙的標識:“0”=忙,“1”=准備就緒。

 

Read Power Supply(讀電源)[B4h]

 

對於在此命令發送至DS18B20之后所發出的第一讀數據的時間片,器件都會給出其電源方式的信號:“0”=寄生電源供電,“1”=外部電源供電。

 

④ 處理數據

 

DS18B20的高速暫存存儲器由9個字節組成,其分配如圖3所示。當溫度轉換命令發布后,經轉換所得的溫度值以二字節補碼形式存放在高速暫存存儲器的第0和第1個字節。單片機可通過單線接口讀到該數據,讀取時低位在前,高位在后。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM