图2-3 DS18B20内部结构
2) 非挥发的温度报警触发器TH和TL,可通过软件写入用户报警上下限值。
3) 高速暂存存储,可以设置DS18B20温度转换的精度。
DS18B20温度传感器的内部存储器还包括一个高速暂存RAM和一个非易失性的可电擦
除的E2PRAM。高速暂存RAM的结构为8字节的存储器,结构如图1.3所示。头2个字节包
含测得的温度信息,第3和第4字节TH和TL的拷贝,是易失的,每次上电复位时被刷新。
第5个字节,为配置寄存器,它的内容用于确定温度值的数字转换分辨率。DS18B20工作
时寄存器中的分辨率转换为相应精度的温度数值。它的内部存储器结构和字节定义如图1.3
所示。低5位一直为1,TM是工作模式位,用于设置DS18B20在工作模式还是在测试模式。
表2-2 DS18B20内部存储器结构
Byte0
Byte1
Byte2
Byte3
Byte4
Byte5
Byte6
Byte7
Byte8 2---- ---- ----
2) 非挥发的温度报警触发器TH和TL,可通过软件写入用户报警上下限值。
3) 高速暂存存储,可以设置DS18B20温度转换的精度。
DS18B20出厂时该位被设置为0,用户要去改动,R1和R0决定温度转换的精度位数,来设
置分辨率,如图1.4。
图2-3 DS18B20字节定义
TM R1 R0 1 1 1 1 1
由表1.1可见,分辨率越高,所需要的温度数据转换时间越长。因此,在实际应用中
要将分辨率和转换时间权衡考虑。
高速暂存RAM的第6、7、8字节保留未用,表现为全逻辑1。第9字节读出前面所有
8字节的CRC码,可用来检验数据,从而保证通信数据的正确性。
当DS18B20接收到温度转换命令后,开始启动转换。转换完成后的温度值就以16位
带符号扩展的二进制补码形式存储在高速暂存存储器的第1、2字节。单片机可以通过单
线接口读出该数据,读数据时低位在先,高位在后,数据格式以0.0625℃/LSB形式表示。
当符号位S=0时,表示测得的温度值为正值,可以直接将二进制位转换为十进制;
当符号位S=1时,表示测得的温度值为负值,要先将补码变成原码,再计算十进制数值。 表1.2是一部分温度值对应的二进制温度数据。
表2-4 DS18B20温度转换时间表 [6]
R1
1
1 R0 0 1 0 1 分辨率/位 9 10 11 12
温度最大转向时间/ms 93.75 187.5 375 750
表2-5 一部分温度对应值表
续表2-5