灵芝厂家
免费服务热线

Free service

hotline

010-00000000
灵芝厂家
热门搜索:
技术资讯
当前位置:首页 > 技术资讯

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

发布时间:2020-07-21 17:42: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

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

第一个 Java 程序

16 Python 的循环控制语句

07 MySQL 创建数据库