基于DS1820的单总线多点测温技术
3.2 软件设计
程序处理是整个系统的关键,简洁的硬件结构是靠复杂的软件来支持的。多个器件挂在一条总线上去识别不同的器件,在程序设计过程中一般有初始化命令、传送ROM命令、传送RAM命令、数据交换命令4个步骤。
需要注意的是,无论是单点还是多点温度检测,在系统安装及工作之前,应将主机逐个与DS182挂接,读出其序列号。它的工作过程为:主机发出一个脉冲,待“0”电平大于480μs后,复位DA1820,在DS1820所发响应脉冲由主机接收后,主机再发读ROM命令代码33H,然后发一个脉冲(15μs),并接着读取DS1820序列号的1位。用同样方法读取序列号的56位。另外,由于DS1820单线通信功能是分时完成的,遵循严格的时隙概念,因此系统对DS1820和各种操作必须按协议进行,即初始化DS182(发复位脉冲)→发ROM功能命令→发存储器操作命令→处理数据。
在正常测温情况下,DS1820的测温分辨率为0.5℃。这对于精度要求高的场合有所不足。在详细分析DS1820测温原理的基础上,采取直接读取DS1820内部暂存寄存器的方法,将DS1820的测温分辨率提高到0.1~0.01℃。图4为软件设计的总流程。本文引用地址:https://www.eepw.com.cn/article/162232.htm
4 结语
虽然DS1820具有测温系统简单,测温精度高,连接方便,占用口线少等优点,但在实际应用中还应注意以下几方面的问题:
系统硬件虽然简单,但需要相对复杂的软件进行补偿;由于DS1820与微处理器间采用串行数据传送,因此,在对DS1820进行读/写编程时,必须严格地保证读/写时序,否则将无法读取测温结果。
在DS1820的有关资料中均未提及单总线上所挂DS1820数量问题,容易使人误认为可以挂任意多个DS1820,在实际应用中并非如此。当单总线上所挂DS1820超过8个时,就需要解决微处理器的总线驱动问题,这一点在进行多点测温系统设计时要加以注意。连接DS1820的总线电缆是有长度限制的。由于信号电缆本身存在电阻,距离过长时将导致信号衰减。试验中,当采用普通信号电缆传输长度超过50 m时,读取的测温数据将发生错误;当总线电缆改为双绞线带屏蔽电缆时,正常通信距离可达150 m;当采用每米绞合次数更多的双绞线带屏蔽电缆时,正常通信距离能进一步加长。这种情况主要是由总线分布电容使信号波形产生畸变造成的。因此,在用DS1820进行长距离测温系统设计时要充分考虑总线分布电容和阻抗匹配的问题。
评论