DS18B20的测温原理如下:内部计数器对一个受温度影响的振荡器的脉冲计数,低温时振荡器的脉冲可以通过门电路,而当到达某一设置高温时,振荡器的脉冲无法通过门电路。计数器设置为-55℃时的值,如果计数器到达0之前门电路未关闭,则温度寄存器的值将增加,这表示当前温度高于-55℃。同时,计数器复位在当前温度值上,电路对振荡器的温度系数进行补偿,计数器重新开始计数直到回0。如果门电路仍然未关闭,则重复以上过程。温度转换所需时间不超过750ms,得到的温度值的位数因分辨率不同而不同。这种接口方式只需占用单片机一根接口线,与智能仪器或智能测控系统中的其他单片机或DSP的接口也可采用类似的方式。DS18B20与AT89C51单片机的接口电路如图9-3所示。
DS18B20支持“一线总线”接口,测量温度范围为-55~+125℃。在-10~+85℃范围内,精度为±0.5℃。DS18B20的精度较差,为±2℃。现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性。适合于恶劣环境的现场温度测量,如环境控制、设备或过程控制、测温类消费电子产品等。
图9-3 DS18B20与AT89C51单片机的接口电路
根据DS18B20的通信协议,用主CPU控制DS18B20以完成温度转换必须经过3个步骤:每一次读写之前都要对DS18B20进行复位,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作。每一步操作必须严格按照时序规定进行。DS18B20的工作时序包括复位时序、写时序和读时序。
1.DS18B20的复位时序(www.xing528.com)
主机控制DS18B20完成温度转换时,在每一次读写之前,都要对DS18B20进行复位,而且该复位要求主CPU要将数据线下拉约500μs,然后释放。DS18B20收到信号后将等待16~60μs,之后再发出60~240μs的低频脉冲,主CPU收到此信号即表示复位成功。
2.DS18B20的读时序
对于DS18B20的读时序分为读0时序和读1时序两个过程。DS18B20的读时序是从主CPU把单总线电平拉低之后,在15s之内就得释放单总线,从而让DS18B20把数据传输到单总线上。DS18B20完成一个读时序过程至少需要60μs。
3.DS18B20的写时序
对于DS18B20的写时序仍然分为写0时序和写1时序两个过程。DS18B20写0时序和写1时序的要求不同。写0时序时,单总线电平要被拉低至少60μs,保证DS18B20能够在15~45μs之间正确地采样I/O总线上的“0”电平;当要写1时序时,单总线电平被拉低之后,在15μs之内就得释放单总线。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。