DS18B20操作命令 ROM操作命令 指令 约定代码 功能 读ROM 33H 读DS1820温度传感器ROM中的编码(即64 位地址) 符合ROM 55H 发出此命令之后,接着发出64位ROM编码, 访问单总线上与该编码相对应的DS1820使之做 出响应,为下一步对该DS1820的读写做准备。 搜索ROM FOH 用于确定挂接在同一总线上DS1820的个数和 识别64位ROM地址,为操作各器件作好准备。 跳过ROM CCH 忽略64位ROM地址,直接向DS1820发温度变 换命令,适用于单片工作。 告警搜索 ECH 执行后只有温度超过设定值上限或下限的片子 才做出响应
DS18B20操作命令 ROM操作命令 指 令 约定代码 功 能 读ROM 33H 读DS1820 温度传感器ROM 中的编码(即64 位地址) 符合ROM 55H 发出此命令之后,接着发出 64 位 ROM 编码, 访问单总线上与该编码相对应的 DS1820 使之做 出响应,为下一步对该 DS1820 的读写做准备。 搜索ROM F0H 用于确定挂接在同一总线上 DS1820 的个数和 识别64 位 ROM 地址,为操作各器件作好准备。 跳过ROM CCH 忽略64位ROM地址,直接向 DS1820 发温度变 换命令,适用于单片工作。 告警搜索 ECH 执行后只有温度超过设定值上限或下限的片子 才做出响应
RAM操作命令 指令 约定代码 功能 温度变换 44H 启动DS1820进行温度转换,12位转换时最长 为750ms(9位为93.75ms)。结果存入内部9 字节RAM中。 读暂存器 BEH 读内部RAM中9字节的内容 写暂存器 4EH 向DS18B20写TH、TL及配置寄存器数据命令, 紧跟该命令之后,是传送两字节的数据。 复制暂存器 48H 将缓冲器的TH、TL和配置寄存器值送EEPROM。 重调(回读) B8H 将EEPROM中的TH、TL和配置寄存器值送缓冲 EEPROM 器。 读供电方式 B4H 读DS1820的供电模式。寄生供电时DS1820发 送“0”,外接电源供电DS1820发送“1
RAM操作命令 指 令 约定代码 功 能 温度变换 44H 启动DS1820 进行温度转换,12 位转换时最长 为750ms(9 位为93.75ms)。结果存入内部9 字节RAM 中。 读暂存器 BEH 读内部RAM 中9 字节的内容 写暂存器 4EH 向DS18B20写TH、TL及配置寄存器数据命令, 紧跟该命令之后,是传送两字节的数据。 复制暂存器 48H 将缓冲器的TH、TL和配置寄存器值送EEPROM。 重调(回读) EEPROM B8H 将EEPROM中的TH、TL和配置寄存器值送缓冲 器。 读供电方式 B4H 读DS1820 的供电模式。寄生供电时DS1820 发 送“0”, 外接电源供电 DS1820 发送“1
DS18B20操作时序 ■初始化时序 至少480μs 电阻 上拉 15-60μs VPU 单片机发送复位脉冲 18B20应答脉冲 至少480μs 60-240μs GND 图例: 主机拉低 DS18B20拉低 上拉电阻拉高 复位脉冲由单片机拉低总线480~960us产生;然后单片机释放总线(输出高电平), 总线在上拉电阻作用下恢复高电平,恢复时间15~60us;DS18B20器件收到单片机 发来的复位脉冲后,向总线回应应答脉冲,应答脉冲会使总线拉低60~240uS。 命令和数据的传输:从主机主动启动写时序开始,如果要求 从机回送数据,在进行写命令后,主机需启动读时序完成数 据接收。数据的传输都是低位在先,即读时隙和写时隙均以 单片机驱动总线产生低电平开始
DS18B20操作时序 初始化时序 命令和数据的传输:从主机主动启动写时序开始,如果要求 从机回送数据,在进行写命令后,主机需启动读时序完成数 据接收。数据的传输都是低位在先,即读时隙和写时隙均以 单片机驱动总线产生低电平开始。 复位脉冲由单片机拉低总线480~960us产生;然后单片机释放总线(输出高电平), 总线在上拉电阻作用下恢复高电平,恢复时间15~60us;DS18B20器件收到单片机 发来的复位脉冲后,向总线回应应答脉冲,应答脉冲会使总线拉低60~240us
void ow reset() { 至少480μs char presence =1; 电阻 上拉 while(presence) 15-60μs 单片机发送复位脉冲 18B20应答脉冲 至少480μs while(presence) 60-240μs GND { 图例: 主机拉低 DS18B20拉低 上拉电阻拉高 DQ=1; nop_();nop_(; DQ=0; delay(50); ∥延时550毫秒,读时序 初始化时序 DQ=1; delay(6); ∥延时66毫秒 presence=DQ;∥presence=O,继续下一步 delay(45); ∥延时495us presence =~DO; DQ=1;
初始化时序 void ow_reset() { char presence = 1; while(presence) { while(presence) { DQ = 1; _nop_(); _nop_(); DQ = 0; delay(50); // 延时550毫秒,读时序 DQ = 1; delay(6); // 延时66毫秒 presence = DQ; // presence =0,继续下一步 } delay(45); // 延时495us presence = ~DQ; } DQ = 1; }
■写时序 单片机写“0”时限 TREC 单片机写“1”时限 >1μs 60μs<Tx“0”<120 4>1u5 Vpu GND DS18B20采样 DS18B20采样 MIN TYP MAX MIN TYP MAX 15us→←154s→←—30us→ ←15μs→←155→←305→ DS18B20器件的写时序由写0时隙和写1时隙组成
写时序 DS18B20器件的写时序由写0时隙和写1时隙组成