分布式测温中传感器时序与温度读取研究

发布者:Weasel最新更新时间:2009-02-27 来源: 微计算机信息关键字:写时序  读时序  温度传感器  温度采集 手机看文章 扫描二维码
随时随地手机看文章

1.引言

  在分布式测温系统中应用了大量的新型传感器DS18B20,DS18B20是单总线数字温度传感器其硬件接线简单,但时序非常复杂。要实现温度的正确读取,既要有对DS18B20的ROM操作命令,又有一些功能命令。这些命令的执行,既有一定顺序,又有特定含义。都需要基于数字温度传感器初始化时序、写时序和读时序,按照严格的时序配合才能完成温度正确采集与读取。因此要想正确使用单总线数字温度传感器,必须分析其时序关系,并且基于时序编制正确程序。单总线数字温度传感器时序分析与应用研究具有及其重要意义。

2.数字温度传感器时序

  DS18B20与单片机只通过一条数据线连接,所以其数据的传输方式为串行方式。为了正确读取温度值,必须严格按照时序配合关系,进行程序编制。DS18B20有严格的通信协议来保证数据传输的正确性和完整性。通信协议规定了总线上的多种信号的时序。如:复位脉冲、响应脉冲、写0、写1、读0和读1等信号的时序。DS18B20是在严格的时序控制下进行正常操作的。换句话讲,就是用较为复杂的软件来换取简单的硬件接口。因此要正确使用DS18B20,就必须了解其初始化时序、写时序和读时序。

  2.1 数字温度传感器初始化时序

  初始化时序有时也称复位时序,它是数据线上所有传输过程的开始。整个初始化过程由主设备发出的复位脉冲和DS18B20的响应脉冲组成。在主设备初始化的过程中,主设备通过拉低数据线至少480μS ,DS18B20即认为是接收到一个初始化脉冲,接着主设备释放数据线,在数据线上上拉电阻的作用下,数据线电平被拉高,并且主设备进入接收模式。在DS18B20检测到上升沿后,延时15~60μS ,接着通过拉低总线60~240μS以产生应答脉冲。初始化时序如图2所示。图1是图2、图3和图4的线型示意图。


图1 线型示意图

图2 初始化时序

  在分布式测温系统中CPU采用AT89S52,温度读取的初始化程序如下所示:

  DAT BIT P1.0

  INI10: SETB DAT

  MOV R2, #185

  INI11: CLR DAT

  DJNZ R2, INI11 ; 复位脉冲时间600us

  SETB DAT ; 释放数据线

  MOV R2, #28

  INI12: DJNZ R2, INI12 ; 等待60us

  CLR C

  ORL C, DAT ; 有无应答低电平

  JC INI10 ; 若无应答,初始化失败

  MOV R6, #40

  INI13: ORL C, DAT

  JC INI14 ; 数据线变高。初始化成功

  DJNZ R6, INI13 ; 低电平最多240us

  SJMP INI10 ; 低电平持续大于240us,失败

  INI14: MOV R2, #222

  INI15: DJNZ R2, INI15 ; 应答信号至少要持续480us

  RET

  2.2 数字温度传感器写时序

  写时序包括写“0”时序和写“1”时序。写“1”时序用于主设备向DS18B20写入1,写“0”时序用于主设备向DS18B20写入0。无论是哪种写时序都至少需要60μS ,且在两次独立的写时序之间至少需要1μS的恢复时间。两种写时序均起始于主设备拉低数据线电平。对于写“1”时序,主设备在拉低数据线之后,紧接着必须在15μS之内释放数据线,由上拉电阻将数据线拉至高电平;而对于写“0”时序,在主设备拉低数据线后,只需在整个时序内保持低电平即可至少60μS。在写时序开始后的15~60μS期间内,DS18B20读取数据线电平状态。如果此期间数据线为高电平 ,则对器件写入逻辑1,否则写入逻辑0。写时序如图3所示。


图3 数字温度传感器写时序

  写一位程序如下所示。程序中DAT为I/O口P1.0。

  WIR11: SETB DAT ; 拉高电平

  MOV R4, #5

  NOP

  CLR DAT ; 高电平持续2us后拉低

  WIR12: DJNZ R4, WIR12 ; 等待10微秒

  MOV DAT, C ; 发送1位

  MOV R4, #23

  WIR13: DJNZ R4, WIR13 ; 保证写时间大于60us

  SETB DAT

  RET

[page]

  2.3 温度传感器读时序

  DS18B20只有在检测到主设备启动读时序后才向主设备传输数据。所以一般在主设备发送了读数据命令后,必须马上产生读时序,以便DS18B20能够传输数据。所有的读时序都至少需要60μS,且在两次独立的读时序之间至少需要1μS的恢复时间。每个读时序都由主设备发起,先使数据线为高电平,然后拉低数据线至少1μS,再释放数据线。在主设备发出读时序之后,DS18B20开始在数据线上发送数据0或1。若其发送1,则保持数据线为高电平。若发送0,则DS18B20拉低数据线,在该时序结束后释放数据线。DS18B20发出的数据在起始时序之后15μS内保证可靠有效。因而主设备在读时序期间必须释放数据线,并且要在时序开始后的15μS之内读取数据线状态。写时序如图4所示。


图4 数字温度传感器读时序

  读一位程序如下所示:

  RE11: SETB DAT ; 使数据线为高电平

  NOP

  NOP

  CLR DAT ; 高电平持续2us后拉低数据线

  MOV R4, #4

  NOP ; 持续低电平2us

  SETB DAT ; 释放数据线

  RE12: DJNZ R4, RE12 ; 等待8us

  MOV C, DAT ; 读入一位

  MOV R5, #28

  RE13: DJNZ R5, RE13 ; 保证一个读周期持续60us

  SETB DAT ; 使数据线为高电平

  RET

3.初始化以及读写时序应用

  3.1 温度采集程序设计

  单总线数字温度传感器DS18B20要完成温度的采集需要按顺序完成如下几个步骤:初始化、跳过ROM匹配、启动转换、等待转换完成、初始化、匹配ROM、读便笺式存储器、CRC校验、温度格式转换、保存温度值以及显示等其他处理。按照此步骤,程序设计时首先就要按照初始化时序执行2.1所介绍的初始化程序INI10,其次要将跳过ROM匹配命令(代码为CCH)写入到DS18B20中,此时需根据2.2所介绍的数字温度传感器写时序编写对DS18B20一个写入字节程序WRITE,将跳过ROM匹配命令写入DS18B20。为了完成温度启动转换,需要将启动转换命令写入DS18B20中。用延时750ms等待转换完成。随后再按照初始化时序执行本文中2.1所介绍的初始化程序INI10,用写入一个字节程序将匹配ROM命令(代码为55H)写入到DS18B20中。为了完成读便笺式存储器操作,需要先结合数字温度传感器写时序将读便笺式存储器命令(代码为BEH)写入到DS18B20中,再用温度传感器读时序编写的读一个字节程序READ,连续读取DS18B20便笺式存储器中9个字节的内容。由此可见,要想实现温度正确采集,需要结合上述所介绍的初始化时序、温度传感器写时序和温度传感器读时序,才可以将所需的命令写入与读出。完成温度的正确读取。

  3.2 温度传感器序列号读取程序设计

  每个单总线数字温度传感器DS18B20出厂时都有唯一的一个64位序列号,在使用温度传感器之前,需事先将每个温度传感器逐一挂接在I/O口如P1.0上,再读取温度传感器的序列号。当I/O口上挂接一个温度传感器DS18B20时,可以用读ROM命令完成64位序列号的读取。程序设计思路是首先将读ROM命令(代码为33H)送入累加器A中,随后调用写入一个字节程序WRITE,然后调用读64位序列号程序DXLH。在写入一个字节程序WRITE中,置循环次数为8,再调用写入一位子程序,严格按照时序关系,执行传感器写时序,循环8次写完一个字节。在读64位序列号程序DXLH中,置内部RAM首地址为30H,置循环次数为8,调用读一个字节程序READ,将读取数据存放在内部RAM中。循环8次读完8个字节即64位序列号。读出的64位序列号将存放到内部RAM 30H ~ 37H单元中。读一个字节程序READ如下所示。

  READ: MOV R6, #8 ; 循环次数为8

  SETB DAT ; 读出一位程序,执行传感器读时序

  NOP

  NOP

  RD11: CLR DAT

  MOV R4, #4

  NOP ; 持续低电平2us

  SETB DAT ; 释放数据线

  RD12: DJNZ R4, RD12 ; 等待8us

  MOV C, DAT ; 读入一位

  RRC A ; 将读入数据移入累加器A

  MOV R5, #28

  RD13: DJNZ R5, RD13 ; 保证一个读周期持续60us

  DJNZ R6, RD11 ; 循环8次读一个字节

  SETB DAT

  RET

  上述程序执行完毕,可将温度传感器的64位序列号存放在单片机内部RAM 30H ~ 37H单元中。

4.分布式测温系统中温度显示

  分布式测温系统中,采用液晶显示可以实现房间号的显示,实际温度的显示,报警上限值的显示以及报警发生时的时间。还可以循环显示多个房间的实际温度和上限值。如图5所示。


图5 分布式测温系统中对应房间温度以及报警上限显示

5.结束语

  正确读取多个单总线数字温度传感器DS18B20的温度在分布式测温系统中是非常重要的。由于在程序设计时必须根据严格的时序关系,因此本文作者创新点是详细阐述了初始化时序、读写时序等复杂逻辑关系,设计了正确的温度序列号读取程序和温度读写程序并能够进行液晶显示。由于单总线数字温度传感器DS18B20各个功能的实现是通过各种ROM命令与操作功能命令实现的,这些命令一环扣着一环,每个环都是一个时序的集合。在进行程序调试时,不能像调试其它程序一样用单步执行来进行跟踪,因此对错误查找和程序优化带来了很大的难度。在遇到程序运行出错时,只能够根据错误现象来分析、推测、修改和再运行来解决,而不能直接定位。文中所介绍的单总线数字温度传感器DS18B20程序设计思路与方法,目前已较好地应用于分布式测温系统中,并且满足一定精度要求。

关键字:写时序  读时序  温度传感器  温度采集 引用地址:分布式测温中传感器时序与温度读取研究

上一篇:牛奶成份检测仪光强检测电路设计与应用
下一篇:仪表本安防爆技术及其在化工现场的应用

推荐阅读最新更新时间:2024-03-30 21:27

STM32F4 ADC之内部温度传感器
测量芯片周围的环境温度用。这个温度传感器输出的电压与温度成一定比例,获取温度基本就是用ADC测量这个电压。 在芯片内部,温度传感器与ADC1的CH16相连。当不使用改传感器时,可将其设置为PowerDown模式以省电。 主要特性: 测温范围:-45~+125摄氏度 测温精度:±1.5摄氏度 使用步骤: 1、选择ADC1 CH16作为ADC的输入 2、设置采样时间 3、设置ADC1寄存器ADC_CCR的TSVREFE位,将温度传感器从PowerDown模式唤醒。 4、开始ADC转换 5、读取转换值Value并换算成电压Vsense,Vsense = Value×3300/4096 (mV) 6、计算温度。 温度计算公式:Temp =
[单片机]
基于单片机和DS18B20的温度采集和分析系统
传统的温度检测大多以热敏电阻为温度传感器,但热敏电阻的可靠性较差、测量温度准确率低,且还必须经专门的接口电路转换为数字信号后才能由单片机进行处理。不仅如此,大部分温度系统都缺少对温度的采样存储,无法对温度进一步分析。本文介绍了一套以个人电脑及80C51单片机为核心,使用DS18B20温度传感器进行温度采样,数据库进行温度存储,Matlab进行温度分析的系统。该系统可对其所处环境的温度进行实时监控,同时进行温度的采样、存储和分析,实现对特定环境下温度的了解。 1 系统总体组成 系统硬件部分主要用于温度的测量和存储。PC端则用于测温事件的建立与存储、测量参数的设置、温度数据的存储及温度数据的分析。整体而言,系统核心部分分为温度监测
[单片机]
基于单片机和DS18B20的<font color='red'>温度采集</font>和分析系统
新型补偿式温度巡检电路设计 提高温度检测精度
介绍了一种新型的补偿式温度巡检电路,该电路通过巧妙的设计克服了传统三线制检测方法中测量导线对测量结果的影响,提高了温度检测精度。同时该电路通过分组共享的方式完成对多路温度信号的巡检,降低了温度巡检电路的复杂度和成本。试验数据验证了该检测电路的精确性和实用性。 1引言 温度的检测是通过检测温度传感器的电阻值并对阻值与温度曲线关系进行换算来实现的。为了降低温度巡检电路测量复杂度,工程中常采用三线制测量方法进行温度测量。测量电路示意图如图1所示。 Rx1~RxN分别为温度传感器1~N的电阻值。以Rx1测量为例,设连接温度传感器1的三根导线电阻均为RL1,当模拟开关K1闭合时,有: 由式(1)可以看出,Rx1的测量
[电源管理]
新型补偿式温度巡检电路设计 提高温度检测精度
基于nRF24E01的无线温度采集系统设计
系统总体构成 自来水流量远程监测系统的结构如图1所示。系统由若干监测终端、无线数据传输网络和监控中心三部分组成。其中,监测终端安装于各供水分区的监测点,及时将监测到的流量数据通过GPRS网络传输到设在自来水公司的监控中心,由中心对各分区的数据进行分析,从而实现对各分区供水的科学管理。这里所说的供水分区不是一般的给水系统分区(并联分区或串联分区),而是在供水管网上安装流量计将整个供水系统划分成若干个供水区域,每个区域作为一个监测点,对管理区域内流进的自来水总量和实际销售的水量进行量化管理,以此来了解和掌握各区域内的需水量、供销差、漏失量、未收费水量等情况。 图1 系统结构图 其中,监测终端应实现下列功能: (1)现场采集流量信
[单片机]
基于nRF24E01的无线<font color='red'>温度采集</font>系统设计
温度采集报警系统原理简介
CMOS图像传感器的像素结构目前主要有无源像素图像传感器(Passive Pixel Sensor,PPS)和有源像素图像传感器(Active Pixel Sensor,APS)两种,如图1所示。由于PPS信噪比低、成像质量差,所以目前绝大多数CMOS图像传感器采用的是APS结构。APS结构的像素内部包含一个有源器件。由于该放大器在像素内部具有放大和缓冲功能,具有良好的消噪功能,且电荷不需要像CCD器件那样经过远距离移位到达输出放大器,因此避免了所有与电荷转移有关的CCD器件的缺陷。 图1 CMOS的两种像素结构 由于每个放大器仅在读出期间被激发,所以将经光电转换后的信号在像素内放大,然后用X-Y地址方式读出,提高了固
[嵌入式]
基于ATmega16的实时温度采集与分析系统的设计与实现
随着计算机技术尤其是单片微型机技术的发展,温度对人们的生活与工作影响很大,所以要实时采集温度并且对其进行分析。为此,实现实时准确的测量监控。采用串口传送数据并且在PC机上进行分析。由于单片机的控制方便、简单和灵活等优点,采用了高性能avr单片机来控制GTJ4-10A固态继电器,最总实现温度的控制。从而最总在PC机上绘制温度曲线并保存数据和分析温度的数据。 1 系统组成及基本原理 本系统由温度采集模块,固态继电器控制模块,单片机模块,PC机软件处理模块。4个模块加起来实现温度的控制,以及温度采集和温度经过软件处理的分析。它们的逻辑关系如图1所示。 本系统的任务是对某种特定环境的温度进行采集并进行保存和再显示,通过单片机去控制固
[单片机]
基于ATmega16的实时<font color='red'>温度采集</font>与分析系统的设计与实现
昆仑海岸传感技术无线温度传感器登场
  无线传感器产品是近年来以及今后各类监测、检测应用的一个发展趋势,越来越多的使用环境要求要使用无线技术来解决数据通信问题。北京昆仑海岸传感技术特推出了一款JWB-CWPB无线温度传感器来满足市场的需求。   北京昆仑海岸传感技术这款JWB-CWPB无线温度传感器,是一款电池供电,具有无线通讯功能的高精度智能型温度仪表。这款产品的主要特别是:128×64分辨率的大点阵液晶显示现场数据;电池供电,无需现场布线方便使用;超低功耗设计,能够满足设备在现场使用3年以上;无线通讯功能,可实现远端数据实时监测;金属外壳,全密封设计,保证全天候无忧作业。   此产品适用于野外或配套供电环境不便的场合,如输油,输汽,供暖等输送能源管道进行
[传感器]
智能温度传感器的发展趋势
摘要: 介绍集成温度传感器的产品分类,并全面系统地阐述智能温度传感器的发展趋势。 关键词: 智能温度传感器 发展趋势 总线 虚拟传感器 单片测量系统 现代信息技术的三大基础是信息采集(即传感器技术)、信息传输(通信技术)和信息处理(计算机技术)。传感器属于信息技术的前沿尖端产品,尤其是温度传感器被广泛用于工农业生产、科学研究和生活等领域,数量高居各种传感器之首。近百年来,温度传感器的发展大致经历了以下三个阶段;(1)传统的分立式温度传感器(含敏感元件);(2)模拟集成温
[传感技术]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
最新工业控制文章
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved