首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 家电技术 > 维修教程知识 > 单片机栏
DSl8820 ROM编码的一种搜索算法
来源:本站整理  作者:佚名  2009-09-21 09:31:27




1.2 DSl8820的ROM编码
    每片DSl8820含有一个唯一的64位ROM编码。头8位是产品系列码,接着的 48位是产品序列号,最后8位是CRC(循环冗余校验)码。主机可以对总线上多片DS18820唯一寻址,因此多片DS18820能够连在同一条数据线上而不会造成混乱,这为温度的多点测量带来了极大的方便。64位的ROM注册码如下:

1.3 DS18820 ROM搜索命令
    当单线总线上挂有多个DS18B20时,系统对总线上器件的数量和每个器件的ROM的识别与搜索是通过DS18820 ROM搜索命令与算法配合来实现的。下面具体介绍ROM搜索命令的工作过程。对64位ROM编码识别从最低位开始,ROM编码的每一位搜索过程可总结为 “两读一写”:读一位,读该位补码;写一位。总线主机在ROM编码每一位上完成这三步就可以获得一个器件的ROM编码。
    (1)两 读
    总线主机发布ROM搜索命令后执行一次读,总线上所有器件就把它们各自ROM编码的第一位放到总线来作出响应。这次读获得的数据是所有器件放在总线上数据的“与”。再执行一次读,因为ROM搜索命令正在执行所以总线上所有器件把各自ROM编码的第一位的补码放在总线上,第二次读获得的数据也是所有器件放在总线上数据的“与”。对第一位的“两读”就此完成。之后主机再次进行的“两读”则是针对ROM编码的第二位,以此类推。从“两读”获得的数据有以下解释,如表1所列。

    (2)- 写
    对ROM编码的某一位“两读”之后,对该位进行“-写”操作。“-写”操作写的数据要根据“两读”获得的数据来确定。如果“两读”数据为00,则表示总线上器件在该位上数据发生冲突,“-写”写的数据此种情况下具有“排除”的作用,如果器件ROM编码在该位上的数据与“-写”写的数据相同,则继续保持与总线的联系。如果不相同则此器件从总线上“排除”,不再响应主机发布的命令,直到主机进行下一次复位。如果“两读”数据为01,则表示总线上所有器件在该位上均位0,为保持器件与总线的联系,“-写”操作主机应写0。同理,如“两读”数据为10,主机则应写1。

2 DS18820 ROM编码的搜索算法
    在一条“单线总线”上挂有多片。DS18820的情况下,对ROM编码的搜索与识别主要是通过“两读”数据为00时“-写”操作的“排除”作用来实现的。多次“排除”作用后,就可以使总线上只剩下唯一的一个器件仍与总线保持联系。如何“排除”,这需要算法的配合。下面具体介绍DS18820 ROM编码的搜索算法。

上一页  [1] [2] [3] 

关键词:

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)

推荐阅读

图文阅读

热门阅读

Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:128,128.90000 毫秒