第22章使用DS28B20温传感器测温#

上传人:ni****g 文档编号:498932919 上传时间:2024-03-04 格式:DOCX 页数:18 大小:313.80KB
返回 下载 相关 举报
第22章使用DS28B20温传感器测温#_第1页
第1页 / 共18页
第22章使用DS28B20温传感器测温#_第2页
第2页 / 共18页
第22章使用DS28B20温传感器测温#_第3页
第3页 / 共18页
第22章使用DS28B20温传感器测温#_第4页
第4页 / 共18页
第22章使用DS28B20温传感器测温#_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《第22章使用DS28B20温传感器测温#》由会员分享,可在线阅读,更多相关《第22章使用DS28B20温传感器测温#(18页珍藏版)》请在金锄头文库上搜索。

1、第11章使用DS18B20温度传感器测温11.1概述现实生产生活中,小到测量体温的温度计,大到航天飞机的温控系统,处处都离不开 温度测量。工业生产中的三大指标 流量、压力、温度)之一就是温度,温度测量可以说 是无处不在,遍布了我们生活生产的方方面面。DS18B20 温度传感器是美国 DALLAS 半导体公司生产的数字化温度传感器,它与以 往模拟量温度传感器不同,数字化是其一大特点,它能将被测环境温度直接转化为数字 量,并以串行数据流的形式传输给单片机等微处理器去处理。DS18B20温度传感器的另一 个主要特点是它是单总线的,即它与单片机等微处理器连接时,只需占用一个 I/O 管脚, 并且不再需

2、要其它任何外部元器件,这大大简化了它与但单片机之间的接口电路。11.2DS18B20温度传感器介绍目前,使用最普遍的DS18B20温度传感器是三脚TO-92直插式封装这一种,这种封 装的 DS18B20 实物如图 11-1 所示。可以看到它体积很小,只有三只管脚,外形与一般的 三极管极其相似。图11-2是其三脚TO-92直插式封装图,表11-1列出了 DS18B20各个引 脚的定义。如图 11-1如图 11-2表 11-1 DS18B20 引脚定义。DALLASDS1820引脚号引脚定义1GND接地端2DQ数据输入输出端3VdD电源端1、DS18B20 温度 独特的单总线一 理器通信只需一个

3、I/O 需其它外部元件;传感器特性简介条线)接口,与微处 管脚,且硬件连接无测量结果直接输出数字量,可直接与微处理器通信;供电电压范围3.0V5.5V;在寄生电源方式下可有数据线供电;测温范围-55C+125C ;在-10C+85C范围内,测量精度可达土 0.5C;可编程的912位测温分辨率,对应的可分辨温度值分别为0.5C, 0.25C,0.125C, 0.0625C; 12位分辨率时的温度测量转换最长时间上限)只有750ms;每一片DS18B20都有自己独一无二的芯片号码;多片DS18B20可以并联在一条数据总线上实现不同地点的多点组网;应用范围包括温度调控,工业现场测温,消费类产品,温度

4、计及热敏系统等2、DS18B20温度传感器测温工作原理DS18B20 的核心功能就是测量被测环境温度并直接转换成为数字量。我们使用DS18B20测温,就是要将DS18B20转换成的数字量温度值从DS18B20内部读出,送入单片机进行处理,所以了解 DS18B20 内部的存储器的结构和组成是必要的。另外,控制 DS18B20测温和读取温度值的指令也是必不可少的。以下就从这两个方面逐个说明。 (DDS18B20内部的存储器笼统而言,可以说DS18B20内部的存储器有三个。一个是64位光刻ROM;另一个是 中间结果暂存RAM;第三个是E2RAM。64 位光刻 ROM前面已经提及,每一片 DS18B2

5、0 都有一个独一无二的号码,用于唯一标识当前这片DS18B20。这个号码是DS18B20的生产厂家DALLAS公司在生产该片DS18B20时固化在 其内部 ROM 中的,共有 64 位,所以称为 64 位光刻 ROM 号码,其数据格式如图 11-3所 示。S-BIT CRC CODE48-BIT SERIAL NUMBER8-BIT FAMILY CODE(28h)MSBLSB MSBLSB MSBLSB图11-3 64位光刻ROM数据格式这 64 位号码由三部分组成,分别是 64 位号码中的最低 8 位,64 位号码中的中间 48 位和 64位号码中的最高 8 位。其中,64 位号码中的最低

6、 8 位对每一片 DS18B20 而言都相 同,其值是0x28H,称为家族代码。这个值是专门分配给DS18B20家族的,用以区别不同 的单总线设备家族。 64 位号码中的中间 48 位是唯一标识当前这片 DS18B20 的产品序列 号。任意两片DS18B20的家族代码都是0x28H,但它们的48位产品序列号绝对不相同, 这 48 位一般称为 48 位序列号。 64 位号码中的最高 8 位是从前面的 56 位8 位+48 位=56 位)计算出的CRC码,这8位一般不大用,所以此处一笔带过,读者可以不予理睬。中间结果暂存 RAM中间结果暂存RAM共有8个字节,其结构如图11-4所示。SCFLA.T

7、CHP.AD图 11-4中间结果暂存 RAM其中,字节地址 0 是所测温度数值的低 8 位,字节地址 1 是所测温度数值的高 8 位, 字节地址 2 是设定温度的上限值,字节地址 3 是设定温度的下限值,字节地址 4 是配置寄 存器字节。字节地址 5,6,7 保留。这 8 个字节中,除字节地址 0,1,4 以外的 5 个字节几乎不 使用,所以可以忽略,重点掌握字节地址0,1,4就足够了。字节地址 0 和字节地址 1 中存放的就是测量的温度值,字节地址 1 中存放的是高 8 位,字节地址 0 中存放的是低 8 位。它们中的温度数据存储格式如图 11-5所示。其中,高 5位是符号位S。若5个S全为

8、0则表示温度是正值,因为是正值,补码与原码相同,余下 的 11 位按图示各位的权重计算所得数值就是所测温度值;若5 个 S 全为 1,则余下11 位的 补码对应的数值就是所测温度值,这个温度值自然是零度以下,是负值。在实际计算温度 值时,在得到 11 位数值原码值以后,再乘以 0.0625 就得到所测的温度值。这样计算的原 因是:可以将图 11-5中的小数点在权重 20和 2-1之间)向右移动4位,即整个数值扩大了24=16 倍,要使与原值相等,自然需要再除以16,即相当于乘以 0.0625。SSSSS22524222122122232斗图 11-5 温度数据存储格式字节地址4是配置寄存器字节

9、。前面已经提及,DS18B20的测温有9位,10位,11 位, 12 位四种分辨率,实际测温时选用哪种分辨率是可以通过具体编程来设定, DS18B20 出厂时设定的默认测温分辨率是 12位。字节地址 4配置寄存器字节的数据格式如图11-6 所示。其中的R1和R0的四种组合对应9位,10位,11位,12位四种分辨率。对应 关系如表 1 1 -2所示。附带说明的是,一般选用出厂时设定的默认测温分辨率1 2位,不用 改动。0R1R011111MSbLSb图11-6配置寄存器字节的数据格式表11-2 R1和R0的四种组合与测温分辨率的关系R1R0Thermometer ResolutionMax Co

10、nversion Time009 bit93.75 in$(tconv/8)0110 bit187.5 in$(U4)1011 bit375(tcouv/2)1112 bit750 ms(tgnj E2RAME2RAM的结构如图11-7所示。可以看到,E2RAM是中间结果暂存RAM中字节地址 位 2,3,4的三个字节内容的拷贝或者说是备份,以备数据的完备性需要。这个存储器一般不 使用,故可以忽略不予考虑。图 11-7 E2RAM 的结构综上所述,在不改变测温出厂分辨率12 位)的前提下, DS18B20 内部存储器中,我 们需关注的就只有64位光刻ROM和中间结果暂存RAM中用于存放温度值的字

11、节地址0 和字节地址1了。(2)DS18B20 的指令DS18B20的指令可分为三大类,第一类是与64位光刻ROM相关联的一系列指令,第 二类是与中间结果暂存RAM相关联的温度值读取等一些相关指令,第三类就是控制温度 转换的控制类指令。上面刚刚提到,在不改变测温出厂分辨率 12 位)的前提下,DS18B20内部存储器中,我们只需关注64位光刻ROM和中间结果暂存RAM中字节地址 0和字节地址1中的温度值。考虑到DS18B20的指令集中,部分指令极少使用,此处仅就 常用的、关键指令做解释说明,其余指令请读者查阅参考其它相关资料。 与64位光刻ROM相关的指令读64位光刻ROM号码指令【0x33H

12、】本条指令用于读取唯一标识当前这片DS18B20的64位号码,但要求总线上只能有一 片DS18B20,否则会出现多片DS18B20冲突的问题;匹配64位光刻ROM号码指令【0x55H】本条指令主要用在单总线上挂接多片DS18B20的情况下,此时,执行本指令0x55H 后,紧跟其后的是一 64位光刻ROM号码V特别注意:在输入64位光刻ROM号码时,低 位在前),这一 64位光刻ROM号码将与单总线上每一片DS18B20的64位光刻ROM号 码进行比对,号码匹配的那一片DS18B20将执行后续的指令,例如转换温度、读取温度值 等指令;而号码不匹配的那些DS18B20将不执行任何指令,继续等待下去

13、,直到总线复位 后再等待下一次被匹配的机会。跳过64位光刻ROM号码匹配指令【OxCCH】可以设想,如果总线上只有一片DS18B20挂接其上,执行温度转换指令、读取温度 值指令等只能是针对这一片DS18B20而言。如果先读取其64位光刻ROM号码,再去匹 配64位光刻ROM号码,显然是画蛇添足,多此一举,所以完全可以跳过64位光刻ROM 号码的匹配环节,直接执行转换温度、读取温度值等指令。需要说明的是,不需要执行匹 配时,不用执行上一条0x55H指令,但必须执行跳过指令,即执行OxCCH指令完成跳过 功能。搜索64位光刻ROM指令【OxFOH】当总线上挂接多片 DS18B20 芯片时,执行本指

14、令可以搜索当前挂接在总线上的 DS18B20 芯片的个数,并识别它们的 64 位光刻 ROM 号码,便于后续方便操作各个 DS18B20 芯片。 与中间结果暂存RAM相关的温度数值读取指令读中间结果暂存RAM指令【OxBEH】单片机发出并执行读中间结果暂存RAM指令OxBEH后,就可以从字节地址0开 始,每次读取一个字节,依次读取中间结果暂存RAM的8个字节中的数据。因为温度值 只保存在前面两个字节中,所以实际读取中只读取两个字节就可以了。 控制温度转换指令启动温度转换指令【0x44H】本指令是启动温度转换指令,转换结束后的温度值被存入中间结果暂存RAM的字节 地址0低8位)和字节地址1高8位

15、)中。然后就可以从中读取温度值了。(3)DS18B20的通信规则仅用一条线通信的 DS18B2O 的系统,在与微处理器通信时,其数据的传输规则不同 于一般芯片,其数据传输规则的特殊性表现在每次操作都要按部就班的执行以下四个步 骤:第一步初始化DS18B20;第二步向DS18B20发送与64位光刻ROM相关的指令;第三步执行与中间结果暂存RAM相关指令 包括控制温度转换指令); 第四步是数据处理。以下针对主要的三个操作:读取64位光刻ROM号码操作,启动DS18B20温度转换 操作,读取温度操作,细化上述四个步骤。 读取64位光刻ROM号码操作第一步:初始化 DS18B20;第二步:单片机向DS18B20发送读64位光刻ROM号码指令0x33H;第三步:因为读取64位光刻ROM号码操作不涉及中间结果暂存RAM,此步骤就什 么都不做;第四步:单片机从单总线上一位接着一位地读取,共 64 位,得到 64 位光刻 ROM 号 码注意:低位在前)。 启动DS18B20温度转换操作第一步

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号