DS18B20 是一款廣泛使用的數字溫度傳感器,采用 1-Wire 總線協議進行通信。其溫度采集原理基于內部半導體溫度敏感元件和模數轉換(ADC)技術,以下是其核心工作原理的詳細說明:
1. 內部結構與溫度敏感元件
DS18B20 的核心是一個 溫度敏感的振蕩器 和 數字轉換電路:
- 溫度敏感元件:利用半導體材料的溫度特性(如 PN 結電壓隨溫度變化),將溫度轉換為模擬電信號。
- 高精度 ADC:將模擬信號轉換為數字信號,分辨率可配置為 9~12 位(默認 12 位,對應分辨率 0.0625°C)。
2. 溫度采集過程
步驟 1:啟動溫度轉換
- 主控制器(如單片機)通過 1-Wire 總線發送 Convert T(0x44) 命令,啟動溫度轉換。
- DS18B20 開始執行內部 ADC 轉換,將溫度值轉換為數字信號。
- 轉換時間:取決于分辨率(例如 12 位需 750ms,9 位僅需 93.75ms)。
步驟 2:讀取溫度數據
- 轉換完成后,主控制器發送 Read Scratchpad(0xBE) 命令,從傳感器的暫存器中讀取溫度數據。
- 溫度數據以 16 位二進制補碼格式 存儲,包含符號位、整數部分和小數部分。
3. 溫度數據格式
DS18B20 的溫度值存儲格式如下:
- 高字節(MSB):
- 前 5 位為符號位(`S`),`S=1` 表示負溫度,`S=0` 表示正溫度。
- 后 3 位為整數部分的最高有效位(MSB)。
- 低字節(LSB):
- 后 4 位為小數部分,每個單位對應 0.0625°C(12 位分辨率時)。
示例:
- 原始數據 `0x0550`(二進制 `00000101 01010000`):
- 符號位 `S=0` → 正溫度。
- 整數部分:`0000101` → 5°C。
- 小數部分:`01000000` → 0.25°C(`0100` × 0.0625 = 0.25)。
- 實際溫度:5.25°C。
4. 1-Wire 通信協議
DS18B20 通過單根數據線實現通信,協議關鍵點如下:
1. 初始化(復位脈沖):
- 主機發送復位脈沖(>480μs 低電平),傳感器回應存在脈沖(60~240μs 低電平)。
2. ROM 命令:
- 用于尋址總線上的多個傳感器(如 `Read ROM`、`Match ROM`)。
3. 功能命令:
- 控制傳感器操作(如 `Convert T`、`Read Scratchpad`)。
5. 寄生供電模式
DS18B20 支持 寄生供電(Parasite Power):
- 僅需 DQ 數據線 和 GND,無需額外電源線。
- 在溫度轉換期間,主機需通過強上拉(MOSFET)提供足夠電流(約 1mA)。
6. 關鍵特性
- 測溫范圍:-55°C 至 +125°C(±0.5°C 精度,-10°C 至 +85°C)。
- 多設備支持:單總線可掛載多個 DS18B20,通過唯一 64 位 ROM ID 尋址。
- 低功耗:待機電流僅 1μA。
DS18B20 通過內部溫度敏感元件和 ADC 將溫度數字化,利用 1-Wire 協議傳輸數據。其單總線設計、高精度和靈活供電方式,使其在嵌入式系統和物聯網應用中廣泛使用。實際使用時需注意總線時序、電源穩定性及數據格式解析。