基于ds18b20的温度控制系统毕业论文内容摘要:

而保证通信数据的正确性。 当 DS18B20 接收到温度转换命令后,开始启动转换。 转换完成后的温度值就以 16 位带符号扩展的二进制补码形式存储在高速暂存存储器的第 2 字节。 单片机可以通过单线接口读出该数据,读数据时低位在先,高位在后,数据格式以 ℃/ LSB 形式表示。 当符号位 S= 0 时,表示测得的温度值为正值,可以直接将二进制位转换为十进制;当符号位 S= 1 时,表示测得的温度值为负值,要先将补码变成原码,再计算十进制数值。 表 是一部分温度值对应的二进制温度数据 [6]。 表 2- 4 DS18B20 温度转换时间表 R1 R0 分辨率 /位 温度最大转向时间 /ms 0 0 9 0 1 10 1 0 11 375 1 1 12 750 表 2- 5 一部分温度对应值表 温度 /℃ 二进制表示 十六进制表示 +125 0000 0111 1101 0000 07D0H +85 0000 0101 0101 0000 0550H + 0000 0001 1001 0000 0191H + 0000 0000 1010 0001 00A2H + 0000 0000 0000 0010 0008H 0 0000 0000 0000 1000 0000H 1111 1111 1111 0000 FFF8H 廊坊师 范学院本科生毕业论文 6 续表 2- 5 1111 1111 0101 1110 FF5EH 1111 1110 0110 1111 FE6FH 55 1111 1100 1001 0000 FC90H 4) CRC 的产生 在 64 b ROM 的最高有效字节中存储有循环冗余校验码( CRC)。 主机根据 ROM 的前 56位来计 算 CRC 值,并和存入 DS18B20 中的 CRC 值做比较,以判断主机收到的 ROM 数据是否正确。 另外,由于 DS18B20 单线通信功能是分时完成的,它有严格的时隙概念,因此读写时序很重要。 系统对 DS18B20 的各种操作按协议进行。 操作协议为:初使化 DS18B20(发复位脉冲)→发 ROM 功能命 令→发存储器操作命令→处理数 3 DS18B20温度传感器简介 温度传感器的历史及简介 温度的测量是从金属 (物质 )的热胀冷缩开始。 水银温度计至今仍是各种温度测量的计量标准。 可是它的缺点是只能近距离观测,而且水银有毒,玻璃管易碎。 代替水银的有酒精温度计和金属簧片温度计,它们虽然没有毒性,但测量精度很低,只能作为一个概略指示。 不过在居民住宅中使用已可满足要求。 在工业生产和实验研究中为了配合远传仪表指示,出现了许多不同的温度检测方法,常用的有电阻式、热电偶式、 PN 结型、辐射型、光纤式及石英谐振型等。 它们 都是基于温度变化引起其物理参数 (如电阻值,热电势等 )的变化的原理。 随着大规模集成电路工艺的提高,出现了多种集成的数字化温度传感器。 DS18B20的工作原理 DS18B20工作时序 根据 DS18B20 的通讯协议,主机控制 DS18B20 完成温度转换必须经过三个步骤: 1. 每一次读写之前都 必须 要对 DS18B20 进行复位 ; 2. 复位成功后发送一条 ROM 指令 ; 3. 最后发送 RAM 指令,这样才能对 DS18B20 进行预定的操作。 复位要求主 CPU 将数据线下拉 500 微秒,然后释放, DS18B20 收到信号后等待 15~ 60微秒左右后发出 60~ 240 微秒的存在低脉冲,主 CPU 收到此信号表示复位成功。 其工作时序包括初始化时序、写时序和读时序,具体工作方法如图 , , 所示。 (1) 初始化时序 廊坊师 范学院本科生毕业论文 7 响应脉冲60~24 0等待15 60主机 最小480主机复位脉冲最小480 US 图 3- 1 初始化时序 总线上的所有传输过程都是以初始化开始的,主机响应应答脉冲。 应答脉冲使主机知道,总线上有从机设备,且准备就绪。 主机输出低电平,保持低电平时间至少 480us,以产生复位脉冲。 接着主机释放总线, 高,延时 15~ 60us,并进入接受模式,以产生低电平应答脉冲,若为低电平,再延时 480us[12]。 (2) 写时序 采样15~ 45采样15~ 4511主机写1 时序主机写0 时序 图 3- 2 写时序 写时序包括写 0时序和写 1时序。 所有写时序至少需要 60us,且在 2次独立的写时序之间至少需要 1us 的恢复时间,都是以总线拉低开始。 写 1 时序,主机输出低电平,延时2us,然后释放总线,延时 60us。 写 0 时序,主机输出低电平,延时 60us,然后释放总线,延时 2us[8]。 (3) 读时序 廊坊师 范学院本科生毕业论文 8 主机采样主机采样454511主机写 1时 序主机写 0时 序 图 3- 3 读时序 总线器件仅在主机发出读时序是,才向主机传输数据,所以,在主机发出读数据命令后,必须马上产生读时序,以便从机能够传输数据。 所有读时序至少需要 60us,且在 2次独立的读时序之间至少需要 1us的恢复时间。 每个读时序都由主机发起,至少拉低总线 1us。 主机在读时序期间必须释放总线,并且在时序起始后的 15us之内采样总线状态。 主机输出低电平延时 2us,然后主机转入输入模式延时 12us,然后读取总线当前电平,然后延时 50us[4] ROM操作命令 当主机收到 DSl8B20 的响应信号后,便可以发出 ROM 操作命令之一,这些命令如表: ROM操作命令。 DS18B20的测温原理 DS18B20的测温原理 : 每一片 DSl8B20在其 ROM中都存有其唯一的 48位序列号,在出厂前已写入片内 ROM 中。 主机在进入操作程序前必须用读 ROM(33H)命令将该 DSl8B20 的序列号读出。 程序可以先跳过 ROM,启动所有 DSl8B20 进行温度变换,之后通过匹配 ROM,再逐一地读回每个 DSl8B20 的温度数据。 DS18B20 的测温原理如图 所示,图中低温度系数晶振的振荡频率受温度的影响很小 ,用于产生固定频率的脉冲信号送给减法计数器 1,高温度系数晶振随温度变化其震荡频率明显改变,所产生的信号作为减法计数器 2 的脉冲输入,图中还隐含着计数门,当计数 门打开时, DS18B20 就对低温度系数振荡器产生的时钟脉冲后进行计数,进而完成温度测量。 计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将 55 ℃ 所对应的基数 分别置入减法计数器 1和温度寄存器中,减法计数器 1和温度寄存器被预置在 55 ℃所对 应的一个基数值。 减法计数器 1 对低温度系数晶振产生的脉 冲信号进行减法计数,当减法计数器 1 的预置值减到 0 时温度寄存器的值将加 1,减法计数器 1 的预置将重新被装入,减法计数器 1 重 新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器 2 计数到 0时, 停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。 图 中的斜率累加器用 于补偿和修正测温过程中的非线性,其输出用于修正减法计数器的预置值,只要计数门仍未关闭就重复上述过程,直至温度寄存器值达到被测温度值 . 廊坊师 范学院本科生毕业论文 9 表 3- 1 ROM 操作命令 指令 约定代码 功 能 读 ROM 33H 读 DS18B20 ROM 中的编码 符合 ROM 55H 发出此命令之后,接着发出 64位 ROM 编码,访问单线总线上与该编码相对应的 DS18B20 使之作出响应,为下一步对该 DS18B20 的读写作准备 搜索 ROM 0F0H 用于确定挂接在同一总线上 DS18B20 的个数和识别 64 位ROM 地址,为操作各器件作好准备 跳过 ROM 0CCH 忽略 64 位 ROM 地址,直接向 DS18B20 发温度变换命令,适用于单片工作。 续表 3- 1 告警搜索 命 令 0ECH 执行后,只有温度超过设定值上限或 者下限的片子才做出响应 温度变换 44H 启动 DS18B20 进行温度转换,转换时间最长为 500MS,结果存入内部 9字节 RAM 中 读暂存器 0BEH 读内部 RAM 中 9 字节的内容 写暂存器 4EH 发出向内部 RAM 的第 3, 4字节写上、下限温度数据命令,紧跟读命令之后,是传送两字节的数据 复制暂存器 48H 将 E2PRAM 中第 3, 4 字节内容复制到 E2PRAM 中 重调 E2PRAM 0BBH 将 E2PRAM 中内容恢复到 RAM 中的第 3, 4字节 读 供 电 方 式 0B4H 读 DS18B20 的供电模式,寄生 供电时 DS18B20 发送“ 0”,外接电源供电 DS18B20 发送“ 1” 另外,由于 DS18B20 单线通信功能是分时完成的,他有严格的时隙概念,因此读写时序很重 要。 系统对 DS18B20 的各种操作必须按协议进行。 操作协议为:初始化 DS18B20(发复位脉冲 )→发 ROM 功能命令 → 发存储器操作命令 → 处理数据。 廊坊师 范学院本科生毕业论文。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。