传感器
ds18b20数字温度传感器提供9-12位摄氏度温度测量数据,可编程非易失存储器设置温度监测的上限和下限,提供温度报警。ds18b20通过1-Wire®总线通信,只需要一条数据线 (和地线) 即可与处理器进行数据传输。器件可以工作在-55°C至+125°C范围,在-10°C至+85°C范围内测量精度为±0.5°C。此外,ds18b20还可以直接利用数据线供电 (寄生供电),无需外部电源。
每个ds18b20具有唯一的64位序列号,从而允许多个ds18b20挂接在同一条1-Wire总线。可以方便地采用一个微处理器控制多个分布在较大区域的ds18b20。该功能非常适合HVAC环境控制、楼宇/大型设备/机器/过程监测与控制系统内部的温度测量等应用。
独特的1-Wire®接口仅占用一个通信端口
内置温度传感器和EEPROM减少外部元件数量
测量温度范围:-55°C至+125°C (-67°F至+257°F)
-10°C至+85°C温度范围内测量精度为±0.5°C
9位至12位可编程分辨率
无需外部元件
寄生供电模式下只需要2个操作引脚(DQ和GND)
多点通信简化分布式温度测量
每个器件具有唯一的64位序列号,存储在器件ROM内
用户可灵活定义温度报警门限,通过报警搜索指令找到温度超出门限的器件
提供8引脚SO(150 mils)、8引脚µSOP、3引脚TO-92封装
初始化时序图
读时隙时序图
写时隙时序图
1, 复位:首先我们必须对ds18b20芯片进行复位,复位就是由控制器(单片机)给ds18b20单总线至少480uS的低电平信号。当18B20接到此复位信号后则会在15~60uS后回发一个芯片的存在脉冲。
2, 存在脉冲:在复位电平结束之后,控制器应该将数据单总线拉高,以便于在15~60uS后接收存在脉冲,存在脉冲为一个60~240uS的低电平信号。至此,通信双方已经达成了基本的协议,接下来将会是控制器与18B20间的数据通信。如果复位低电平的时间不足或是单总线的电路断路都不会接到存在脉冲,在设计时要注意意外情况的处理。
3, 控制器发送ROM指令:双方打完了招呼之后最要将进行交流了,ROM指令共有5条,每一个工作周期只能发一条,ROM指令分别是读ROM数据、指定匹配芯片、跳跃ROM、芯片搜索、报警芯片搜索。ROM指令为8位长度,功能是对片内的64位光刻ROM进行操作。其主要目的是为了分辨一条总线上挂接的多个器件并作处理。诚然,单总线上可以同时挂接多个器件,并通过每个器件上所独有的ID号来区别,一般只挂接单个18B20芯片时可以跳过ROM指令(注意:此处指的跳过ROM指令并非不发送ROM指令,而是用特有的一条“跳过指令”)。ROM指令在下文有详细的介绍。
4, 控制器发送存储器操作指令:在ROM指令发送给18B20之后,紧接着(不间断)就是发送存储器操作指令了。操作指令同样为8位,共6条,存储器操作指令分别是写RAM数据、读RAM数据、将RAM数据复制到EEPROM、温度转换、将EEPROM中的报警值复制到RAM、工作方式切换。存储器操作指令的功能是命令18B20作什么样的工作,是芯片控制的关键。 5, 执行或数据读写:一个存储器操作指令结束后则将进行指令执行或数据的读写,这个操作要视存储器操作指令而定。如执行温度转换指令则控制器(单片机)必须等待18B20执行其指令,一般转换时间为500uS。如执行数据读写指令则需要严格遵循18B20的读写时序来操作。
若要读出当前的温度数据我们需要执行两次工作周期,第一个周期为复位、跳过ROM指令、执行温度转换存储器操作指令、等待500uS温度转换时间。紧接着执行第二个周期为复位、跳过ROM指令、执行读RAM的存储器操作指令、读数据(最多为9个字节,中途可停止,只读简单温度值则读前2个字节即可)。其它的操作流程也大同小异,在此不多介绍。
全部0条评论
快来发表一下你的评论吧 !