第二章:一线式总线_第1页
第二章:一线式总线_第2页
第二章:一线式总线_第3页
第二章:一线式总线_第4页
第二章:一线式总线_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

一线式总线 以18B20为例 1 DS18B20的主要特性1 1 适应电压范围更宽 电压范围 3 0 5 5V 在寄生电源方式下可由数据线供电1 2 独特的单线接口方式 DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯1 3 DS18B20支持多点组网功能 多个DS18B20可以并联在唯一的三线上 实现组网多点测温1 4 DS18B20在使用中不需要任何外围元件 全部传感元件及转换电路集成在形如一只三极管的集成电路内 1 5 温范围 55 125 在 10 85 时精度为 0 5 1 6 可编程的分辨率为9 12位 对应的可分辨温度分别为0 5 0 25 0 125 和0 0625 可实现高精度测温1 7 在9位分辨率时最多在93 75ms内把温度转换为数字 12位分辨率时最多在750ms内把温度值转换为数字 速度更快1 8 测量结果直接输出数字温度信号 以 一线总线 串行传送给CPU 同时可传送CRC校验码 具有极强的抗干扰纠错能力1 9 负压特性 电源极性接反时 芯片不会因发热而烧毁 但不能正常工作 2 DS18B20的外形和内部结构DS18B20内部结构主要由四部分组成 64位光刻ROM 温度传感器 非挥发的温度报警触发器TH和TL 配置寄存器 DS18B20的外形及管脚排列如下图1 DS18B20引脚定义 1 DQ为数字信号输入 输出端 2 GND为电源地 3 VDD为外接供电电源输入端 在寄生电源接线方式时接地 图2 DS18B20内部结构图 图2 DS18B20内部结构图 图2 DS18B20内部结构图 3 DS18B20工作原理DS18B20的读写时序和测温原理与DS1820相同 只是得到的温度值的位数因分辨率不同而不同 且温度转换时的延时时间由2s减为750ms DS18B20测温原理如图3所示 图中低温度系数晶振的振荡频率受温度影响很小 用于产生固定频率的脉冲信号送给计数器1 高温度系数晶振随温度变化其振荡率明显改变 所产生的信号作为计数器2的脉冲输入 计数器1和温度寄存器被预置在 55 所对应的一个基数值 计数器1对低温度系数晶振产生的脉冲信号进行减法计数 当计数器1的预置值减到0时 温度寄存器的值将加1 计数器1的预置将重新被装入 计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数 如此循环直到计数器2计数到0时 停止温度寄存器值的累加 此时温度寄存器中的数值即为所测温度 图3中的斜率累加器用于补偿和修正测温过程中的非线性 其输出用于修正计数器1的预置值 图3 DS18B20测温原理框图 DS18B20有4个主要的数据部件 1 光刻ROM中的64位序列号是出厂前被光刻好的 它可以看作是该DS18B20的地址序列码 64位光刻ROM的排列是 开始8位 28H 是产品类型标号 接着的48位是该DS18B20自身的序列号 最后8位是前面56位的循环冗余校验码 CRC X8 X5 X4 1 光刻ROM的作用是使每一个DS18B20都各不相同 这样就可以实现一根总线上挂接多个DS18B20的目的 2 DS18B20中的温度传感器可完成对温度的测量 以12位转化为例 用16位符号扩展的二进制补码读数形式提供 以0 0625 LSB形式表达 其中S为符号位 表1 DS18B20温度值格式表这是12位转化后得到的12位数据 存储在18B20的两个8比特的RAM中 二进制中的前面5位是符号位 如果测得的温度大于0 这5位为0 只要将测到的数值乘于0 0625即可得到实际温度 如果温度小于0 这5位为1 测到的数值需要取反加1再乘于0 0625即可得到实际温度 例如 125 的数字输出为07D0H 25 0625 的数字输出为0191H 25 0625 的数字输出为FF6FH 55 的数字输出为FC90H 3 DS18B20温度传感器的存储器DS18B20温度传感器的内部存储器包括一个高速暂存RAM和一个非易失性的可电擦除的EEPRAM 后者存放高温度和低温度触发器TH TL和结构寄存器 4 配置寄存器该字节各位的意义如下 低五位一直都是 1 TM是测试模式位 用于设置DS18B20在工作模式还是在测试模式 在DS18B20出厂时该位被设置为0 用户不要去改动 R1和R0用来设置分辨率 如下表所示 DS18B20出厂时被设置为12位 温度最大转换时间 表4 温度分辨率设置表 4 高速暂存存储器高速暂存存储器由9个字节组成 其分配如表5所示 当温度转换命令发布后 经转换所得的温度值以二字节补码形式存放在高速暂存存储器的第0和第1个字节 单片机可通过单线接口读到该数据 读取时低位在前 高位在后 数据格式如表1所示 对应的温度计算 当符号位S 0时 直接将二进制位转换为十进制 当S 1时 先将补码变为原码 再计算十进制值 表2是对应的一部分温度值 第九个字节是冗余检验字节 根据DS18B20的通讯协议 主机 单片机 控制DS18B20完成温度转换必须经过三个步骤 每一次读写之前都要对DS18B20进行复位操作 复位成功后发送一条ROM指令 最后发送RAM指令 这样才能对DS18B20进行预定的操作 复位要求主CPU将数据线下拉500微秒 然后释放 当DS18B20收到信号后等待16 60微秒左右 后发出60 240微秒的存在低脉冲 主CPU收到此信号表示复位成功 ROM指令读ROM33H读DS1820温度传感器ROM中的编码 即64位地址 符合ROM55H发出此命令之后 接着发出64位ROM编码 访问单总线上与该编码相对应的DS1820使之作出响应 为下一步对该DS1820的读写作准备 搜索ROM0FOH用于确定挂接在同一总线上DS1820的个数和识别64位ROM地址 为操作各器件作好准备 跳过ROM0CCH忽略64位ROM地址 直接向DS1820发温度变换命令 适用于单片工作 告警搜索命令0ECH执行后只有温度超过设定值上限或下限的片子才做出响应 RAM指令能温度变换44H启动DS1820进行温度转换 12位转换时最长为750ms 9位为93 75ms 结果存入内部9字节RAM中 读暂存器0BEH读内部RAM中9字节的内容写暂存器4EH发出向内部RAM的3 4字节写上 下限温度数据命令 紧跟该命令之后 是传送两字节的数据 复制暂存器48H将RAM中第3 4字节的内容复制到EEPROM中 重调EEPROM0B8H将EEPROM中内容恢复到RAM中的第3 4字节 读供电方式0B4H读DS1820的供电模式 寄生供电时DS1820发送 0 外接电源供电DS1820发送 1 18B20的连接方式 a 寄生电源工作方式 b 外接电源工作方式图4ds18b20与微处理器的典型连接图 无论是总线复位 发命令字 还是读数据都要通过单总线一位一位的进行 并且总是低位在先 既发命令时先发最低位 读数据是也是先读最低位 发出BEH命令后最先从单总线上读取的前两个字节是温度数据的低8位和高8位 当总线上只有一个18B20时 读取温度的流程如下 复位 发CCH 跳过ROM 命令 发44H命令 开始温度转换 命令 延时1S 复位 发CCH 眺过ROM 命令 发BEH 读存储器 命令 连续从总线上读出两个字节的数据 温度的低8位和高8位 结束 总线复位时序 总线拉低并保持480 960us 然后拉高电平 在480 960us内等待18B20响应 拉成低电平则复位成功 总线复位和等待应答信号DQBITP0 6STOEQU40HCRCEQU50HRESET PUSHBWAIT CLRDQMOVB 250DJNZB 保持500us低电平SETBDQMOVB 30DJNZB 等待60usMOVR3 200AA2 JNBDQAA1DJNZR3 AA2CLRFLAG1SJMPA22A11 SETBFLAG1MOVR3 100DJNZR3 A22 RET 发命令 写数据位 写0 置总线低电平并保持15us 然后保持低电平15 45us 等待18B20对电平采样 最后拉高电平即完成写数据0的操作 写1 置总线低电平并保持15us 然后拉高电平15 45us 等待18B20对电平采样 完成写数据1的操作 写一字WETBYTE PUSHBMOVB 8L2 CLRDQMOVR3 7DJNZR3 低电平15usMOVR3 20RRCAJNCZEROSETBDQDJNZR3 置高电平45us等待18B20采集SJMPL1ZERO CLRDQDJNZR3 写0并持续45us等待18B20采集L1 SETBDQNOPDJNZB L2POPBRET 读数据位时序 置总线低电平并保持至少1us 然后拉高电瓶至少1us 在15us内采样总线电瓶获得数据 延时45us完成读位数据操作 读一位数据放入进位位中READBIT PUSHBSETBDQCLRDQ 低电平至少1USNOPNOPSETBDQ 高电平至少1usMOVB 30N

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论