第一范文网 - 专业文章范例文档资料分享平台

3 DS18B20的原理与应用

来源:用户分享 时间:2025/5/16 9:14:35 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

3 DS18B20的原理与应用

单片机系统除了可以对电信号进行测量外,还可以通过外接传感器对温度信号进行测量。传统的温度检测大多以热敏电阻为传感器,但热敏电阻可靠性差、测量的温度不够准确,且必须经专门的接口电路转成数字信号后才能被单片机处理。DS18B20是一种集成数字温度传感器,采用单总线与单片机连接即可实现温度的测量。本节内容在先介绍DS18B20的工作原理、时序和指令后,然后设计完成一个数字温度计。温度计功能要求采用数码管显示温度,小数点后2位有效数字,实际温度高于某个值时用蜂鸣器报警。

3.1 DS18B20工作原理

DS18B20是美国DALLAS半导体公司推出的第一片支持“一线总线”接口的温度传感器,它具有微型化、低功耗、高性能、抗干扰能力强、易配微处理器等优点,可直接将温度转化成串行数字信号供单片机处理,可实现温度的精度测量与控制。DS18B20性能特点见表3-1-1所示。

表3-1-1 DS18B20性能指标 性能 电源 测温范围 分辨率 转换速度 总线连接点 参数 电压范围在3.0~5.5V,在寄生电源方式下可由数据线供电 -55℃~+125℃,在-10℃~+85℃时精度为±0.5℃ 9~12位,分别有0.5℃,0.25℃,0.125℃和0.0625℃ 在9位时,小于93.75ms; 12位分辨率时, 小于750ms 理论248,实际视延时、距离和干扰限制,最多几十个 备注 编程控制 一、封装外形 根据应用领域不同,DS18B20有常见有TO-92、SOP8等封装外形,见图3-1-1所示,表3-1-2给出了TO-92封装的引脚功能,其中DQ引脚是该传感器的数据输入/输出端(I/O),该引脚为漏极开路输出,常态下呈高电平。DQ引脚是该器件与单片机连接进行数据传输单一总线,单总线技术是DS18B20的一个特点。

图3-1-1 DS18B20的外形及引脚排列

表3-1-2 DS18B20引脚功能描述

引脚序号 1

名称 GND 地信号 1

描述 2 3 DQ Vdd 数据输入输出(I/O)引脚 电源输入引脚,当工作于寄生电源模式时,此引脚必须接地 二、工作原理

DS18B20的内部主要包括寄生电源、温度传感器、64位激光ROM单线接口、存放中间数据的高速贮存器、用于存储用户设定的温度上下限值、触发器存储与控制逻辑、8位循环冗余校验码发生器等7部分。

高速寄存器RAM由9个字节的存储器组成。见表3-1-3所示。其中,第0、1字节是温度转换有效位,第0字节的低3位存放了温度的高位,高5位存放温度的正负值;第1字节的高4位存放温度的低位,后4位存放温度的小数部分;第2和第3个字节是DS18B20的与内部E2PROM的有关的TH和TL,用来存储温度上限和下限,可以通过程序设计把温度的上下限从单片机中读到TH和TL中,并通过程序再复制到DS18B20内部EPROM中,同时TH和TL在器件加电后复制E2PROM的内容;第4个字节是配置寄存器,第4个字节的数字也可以更新;第5,6,7三个字节是保留的。

表3-1-3高速寄存器RAM 字节地址编号 0 1 2 3 4 5 6 7 8 寄存器内容 温度值低位(LSB) 温度值高位(MSB) 高温度值(TH) 低温度值(TL) 配置寄存器 保留 保留 保留 CRC校验值 功能 高5位是温度的正正负号,低3位为温度的高位 高4位为温度的低位,低4位为温度小数部分 设置温度上限 设置温度下限

2

三、硬件连接

DS18B20是单片机外设,单片机为主器件,DS18B20为从器件。图3-1-2的接法是单片机与一个DS18B20通信,单片机只需要一个I/O口就可以控制DS18B20,为了增加单片机I/O口驱动的可靠性,总线上接有上拉电阻。对如果要控制多个DS18B20进行温度采集,只要将所有DS18B20的DQ全部连接到总线上就可以了,在操作时,通过读取每个DS18B20 内部芯片的序列号来识别。

图3-1-2 单片机与一个DS18B20通信

3.2 DS18B20工作时序

2

单总线协议规定一条数据线传输串行数据,时序有严格的控制,对于DS18B20的程序设计,必须遵守单总线协议。DS18B20操作主要分初始化、写数据、读数据。下面分别介绍操作步骤。

一、初始化

图3-1-3 DS18B20初始化时序

初始化是单片机对DS18B20的基本操作,时序见图3-1-3,主要目的是单片机感知DS18B20存在并为下一步操作做准备,同时启动DS18B20,程序设计根据时序进行。DS18B20初始化操作步骤为:

(1)先将数据线置高电平1,然后延时(可有可无);

(2)数据线拉到低电平0。然后延时750μs(该时间范围可以在480~960μs),调用延时函数决定。

(3)数据线拉到高电平1。如果单片机P1.0接DS18B20的DQ引脚,则P1.0 此时设置高电平,称为单片机对总线电平管理权释放。此时,P1.0的电平高低由DS18B20的DQ输出决定;

(4)延时等待。如果初始化成功则在15~60ms总线上产生一个由DS18B20返回的低电平0,据该状态可以确定它的存在。但是应注意,不能无限地等待,不然会使程序进入死循环,所以要进行超时判断。

(5)若单片机读到数据线上的低电平0后,说明DS18B20存在并相应,还要进行延时,其延时的时间从发出高电平算起(第⑤步的时间算起)最少要480μs。 (6)将数据线再次拉到高电平1,结束初始化步骤。

从单片机对DS18B20的初始化过程来看,单片机与DS18B20之间的关系如同有人与人之间对话,单片机要对DS18B20操作,必须先证实DS18B20的存在,当DS18B2响应后,单片机才能进行下面的操作。 二、对DS18B20写数据

图3-1-4 18B20的写时序

(1)数据线先置低电平0,数据发送的起始信号,时序见图3-1-4 (2)延时确定的时间为15μs;

(3)按低位到高位顺序发送数据(一次只发送一位)。

3

(4)延时时间为45μs,等待DS18B20接收; (5)将数据线拉到高电平1,单片机释放总线; (6)重复①~⑤步骤,直到发送完整个字节; (7)最后将数据线拉高,单片机释放总线。 三、DS18B20读数据

图3-1-5 18B20的读时序

(1)将数据线拉高,时序图见图3-1-5所示; (2)延时2μs,

(3)将数据线拉低到0, (4)延时6μs,延时时比写数据时间短; (5)将数据线拉高到1,释放总线 (6)延时4μs

(7)读数据线的状态得到一个状态位,并进行数据处理。 (8)延时30μs。

(9)重复①~⑦步骤,直到读取完一个字节。 只有在熟悉了DS18B20操作时序后,才能对器件进行编程,由于DS18B20有器件编号、温度数据有低位高位、另外还有温度的上线限,读取的数据较多,所以DS18B20提供了自己的指令。

3.3 DS18B20指令

一、ROM操作指令

DS18B20指令主要有ROM操作指令、温度操作指令两类。ROM操作指令主要针对DS18B20的内部ROM。每一个DS18B20都有自己独立的编号,存放在DS18B20内部64位ROM中,ROM内容见表3-1-4所示。64位ROM中的序列号是出厂前已经固化好,它可以看做该DS18B20的地址序列码。其各位排列顺序是,开始8位为产品类型标号,接下来48位是该DS18B20自身的序列号,最后8位是前面56位的CRC循环冗余校验码(CRC=X8+X5+X4+1)。ROM的作用是使每一个DS18B20都各不相同,这样就可以实现一条总线上挂接多个DS18B20的目的。ROM操作指令见表3-1-5

表3-1-4 64位 ROM 定义

8位CRC码 表3-1-5 ROM操作指令 指令代码 33H 55H 作用 读ROM。读DS18B20温度传感器ROM中的编码(即64位地址) 匹配ROM。发出此命令之后,接着发出64位ROM编码,访问单总线上,与该编码相对应的DS18B20并使之做出响应,为下一步对该DS18B20的读/写做准备 48位序列号 8位产品类型标号 4

搜索更多关于: 3 DS18B20的原理与应用 的文档
3 DS18B20的原理与应用.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c2shid2itn947le14lldi_1.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top