数字温度计毕业设计论文ds18b20单片机-副本内容摘要:

的双向通讯。 ( 3) DS18B20 在使用中不需要任何外围元件,全部传感元件及转换电路集成在形如一只三极管的集成电路内。 ( 4) 测 温范围- 55℃ ~+ 125℃ ,在 10℃ ~ +85℃ 时精度为 177。 ℃。 ( 5) 可编程的分辨率为 9~ 12 位,对应的可分辨温度分别为 ℃ 、 ℃ 、℃ 和 ℃ ,可实现高精度测温。 ( 6) 在 9 位分辨率时最多在 ms 内把温度转换为数字, 12 位分辨率时最多在 750ms 内把温度值转换为数字,速度更快。 ( 7) 测量结果直接输出数字温度信号,以 “ 一线总线 ” 串行传送给 CPU,同时可传送 CRC 校验码,具有极强的抗干扰纠错能力。 ( 8) 负压特性:电源极性接反时,芯片不会因发热而烧毁,但不能正常工作。 167。 DS18B20 外形和内部结构 DS18B20 内部结构如图 42 所示,主要由 4 部分组成: 64 位 ROM、温度传感器、非挥发的温度报警触发器 TH 和 TL、配置寄存器。 DS18B20 的外形及管脚排列如图 ][2 43 和表 43 所示。 I/O C VDD 图 42 DS18B20 的内部结构 64 位ROM和单线接 口 高速缓存 存储器 存储器和控制器 8 位 CRC 生成器 温度传感器 低 温 触 发 器TL 高 温 触 发 器TH 配置寄存器 电源检测 图 43 DS18B20 的管脚排列 表 43 DS18B20 引脚定义: 序号 名称 引脚功能描述 1 GND 地信号 2 DQ 数据输入 /输出引脚。 开漏单总线接口引脚。 当被用着在寄生电源下,也可以向器件 提供电源。 3 VDD 可选择的 VDD 引脚。 当工作于寄生电源时,此引脚必须接地。 ( 1) 64 位 ROM ROM 中的 64 位序列号是出厂前被光刻好的,它可以看作是该 DS18B20的地址序列码,每个 DS18B20 的 64 位序列号均不相同。 64 位 ROM 的循环冗余校验码( CRC=X8+ X5+ X4+ 1)。 ROM 的作用是使每一个 DS18B20都各不相同,这样就可以实现一根总线上挂接多个 DS18B20 的目的。 DS18B20 中的温度传感器完成对温度的测量,用 16 位符号扩展的二进制补码读数形式提供,以 ℃ /LSB 形式表达,其中 S 为符号位。 DS18B20温度值格式表 44 ][2 如下所示。 这是 12 位转化后得到的 12 位数据,存储在 DS18B20 的两个 8 比特的 RAM中,二进制中的前面 5 位是符号位,如果测得的温度大于 0,这 5 位为 0,只要将测到的数值乘于 即可得到实际温度;如果温度小于 0,这 5 位为1,测到的数值需要取反加 1 再乘于 即可得到实际温度。 例如+℃的数字输出为 0191H,- ℃的数字输出为 FF6FH。 表 44 DS18B20 温度值格式表 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 LS Byte 23 22 21 20 2 1 2 2 2 3 2 4 bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 MS Byte S S S S S 26 25 24 ( 2) 高低温报警触发器 TH 和 TL DS18B20 温度传感器的内部存储器包括一个高速暂存 RAM 和一个非易失性的可电擦除的 EEPRAM,后者存放高温度和低温度触发器 TH、 TL 和结构寄存器。 ( 3)配置寄存器 该字节各位的意义如下 表 45 所示。 表 45:配置寄存器结构 TM R1 R0 1 1 1 1 1 低五位一直都是 “ 1” , TM 是测试模式位,用于设置 DS18B20 在工作模式还是在测试模式。 在 DS18B20 出厂时该位被设置为 0,用户不要去改动。 R1 和 R0 用来设置分辨率,如下表 46 所示( DS18B20 出 厂时被设置为 12位)。 ( 4)高速暂存器是一个 9 字节的存储器。 开始两个字节包含被测温度的数字量信息;第 5 字节分别是 TH、 TL、配置寄存器的临时拷贝,每一次上电复位时被刷新;第 8 字节未用,表现为全逻辑 1;第 9 字节读出的是前面所有 8 个字节的 CRC 码,可用来保证通信正确。 高速暂存器 RAM结构图如下表 47 所示。 表 46: 温度分辨率设置表 R1 R0 分辨率 温度最大转换时间 0 0 9 位 0 1 10 位 1 0 11 位 375ms 1 1 12 位 750ms 167。 DS18B20 的工作时序 DS18B20 的一线工作协议流程是:初始化 → ROM 操作指令 → 存储器操作指令 → 数据传输。 其工作时序 ][3 包括初始化时序、写时序和读时序,如图44 ( a)( b)( c)所示。 表 47: DS18B20 暂存寄存器分布 寄存器内容 字节地址 温度值低位 ( LS Byte) 0 温度值高位 ( MS Byte) 1 高温限值( TH) 2 低温限值( TL) 3 配置寄存器 4 保留 5 保留 6 保留 7 CRC 校验 值 8 DS18B20 等待 DS18B20Tx 产生 15us—16us 脉冲 60240 主机复位脉冲 VCC 480usTX960us 主机 Rx min480us 1Wire Bus GND 图 44 ( a)初始化时序 主机控制 DS18B20 完成任何操作之前必须先初始化,即主机发一复位脉冲 (最短为 480us 的低电平 ),接着主机释放总线进入接收状态, DS18B20 在检测到 I/O 引脚上的上升沿之后,等待 1560us 然后发出存在脉冲 (60240us的低电平 )。 写时间片:将数据从高电平拉至低电平,产生写起始信号。 在 15us 之内将所需写的位送到数据线上,在 15us 到 60us 之间对数据线进行采样,如果采样为高电平,就写 1,如果为低电 平,写 0 就发生。 在开始另一个写周期前必须有 1us 以上的高电平恢复期。 读时间片 :主机将数据线从高电平拉至低电平 1us 以上,再使数据线升为高电平,从而产生读起始信号。 主机在读时间片下降沿之后 15us 内完成读位。 每个读周期最短的持续期为 60us,各个读周期之间也必须有 1us 以上的高电平恢复期。 主机写“ 0”时隙 主机写“ 1”时隙 VCC 60usTX120us 1ustxcc∞ 1Wire Bus GND DS18B20 采样 1us DS18B20 采样 15us MIN TYP MAX MIN TYP MAX 15us 30us 15us 15us 30us 图 44( b)写时序 VCC 主机读“ 0”时隙 主机读“ 1”时隙 1Wire Bus GND 主机采样 1us 15us 15us 30us 主机采样 15us 图 44( c)读时序 167。 DS18B20 与单片机的典型接口设计 图 45 以 MCS- 51 系列单片机为例,画出了 DS18B20 与微处理器的 典型连接 ]4[。 图 45( a)中 DS18B20 采用寄生电源方式,其 VDD 和 GND 端均接地,图 45( b)中 DS18B20 采用外接电源方式,其 VDD 端用 3V~ 电源供电。 (a) 寄生电源工作方式 (b) 外接电源工作方式 图 45 电源工作方式图 167。 DS18B20 的各个 ROM 命令 ( 1) Read ROM [33H] 这个命令允许总线控制器读到 DS18B20 的 8 位系列编码,惟一的序列号的 8 位 CRC 码。 只有在总线上存在单只 DS18B20 的时候才能用这个命令。 如果总线上有不止一个从机,当所有从机试图同时传送信号时就会发生数据 冲突(漏极开路连在一起形成“与”的效果)。 ( 2) Match ROM [55H] 这是个匹配 ROM 命令,后跟 64 位 ROM 序列,让总线控制器在多点总线上定位一只特定的 DS18B20。 只有和 64 位 ROM 序列完全匹配的 DS18B20才能响应随后的存储器操作。 所有和 64 位 ROM 序列不匹配的从机都将等待复位脉冲。 这条命令在总线上有单个或多个器件时都可以使用。 ( 3) Skip ROM [0CCH] 这个命令允许总线控制器不用提供 64 位 ROM 编码就使用存储器操作命令,在单点总线情况下,可以节省时间。 如果总线上不止一个从机,在命令之后紧跟着发一条读命令,由于多个从机同时传信号。 总线上发生数据冲突(漏极开路连在一起形成“与”的效果)。 ( 4) Search ROM [0F0H] 当一个系统初次启动时,总线控制器并不知道单线总线上有多少个器件或它们的 64 位 ROM 编码。 搜索 ROM 命令允许总线控制器用排除法识别总线上的所有从机的 64 位编码。 ( 5) Alarm Search [0ECH] 这条命令的流程和 Search ROM 相同。 然而,只有在最近一次测 温后遇到符合报警条件的情况, DS18B20 才会响应这条命令。 报警条件定义为温度高于 TH 或低于 TL。 只要 DS18B20 不掉电,报警状态将一直保持,直到再一次测得的温度值达不到报警条件。 ( 6) Write Scratchpad[4EH] 这个命令向 DS18B20 的暂存器 TH 和 TL 中写入数据。 可以在任何时刻发出复位命令来中止写入。 ( 7) Read Scratchpad[0BEH] 这个命令读取暂存器的内容。 读取将从第 1 字节开始,一直进行下去,直到第 9( CRC)字节读完。 如果不想读完所有字节,控制器可以在任何时刻发出复位命令 来中止读取。 ( 8) Copy Scratchpad[48H] 这个命令把暂存器的内容拷贝到 DS18B20 的 E 2 ROM 存储器里,即把温度报警触发器字节存入非易失性存储器里。 如果控制器在这条命令之后跟着 发出读时间隙,而 DS18B20 又忙于把暂存器拷贝到 E 存储器, DS18B20 就会输出一个 0,如果拷贝结束的话, DS18B20 输出 1。 如果使用寄生电源,总线控制器必须在这条命令后立即启动强上拉,并最少保持 10ms。 ( 9) Convert T[44H] 这个命令启动一次温度转换而无需其 他数据。 温度转换命令被执行,而后 DS18B20 保持等待状态。 如果控制器在这条命令之后跟着发出时间隙,而DS18B20 有忙于做时间转换的话, DS18B20 将在总线上输出一个 0,若温度转换完,则输出 1。 如果使用寄生电源,总线控制器必须在发出这条命令后立即启动强上拉,并最少保持 500ms 以上时间。 ( 10) Read E2 [0B8H] 这条命令把 触发器里的值拷贝回暂存器。 这种拷贝操作在 DS18B20 上电时自动执行,这样一上电暂存器里马上存在有效的数据了。 若在这条命令之后发出读数 据隙,器件会输出温度转换忙的标识: 0 为忙, 1 为完成。 ( 11) Read Power Supply[0B4H] 若把这条命令发给 DS18B20 后发出读时间隙,器件会返回它的电源模式: 0 为寄生电源, 1 为。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。