微控制器和1-Wire温度传感器的软件接口

时间:2007-04-29

微控制器和1-Wire温度传感器的软件接口

桃坞通信工程有限公司 吴康

1-Wire(一线制)数字温度传感器

DALLAS公司产的1-Wire(一线制)数字温度传感器己被广泛应用于各工业控制与捡测的设备仪器之中,但如何应嵌入与连接在系统之术是设计人员所关切的技术问题。

DSl8B20、DS18C20或DSl822是业内更高( 0.5℃)的1-Wire多点数字温度传感器,其特点是:

*具有1-Wire数字接口
*的64位序列号
*宽广的温度测量范围为-55℃至+125℃
*具有非易失用户(2字节EEPROM)可编程触发点的过热告警
*测量分辨率可由用户配置为9至12位
*封装形式包括TO-92,150mil8脚SOIC和倒装片

DSl8x20或DSl822温度传感器内部结构图见图0所示。

目前有数种方法,可将1-Wire器件,如DSl8B20、DSl822或DSl8S20与微控制器接口。这些方法包括:从简单的软件方案,到串行接口芯片,如DS2480及Dallas 1-Wire ASIC即(将经过整合的半导体超高规模集成电路硬件描述语言1-Wire主控器制造成专用集成电路)等 。本文陈述了一种简单的软件解决方案,可实现微控制器和任意个数的DSl8x20或DSl822温度传感器之间的1-Wire通信。


硬件配置

图1的框图说明了在采用多个1-Wire温度传感器时,该硬件配置很简单。一线制(1-Wire)总线向所有的器件既提供通信连接,又提供工作电源。总线电源经由一个连接于3V至5.5V电源端的4.7kf2上拉电阻提供。由于每个器件具有的64位ROM识别码,所以挂接在总线上的1-Wire器件数量几乎不受限制。多个1-Wire温度传感器通过1-Wire总线与采用DS5000(与MCS-8051单片机兼容)的微控制器相接口。

接口时序

与DSl8x20/DSl822的通信,通过操作时隙完成1-Wire总线上的数据传输。每个通信周期起始于微控制器发出复位脉冲,其后紧跟DSl8x20/DSl822发出的应答脉冲,如图2所示。

当主机将1-Wire总线从逻辑高(空闲状态)拉为逻辑低时,即启动一个写时隙。所有的写时隙必须在60 s至120 s(见图3 60 s<Tx"0" <120 s 标注)内完成,且在每个循环之间至少需要1 s的恢复时间(见图3 1 s<Trec <∞ 标注)。写0和写1时隙如图3所示。在写"0"时隙(Write"0" slot)期间,微控制器在整个时隙中将总线拉低;而写"1"时隙(Write"1" slot)期间,微处理器将总线拉低,然后在时隙起始后15 s内释放总线。

读时隙起始于微处理器将总线拉低1 s,接着释放总线,这样DSl8x20/DSl822就能够接管总线,输出有效数据(高或低)。所有读时隙在60 s至120 s完成,且在每个循环之间至少 需要1 s的恢复时间(图3)。


软件控制

为了地控制1-Wire接口的特殊时序要求,必须先建立几个关键的函数。个函数应该是延时函数,它是所有读和写控制的组成部分。这个函数完全依赖于微处理器的速度。为了更好地理解,值此以DS5000(与8051兼容)微控制器(工作时钟11.059MHz)为例。图4列举了一个用于创建时间延时的C(C语言)原型函数。

由于每个通信周期起始于微处理器发出的复位脉冲,因而复位函数(见图5)是下一个为重要的函数。复位时隙为480 s。首先以参数3,接着以参数25分别调用延时函数数,将产生所要求的复位脉冲,紧接着复位之后微处理器释放总线,以便DSl8x20/DSl822通过拉低总线来指示其是否在线。如果多个温度传感器在此总线上,它们将同时发出应答脉冲。


读和写函数实例如图6、7、8和9所示,提供了所有读/写数据位和字节操作的基本结构。


结束语

以上是新型多点1-wire数字温度传感器与微控制器软件接口简易的设计方案,经过多路温度巡迥监控系统在现场采集与检测使用,其特点是具有较高的性能比,即程式简单、检测准确、使用方便可靠。



  
上一篇:ST 汽车音频系统设计平台:CABx系列
下一篇:利用VT6526建造低成本Gbit以太网交换

免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

相关技术资料