精品论文]基于ds1820的温度采集系统设计内容摘要:

二进制中的前面 5位是符号位,如果测得的温度大于 0,这 5位为 0,只要将测到的数值乘于 ;如果温度小于 0,这 5位为 1,测到的数值需要取反加 1再乘于。 例如 +125℃ 的数字输出为 07D0H, +℃ 的数字输出为0191H, ℃ 的数字输出为 FF6FH, 55℃ 的数字输出为 FC90H。 温度值 数字输出(二进制) 数字输出( 16 进 制) +125℃ 0000 0111 1101 0000 07D0H +85℃ 0000 0101 0101 0000 0550H +℃ 0000 0001 1001 0001 019H +℃ 0000 0000 1010 0010 00A2H +℃ 0000 0000 0000 1000 0008H 图 DS— 18B20 温度对照表 课件之家精心整理资料 欢迎你的欣赏 课件之家精心整理资料 欢迎你的欣赏 DS18B20温度传感器的 内部存储器 DS18B20温度传感器的内部存 储器包括一个高速暂存 RAM和一个非易失 性的可电擦除的 EEPRAM,后者存放高温度和低温度触发器 TH、 TL和结构寄存器。 高速暂存存储器除了配置寄存器外,还有其他 8个字节组成,其分配如下所示。 其中温度信息(第 1,2 字节)、 TH和 TL 值第 3, 4 字节、第 6~ 8 字节未用,表现为全逻辑 1;第 9 字节读出的是前面所有 8 个字节的 CRC 码,可用来保证通信正确。 图 DS18B20 内部储存器结构图 当 DS18B20 接收到温度转换命令后,开始启动转换。 转换完成后的温度值就以 16 位带符号扩展的二进制补码形式存储在高速暂存存储器的第 1, 2字节。 单片机可通过单线接口读到该数据,读取时低位在前,高位在后,数据格式以 ℃ /LSB 形式表示。 温度值格式如下: 对应的温度计算:当符号位 S=0 时,直接将二进制位转换为十进制;当 S=1 时,先将补码变换为原码,再计算十进制值。 TH用户字节 1 TH用户字节 2 配置 寄存器 EEPROM 温度 LSD( 50h) 温度 LSD( 05h) CRC* 保留位 (FFh) 保留位 (10h) 保留位 (0Ch) 配置寄存器 TH用户字节 2* TH用户字节 1* 高速暂存器(上电状态) Byte1 Byte8 Byte0 Byte7 Byte6 Byte2 Byte5 Byte4 Byte3 课件之家精心整理资料 欢迎你的欣赏 课件之家精心整理资料 欢迎你的欣赏 DS18B20 完成温度转换后,就把测得的温度值与 TH, TL 作比较,若 TTH或 TTL,则将该器件内的告警标志置位,并对主机发出的告警搜索命令作出响应。 因此,可用多只DS18B20 同时测量温度并进行告警搜索。 CRC 的产生 在 64 b ROM 的最高有效字节中存储有循环冗余校验码( CRC)。 主机根据 ROM 的前56 位来计算 CRC 值,并和存入 DS18B20 中的 CRC 值做比较,以判断主机收到的 ROM数据是否正确。 64 位激光(刻)只读储存器 8 位 RCR 48 位序列号 8 位系列号 配置寄存器 该字节各位的意义如下: TM R1 R0 1 1 1 1 1 表 配置寄存器结构 低五位一直都是 1, TM是测试模式位,用于设置 DS18B20 在工作模式还是在测试模式。 在 DS18B20 出厂时该位被设置为 0,用户不要去改动。 R1 和 R0 用来设置分辨率,如下表所示:( DS18B20 出厂时被设置为 12 位) R1 R0 分辨率 最大温度转换时间 /ms 0 0 9 位 0 1 10 位 1 0 11 位 375 1 1 12 位 750 表 温度 值分辨率设置表 由表 可见,设定的分辨率越高,所需要的温度数据转换时间就越长。 因此,在实课件之家精心整理资料 欢迎你的欣赏 课件之家精心整理资料 欢迎你的欣赏 际应用中要在分辨率和转换时间权衡考虑。 DS18B20 控制流程 根据 DS18B20 的通讯协议,主机(单片机)控制 DS18B20 完成温度转换必须经过三个步骤:每一次读写之前都要对 DS18B20 进行复位操作,复位成功后发送一条 ROM指令,最后发送 RAM 指令,这样才能对 DS18B20 进行预定的操作。 复位要求主 CPU将数据线下拉 500 微秒,然后释放,当 DS18B20 收到信号后等待 16~ 60 微秒左右,后发出 60~ 240微秒的存在低脉冲,主 CPU 收到此信号表示复位成功。 后面还要具体 讲述复位、读和写的时序。 ROM 指令表明了主机寻址一个或者多个DS18B20 中的某个或某几个,或者读取某个 DS18B20 的 64 位地址。 RAM 指令用于主机对DS18B20 内部 RAM 的操作。 指令集如表 和表 所示。 指令 约定代码 功能 温度转换 44H 启动 DS18B20 进行温度转换, 12 位转换时最长为 750ms( 9 位为 )。 结果存入内部 9 字节 ROM 中。 读暂 存器 0BEH 读内部 RAM9 字节内容 写暂存器 4EH 发出向内部 RAM 的 4 字节写上、下限温度数据命令,紧跟该命令之后,是传送两字节数据。 复制暂存器 48H 将 RAM 的第 4 字节的内容复制到EEPROM 中。 重读 EEPROM 0B8H 将 EEPROM 中的内容复制到 RAM 中的第 4 字节。 读供电方式 0B4H 读 DS18B20 的供电模式, 寄生供电时DS18B20 发送“ 0 ”,外接电源供电DS18B20 发送“ 1”。 表 RAM 指令 表 指令 代码 操作说明 温度转换 44H 开始启动 DS18B20 温度转换 课件之家精心整理资料 欢迎你的欣赏 课件之家精心整理资料 欢迎你的欣赏 读 ROM 33H 读 ROM 内容 匹配 ROM 55H 对指定器件操作 跳过 CCH 跳过器件识别 读暂存器 BEH 读暂存器内容 写暂存器 4EH 将数据写入暂存器的 TH、 TL 字节 复制暂存器 48H 把暂存器的 TH、 TL 字节写到 ERAM 重写调用 ERAM B8H 把 ERAM 中的 TH、 TL 字节写到暂存器TH、 TL 字节 表 ROM 指令 表 备注: 对于寄生电源模式 下的 DS18B20,在温度转换和拷贝数据到 EEPROM 期间,必须给单总线一个强上拉。 总线上在这段时间内不能用其它活动。 总线控制器在任何时刻都可以通过发出复位信号中止数据传输。 TH、 TL 和配置寄存器这 3 个字节的写入必须在复位信号发起之前。 课件之家精心整理资料 欢迎你的欣赏 课件之家精心整理资料 欢迎你的欣赏 对 DS18B20 的操作流程图如图 和 所示 a)复位操作流程 b)写操作流 程 c)读操作流程 指令操作流程图 上面两阶流程图说明了任何操作 DS18B20所应遵循的流程。 比如用户进行如下操作:先发送报警上下限值,并写入 EEPROM,然后让 DS18B20 做温度转换,最后读取温度值。 开始 总线置 1 并延时 返回 总线置 1 并延时480μS 总线置 1 返回 设循环次数为 8 延时 480μS 480μS 480μS 写 1 位数据 总线置 0 并延时16μS 开始 总线置 1,延时 16μS 8 位写完。 返回 设循环次数为 8 延时 100μS 480μS 480μS 写 1 位数据 总线置 0 并延时16μS 开始 总线置 1,延时 60μS 8 位写 完。 课件之家精心整理资料 欢迎你的欣赏 课件之家精心整理资料 欢迎你的欣赏 DS18B20 的应用 DS18B20 测温系统具有测温系统简单、测温精度高、连接方便、占用口线少等优点。 下面就是 DS18B20不同应用方式下的测温电路图: 图 测温原理图 1) DS18B20 的主要特性 ① 适应电压范围更宽,电压范围: ~ ,在寄生电源方式下可由数据线供电 ② 独特的单线接口方式, DS18B20 在与微处理器连接时仅需要一条口线即可实现微处理器与 DS18B20 的双向通讯 ③ DS18B20 支持多点组网功能,多个 DS18B20 可以并联在唯一的三线上,实现组网多点测温 ④ DS18B20 在使用中不需要任何外围元件,全部传感元件及转换电路集成在形如一只三极管的集成电路内 ⑤ 温范围- 55℃ ~+ 125℃ ,在 10~ +85℃ 时精度为 177。 ℃ ⑥ 可编程的分辨率为 9~ 12 位,对应的可分辨温度分别为 ℃ 、 ℃ 、℃ 和 ℃ ,可实现高精度测温 ⑦ 在 9 位分辨率时最多在 内把温度转换为数字, 12 位分辨率时最多在 750ms内把温度值转换为数字,速度更快 ⑧ 测量结果直接输出数字温度信号,以 一线总线 串行传送给 CPU,同时可传送 CRC校验码,具有极强的抗干扰纠错能力 ⑨ 负压特性:电源极性接反时,芯片不会因发热而烧毁,但不能正常工作。 课件之家精心整理资料 欢迎你的欣赏 课件之家精心整理资料 欢迎你的欣赏 2) DS1820 的基 本操作指令 DS1820 的操作指令分为 ROM 操作命令和存储器操作命令。 ( 1)、 ROM 操作命令及其含义 Read ROM 指令代码( 33h):如果只有一片 DS1820,可用此命令读出其序列号,若在线DS1820 多于一个,将发生冲突。 Match ROM指令代码( 55h):多个 DS1820 在线时,可用此命令匹配一个给定序列号的DS1820,此后的命令就针对该 DS1820。 Skip ROM 指令代码( CCh):此命令执行后的存储器操作将针对在线的所有 DS1820。 Search ROM 指令代码( F0h):用以读出在线的 DS1820 的序列号。 Alarm Search 指令代码( ECh):当温度值高于 TH 或低于 TL 中的数值时,此命令可以读出报警的 DS1820。 ( 2)、存储器操作指令代码及其含义 Write Scratchpad 指令代码( 4Eh):写两个字节的数据到温度寄存器。 Read Scratchpad 指令代码( BEh):读取温度寄存器的温度值。 Copy Scratchpad指令代码( 48h):将温度寄 存器的数值拷贝到 EERAM 中,保证温度值不丢失。 Convert T 指令代码( 44h):启动在线 DS1280 做温度 A/D 转换。 Recall E2 指令代码( B8h):将 EERAM 中的数值拷贝到温度寄存器中。 Read Power Supply 指令代码( B4h):在本命令送到 DS1280 之后的每一个读数据间隙,指出电源模式: “0”为寄生电源; “1”为外部电源。 课件之家精心整理资料 欢迎你的欣赏 课件之家精心整理资料 欢迎你的欣赏 3) 温度测量的步骤 (1). Read ROM( 33 h),每次对 DS1820进行操作之前都要对它进行初始 化,主要目的在于确定传感器已经连接到单总线上。 (2). Search ROM( F0h),这条指令使处理器用排除的方法去辨别总线上的 DS1820。 (3). Match ROM( 55。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。