第七部分串行扩展之三单总线

上传人:012****78 文档编号:125762565 上传时间:2020-03-19 格式:PPT 页数:53 大小:555.50KB
返回 下载 相关 举报
第七部分串行扩展之三单总线_第1页
第1页 / 共53页
第七部分串行扩展之三单总线_第2页
第2页 / 共53页
第七部分串行扩展之三单总线_第3页
第3页 / 共53页
第七部分串行扩展之三单总线_第4页
第4页 / 共53页
第七部分串行扩展之三单总线_第5页
第5页 / 共53页
点击查看更多>>
资源描述

《第七部分串行扩展之三单总线》由会员分享,可在线阅读,更多相关《第七部分串行扩展之三单总线(53页珍藏版)》请在金锄头文库上搜索。

1、 串行总线扩展 单总线 串行单总线原理与应用 One Wire总线 单总线 One Wire总线是DALLAS公司研制开发的一种协议 它 由一个总线主节点 一个或多个从节点组成系统 通过一 根信号线对从芯片进行数据的读取 每一个符合 One Wire协议的从芯片都有一个唯一的地址 包括48位的序 列号 8位的家族代码和8位的CRC代码 主芯片对各个 从芯片的寻址依据这64位的不同来进行 One Wire总线 利用一根线实现双向通信 因此其协议对时序的要求较严 格 如应答等时序都有明确的时间要求 基本的时序包括 复位及应答时序 写一位时序 读一位时序 在复位及 应答时序中 主器件发出复位信号后

2、要求从器件在规定 的时间内送回应答信号 在位读和位写时序中 主器件要 在规定的时间内读回或写出数据 串行单总线概述 单总线适用于单主机系统 能够控制一个或多 个从机设备 主机可以是微控制器 从机可 以是单总线器件 它们之间的数据交换只通 过一条信号线 当只有一个从机设备时 系 统可按单节点系统操作 当有多个从设备时 系统则按多节点系统操作 单总线的工作原理 单总线即只有一根数据线 系统中的数据交换 控制都由 这根线完成 设备 主机或从机 通过一个漏极开路或 三态端口连至该数据线 以允许设备在不发送数据时能 够释放总线 而让其他设备使用总线 单总线通常要求 外接一个约为4 7k 的上拉电阻 这样

3、 当总线闲置时 其状态为高电平 主机和从机之间的通信可通过3个 步骤完成 分别为初始化One Wire器件 识别One Wire器件和交换数据 由于它们是主从结构 只有主机 呼叫从机时 从机才能应答 因此主机访问One Wire 器件都必须严格遵循单总线命令序列 即初始化 ROM 命令 功能命令 如果出现序列混乱 One Wire器件 将不响应主机 搜索ROM命令 报警搜索命令除外 单总线的时序 One Wire协议定义了复位脉冲 应答脉冲 写0 读0和读1时序等几种信号类型 所有 的单总线命令序列 初始化 ROM命令 功能命令 都是由这些基本的信号类型组成 的 在这些信号中 除了应答脉冲外

4、其他 均由主机发出同步信号 并且发送的所有命 令和数据都是字节的低位在前 单总线器件 通常把挂在单总线上的器件称为单总线器件 单总线器件内一般都具有控制 收 发 存 储等电路 为了区分不同的单总线器件 厂 家生产单总线器件时都要刻录一个64位的二 进制ROM代码 以标志其ID号 目前 单 总线器件主要有数字温度传感器 如 DS18B20 A D转换器 如DS2450 门标 身份识别器 如DS1990A 单 总线控制器 如DS1WM 等 数字化温度传感器DS18B20 美国DALLAS半导体公司的数字化温度传感器 DS18B20是世界上第一片支持 一线总线 接口的温度传感器 一线总线独特而且经济

5、 的特点 使用户可轻松地组建传感器网络 为测量系统的构建引入全新概念 现在 新 一代的DS18B20体积更小 更经济 更灵 活 DS18B20测量温度范围为 55 125 在 10 85 范围内 精度 为 0 5 现场温度直接以 一线总线 的数 字方式传输 大大提高了系统的抗干扰性 DS18B20的主要特性 1 适应电压范围更宽 电压范围 3 5 5V 在寄生电源方式下可由数据线 供电 2 独特的单线接口方式 DS18B20在与微处理器连接时仅需要一条口线即 可实现微处理器与DS18B20的双向通信 3 DS18B20支持多点组网功能 多个DS18B20可以并联在唯一的三线上 实现组网多点测温

6、 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 负压特性 电源极性接反时 芯片不会因发热而烧毁 但不能正常工作 D

7、S18B20的外形和内部结构 DS18B20内部结构主要由4部分组成 64位光刻 ROM 温度传感器 非挥发的温度报警触发器TH 和TL 配置寄存器 DS18B20的外形及管脚排列 如图 DS18B20引脚定义如下 1 DQ为数字信号输入 输 出端 2 GND为电源地 3 VDD为外接供电电源输 入端 在寄生电源接线方式时 接地 DS18B20内部结构图 DS18B20工作原理 DS18B20测温原理框图 图中低温度系数晶振的振荡频率受温度影响很小 用于产 生固定频率的脉冲信号送给计数器1 高温度系数晶振 随温度变化其振荡频率明显改变 所产生的信号作为计 数器2的脉冲输入 计数器1和温度寄存器

8、被预置在 55 所对应的一个基数值 计数器1对低温度系数晶 振产生的脉冲信号进行减法计数 当计数器1的预置值 减到0时 温度寄存器的值将加1 计数器1的预置将重 新被装入 计数器1重新开始对低温度系数晶振产生的 脉冲信号进行计数 如此循环直到计数器2计数到0时 停止温度寄存器值的累加 此时温度寄存器中的数值即 为所测温度 斜率累加器用于补偿和修正测温过程中的 非线性 其输出用于修正计数器1的预置值 DS18B20的4个主要数据部件 1 光刻ROM中的64位序列号是出厂前被光刻好的 它 可以看做是该DS18B20的地址序列码 这样就可以实 现一根总线上挂接多个DS18B20的目的 64位光刻RO

9、M的排列是 开始8位 28H 是产品类型 标号 接着的48位是该DS18B20自身的序列号 最后 8位是前面56位的循环冗余校验码 CRC X8 X5 X4 1 8位检验CRC48位序列号8位工厂代码 10H 2 DS18B20中的温度传感器可完成对温度的测量 以12位转化为例 用16位符号扩展的二进制补 码读数形式提供 以0 0625 LSB形式表达 其 中S为符号位 DS18B20温度值格式表如表所示 其中 S 为标志位 对应的温度计算 当符号位S 0 时 表示测得温度值为正 直接将二进制位转换为 十进制 当S 1时 表示测得温度值为负 先将补 码变换为原码 再计算十进制值 SSSSS26

10、2524232221202 12 22 32 4 DS18B20温度与二进制温度数据对应关系 7418温度 二进制表示十六进制表示 1250000 0111 1101 000007D0H 850000 0101 0101 00000550H 25 06250000 0001 1001 00010191H 10 1250000 0000 1010 001000A2H 0 50000 0000 0000 10000008H 00000 0000 0000 00000000H 0 51111 1111 1111 1000FFF8H 10 1251111 1111 0101 1110FF5EH 25

11、06251111 1110 0110 1111FE6FH 551111 1100 1001 0000FC90H 3 DS18B20温度传感器的存储器 DS18B20温度传感器的内部存储器包括一个 高速暂存RAM和一个非易失性的可电擦除的 E2PROM 后者存放高温度和低温度触发器 TH TL和结构寄存器 高速暂存存储器 高速暂存存储器由9个字节组成 其分配如表 所示 当温度转换命令发布后 经转换所得 的温度值以二字节补码形式存放在高速暂存 存储器的第0和第1个字节 单片机可通过单 线接口读到该数据 读取时低位在前 高位 在后 对应的温度计算 当符号位S 0时 直接将二进制位转换为十进制 当S

12、1时 先将补码变为原码 再将数据部分转换为十 进制 第9个字节是冗余检验字节 寄存器内容字节地址 温度值低位 LS Byte 0 温度值高位 MS Byte 1 高温限值 TH 2 低温限值 TL 3 配置寄存器4 保留5 保留6 保留7 CRC校验值8 4 配置寄存器 配置寄存器的格式如 表所示 TMR1R011111 低5位一直都是 1 TM是测试模式位 用于设置 DS18B20在工作模式还是在测试模式 在 DS18B20出厂时该位被设置为0 用户不要去 改动 R1和R0用来设置分辨率 如右表所示 DS18B20出厂时被设置为12位 R1R0分辨率 温度最大转 换时间 ms 009位93

13、75 0110位187 5 1011位375 1112位750 根据DS18B20的通信协议 主机 单片机 控制DS18B20完成温度转换必须经过3个 步骤 每一次读写之前都要对DS18B20进 行复位操作 复位成功后发送一条ROM指 令 最后发送RAM指令 这样才能对 DS18B20进行预定的操作 复位要求主 CPU将数据线下拉500 s 然后释放 当 DS18B20收到信号后等待16 60 s左右 后发出60 240 s的应答低脉冲 主 CPU收到此信号表示复位成功 ROM指令表 指 令 约定代 码 功 能 读ROM33H读DS1820温度传感器ROM中的编码 即64位地址 符合 ROM5

14、5H 发出此命令之后 接着发出 64 位 ROM 编码 访问 单总线 上与该编码 相对应 的 DS1820 使之做出响应 为下一步对该 DS1820 的读写做准备 搜索 ROM0F0H 用于确定挂接在同一总线 上 DS1820 的个数和识别 64 位 ROM 地址 为操作各器件做好准备 跳过 ROM0CCH 忽略 64 位 ROM 地址 直接向 DS1820 发温度变换 命 令 适用于单片工作 告警搜索命 令 0ECH 执行后只有温度超过设 定值上限或下限的片子才做出 响应 指 令约定代码功 能 温度变换44H 启动DS18B20进行温度转换 12位转换时 最长为 750ms 9位为93 75

15、ms 结果存入内部9字节RAM中 读暂 存器0BEH读内部RAM中9字节的内容 写暂存器4EH 发出向内部RAM的2 3 4字节写上 下限温度数据和 配置寄存器命令 紧跟该命令之后 是传送三字节的 数据 复制暂存器48H将RAM中第2 3字节的内容复制到E2PROM中 重调 E2PROM 0B8H将E2PROM中内容恢复到RAM中的第2 3字节 读供电方式0B4H 读DS18B20的供电模式 寄生供电时 DS18B20发送 0 外接电源供电 DS18B20发送 1 初始化时序 对DSl8B20操作时首先要进行初始化 单片机 发出复位脉冲 DSl8B20以存在脉冲响应 当 DSl8B20发出存在

16、脉冲对复位脉冲响应时 表 明该器件已在总线上并作好操作准备 初始化时序见上图 主机总线to时刻发送一复位 脉冲 最短为480us的低电平信号 接着在tl时 刻释放总线并进入接收状态 DSl8B20在检测 到总线的上升沿之后等待15 60us接着 DS18B20在t2时刻发出存在脉冲 低电平持续 60 240 us 如图所示 初始化程序 12MHZ P3 7 DS18B20初始化子程序如下 INITDS1820 SETB DAT 置位 NOP 空操作 CLR DAT 清零 MOV R2 250 主机发出延时500微秒的复位低脉冲 DJNZ R2 自减 1 循环 SETB DAT 然后拉高数据线 MOV R2 30 DJNZ R2 延时60us等待DS18B20回应 JNB DAT INIT1 JMP INITDS1820 超时而没有响应 重新初始化 INIT1 MOV R2 120 DJNZ R2 延时240us JB DAT INIT2 数据变高 初始化成功 JMP INITDS1820 INIT2 MOV R2 240 DJNZ R2 RET 写时序 DSl8B20有两种类型的写时序

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

当前位置:首页 > 医学/心理学 > 基础医学

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