单线多点数字温度检测仪设计 - 图文(6)

2019-05-26 21:42

西南交通大学本科毕业设计(论文) 第18页 (最高有效位) (最低有效位)

温度传感器:在DS18B20温度传感器的使用中,以12位转化为例,从DS18B20中得到16位符号扩展到二进制补码读数形式,以0.0625℃/LSB的形式表达,其中S位符号位。二进制的数存储在DS18B20的2个8位的RAM中,这是12位转化后得到的16位数据,其中是前5位是符号位,如果测得的温度大于0℃,这5位为0,只要将测得的数值乘以0.0625即可得到实际温度;如果温度小于0℃,这5位为1,测得的数值需要去反加1在乘以0.0625即可得到实际的温度值。

表3-5 DS18B20温度值格式表

表3-6 温度/数据关系

温度℃ +125 +25 +0.5 0 -0.5 -25 -55 数据输出(二进制) 00000000 11111010 00000000 00110010 00000000 00000001 00000000 00000000 11111111 11111111 11111111 11001110 11111111 10010010 数据输出(十六进制) 00FA 0032 0001 0000 FFFF FFCE FF92 存储器:DS18B20温度传感器的内部存储器包括一个高速暂存RAM和一个存储高低温报警触发值TH和TL易失性的电可擦除的EERAM组成。当在单线总线上通讯时,暂存器帮组确保数据的完整性。数据先被写入暂存器,这里的数据可被读回。数据经晓燕后,用一个拷贝暂存器命令会把数据传到非易失性EERAM中。这一过程确保更改存储器时数据的完整性。

高速暂存器RAM:是由8个字节的存储器组成;第一和第二个字节是温度的显示位。第三和第四个字节是复制TH和TL,同时第三和第四个字节的数字可以更新;第五个字节是复制配置寄存器,同时第五个字节的数字可以更新;

西南交通大学本科毕业设计(论文) 第19页 六、七、八三个字节是计算机自身使用。用读寄存器的命令能读出第九个字节,这个字节是对前面的八个字节进行校验。

暂存器温度 LSB温度 MSBTH/用户字节1TL/用户字节2保留保留预留预留CRC字节012345678EERAMTH/用户字节1TL/用户字节2

图3-7DS18B20存贮器映像图

配置寄存器:低五位一直都是1 ,TM是测试模式位,用于设置DS18B20在工作模式还是在测试模式。在DS18B20出厂时该位被设置为0,用户不要去改动。R1和R0用来设置分辨率,如下表所示:(DS18B20出厂时被设置为12位) 该字节各位的意义如下:

表3-8 配置寄存器结构

TM R1 R0 1 1 1 1 1 表3-9 分辨率设置表

R0 0 0 1 1 R1 0 1 0 1 分辨率 9位 10位 11位 12位 最大转换时间(ms) 96.75 187.5 375 750 8位CRC(循环冗余校验码)发生器:DS18B20 中有一存贮在64 位ROM 的最高有效字节内的8位CRC。总线上主机可以根据64 位ROM 中的前56 位计算出一个CRC 值,再用这个和存储在DS18B20 中的值进行比较,以确定ROM 数据是否被总线主机正确的接收。CRC 计算等式:

CRC=X8+X5+X4+1

西南交通大学本科毕业设计(论文) 第20页

DS18B20 同样用上面的公式产生一个8 位CRC 值,把这个值提供给总线控制器用来校验传输的数据。在任何使用CRC 进行数据传输校验的情况下,总线控制器必须用上面的公式计算出一个CRC 值,和存储在DS18B20 的64 位ROM 中的值或DS18B20 内部计算出的8 位CRC 值(当读暂存器时,作为第9 个字节读出来)进行比较。CRC 值的比较以及是否进行下一步操作完全由总线控制器决定。当在DS18B20 中存储的或由其计算的CRC 值和总线控制器计算的值不相符时,DS18B20 内部并没有一个能阻止命令序列进行的电路。

单线 CRC 可以用一个由移位寄存器和XOR 门构成的多项式发生器来产生。如图3-10所示。

输入 MSB XOR XOR LSB 图3-10 单线CRC码

以为寄存器的各位都被初始化为0。然后从系列编号的最低有效位开始一次一位移入寄存器,8位系列编码都进入以后,序列号在进入,48位序列号都进入后,移位寄存器中就存储CRC值。移入8位CRC会使移位寄存器复0。

根据DS18B20的通讯协议,主机(单片机)控制DS18B20完成温度转换必须经过三个步骤:每一次读写之前都要对DS18B20进行复位操作,复位成功后发送一条ROM指令(ROM指令如表2-8所示),最后发送RAM指令(RAM指令如表3-11所示),这样才能对DS18B20进行预定的操作。复位要求主CPU将数据线下拉500微秒,然后释放,当DS18B20收到信号后等待16~60微秒左右,后发出60~240微秒的低脉冲,主CPU收到此信号表示复位成功。

表3-11 ROM指令集

指令 读ROM 约定代码 33H 的时候才能使用。 发出此命令后,接着发出64位ROM编码,访问单总线上与该编码相对匹配ROM 55H 应的DS18B20使之做出响应,为下一步对该DS18B20的读写做准备 功能 读DS18B20中的编码(即64位地址)。只有在总线上存在单只DS18B20 西南交通大学本科毕业设计(论文) 第21页

用于确定挂接在同一总线上的DS18B20的个数和识别64位ROM地址,搜索ROM 0F0H 位操作各器件做好准备 总线只有一个传感器时,忽略64位ROM地址,直接向DS18B20发出温跳过ROM 0CCH 度转换命令,适合单片机 执行后,只有温度超过设定值上限和下限的时候,DS18B20才会响应,告警搜索0ECH 命令 到报警条件 表3-12 RAM指令集

指令 温度转换 读暂存器 写暂存器 复制暂存器 重调EEPRAM 读供电方式 约定代码 44H 入内部9字节RAM中 0BEH 4EH 令后的是传送两字节数据 48H 0B8H 0B4H 电发送1 将RAM的第3、第4字节内容复制到EEPRAM中 将EEPRA中的内容复制到RAM中的第3、第4字节 读DS18B20的供电模式,寄生供电时DS18B20发送0,外接供读内部RAM中9字节的内容 向内部RAM的第3、第4字节写上、下限数据命令,紧跟该命功能 启动DS18B20进行温度转换,转换时间长为500微秒,结果存而且只要不断电,报警状态一直保持,直到再一次测得的温度值达不3.2.3 DS18B20测温方法

DS18B20的读写时序和测温原理与DS1820相同,只是得到的温度值的位数因分辨率不同而不同,且温度转换时的延时时间由2s减为750ms 。DS18B20测温原理如图3-13所示:

西南交通大学本科毕业设计(论文) 第22页

斜坡累加器 预置 比较 LSB低温度系数振荡计数器 预置 置位清/0 =0 增加 温度寄存器 高温度系数振荡计数器 停止 =0

图3-13 温度测量电路方框图

DS18B20测温过程如下:通过温度测量电路方框图,现在来介绍DS18B20的测温过程。过程如下:用一个高温度系数是振荡器确定一个周期,内部计数器在这个周期内对一个低温度系数的振荡器的脉冲进行计数来得到温度值。计数器被预置到对应于-55℃的一个值。如果计数器值门周期结束前到达0,则温度寄存器(同样被预置到-55℃)的值增加,表明所测温度大于-55℃。同时,计数器被复位到一个值,这个值有斜坡式累加器电路确定,斜坡式累加器电路用来补充温度振荡器的抛物线特性。然后计数器又开始计数到0,如果门周期仍未结束将重复这一过过程。斜坡式累加器用来补充温度振荡器的非线性,以期在测温时获得比较高的分辨力。这是通过改变计数器对温度每增加一度所技术的值来实现的。因此,要想获得所需的分辨力,必须同时知道这给定温度下计数器的值和每一度的计数值。DS18B20内部对此计算的结果可提供0.5℃的分辨率。温度以16bit带符号位扩展到二进制补码形式读出。数据通过单线接口以串行方式输出。DS8B20测温范围-55~+125℃,以0.5℃递增。

3.2.4 DS18B20供电方式

寄生电源:寄生电源的方框图见图2-2所示。


单线多点数字温度检测仪设计 - 图文(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:诸葛神薮

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: