用DS1820实现温度测量

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

任务三用DS1820实现温度测量*

一、任务要求

DS1820是美国DALLAS公司生产的单总线式数字温度传感器,具有微型化、低功耗、高性能、搞干扰能力强、易配处理器等优点。本任务利用DS1820来完成温度的检测,通过单片机进行数据处理并显示温度值。

知识目标:

(1) 了解DS1820的工作原理。

(2) 掌握DS1820的使用和特性。

技能目标:

(1) 会单片机和DS1820的接口电路设计。

(2) 能进行DS1820温度采集、单片机数值处理和温度显示的程序设计。

二、知识链接

1. DS1820简介

DS1820能在现场采集温度数据,并将温度数据直接转化成串行数字信号输出给单片机处理。

(1) 独特的单线接口方式:当DS1820与微处理器连接时,仅需要一条数据线即可实现微处理器与DS1820的双向通信。

(2) 测量温度范围为 -55℃~+125℃,在-10℃~+85℃范围内,精度为±0.5℃。

(3) 电压适用范围3V~5.5V。

(4) 可编程为9位~12位A/D转换精度。

(5) 用户设定的上、下限报警温度存储在EEPROM中,掉电后依然保存。

(6) 在没有外部电源时,DS1820依然能够继续工作,此时电源由总线为高电平时DQ脚上的上拉电阻提供(寄生供电模式),此模式下,VDD脚必须接地。

(7) 同一总线上可以挂接多个DS1820,适用于构成多点温度测控系统。

2. DS1820测温原理

DS1820只有3个引脚,说明如下:DQ为数字信号输入/输出端;GND为电源地;VDD为外接供电电源输入端。

图4-25 DS1820内部测温电路框图

DS18B20内部的低温度系数振荡器是一个振荡频率随温度变化很小的振荡器,为计数器1提供一频率稳定的计数脉冲。高温度系数振荡器是一个振荡频率对温度很敏感的振荡器,为计数器2提供一个频率随温度变化的计数脉冲。初始时,温度寄存器被预置成-55℃,每当计数器1从预置数开始减法计数到0时,温度寄存器中的值就增加1℃,这个过程重复进行,直到计数器2计数到0时便停止。此时温度寄存器中的数值即为所测温度值。

初始时,计数器1预置的是与-55℃相对应的一个预置值。以后计数器1每一个循环的预置数都由斜率累加器提供。为了补偿振荡器温度特性的非线性性,斜率累加器提供的预置数也随温度相应变化。

DS18B20内部的比较器以四舍五入的量化方式确定温度寄存器的最低有效位。在计数器2停止计数后,比较器将计数器1中的计数剩余值转换为温度值后与0.25℃进行比较,若低于0.25℃,温度寄存器的最低位就置0;若高于0.25℃,最低位就置1;若高于0.75℃时,温度寄存器的最低位就进位然后置0。这样,经过比较后所得的温度寄存器的值就是最终读取的温度值了,其最后位代表0.5℃。

3.DS1820的内部结构

DS1820内部结构主要由四部分组成:64位光刻ROM、温度传感器、非易失性的温度报警触发器T H和T L、配置寄存器。

(1) 光刻ROM中的64位序列号是出厂前被光刻好的,它可以看作是该DS1820的地址序列码。64位光刻ROM的排列是:开始8位是产品类型标号,接着的48位是该DS1820自身的序列号,最后8位是前面56位的循环冗余校验(CRC)码。光刻ROM的作用是使每一个DS1820都各不相同,这样就可以实现一根总线上挂接多个DS1820的目的。

(2) DS1820温度传感器的内部存储器包括一个高速暂存RAM和一个非易失性的可电擦除的E2PROM,后者存放高温度和低温度报警触发器TH、TL和结构寄存器。

暂存存储器包含了9个寄存器,前两个寄存器是测得的温度信息。第三个和第四个寄存器是TH、TL的易失性拷贝,第五个寄存器是结构寄存器的易失性拷贝,这三个寄存器的内容在每一次上电复位时被刷新。第六、七、八个寄存器用

于内部计算。第九个寄存器是前8个寄存器内容的冗余检验码,用来保证通信正确。

当DS1820收到温度转换命令后,开始启动转换。转换所得的温度值以16位带符号扩展的二进制补码形式存放在高速暂存存储器的第1和第2个寄存器。单片机可通过单线接口读到该数据,读取时低位在前,高位在后,数据格式以0.0625℃/LSB形式表示。温度值格式如下:

温度低位

温度高位

对应温度的计算:当符号位S=0时,只要将测到的数值乘于0.0625即可得到实际温度;当S=1时,将补码变换为原码,即测到的数值取反加1后,再乘于0.0625即可得到实际温度。部分温度值见表4-4 。

表4-4 部分温度值

DS1820完成温度转换后,就把测得的温度值与TH、TL比较,若T>TH或T

配置寄存器为高速暂存器的第5个字节,其内容用于确定温度值的数字转换分辨率,DS1820工作时按此寄存器中的分辨率将温度转换为相应精度的数值。该字节各位的定义如下:

低五位一直都是1,TM是测试模式位,用于设置DS18B20在工作模式还是在测试模式。在DS18B20出厂时该位被设置为0,用户不要去改动。R1和R0用来设置分辨率,见表4-5 (DS1820出厂时被设置为12位)。

4.DS1820时序

由于DS1820单线通信功能是分时完成的,且有严格的时隙概念,因此读写时序很重要。操作协议为:初始化(发复位脉冲)→ROM功能命令→存储器操作命令→处理数据。系统对DS1820的每一次操作必须遵循这一顺序,如果其中任何的任何一步缺少或打乱,DS1820将不会响应。

(1) 初始化时序。单总线上的所有处理均从初始化序列开始。初始化序列包括主机发出一复位脉冲,即拉低总线至少480μs,然后主机产生一由低电平跳变为高电平的上升沿。DS1820检测到这一上升沿后,延时15~60μs,接着送出60~240μs低电平的存在脉冲。存在脉冲让主机知道DS1820 在总线上且已准备好操作。

(2) 写时序。主机通过写时序写数据到DS1820,每一总线时序传送一位数据。

所有写时序必须持续最少60μs,每个写时序之间必须有至少1μs的恢复时间。不论写“1”时序还是写“0”时序,写时序都从主机把总线拉低开始。为产生写“1”时序,主机将总线拉低后,15μs内释放总线,上拉电阻将总线电平抬高;为产生写“0”时序,主机将总线拉低后,在整个时序内(至少60μs)持续为低电平。

DS1820在主机发出的写时序后的15~60μs的时间内采样总线。如果采样期间总线为高,“1”就被写入DS1820;如果采样期间总线为低,“0”就被写入DS1820。

(3) 读时序。主机通过读时序从DS1820中读数据,每一总线时序传送一位

相关文档
最新文档