溫度檢測模組 DS18B20 資料解析

2021-10-19 14:51:33 字數 2181 閱讀 9898

目錄

1. dsb18b20結構框**析

2. 64-bit rom(傳送時低位優先)

3. 16-bit 溫度暫存器

4. 8-bit 配置暫存器

5. 8-bit crc校驗

6.dsb18b20命令格式

7.dsb18b20通訊例項實測

表1 rom結構

8bit

48bit

8bit

crc編碼

序列號家族碼(唯一)

b63 ~ b56

b55 ~ b8

b7~b0

注釋:家碼也是產品系列編碼,ds18b20 為 0x28,ds1822 為 0x22。

16bit溫度暫存器由符號位和資料位組成,根據配置暫存器的設定,決定資料暫存器的資料位。

例如:ds18b20預設配置暫存器為12位,則資料位為b0~b10, b11為符號位。

0000 0

000 1010 0010  (0x00a2)=> 0xa2 *0.0625= 10.125℃。

1111 1

111  0101 1110  (0xff5e)=> 對資料位取反碼後加1,得到資料 0xa2,則溫度為 -10.125℃。

0000 0

000 0000 1000  (0x0008)=> 0.5℃

1111 1

111 1111  1000   (0xfff8)=> -0.5℃

bit7

bit6  bit5

bit4  bit3  bit2  bit1  bit0 

0r1    r0

0  0:  9位轉換精度,0.5,轉換時間93.75ms;

0  1:10位轉換精度,0.25,轉換時間187.5ms;

1  0:11位轉換精度,0.125,轉換時間375ms;

1  1:12位轉換精度,0.0625,轉換時間750ms(預設)。

1     1      1      1      1

crc = x8 + x5 + x4 + 1

5.1 crc計算方法1

// 輸入:u64 dat:需要校驗的資料,最多64bit;

// u32 bitnum:需要驗證的資料位數

// 返回:u8 crc

u8 ds18b20analyzersettings::computecrc(u64 dat, u32 bitnum)

else

}return crc8;

}

5.2 crc計算方法2_查表法

//crc查表法: x8 + x5 + x4 + 1

u32 crc8table = ;

u8 ds18b20analyzersettings::computecrc_table(u64 dat, u32 len)

return crc8;

}

dsb18b20命令格式的詳細內容請參考:one wire 1-wire 單匯流排協議解析 - 簡單易懂協議詳解  「4. 功能命令」

本例項使用 kingst la5016 usb 邏輯分析儀檢測ds1b20協議資料通訊。下圖2是乙個完整的資料報分析截圖。從圖中可以看到,la5016的ds18b20解析模組,將協議資料分為6部分:reset condition(主機復位)、presence condition(從機應答)、主機傳送rom命令、從機回應rom命令、主機傳送功能命令解析及從機回應功能命令解析。

下圖為ds18b20協議設定截圖,其中dat為目標資料通道,thermometer resolution 為初始溫度取樣轉換精度(同配置暫存器對應),共有4個選項:12bit(預設),11bit,10bit,9bit。此處設定為溫度解析初始化設定,若在解析過程中,獲取到配置暫存器的相關資訊,則可以更新溫度取樣轉換精度。

圖2為乙個完整的通訊過程截圖,注釋①為主機傳送rom命令,此處為「跳過rom」命令;注釋②為主機傳送的功能命令,此處為「0xbe:讀取暫存器資料,包括crc」;注釋③為從機對功能命令的回應,data即為暫存器的位元組資料。

DS18B20溫度測量

1.ds18b20 復位。2.寫入跳過 rom 的位元組命令,0xcc。3.寫入開始轉換的功能命令,0x44。4.延遲大約 750 900 毫秒 1.ds18b20 復位。2.寫入跳過 rom 的位元組命令,0xcc。3.寫入讀暫存的功能命令,0xbe。4.讀入第 0 個位元組 ls byte,轉換...

DS18B20溫度換算

dsi8b20接收到溫度轉換命令後,開始啟動轉換。轉換完成後的溫度值就以16位帶符號擴充套件的二進位制補碼形式儲存在高速暫存儲存器的0,1位元組。微控制器可通過單線介面讀到該資料,讀取時低位在前,高位在後,資料格式以0 062 5 lsb形式表示。溫度值格式如表2.2.1所示,其中 s 為標誌位,對...

溫度感測器 DS18B20

1.實物圖 2.64位 激 光刻唯讀儲存器 開始8位 28h 是產品型別標號,接著的48位是該ds18b20自身的序列號,最後8位是前面56位的迴圈冗餘校驗碼 光刻rom的作用是使每乙個ds18b20都各不相同,這樣就可以實現一根匯流排上掛接多個ds18b20的目的 3.溫度暫存器 高位元組的前5位...