溫度感測器技術

DS18B20溫度感知器連接到MCU

DS18B20溫度傳感器知識介紹
DS18B20是常用的數位溫度感測器. 它輸出數位訊號, 具有體積小的特點, 硬體開銷低, 抗干擾能力強, 高精準度, 並被廣泛使用.

DS18B20 數字溫度探頭提供 9 到 12 位元

DS18B20 數字溫度探頭提供 9 到 12 位元

防水 DS18B20 傳感器探頭

防水 DS18B20 傳感器探頭

TPE 包覆成型 IP68 防水 DS18B20 傳感器

TPE 包覆成型 IP68 防水 DS18B20 傳感器

DS18B20溫度傳感器簡介
技術特點:
①. 唯一的單線接口模式. 當DS18B20連接到微處理器時, 僅有的 1 需要一根線來實現微處理器與DS18B20之間的雙向通信.
②. 溫度測量範圍-55℃~+125℃, 固有測溫誤差1℃.
③. 支持多點網絡功能. 多個DS18B20可以在只有三根電線上並行連接, 且最多為 8 可以並行連接以實現多點溫度測量. 如果數字太大, 電源電壓太低, 導致信號傳輸不穩定.
④. 工作電源: 3.0〜5.5V/DC (數據線寄生電源可以使用).
⑤. 在使用過程中不需要外圍組件.
⑥. 測量結果以9~12位數字形式串行傳輸.
⑦. 不銹鋼保護管的直徑為φ6.
⑧. 適用於DN15~25各種介質工業管道溫度測量, DN40~DN250及狹小空間設備.
⑨. 標準安裝螺紋 M10X1, M12x1.5, G1/2”可選.
⑩. PVC電纜直連或德式球型接線盒連接, 方便與其他電器設備連接.

DS18B20讀寫時序及測溫原理:
DS18B20測溫原理如圖 1. 圖中低溫度係數晶振的振盪頻率受溫度影響很小, 並用於生成固定的頻率脈衝信號,以發送到計數 1. 高溫度係數晶振的振盪頻率隨溫度變化明顯, 產生的訊號作為計數器的脈衝輸入 2. 櫃檯 1 溫度寄存器預設為-55℃對應的基值. 櫃檯 1 減去低溫度係數晶體振盪器產生的脈衝信號. 當計數器的預設值 1 減少為 0, 溫度暫存器的值將增加 1, 和計數器的預設 1 將被重新加載. 櫃檯 1 重新開始對低溫度係數晶振產生的脈衝信號進行計數, 並且循環繼續直到計數器 2 計數到 0, 停止溫度寄存器值的累加. 此時, 溫度暫存器中的值是測量的溫度. 斜率累加器用於補償和校正溫度測量過程中的非線性, 其輸出用於校正計數器的預設值 1.

數位 1 如下:

DS18B20與MCU連接電路圖

DS18B20與MCU連接電路圖

2. DS18B20與MCU連接圖

DS18B20引腳參數定義

DS18B20引腳參數定義

3. DS18B20腳定義:

數據Q: 數據輸入/輸出. 漏極開路 1 線接口. 當用於寄生電源模式 VDD 時,它還可以為器件提供電源: 正電源GND: 電源地 4. DS18B20內部分析介紹:

DS18B20內部結構分析介紹

DS18B20內部結構分析介紹

上圖為DS18B20的框圖, 64位ROM存儲設備唯一的序列號. 緩衝存儲器包含 2 存儲溫度傳感器數字輸出的溫度寄存器字節. 另外, 緩衝存儲器提供對 1 字節上限和下限報警觸發寄存器的訪問 (TH 和 TL) 和 1 字節配置寄存器. 配置寄存器允許用戶設置溫度數字轉換的分辨率 9, 10, 11, 或者 12 位元. TH, TL, 配置寄存器是非易失性的 (EEPROM), 所以當設備斷電時它們會保留數據. DS18B20採用Maxim獨特的1線總線協議, 它使用控制信號. 控制線需要弱上拉電阻,因為所有設備都通過三態或開漏端口連接到總線 (DS18B20 的 DQ 引腳). 在該總線系統中微處理器 (掌握) 每個設備使用唯一的 64 位代碼. 因為每個設備都有唯一的代碼, 一根總線上可尋址的設備數量實際上是無限的.

溫度寄存器格式

DS18B20溫度寄存器格式圖

DS18B20溫度寄存器格式圖

溫度/數據關係

DS18B20 溫度-數據關係

DS18B20 溫度-數據關係

操作警報信號

DS18B20執行溫度轉換後, 它將溫度值與存儲在 1 字節 TH 和 TL 寄存器中的用戶定義的二進制補碼警報觸發值進行比較. 符號位表示該值是正還是負: 正S=0, 負S=1. TH 和 TL 寄存器是非易失性的 (EEPROM) 因此當設備斷電時不會丟失. TH和TL可以通過字節訪問 2 和 3 記憶的.
TH 和 TL 寄存器格式:

DS18B20配置寄存器

DS18B20配置寄存器

使用外部電源給DS18B20供電示意圖

使用外部電源給DS18B20供電示意圖

使用外部電源給DS18B20供電示意圖

64-位激光只讀存儲器代碼:

DS18B20 64位激光只讀存儲器代碼

DS18B20 64位激光只讀存儲器代碼

每個 DS18B20 都包含一個存儲在 ROM 中的唯一 64 位代碼. 最不重要的 8 ROM 代碼位包含 DS18B20 的單線系列代碼: 28小時. 下一個 48 位包含唯一的序列號. 最有意義的 8 位包含循環冗餘校驗 (CRC) 位元組, 這是從第一個計算出來的 56 ROM 代碼位.

DS18B20內存映射

DS18B20內存映射

DS18B20內存映射

配置寄存器:

數位 2

DS18B20配置寄存器

DS18B20配置寄存器

位元組 4 存儲器包含配置寄存器, 其組織如圖所示 2. 用戶可以使用位R0和R1設置DS18B20的轉換分辨率,如下表所示 2. 這些位的上電默認值是 R0 = 1 且 R1 = 1 (12-位分辨率). 請注意,分辨率和轉換時間之間有直接關係. 位元 7 和位 0 到 4 配置寄存器中的內容保留供設備內部使用,不能被覆蓋.

桌子 2 溫度計分辨率配置

DS18B20溫度計分辨率配置

DS18B20溫度計分辨率配置

CRC生成

CRC 字節是 DS18B20 64 位 ROM 代碼的一部分,在暫存器的第 9 個字節中提供. ROM 代碼 CRC 從第一個計算 56 ROM 代碼的位並包含在 ROM 的最高有效字節中. 暫存器 CRC 是根據暫存器中存儲的數據計算的, 所以當暫存器中的數據改變時它也會改變. CRC 為總線主機提供從 DS18B20 讀取數據時進行數據驗證的方法. 驗證數據讀取正確後, 總線主機必鬚根據接收到的數據重新計算 CRC,然後將該值與 ROM 代碼 CRC 進行比較 (用於 ROM 讀取) 或暫存器 CRC (用於暫存器讀取). 如果計算出的 CRC 與讀取的 CRC 匹配, 數據已正確接收. 比較 CRC 值並繼續進行的決定完全由總線主控決定. DS18B20 內部沒有電路可以阻止命令序列的執行,如果:
DS18B20 CRC (ROM 或暫存器) 與總線主控生成的值不匹配.
CRC 的等效多項式函數為:
CRC = X8 + X5 + X4 + 1
總線主機可以重新計算 CRC 並將其與 DS18B20 的 CRC 值進行比較::
多項式生成器如圖所示 3. The circuit includes a shift register and yihuo gates, and the bits of the shift register are initialized to 0. The least significant bit of the ROM code or the least significant bit of byte 0 in the scratchpad should be shifted into the shift register one at a time. After shifting in bit 56 from the ROM or the most significant bit of byte 7 from the scratchpad, the polynomial generator will contain the recalculated CRC. 下一個, the 8-bit ROM code or the CRC signal in the scratchpad DS18B20 must be shifted into the circuit. 在此刻, if the recalculated CRC is correct, the shift register will be all 0s.

數位 3: CRC Generator

DS18B20 CRC generator process diagram

DS18B20 CRC generator process diagram

V. Accessing the DS18B20:
The sequence for accessing the DS18B20 is as follows:
步 1. 初始化;

步 2. ROM command (followed by any necessary data exchange);

步 3. DS18B20 function command (followed by any necessary data exchange);

筆記: 每次訪問 DS18B20 時都會遵循此順序, 因為如果序列中的任何步驟丟失或亂序,DS18B20將不會響應. 此規則的例外是搜索 ROM [F0h] 和報警搜索 [埃赫] 命令. 發出這兩個 ROM 命令後, 主持人必須返回步驟 1 按順序.
(以上介紹翻譯自官方手冊)

ROM命令
1, 讀取ROM [33小時]
2, 匹配ROM [55小時]
3, 跳過ROM [CCh]
4, 警報搜索 [埃赫]

DS18B20功能命令
1, 轉換溫度 [44小時]
2, 寫便條本 (記憶) [4呃]
3, 閱讀便條本 (記憶) [貝赫]
4, 複製便條本 (記憶 [48小時]
5, 重新喚醒E2 [B8小時]
6, 讀取功率 [B4h]

(以上命令的詳細說明, 看官方手冊)

vi. 訪問DS18B20時序
初始化過程中, 總線主機發送復位脈衝 (TX) 通過拉動 1-Wire 總線將低電平保持至少 480μs. 然後, 總線主控釋放總線並進入接收模式 (接收). 釋放總線後, 5kΩ上拉電阻將1-Wire總線拉高. 當DS18B20檢測到這個上升沿時, 它等待 15μs 至 60μs,然後通過將 1-Wire 總線拉低 60μs 至 240μs 來發送存在脈衝.

初始化時序:

寫時隙有兩種類型: “寫1” 時段和 “寫0” 時段. 總線使用寫 1 編寫邏輯的時隙 1 到 DS18B20 和寫入 0 編寫邏輯的時隙 0 到 DS18B20. 所有寫入時隙的持續時間必須至少為 60μs,各個寫入時隙之間的恢復時間至少為 1μs. 兩種類型的寫時隙均由主機將 1-Wire 總線拉低來啟動 (見圖 14). 生成寫入 1 時隙, 將 1-Wire 總線拉低後, 總線主機必須在 15μs 內釋放 1-Wire 總線. 釋放總線後, 5kΩ上拉電阻將總線拉高. 生成一個
寫 0 時隙, 將 1-Wire 線拉低後, 總線主控器必須在時隙持續時間內繼續將總線保持在低電平 (至少 60μs). 在主機啟動寫時隙後,DS18B20 在 15μs 至 60μs 的窗口內對 1-Wire 總線進行採樣. 如果採樣窗口期間總線處於高電平, 一個 1 寫入DS18B20. 如果線路低, 一個 0 寫入DS18B20.
筆記: 時隙是專用於單個通道的時隙信息的串行自複用的一部分.
數位 14 如下:

DS18B20寫時隙由主機驅動,將1-Wire總線拉至低電平

DS18B20寫時隙由主機驅動,將1-Wire總線拉至低電平

讀取時隙:
DS18B20只有在主機發出讀時隙時才能向主機發送數據. 所以, 主機發出讀存儲器命令後必須立即生成讀時隙 [貝赫] 或讀取電源 [B4h] 命令以便 DS18B20 提供所需的數據. 或者, 主機可以在發出 Convert T 後生成讀時隙 [44小時] 或召回E2 [B8小時] 命令來查明狀態. 所有讀取時隙的持續時間必須至少為 60μs,時隙之間的最小恢復時間為 1μs. 讀時隙由主機將 1-Wire 總線拉低以使其保持低電平至少 1μs,然後釋放總線來啟動 (見圖 14). 主設備發起讀時隙後, DS18B20 將開始在總線上發送 1 或 0. DS18B20 發送一個 1 通過保持總線高電平並發送 0 將總線拉低. 當一個 0 已發送, DS18B20通過將總線保持在高電平來釋放總線. 時隙結束,總線被上拉電阻拉回到高空閒狀態.

DS18B20主機詳解 1 時隙

DS18B20主機詳解 1 時隙

DS18B20推薦主機讀取 1 時隙

DS18B20推薦主機讀取 1 時隙