图 6 DS18B20的管脚
DS18B20内部结构主要由四部分组成:64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。ROM中的64位序列号是出厂前被光刻好的,它可以看作是该DS18B20的地址序列码,每个DS18B20的64位序列号均不相同。64位ROM的排的循环冗余校验码(CRC=X8+X5+X4+1)。ROM的作用是使每一个DS18B20都各不相同,这样就可以实现一根总线上挂接多个DS18B20的目的。内部结构[2]如图
DS18B20的温度转化
DS18B20中的温度传感器可完成对温度的测量,以12位转化为例:用16位符号扩展的二进制补码读数形式提供,以0.0625℃/LSB形式表达,其中S为符号位。见表1:
表1 温度的二进制补码形式
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
Ls byte
Bit 15 Bit 14 Bit 13 Bit 12 Bit 11 Bit 10 Bit 9 Bit 8
Ms byte S S S S S
这是12位转化后得到的12位数据,存储在18B20的两个8比特的RAM中,二进制中的前面5位是符号位,如果测得的温度大于0,这5位为0,只要将测到的数值乘于0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘于0.0625即可得到实际温度。
例如+125℃的数字输出为07D0H,+25.0625℃的数字输出为0191H,-25.0625℃的数字输出为FF6FH,-55℃的数字输出为FC90H。[3]见表2:
表2 温度的转化
125℃ 0000 0111 1101 0000 07D0H
85℃ 0000 0101 0101 0000 0550H
25.0625℃ 0000 0001 1001 0001 0191H
10.125℃ 0000 0000 1010 0010 00A2H
0.5℃ 0000 0000 0000 1000 0008H
0℃ 0000 0000 0000 0000 0000H
-0.5℃ 1111 1111 1111 1000 FFFFH
-10.125℃ 1111 1111 0101 1110 FF5EH
-25.0625℃ 1111 1110 0110 1111 FE6FH
-55℃ 1111 1100 1001 0000 FC90H
DS18B20的读写时序
DS18B20的一线工作协议流程是:初始化→ROM操作指令→存储器操作指令→数据传输。其工作时序包括初始化时序、写时序和读时序,它的读写分4种类型:分别是写1、写0、读1、读0。
DS18B20的初始化时序
对1-wire器件的所有操作都是从初始化开始的,初始化过程由主机的复位脉冲和1-wire器件的应答脉冲组成。对1-wire器件的复位脉冲实际上是主机通过拉低总线来实现的,主机通过拉低总线480um以后再把总线拉高使总线上所有1-wire器件复位,总线上1-wire器件接到复位脉冲后便通过拉低总线告诉主机1-wire器件已经准备就绪。7]如图3所示:
图8 DS18B20的初始化时序
DS18B20的写时序
写时序起始于单片机拉低总线。产生写1时序的方式:单片机在拉低总线后,
上一页 [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] ... 下一页 >>