DS18B20时序(下)
扫描二维码
随时随地手机看文章
温度转换的时序虽不直接属于通信时序,但与数据读取紧密相关,影响着主机的操作节奏。当主机发送“启动温度转换”命令(0x44)后,DS18B20会进入转换阶段,此时传感器内部的ADC开始将模拟温度信号转换为数字量,转换时间取决于预设的分辨率:9位分辨率需93.75ms,10位需187.5ms,11位需375ms,12位需750ms。在转换期间,若主机尝试与传感器通信,从机不会响应,因此主机必须等待转换完成后再发起读数据操作。判断转换完成的方式有两种:一是根据分辨率预设固定延时(如12位时等待750ms以上);二是通过读取暂存器的第7字节(转换就绪标志),但这需要额外的通信操作。实际应用中,固定延时更为常用,但需确保延时足够长,否则读取的数据可能是上一次的转换结果,而非最新值。
多节点级联时的时序控制更为严格,尤其是在执行“搜索ROM”命令时,主机需要通过精密的时序交互识别总线上每个传感器的唯一64位序列号。搜索过程中,主机每发送一位数据,会先拉低总线并释放,等待从机响应:总线上的从机若该位为0,会拉低总线;若为1,则保持高电平。主机通过检测总线电平判断是否存在冲突(即同时有从机发送0和1),并根据冲突情况调整后续位的发送,逐步定位每个传感器的序列号。这一过程对时序的精度要求极高,每个位的判断、冲突检测、延时控制都需严格遵循协议,否则可能漏检或误判传感器,导致多节点识别失败。
时序控制的实现依赖于MCU的硬件或软件延时能力,不同的MCU需采用不同的优化方式。对于带定时器的MCU,可通过定时器中断精确控制电平切换的时间,避免软件延时受指令执行速度影响的不稳定性;对于资源有限的MCU,需通过汇编指令或循环计数校准延时,确保复位脉冲、写时隙、读时隙的时间参数在允许范围内(通常允许±10%的误差)。此外,总线的硬件特性也会影响时序,例如上拉电阻的阻值过大会导致总线电平切换缓慢,阻值过小则会增加功耗,4.7kΩ是兼顾速度与功耗的常用选择;长距离布线时,总线的分布电容会延缓电平变化,可能需要缩短通信速率或增加总线驱动芯片,以维持时序的准确性。
常见的时序问题往往导致通信失败,例如:复位脉冲时长不足480μs,从机无法识别复位信号,无应答;写“0”时拉低总线时间不足60μs,从机误读为“1”;读时隙中主机采样时间超过15μs,错过从机输出的有效电平;温度转换未完成就发起读操作,读取到无效数据。排查这些问题时,需借助示波器观察DQ线的电平变化,对比实际时序与协议要求的差异,例如测量复位脉冲的宽度、应答脉冲的出现时间、读写时隙的电平持续时间等,通过硬件波形分析定位时序偏差的根源。
DS18B20的时序是单总线通信的“语法规则”,从初始化的复位与应答,到写命令的时隙控制,再到读数据的采样窗口,每一个环节的时间参数都经过精心设计,以在简化硬件的同时保证通信可靠。无论是单节点测温还是多节点组网,严格遵循时序规则都是实现稳定数据传输的前提,而对时序细节的深入理解,不仅能帮助工程师快速驱动传感器,更能在复杂场景下高效排查通信故障,充分发挥DS18B20在温度采集领域的优势。





