总结一下: 开漏输出只能输出低电平,不能输出高电平。漏极开路输出高电平时必须在输出端与正电源(VCC)间外接一个上拉电阻。否则只能输出高阻态。 DS18B20 是单线通信,即接收和发送都是这个通信脚进行的。其接收数据时为高电阻输入,其发送数据时是开漏输出,本身不具有输出高电平的能力,即输出0时通过MOS 下拉为低电平,而输出1时,则为高阻,需要外接上拉电阻将其拉为高电平。因此,需要外接上拉电阻,否则无法输出1。 外接上拉电阻阻值: DS18B20的工作电流约为1mA,VCC一般为5V,则电阻R=5V/1mA=5KΩ,所以正常选择4.7K电阻,或者相近的电阻值。 DS18B20寄生电源 DS18B20的另一个特点是不需要再外部供电下即可工作。当总线高电平时能量由单线上拉电阻经过DQ引脚获得。高电平同时充电一个内部电容,当总线低电平时由此电容供应能量。这种供电方法被称为“寄生电源”。另外一种选择是DSl8B20由接在VDD的外部电源供电。
DS18B20内部构成 主要由以下3部分组成: 64 位ROM 高速暂存器 存储器 64位ROM存储独有的序列号,ROM中的64位序列号是出厂前被光刻好的,它可以看作是该DS18B20的地址序列码,每个DS18B20的64位序列号均不相同。这样就可以实现一根总线上挂接多个DS18B20的目的。 高速暂存器包含: 温度传感器 一个字节的温度上限和温度下限报警触发器(TH和TL) 配置寄存器允许用户设定9位,10位,11位和12位的温度分辨率,分别对应着温度的分辨率为:0.5°C,0.25°C,0.125°C,0.0625°C,默认为12位分辨率 存储器:由一个高速的RAM和一个可擦除的EEPROM组成,EEPROM存储高温和低温触发器(TH和TL)以及配置寄存器的值,(就是存储低温和高温报警值以及温度分辨率)
DS18B20温度读取与计算 DS18B20采用16位补码的形式来存储温度数据,温度是摄氏度。当温度转换命令发布后,经转换所得的温度值以二字节补码形式存放在高速暂存存储器的第0和第1个字节。 高字节的五个S为符号位,温度为正值时S=1,温度为负值时S=0。 剩下的11位为温度数据位,对于12位分辨率,所有位全部有效,对于11位分辨率,位0(bit0)无定义,对于10位分辨率,位0和位1无定义,对于9位分辨率,位0,位1,和位2无定义。
|