DS18B20使用方法.ppt

上传人:max****ui 文档编号:10965037 上传时间:2020-04-16 格式:PPT 页数:25 大小:1.10MB
返回 下载 相关 举报
DS18B20使用方法.ppt_第1页
第1页 / 共25页
DS18B20使用方法.ppt_第2页
第2页 / 共25页
DS18B20使用方法.ppt_第3页
第3页 / 共25页
点击查看更多>>
资源描述
数字化温度传感器DS18B20 One Wire总线 单总线 One Wire总线是DALLAS公司研制开发的一种协议 它由一个总线主节点 一个或多个从节点组成系统 通过一根信号线对从芯片进行数据的读取 每一个符合One Wire协议的从芯片都有一个唯一的地址 包括48位的序列号 8位的家族代码和8位的CRC代码 主芯片对各个从芯片的寻址依据这64位的不同来进行 One Wire总线利用一根线实现双向通信 因此其协议对时序的要求较严格 如应答等时序都有明确的时间要求 基本的时序包括复位及应答时序 写一位时序 读一位时序 在复位及应答时序中 主器件发出复位信号后 要求从器件在规定的时间内送回应答信号 在位读和位写时序中 主器件要在规定的时间内读回或写出数据 串行单总线原理与应用 串行单总线概述数字化温度传感器DS18B20DS18B20的温度采集程序实践与思考 串行单总线概述 单总线适用于单主机系统 能够控制一个或多个从机设备 主机可以是微控制器 从机可以是单总线器件 它们之间的数据交换只通过一条信号线 当只有一个从机设备时 系统可按单节点系统操作 当有多个从设备时 系统则按多节点系统操作 单总线的工作原理单总线的时序单总线器件 单总线的工作原理 单总线即只有一根数据线 系统中的数据交换 控制都由这根线完成 设备 主机或从机 通过一个漏极开路或三态端口连至该数据线 以允许设备在不发送数据时能够释放总线 而让其他设备使用总线 单总线通常要求外接一个约为4 7k 的上拉电阻 这样 当总线闲置时 其状态为高电平 主机和从机之间的通信可通过3个步骤完成 分别为初始化One Wire器件 识别One Wire器件和交换数据 由于它们是主从结构 只有主机呼叫从机时 从机才能应答 因此主机访问One Wire器件都必须严格遵循单总线命令序列 即初始化 ROM命令 功能命令 如果出现序列混乱 One Wire器件将不响应主机 搜索ROM命令 报警搜索命令除外 单总线的时序 One Wire协议定义了复位脉冲 应答脉冲 写0 读0和读1时序等几种信号类型 所有的单总线命令序列 初始化 ROM命令 功能命令 都是由这些基本的信号类型组成的 在这些信号中 除了应答脉冲外 其他均由主机发出同步信号 并且发送的所有命令和数据都是字节的低位在前 初始化时序读 写时序 初始化时序 初始化时序图 读 写时序 写时序图 读 写时序 读时序图 单总线器件 通常把挂在单总线上的器件称为单总线器件 单总线器件内一般都具有控制 收 发 存储等电路 为了区分不同的单总线器件 厂家生产单总线器件时都要刻录一个64位的二进制ROM代码 以标志其ID号 目前 单总线器件主要有数字温度传感器 如DS18B20 A D转换器 如DS2450 门标 身份识别器 如DS1990A 单总线控制器 如DS1WM 等 数字化温度传感器DS18B20 美国DALLAS半导体公司的数字化温度传感器DS18B20是世界上第一片支持 一线总线 接口的温度传感器 一线总线独特而且经济的特点 使用户可轻松地组建传感器网络 为测量系统的构建引入全新概念 现在 新一代的DS18B20体积更小 更经济 更灵活 DS18B20测量温度范围为 55 125 在 10 85 范围内 精度为 0 5 现场温度直接以 一线总线 的数字方式传输 大大提高了系统的抗干扰性 DS18B20的主要特性DS18B20的外形和内部结构DS18B20工作原理DS18B20的4个主要数据部件 高速暂存存储器指令表DS18B20的应用电路DS18B20使用中注意事项 DS18B20的主要特性 1 适应电压范围更宽 电压范围 3 5 5V 在寄生电源方式下可由数据线供电 2 独特的单线接口方式 DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通信 3 DS18B20支持多点组网功能 多个DS18B20可以并联在唯一的三线上 实现组网多点测温 4 DS18B20在使用中不需要任何外围元件 全部传感元件及转换电路集成在形如一只三极管的集成电路内 5 测温范围 55 125 在 10 85 时精度为 0 5 6 可编程的分辨率为9 12位 对应的可分辨温度分别为0 5 0 25 0 125 和0 0625 可实现高精度测温 7 在9位分辨率时最多在93 75ms内把温度转换为数字 12位分辨率时最多在750ms时间内把温度值转换为数字 速度更快 8 测量结果直接输出数字温度信号 以 一线总线 串行传送给CPU 同时可传送CRC校验码 具有极强的抗干扰纠错能力 9 负压特性 电源极性接反时 芯片不会因发热而烧毁 但不能正常工作 DS18B20的外形和内部结构 DS18B20内部结构主要由4部分组成 64位光刻ROM 温度传感器 非挥发的温度报警触发器TH和TL 配置寄存器 DS18B20的外形及管脚排列如图所示 DS18B20外形及引脚排列图 DS18B20引脚定义如下 1 DQ为数字信号输入 输出端 2 GND为电源地 3 VDD为外接供电电源输入端 在寄生电源接线方式时接地 DS18B20工作原理 DS18B20测温原理框图如图所示 图中低温度系数晶振的振荡频率受温度影响很小 用于产生固定频率的脉冲信号送给计数器1 高温度系数晶振随温度变化其振荡频率明显改变 所产生的信号作为计数器2的脉冲输入 计数器1和温度寄存器被预置在 55 所对应的一个基数值 计数器1对低温度系数晶振产生的脉冲信号进行减法计数 当计数器1的预置值减到0时 温度寄存器的值将加1 计数器1的预置将重新被装入 计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数 如此循环直到计数器2计数到0时 停止温度寄存器值的累加 此时温度寄存器中的数值即为所测温度 斜率累加器用于补偿和修正测温过程中的非线性 其输出用于修正计数器1的预置值 DS18B20测温原理框图 DS18B20的4个主要数据部件 1 光刻ROM中的64位序列号是出厂前被光刻好的 它可以看做是该DS18B20的地址序列码 这样就可以实现一根总线上挂接多个DS18B20的目的 64位光刻ROM的排列是 开始8位 28H 是产品类型标号 接着的48位是该DS18B20自身的序列号 最后8位是前面56位的循环冗余校验码 CRC X8 X5 X4 1 2 DS18B20中的温度传感器可完成对温度的测量 以12位转化为例 用16位符号扩展的二进制补码读数形式提供 以0 0625 LSB形式表达 其中S为符号位 DS18B20温度值格式表如表所示 DS18B20的4个主要数据部件 3 DS18B20温度传感器的存储器 DS18B20温度传感器的内部存储器包括一个高速暂存RAM和一个非易失性的可电擦除的E2PROM 后者存放高温度和低温度触发器TH TL和结构寄存器 4 配置寄存器 配置寄存器的格式如表所示 低5位一直都是 1 TM是测试模式位 用于设置DS18B20在工作模式还是在测试模式 在DS18B20出厂时该位被设置为0 用户不要去改动 R1和R0用来设置分辨率 如右表所示 DS18B20出厂时被设置为12位 温度分辨率设置表 高速暂存存储器 高速暂存存储器由9个字节组成 其分配如表所示 当温度转换命令发布后 经转换所得的温度值以二字节补码形式存放在高速暂存存储器的第0和第1个字节 单片机可通过单线接口读到该数据 读取时低位在前 高位在后 对应的温度计算 当符号位S 0时 直接将二进制位转换为十进制 当S 1时 先将补码变为原码 再将数据部分转换为十进制 第9个字节是冗余检验字节 DS18B20暂存寄存器分布 高速暂存存储器 根据DS18B20的通信协议 主机 单片机 控制DS18B20完成温度转换必须经过3个步骤 每一次读写之前都要对DS18B20进行复位操作 复位成功后发送一条ROM指令 最后发送RAM指令 这样才能对DS18B20进行预定的操作 复位要求主CPU将数据线下拉500 s 然后释放 当DS18B20收到信号后等待16 60 s左右 后发出60 240 s的应答低脉冲 主CPU收到此信号表示复位成功 指令表 ROM指令表 指令表 RAM指令表 DS18B20的应用电路 1 DS18B20寄生电源供电方式电路图 寄生电源方式特点 1 进行远距离测温时 无须本地电源 2 可以在没有常规电源的条件下读取ROM 3 电路更加简洁 仅用一根I O口实现测温 4 只适应于单一温度传感器测温情况下使用 不适于采用电池供电系统中 DS18B20寄生电源供电方式 DS18B20的应用电路 2 DS18B20寄生电源强上拉供电方式电路图 DS18B20寄生电源强上拉供电方式 在强上拉供电方式下可以解决电流供应不足的问题 因此也适合于多点测温应用 缺点就是要多占用一根I O口线进行强上拉切换 DS18B20的应用电路 3 DS18B20的外部电源供电方式 外部电源供电方式是DS18B20最佳的工作方式 工作稳定可靠 抗干扰能力强 而且电路也比较简单 可以开发出稳定可靠的多点温度监控系统 如图所示 外部供电方式的多点测温电路图 DS18B20使用中注意事项 1 较小的硬件开销需要相对复杂的软件进行补偿 由于DS18B20与微处理器间采用串行数据传送 因此 在对DS18B20进行读写编程时 必须严格地保证读写时序 否则将无法读取测温结果 在使用PL M C等高级语言进行系统程序设计时 对DS18B20操作部分最好采用汇编语言实现 2 在DS18B20的有关资料中均未提及单总线上所挂DS18B20数量问题 容易使人误认为可以挂任意多个DS18B20 在实际应用中并非如此 3 连接DS18B20的总线电缆是有长度限制的 在采用DS18B20进行长距离测温系统设计时要充分考虑总线分布电容和阻抗匹配问题 4 在DS18B20测温程序设计中 向DS18B20发出温度转换命令后 程序总要等待DS18B20的返回信号 一旦某个DS18B20接触不好或断线 当程序读该DS18B20时 将没有返回信号 程序进入死循环 5 测温电缆线建议采用屏蔽4芯双绞线 其中一对线接地线与信号线 另一对线接VCC和地线 屏蔽层在源端单点接地 DS18B20的温度采集程序 1 采集程序功能 从DS18B20中读出温度数据 并舍去小数位 将整数部分转换成十进制数据存入内存单元 并通过P1口驱动8位LED显示 2 子程序入口地址与变量定义 1 子程序入口地址 INIT 1820 DS18B20初始化程序READ 1820 读DS18B20的程序 从DS18B20中读出一个字节的数据READ 18200 读DS18B20的程序 从DS18B20中读出两个字节的温度数据WRITE 1820 写DS18B20的程序TEMPER COV 将从DS18B20中读出的温度数据进行转换BIN BCD 将十六进制的温度数据转换成压缩BCD码DELAY 延时子程序GET TEMPER 从DS18B20读出温度数据 DS18B20的温度采集程序 2 变量定义 TEMPER L 存放读出温度低位数据的符号地址TEMPER H 存放读出温度高位数据的符号地址TEMPER NUM 存放转换后的温度值的符号地址FLAG1 DS18B20的检测标志 若DS18B20存在 置位FLAG1 否则 复位FLAG1DQ 一线总线控制端口 3 源程序清单
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!