根据DS18B20的通信协议,微处理器作为主设备,单总线器件DS18B20作为从设备。
DS18B20依靠单线端口通信,在单线端口条件下,必须先建立ROM操作协议,才能进行
存储器和控制操作。
微处理器对DS18B20完成温度转换必须经过三个步骤:
(1)每一次读写之前都要对DS18B20进行复位,即DS18B20的初始化操作。
(2)复位成功后发送一条ROM指令,即写字节操作; DS18B20 的ROM指令如表1所示。
(3)最后发送RAM指令,即读字节操作,这样才能对DS18B20进行预定的操作;
DS18B20的RAM指令如表2所示。数据和命令的传输都是以低位在前的串行方式进行的。
表1 ROM指令表
指令 | 约定代码 | 功能 |
读ROM | 0x33 | 读DS18B20温度传感器ROM中的编码(即64位地址) |
匹配ROM | 0x55 | 发出此命令之后,接着发出64位ROM编码,访问单总线上与该编 码相对应的DSI8B20 使之作出响应,为下一步对该DS18B20的读写 作准备 |
搜索ROM | 0xF0 | 用于确定挂接在同一- 总线上DSI8B20的个数和识别64位ROM地 址。为操作各器件做好准备 |
跳过ROM | occh | 忽略64位ROM地址,直接向DS1820发温度变换命令。适用于单片 工作。 |
告警搜索命令 | 0xEC | 执行后只有温度超过设定值上限或下限的片子才作出响应 |
表2 RAM指令表
指令 | 约定代码 | 功能 |
温度变换 | 0x44 | 启动DS18B20进行温度转换, 12位分辨率的转换时最长为750ms。 转换后的结果存入内部RAM |
读暂存器 | 0xBE | 读内部RAM中9字节的内容 |
写暂存器 | 0x4E | 发出向内部RAM的3、4字节写上、下限温度数据命令,紧跟该命令. 之后,是传送两字节的数据 |
复制暂存器 | 0x48 | 将RAM中第3、4字节的内容复制到EEPROM中 |
调用EEPROM | 0xB8 | 将EEPROM中的内容恢复到RAM中的第3、4字节 |
读供电方式 | 0xB4 | 读DS18B20的供电模式。寄生供电时DS18B20发送“0",外接电源供电时 DS18B20 发送“ 1 ” |
Comments | NOTHING