欢迎访问ic37.com |
会员登录 免费注册
发布采购

四路1-Wire A/D 转换器:DS2450(十一)

日期:2009-8-27 (来源:互联网)

CRC 硬件描述及多项式

CRC校验DS2450 有两种类型的循环冗余校验(CRC)。一种是8 位的,位于64 位ROM的最高有效字节。总线主机可用64 位ROM的前56 位计算CRC值,并将其与存储在DS2450 64位ROM ID中的CRC值比较,以确定总线主机接收到的ROM数据是否正确。该CRC的等价多项式是X8 + X5 + X4 + 1。读DS2450的ROM时,接收到的是8 位CRC校验码的原码形式(未求反的)。该CRC在出厂时就已经计算好了,并用激光写入64 位ROM中。

另一种CRC 码是16 位的,是根据标准的CRC16 多项式X16 + X15 + X2 + 1生成的。当对器件存储器进行读写操作时,利用该CRC 码可以进行数据传输差错检测;这种CRC同iButton NV RAM器件中用来保护iButton 文件结构数据包的CRC属于同一种类型。与8 位CRC 不同的是,16 位CRC 总是以(补码)反码的形式进行传送。DS2450 内的CRC 发生器(图12)会根据图6 所示的命令流程图计算出对应的16 位CRC 码。

DS2450将CRC提供给主机,以让主机确认其传输/接收的命令、地址、数据是否正确。进行读操作时,每当读到8字节存储器页末尾时,DS2450就发送16位CRC。在首次运行Read Memory命令时,CRC 的形成过程是:清空CRC 发生器,然后移入命令字节、低地址字节、高地址字节以及由第一个寻址到的存储区开始的数据字节,接着一直移入该存储器页面内的其他字节,直至到达寻址寄存器页的最后一个字节。在上述读流程结束之后继续读,则16 位CRC 形成过程为:清空CRC 发生器,移入从下一页第一个字节开始的新数据字节,一直持续直至到达寄存器页的最后一个字节。

DS2450时,在器件将数据复制到内存单元之前,总线主机将接收到16位CRC,以确认数据传输是否正确。首次运行Write Memory命令时,CRC 的形成过程是:清空CRC 发生器,然后移入命令字节、低地址字节、高地址字节以及数据字节。在上述写流程结束后继续写时,由于DS2450自动增加其地址计数器,因此16 位CRC 形成过程为:将新(增加的)地址字节载入(不是移入)CRC发生器,然后移入新数据字节。

有关CRC校验的详细描述参见Book of iButton Standards,文中还给

出了应用实例,包括硬件及软件设计。

传输特性

增量及最小满量程输入电压与分辨率的关系

表中阴影部分的精度小于分辨率。转换结果考虑了随机噪声。