文库网
ImageVerifierCode 换一换
首页 文库网 > 资源分类 > DOC文档下载
分享到微信 分享到微博 分享到QQ空间

智能温度传感器DS18B20的原理与应用.doc

  • 资源ID:13895       资源大小:384.50KB        全文页数:11页
  • 资源格式: DOC       下载:注册后免费下载
微信登录下载
快捷下载 游客一键下载
账号登录下载
三方登录下载: QQ登录 微博登录
二维码
扫码关注公众号登录
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
如填写123,账号就是123,密码也是123。
验证码:   换一换

加入VIP,免费下载
 
账号:
密码:
验证码:   换一换
  忘记密码?
    
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

智能温度传感器DS18B20的原理与应用.doc

1、智能温度传感器 DS18B20 的原理与应用 赵海兰 1,赵祥伟 2(1 沙洲职业工学院江苏 张家港 215600;2 高新张铜公司江苏张家港 215600)摘 要:DS18B20 是 DALLAS 公司生产的单线数字温度传感器,他具有独特的单线总线接口方式。文章详细的介绍了单线数字温度传感器 DS18B20 的测量原理、特性以及在温度测量中的硬件和软件设计,具有接口简单、精度高、抗干扰能力强、工作稳定可靠等特点。关键词:DS18B20;单线制;温度传感器;单片机DS18B20 是美国 DALLAS 半导体公司继 DS1820 之后最新推出的一种改进型智能温度传感器。与传统的热敏电阻相比,他能

2、够直接读出被测温度并且可根据实际要求通过简单的编程实现 912 位的数字值读数方式。可以分别在93.75 ms 和 750 ms 内完成 9 位和 12 位的数字量,并且从 DS18B20 读出的信息或写入 DS18B20 的信息仅需要一根口线(单线接口)读写,温度变换功率来源于数据总线,总线本身也可以向所挂接的 DS18B20 供电,而无需额外电源。因而使用 DS18B20 可使系统结构更趋简单,可靠性更高。他在测温精度、转换时间、传输距离、分辨率等方面较 DS1820 有了很大的改进,给用户带来了更方便的使用和更令人满意的效果。1DS18B20 简介(1)独特的单线接口方式:DS18B20

3、 与微处理器连接时仅需要一条口线即可实现微处理器与 DS18B20 的双向通讯。(2)在使用中不需要任何外围元件。(3)可用数据线供电,电压范围:+3.0+5.5 V。(4)测温范围:-55 +125 。固有测温分辨率为 0.5 。(5)通过编程可实现 912 位的数字读数方式。(6)用户可自设定非易失性的报警上下限值。(7)支持多点组网功能,多个 DS18B20 可以并联在惟一的三线上,实现多点测温。(8)负压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作。2DS18B20 的内部结构DS18B20 采用 3 脚 PR35 封装或 8 脚 SOIC 封装,其内部结构框图如图 1

4、 所示。(1) 64 b 闪速 ROM 的结构如下:开始 8 位是产品类型的编号,接着是每个器件的惟一的序号,共有 48 位,最后 8 位是前 56 位的 CRC 校验码,这也是多个 DS18B20 可以采用一线进行通信的原因。(2) 非易市失性温度报警触发器 TH 和 TL,可通过软件写入用户报警上下限。(3) 高速暂存存储器DS18B20 温度传感器的内部存储器包括一个高速暂存 RAM 和一个非易失性的可电擦除的 E2RAM 。后者用于存储 TH,T L值。数据先写入 RAM,经校验后再传给 E2RAM 。而配置寄存器为高速暂存器中的第 5 个字节,他的内容用于确定温度值的数字转换分辨率,

5、DS18B20 工作时按此寄存器中的分辨率将温度转换为相应精度的数值。该字节各位的定义如下:低 5 位一直都是 1,TM 是测试模式位,用于设置 DS18B20 在工作模式还是在测试模式。在 DS18B20 出厂时该位被设置为 0,用户不要去改动,R1 和 R0 决定温度转换的精度位数,即是来设置分辨率,如表 1 所示(DS18B20 出厂时被设置为 12 位)。由表 1 可见,设定的分辨率越高,所需要的温度数据转换时间就越长。因此,在实际应用中要在分辨率和转换时间权衡考虑。高速暂存存储器除了配置寄存器外,还有其他 8 个字节组成,其分配如下所示。其中温度信息(第 1,2 字节)、T H和 T

6、L值第 3,4 字节、第 68 字节未用,表现为全逻辑 1;第 9 字节读出的是前面所有 8 个字节的 CRC 码,可用来保证通信正确。当 DS18B20 接收到温度转换命令后,开始启动转换。转换完成后的温度值就以 16 位带符号扩展的二进制补码形式存储在高速暂存存储器的第 1,2 字节。单片机可通过单线接口读到该数据,读取时低位在前,高位在后,数据格式以0062 5 /LSB 形式表示。温度值格式如下:对应的温度计算:当符号位 S=0 时,直接将二进制位转换为十进制;当S=1 时,先将补码变换为原码,再计算十进制值。表 2 是对应的一部分温度值。DS18B20 完成温度转换后,就把测得的温度

7、值与 TH,T L作比较,若 TTH或TTL,则将该器件内的告警标志置位,并对主机发出的告警搜索命令作出响应。因此,可用多只 DS18B20 同时测量温度并进行告警搜索。(4) CRC 的产生在 64 b ROM 的最高有效字节中存储有循环冗余校验码(CRC)。主机根据ROM 的前 56 位来计算 CRC 值,并和存入 DS18B20 中的 CRC 值做比较,以判断主机收到的 ROM 数据是否正确。3DS18B20 的测温原理DS18B20 的测温原理如图 2 所示,图中低温度系数晶振的振荡频率受温度的影响很小 1 ,用于产生固定频率的脉冲信号送给减法计数器 1,高温度系数晶振随温度变化其震荡

8、频率明显改变,所产生的信号作为减法计数器 2 的脉冲输入,图中还隐含着计数门,当计数门打开时,DS18B20 就对低温度系数振荡器产生的时钟脉冲后进行计数,进而完成温度测量。计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将-55 所对应的基数分别置入减法计数器 1 和温度寄存器中,减法计数器 1 和温度寄存器被预置在-55 所对应的一个基数值。减法计数器 1 对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器 1 的预置值减到 0 时温度寄存器的值将加 1,减法计数器1 的预置将重新被装入,减法计数器 1 重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器

9、 2 计数到 0 时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。图 2 中的斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正减法计数器的预置值,只要计数门仍未关闭就重复上述过程,直至温度寄存器值达到被测温度值,这就是DS18B20 的测温原理。另外,由于 DS18B20 单线通信功能是分时完成的,他有严格的时隙概念,因此读写时序很重要。系统对 DS18B20 的各种操作必须按协议进行。操作协议为:初始化 DS18B20(发复位脉冲)发 ROM 功能命令发存储器操作命令处理数据。各种操作的时序图与 DS1820 相同,可参看文献2。4DS18B20 与单片机的典型接口

10、设计以 MCS51 单片机为例,图 3 中采用寄生电源供电方式, P11 口接单线总线为保证在有效的 DS18B20 时钟周期内提供足够的电流,可用一个 MOSFET 管和89C51 的 P10 来完成对总线的上拉 2 。当 DS18B20 处于写存储器操作和温度A/D 变换操作时,总线上必须有强的上拉,上拉开启时间最大为 10 s。采用寄生电源供电方式是 VDD和 GND 端均接地。由于单线制只有一根线,因此发送接收口必须是三态的。主机控制 DS18B20 完成温度转换必须经过 3 个步骤:初始化、ROM 操作指令、存储器操作指令。假设单片机系统所用的晶振频率为12 MHz,根据 DS18B

11、20 的初始化时序、写时序和读时序,分别编写 3 个子程序:INIT 为初始化子程序,WRITE 为写(命令或数据)子程序,READ 为读数据子程序,所有的数据读写均由最低位开始,实际在实验中不用这种方式,只要在数据线上加一个上拉电阻 4.7 k,另外 2 个脚分别接电源和地。5DS18B20 的精确延时问题虽然 DS18B20 有诸多优点,但使用起来并非易事,由于采用单总线数据传输方式,DS18B20 的数据 I/O 均由同一条线完成。因此,对读写的操作时序要求严格。为保证 DS18B20 的严格 I/O 时序,需要做较精确的延时。在 DS18B20操作中,用到的延时有 15 s,90 s,

12、270 s,540 s 等。因这些延时均为 15 s 的整数倍,因此可编写一个 DELAY15(n)函数,源码如下:只要用该函数进行大约 15 sN 的延时即可。有了比较精确的延时保证,就可以对 DS18B20 进行读写操作、温度转换及显示等操作。6 结语我们已成功地将 DS18B20 应用于所开发的“LCD 显示气温”的控制系统中,其测温系统简单,测温精度高,连接方便,占用口线少,转换速度快,与微处理器的接口简单,给硬件设计工作带来了极大的方便,能有效地降低成本,缩短开发周期。参考文献1胡振宇,刘鲁源,杜振辉DS18B20 接口的 C 语言程序设计J单片机与嵌入式系统应用,2002,(7)2

13、金伟正 单线数字温度传感器的原理与应用 J.电子技术应用,2000,(6):6668数字温度传感器 DS18B20 的原理与应用马云峰,陈子夫,李培全(山东潍坊学院自动化系,山东潍坊 261041)1 引言DS18B20 是 DALLAS 公司生产的一线式数字温度传感器,具有 3 引脚TO92 小体积封装形式;温度测量范围为55125,可编程为 9位12 位 A/D 转换精度,测温分辨率可达 0.0625,被测温度用符号扩展的16 位数字量方式串行输出;其工作电源既可在远端引入,也可采用寄生电源方式产生;多个 DS18B20 可以并联到 3 根或 2 根线上,CPU 只需一根端口线就能与诸多

14、DS18B20 通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。以上特点使 DS18B20 非常适用于远距离多点温度检测系统。2DS18B20 的内部结构DS18B20 内部结构如图 1 所示,主要由 4 部分组成:64 位 ROM、温度传感器、非挥发的温度报警触发器 TH 和 TL、配置寄存器。DS18B20 的管脚排列如图 2 所示,DQ 为数字信号输入输出端;GND 为电源地;VDD 为外接供电电源输入端(在寄生电源接线方式时接地,见图 4)。ROM 中的 64 位序列号是出厂前被光刻好的,它可以看作是该 DS18B20的地址序列码,每个 DS18B20 的 64 位序列号均不

15、相同。64 位 ROM 的排的循环冗余校验码(CRC=X8X5X41 )。ROM 的作用是使每一个 DS18B20都各不相同,这样就可以实现一根总线上挂接多个 DS18B20 的目的。图 1DS18B20 的内部结构图 2DS18B20 的管脚排列(a)初始化时序(b)写时序(c)读时序图 3DS18B20 的工作时序图DS18B20 中的温度传感器完成对温度的测量,用 16 位符号扩展的二进制补码读数形式提供,以 0.0625/LSB 形式表达,其中 S 为符号位。例如125的数字输出为 07D0H,25.0625的数字输出为0191H, 25.0625的数字输出为 FF6FH,55的数字输

16、出为 FC90H。 23 22 21 20 21 22 23 24 温度值低字节MSBLSB S S S S S 22 25 24 温度值高字节高低温报警触发器 TH 和 TL、配置寄存器均由一个字节的 EEPROM 组成,使用一个存储器功能命令可对 TH、TL 或配置寄存器写入。其中配置寄存器的格式如下: 0 R1 R0 1 1 1 1 1 MSBLSB R1、R0 决定温度转换的精度位数:R1R0=“00”,9 位精度,最大转换时间为 93.75ms;R1R0=“01” ,10 位精度,最大转换时间为187.5ms;R1R0=“10”,11 位精度,最大转换时间为 375ms;R1R0=“

17、11”,12位精度,最大转换时间为 750ms;未编程时默认为 12 位精度。高速暂存器是一个 9 字节的存储器。开始两个字节包含被测温度的数字量信息;第 3、4、5 字节分别是 TH、TL、配置寄存器的临时拷贝,每一次上电复位时被刷新;第 6、7、8 字节未用,表现为全逻辑 1;第 9 字节读出的是前面所有 8 个字节的 CRC 码,可用来保证通信正确。3DS18B20 的工作时序DS18B20 的一线工作协议流程是:初始化ROM 操作指令存储器操作指令 数据传输。其工作时序包括初始化时序、写时序和读时序,如图 3(a)(b)(c)所示。4DS18B20 与单片机的典型接口设计图 4 以 M

18、CS51 系列单片机为例,画出了 DS18B20 与微处理器的典型连接。图 4(a)中 DS18B20 采用寄生电源方式,其 VDD 和 GND 端均接地,图4(b)中 DS18B20 采用外接电源方式,其 VDD 端用 3V5.5V 电源供电。假设单片机系统所用的晶振频率为 12MHz,根据 DS18B20 的初始化时序、写时序和读时序,分别编写了 3 个子程序:INIT 为初始化子程序,WRITE 为写(命令或数据)子程序,READ 为读数据子程序,所有的数据读写均由最低位开始。DATEQUP1.0INIT:CLREAINI10:SETBDATMOVR2,200 (a)寄生电源工作方式(b

19、)外接电源工作方式图 4DS18B20 与微处理器的典型连接图INI11:CLRDATDJNZR2,INI11;主机发复位脉冲持续 3s200=600sSETBDAT;主机释放总线,口线改为输入MOVR2,30IN12:DJNZR2,INI12;DS18B20 等待 2s30=60sCLRCORLC,DAT;DS18B20 数据线变低(存在脉冲)吗?JCINI10;DS18B20 未准备好,重新初始化MOVR6,80INI13:ORLC,DATJCINI14;DS18B20 数据线变高,初始化成功DJNZR6,INI13;数据线低电平可持续 3s80=240sSJMPINI10;初始化失败,重

20、来INI14:MOVR2,240IN15:DJNZR2,INI15;DS18B20 应答最少 2s240=480sRET;WRITE:CLREAMOVR3,8 ;循环 8 次,写一个字节WR11:SETBDATMOVR4,8RRCA;写入位从 A 中移到 CYCLRDATWR12:DJNZR4,WR12;等待 16sMOVDAT,C;命令字按位依次送给 DS18B20MOVR4,20WR13:DJNZR4,WR13;保证写过程持续 60sDJNZR3,WR11;未送完一个字节继续SETBDATRET;READ:CLREAMOVR6,8 ;循环 8 次,读一个字节RD11:CLRDATMOVR4

21、,4NOP;低电平持续 2sSETBDAT;口线设为输入RD12:DJNZR4,RD12;等待 8sMOVC,DAT;主机按位依次读入 DS18B20 的数据RRCA;读取的数据移入 AMOVR5,30RD13:DJNZR5,RD13;保证读过程持续 60sDJNZR6,RD11;读完一个字节的数据,存入 A 中SETBDATRET;主机控制 DS18B20 完成温度转换必须经过三个步骤:初始化、ROM 操作指令、存储器操作指令。必须先启动 DS18B20 开始转换,再读出温度转换值。假设一线仅挂接一个芯片,使用默认的 12 位转换精度,外接供电电源,可写出完成一次转换并读取温度值子程序 GETWD。GETWD:LCALLINITMOVA,0CCHLCALLWRITE;发跳过 ROM 命令MOVA,44HLCALLWRITE;发启动转换命令LCALLINITMOVA,0CCH;发跳过 ROM 命令LCALLWRITEMOVA,0BEH;发读存储器命令LCALLWRITELCALLREADMOVWDLSB,A;温度值低位字节送 WDLSBLCALLREADMOVWDMSB,A;温度值高位字节送 WDMSBRET子程序 GETWD 读取的温度值高位字节送 WDMSB 单元,低位字节送WDLSB 单元,再按照温度值字节的表示格式及其符号位,经过简单的变换即


注意事项

本文(智能温度传感器DS18B20的原理与应用.doc)为本站会员(李静文)主动上传,文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知文库网(点击联系客服),我们立即给予删除!




关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

文库网用户QQ群:731843829  微博官方号:文库网官方   知乎号:文库网

Copyright© 2025 文库网 wenkunet.com 网站版权所有世界地图

经营许可证编号:粤ICP备2021046453号   营业执照商标

1.png 2.png 3.png 4.png 5.png 6.png 7.png 8.png 9.png 10.png