首页 | 期刊简介 | 编辑部 | 广告部 | 发行部 | 在线投稿 | 联系我们 | 产品信息索取
2024年9月28日星期六
2011年第01期
 
2010年第12期
 
2010年第11期
2010年第11期
 
2010年第10期
2010年第10期
 
2010年第09期
2010年第09期
 
2010年第09期
2010年第08期
 
2010年第07期
2010年第07期
 
2010年第06期
2010年第06期
 
2010年第05期
2010年第05期
 
2010年第04期
2010年第04期
 
2010年第03期
2010年第03期
 
2010年第02期
2010年第02期
 
2010年第01期
2010年第01期
 
2009年第12期
2009年第12期
 
2009年第11期
2009年第11期
 
2009年第10期
2009年第10期
 
2009年第9期
2009年第9期
 
2009年第8期
2009年第8期
 
2009年第7期
2009年第7期
 
2009年第6期
2009年第6期
 
2009年第5期
2009年第5期
 
2009年第4期
2009年第4期
 
2009年第3期
2009年第3期
 
2009年第2期
2009年第2期
 
2009年第1期
2009年第1期
 
2008年第12期
2008年第12期
 
2008年第11期
2008年第11期
 
2008年第10期
2008年第10期
 
2008年第9期
2008年第9期
 
2008年第8期
2008年第8期
 
2008年第7期
2008年第7期
 
2008年第6期
2008年第6期
 
2008年第5期
2008年第5期
 
2008年第4期
2008年第4期
 
2008年第3期
2008年第3期
 
2008年第2期
2008年第2期
 
2008年第1期
2008年第1期
微控制器和1-Wire温度传感器的软件接口
The Software Interface between MCU and 1-wire Temperature Sensor
■ 桃坞通信工程有限公司 吴康




摘 要: 本文介绍新型1-Wire数字温度传感器DS1822与微控制器相接口与软件设 计方案,并指明1-Wire温度传感器的特点.
关键词: 1-Wire温度传感器;写"0"时隙;C原型函数;微控制器


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所示。

图0 DS18B20/DS1822/DS18c20-Wire芯片数字温度传感器内部组成图(略)

目前有数种方法,可将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单片机兼容)的微控制器相接口。

图1 多个i-Wire温度传感能够接口至同一条单线(略)

接口时序

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

图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内释放总线。

图3 写“0”时隙写“1”是隙读“0”时隙读“1”时隙图(略)

读时隙起始于微处理器将总线拉低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通过拉低总线来指示其是否在线。如果多个温度传感器在此总线上,它们将同时发出应答脉冲。

图4 延时实例(略)
图5 复位实例(略)
图6读位实例(略)
图7 写位实例(略)
图8 读字节实例(略)
图9 写字节实例(略
)

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


结束语

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

         
版权所有《世界电子元器件》杂志社
地址:北京市海淀区上地东路35号颐泉汇 邮编:100085
电话:010-62985649
E-mail:dongmei@eccn.com