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

王朝厨房·作者佚名  2007-01-04
宽屏版  字体: |||超大  

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

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

本文摘自《世界电子元器件》

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有