编辑: 笔墨随风 | 2016-07-07 |
8 位的,所以 0.5℃位被忽略不计.TH 或TL 的最高有效位直接对应
16 位温度寄存器的符号位.如果测得的温 度高于 TH 或低于 TL,器件内部就会置位一个报警标识.每进行一次测温就对这个标识进行一次更新.当报 警标识置位时,DS1820 会对报警搜索命令有反应.这样就允许许多 DS1820 并联在一起同时测温,如果某个 地方的温度超过了限定值,报警的器件就会被立即识别出来并读取,而不用读未报警的器件.
64 位(激)光刻 ROM 每只 DS1820 都有一个唯一的长达
64 位的编码.最前面
8 位是单线系列编码(DS1820 的编码是 19h). 下面
48 位是一个唯一的序列号.最后
8 位是以上
56 位的 CRC 码.(见图 5)64 位ROM 和ROM 操作控制区 允许 DS1820 做为单线制器件并按照详述于 单线总线系统 一节的单线协议工作.只有建立了 ROM 操作协 议,才能对 DS1820 进行控制操作.这个协议用 ROM 操作协议流程图来描述(图6).单线总线控制器必须 得天独厚提供
5 个ROM 操作命令其中之一:1) Read ROM,2)Match ROM,3)Search Rom,4)Skip -
7 - DS18B20 单线数字温度传感器 Email: [email protected] ROM,5)Alarm Search.成功进行一次 ROM 操作后,就可以对 DS1820 进行特定的操作,总线控制器可以发 出六个存储器和控制操作命令中的任一个. CRC 发生器 DS1820 中有
8 位CRC 存储在
64 位ROM 的最高有效字节中.总线控制器可以用
64 位ROM 中的前
56 位 计算出一个 CRC 值,再用这个和存储在 DS1820 中的值进行比较,以确定 ROM 数据是否被总线控制器接收无 误.CRC 计算等式如下: CRC=X
8 +X
5 +X
4 +1 DS1820 同样用上面的公式产生一个
8 位CRC 值,把这个值提供给总线控制器用来校验传输的数据.在 任何使用 CRC 进行数据传输校验的情况下,总线控制器必须用上面的公式计算出一个 CRC 值,和存储在 DS1820 的64 位ROM 中的值或 DS1820 内部计算出的
8 位CRC 值(当读暂存器时,做为第
9 个字节读出来) 进行比较.CRC 值的比较以及是否进行下一步操作完全由总线控制器决定.当在 DS1820 中存储的或由其计 算的 CRC 值和总线控制器计算的值不相符时,DS1820 内部并没有一个能阻止命令序列进行的电路. 单线 CRC 可以用一个由移位寄存器和 XOR 门构成的多项式发生器来产生,见图 7. 移位寄存器的各位都被初始化为 0.然后从系列编号的最低有效位开始,一次一位移入寄存器,8 位系 列编码都进入以后,序列号再进入,48 位序列号都进入后,移位寄存器中就存储了 CRC 值.移入
8 位CRC 会使移位寄存器复 0. 存储器 DS1820 的存储器结构示于图 8.存储器由一个暂存 RAM 和一个存储高低温报警触发值 TH 和TL 的非易 失性电可擦除(E
2 )RAM 组成.当在单线总线上通讯时,暂存器帮助确保数据的完整性.数据先被写入暂存 器,这里的数据可被读回.数据经过校验后,用一个拷贝暂存器命令会把数据传到非易性(E
2 )RAM 中.这 一过程确保更改存储器时数据的完整性. -
8 - DS18B20 单线数字温度传感器 Email: [email protected] 暂存器的结构为
8 个字节的存储器.头两个字节包含测得的温度信息.第三和第四字节是 TH 和TL 的 拷贝,是易失性的,每次上电复位时被刷新.下面两个字节没有使用,但是在读回数据时,它们全部表现 为逻辑 1.第七和第八字节是计数寄存器,它们可以被用来获得更高的温度分辨力(见 测温操作 一节). 还有一个第九字节,可以用读暂存器命令读出.这个字节是以上八个字节的 CRC 码.CRC 的执行方式如 第二个标题 CRC 发生器 所述. 单线总线系统 单线总线系统包括一个总线控制器和一个或多个从机. DS1820 是从机. 关于这种总线分三个题目讨论: 硬件结构、执行序列和单........