如何计算该8位1-Wire CRC

描述

所有的1-Wire®器件,包括iButton®器件,在只读存储器(ROM)中都包含一个8字节的唯一注册号。该注册号用作1-Wire总线上的唯一网络地址。为了确保数据通信的完整性,每个注册号的一个字节为1-Wire CRC字节。本应用笔记介绍了如何计算该8位1-Wire CRC。它还继续说明用于验证保存在设备内存中的记录的16位CRC。1-Wire CRC和CRC-16均在选定的1-Wire器件的硬件中生成,以验证数据。

介绍

Maxim iButton产品是一系列器件,它们均按照称为1-Wire协议的特定命令序列,通过一条线进行通信。每个设备的关键特性是在制造时写入每个部件的唯一8字节ROM代码。这个8字节代码的组成部分可以在图1中看到。最低有效字节包含一个家族代码,该家族代码标识iButton产品的类型。例如,DS1990A的家族代码为01十六进制,DS1922L的家族代码为41十六进制。由于相同或不同系列类型的多个设备可以同时驻留在同一条1-Wire总线上,因此对于主机来说,确定如何正确访问其位于1-Wire总线上的每个设备非常重要。

数据通信

Maxim 1-Wire CRC
使用最少的硬件就能最有效地定位串行数据流中的错误的错误检测方案就是CRC。给出了Maxim产品中使用的CRC函数的操作和特性,而没有涉及证明陈述和描述的数学细节。参考文献中详细描述了CRC属性背后的数学概念。通过考虑功能,可以很容易地理解CRC,因为它实际上是内置在硬件中的,通常表示为带反馈的移位寄存器结构,如下图所示。

数据通信

iButton设备中RAM记录的CRC-16计算
如简介中所述,某些iButton设备除了在所有iButton设备中都具有唯一的8字节ROM代码外,还具有RAM。由于与8字节ROM代码相比,RAM中存储的数据量可能很大,因此Maxim建议使用16位CRC值来确保数据的完整性,而不是使用8位1-Wire CRC来确保数据的完整性。只读存储器。建议的特定CRC通常称为CRC-16。首先,短暂的间歇性连接会导致少量的误码出现在数据中,这是普通CRC-16功能旨在检测的。当完全失去联系时(例如,当iButton设备从阅读器中移出太快时),就会发生第二种类型的错误。

编辑:hfy

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分