较好的节约之道。
控制器对 18B20 操作流程:
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 个字节即可)。其它的操作流程也大同小异,在此不
多介绍。
DS18B20 芯片与单片机的接口: