对于DSl8820的写时序仍然分为写0时序和写1时序两个过程。
对于DSl8820写0时序和写1时序的要求不同,当要写O时序时,单总线要被拉低至~>60us,保证DSl8820能够在15us到45us之间能够正确地采样IO总线上的“O”电平,当要写l时序时,单总线被拉低之后,在15us之内就得释放单总线。
3 DSl8820的应用设计
DSl8820采用的是1一Wire总线协议方式,即在一根数据线实现数据的双向传输。对AT89S5l单片机来说,硬件上并不支持单总线协议,因此必须采用软件的方法来模拟单总线的协议时序来完成对Dsl8820芯片的访问。
3.1 硬件设计
DSl8820采用的是1一Wire总线协议方式,即在一根数据线实现数据的双向串行传输,所以硬件接口电路非常简单。需要注意的地方是:DQ数据线需要接上拉电阻。DSl8820有两种接线方式:寄生电源方式和外接电源方式。图3以MCS一5l系列单片机为例,画出了DSl8820与微处理器的典型连接。图4(上)中DSl8820采用寄生电源方式,其VDD和GND端均接地,图4(下)中DS18820采用外接电源方式,其VDD端用3V~5.5V电源供电。
图4 DSl8820与微处理器的典型连接
3.2 软件设计
由于DSl8820是在一根I/0线上读写数据,因此,对读写的数据位有着严格的时序要求。DSl8820有严格的通信协议来保证各位数据传输的正确性和完整性。该协议定义了几种信号的时序:初始化时序、读时序、写时序。所有时序都是将主机作为主设备,单总线器件作为从设备。而每一次命令和数据的传输都是从主机主动启动写时序开始,如果要求单总线器件回送数据,在进行写命令后,主机需启动读时序完成数据接收。数据和命令的传输都是低位在先。
4 DSl8820使用中的注意事项
DSl820虽然具有测温系统简单、测温精度高、连接方便、占用口线少等优点,但在实际应用中也应注意以下几方面的问题:
(1)较小的硬件开销需要相对复杂的软件进行补偿,由于DSl820与微处理器问采用串行数据传送,因此,在对DSl820进行读写编程时,必须严格的保证读写时序,否则将无法读取测温结果。在使用PL/M、C等高级语言进行系统程序设计时,对DSl820操作部分最好采用汇编语言实现。
(2)在DSl820的有关资料中均未提及单总线上所挂DSl820数量问题,容易使人误认为可以挂任意多个DSl820,在实际应用中并非如此。当单总线上所挂DSl820超过8个时,就需要解决微处理器的总线驱动问题。
(3)连接DSl820的总线电缆是有长度限制的。试验中,当采用普通信号电缆传输长度超过50m时,读取的测温数据将发生错误。当将总线电缆改为双绞线带屏蔽电缆时,通讯距离可达150m,当采用每米绞合次数更多的双绞线带屏蔽电缆时,通讯距离进一步加长。这种情况主要是由总线分布电容使信号波形产生畸变造成的。因此,在用DSl820进行长距离测温系统设计时要充分考虑总线分布电容和阻抗匹配问题。
(4)在DSl820测温程序设计中,向DSl820发出温度转换命令后,程序需要等待DSl820的返回信号。一旦某个DSl820接触不好或断线,读该DSl820时将没有返回信号,程序将进入死循环。
5 结论
采用数字温度传感器DS18820进行温度的时实监测的系统具有转换精度高、体积小、与微处理器接口简单等优点;能够给硬件设计工作带来了极大的方便,能有效地降低成本,缩短开发周期。另外DSl8820芯片内部集成了9位~12位A/D转换精度,测温分辨率可达0.0625℃,被测温度用符号扩展的16位数字信号的方式串行输出,因此抗干扰能力也比同类芯片高。DSl8820在温度监测、自动控制等领域均已得到广泛的应用。