主机控制DS18B20完成温度转换时,在每一次读写之前,都要对DS18B20进行复位,而且该复位要求主CPU要将数据线下拉500μs,然后释放。DS18B20收到信号后将等待16~60μs左右,之后再发出60~240μs的低脉冲。主CPU收到此信号即表示复位成功。实际上,较小的硬件开销需要相对复杂的软件进行补偿。由于DS18B20与微处理器间采用串行数据传送方式,因此,在对DS18B20进行读写编程时,必须严格地保证读写时序,否则,将无法正确读取测温结果。
对于在单总线上所挂DS18B20的数量问题,一般人们会误认为可以挂任意多个DS18B20,而在实际应用中并非如此。若单总线上所挂DS18B20超过8个时,则需要解决微处理器的总线驱动问题,因此,在进行蓄电池单体多点测温系统设计时该问题要加以注意。
连接DS18B20的总线电缆是有长度限制的。试验中,当采用普通信号电缆且其传输长度超过50 m时,读取的测温数据将发生错误。而将总线电缆改为双绞线带屏蔽电缆时,正常通讯距离可达150 m,如采用带屏蔽层且每米绞合次数更多的双绞线电缆,则正常通信距离还可以进一步加长。这种情况主要是由总线分布电容使信号波形产生畸变造成的,因此,在用DS18B20进行长距离测温系统设计时要充分考虑总线分布电容和阻抗匹配问题。
在DS18B20测温程序设计中,当向DS18B20发出温度转换命令后,程序总要等待DS18B20的返同信号。这样,一旦某个DS18B20接触不好或断线,在程序读该DS18B20时就没有返回信号,从而使程序进入死循环。因此,在进行DS18B20硬件连接和软件设计时,应当给予足够的重视