DS18B20原理及程序编写(一)

概述
DS18B20为单总线12位(二进制)温度读数。内部有64位唯一的ID编码。工作电压从3.0~5.5V。测量温度范围从-55℃~125℃。最高±0.0625℃分辩率。
其内部结构如下图所示。


DS18B20的核心功能是直接数字温度传感器。温度传感器可以配置成9、10、11和12位方式。相应的精度分别为:0.5℃、0.25℃、0.125℃和0.0625℃。默认的分辨率为12位。DS18B20在空闲低功耗状态下加电(寄生电源工作方式)。主机必须发出Convert T [44h]命令使其对测量温度进行A-D转换。接下来进行采集转换,结果存于两字节高速温度寄存器并返回到空闲低功耗状态。如果DS18B20在外部VDD供电方式下,单片机可以在发出Convert T 命令并总线为1时(总线为0表示正在转换)发出“read time slots”命令。

DS18B20芯片内部共有8字节的寄存器,其中地址编号0,1为温度寄存器,里面存储着DS18B20温度转换后的AD值,其格式如表1所示。地址编号2,3为温度报警寄存器,里面为报警设定值,地址编号4为配置寄存器(这三个寄存器在读取之前请使用“重新调入EEPROM”命令将存储在EEPROM里的内容调出,同样,在向温度报警寄存器里写入内容后,也要使用“复制到存储器”命令48H将温度报警寄存器内的内容存入EEPROM当中,以免掉电丢失数据)。
DS18B20内部寄存器映射如下图所示。配置寄存器的格式如表2和表3所示。

DS18B20内部寄存器映射

表1 温度寄存器的格式 

 

Bit7

Bit6

Bit5

Bit4

Bit3

Bit2

Bit1

Bit0

Ls byte

23

22

21

20

2-1

2-2

2-3

2-4

 

Bit7

Bit6

Bit5

Bit4

Bit3

Bit2

Bit1

Bit0

Ms byte

S

S

S

S

S

26

25

24

表2 配置寄存器的格式

 

Bit7

Bit6

Bit5

Bit4

Bit3

Bit2

Bit1

Bit0

配置寄存器

0

R1

R0

1

1

1

1

1

表3 温度分辨率配置 

R1

R0

分辩率

最大转换时间

0

0

9-bit

93.75ms

(tCONV/8)

0

1

10-bit

187.5ms

(tCONV/4)

1

0

11-bit

375ms

(tCONV/2)

1

1

12-bit

750ms

(tCONV)

DS18B20使用单总线工作方式,其通信协议以电平的高平时间作为依据,其基本时序有复位时序,写时序、读时序。

发表评论

电子邮件地址不会被公开。 必填项已用*标注