Skip to content

技术科普

数据的安全守护者:CRC 校验在 KTH78 系列中的应用 ​

KTH78 系列的 SPI 输出由 12 bit 位置数据和 4 bit CRC 校验码组成。本文用写信的比喻解释 CRC 校验码,再以 KTH7816 为例演示 CRC-4/ITU 的计算过程。

本文要点
  • CRC 校验码按一定规则由全部内容算出,用来检查数据是否完整无误
  • KTH7816 的生成多项式为 X⁴ + X + 1,二进制表示为 10011
  • KTH78 系列采用 CRC-4/ITU 标准,带输入反转和输出反转
数据的安全守护者:CRC 校验在 KTH78 系列中的应用

CRC 校验的概念 ​

想象你正在写一封重要的信,里面有你想告诉朋友的秘密代码。但是你担心这封信在传送过程中可能被风吹散,或者有人拿错了某一页。

为了确保你的朋友能准确无误地读到你的秘密代码,你决定在每一页的底部都写下一个小标记,这个标记是这一页上所有文字的字数。只要内容没错,计算出的字数就会与你写下的匹配。这样,你的朋友在阅读信时,只要检查每一页的内容与字数是否匹配,就可以确保这封信的内容是完整且没有错误的。

这里,信件的内容代表数据,而你写在每一页底部的标记就是 CRC 校验码。在信号传输领域更加复杂,并不是数字数,而是将所有内容按照一定规则算出来一个编码。

KTH7816 SPI 输出帧格式
KTH7816 SPI 输出帧格式

KTH7816 说明书对 SPI 输出 CRC 校验的规定是:MISO 上的输出帧先是 12 bit 位置数据(MSB 在前),然后是 4 bit CRC 校验字;CRC 标准为 CRC-4/ITU,多项式为 X⁴ + X + 1,初始值为 00,结果异或值为 00,输入反转为 true,输出反转为 true。例如位置数据为 0FF 时,CRC 校验值为 2,接收到的数据为 0FF2。

CRC 计算过程演示 ​

以下演示 KTH7816 的 CRC 计算过程。

输入数据 ​

假设我们现在有一个 12 位的数据,其十六进制形式是「3EB」。转换为二进制后,它是:0011 1110 1011。

为了便于接下来的计算,我们需要将这 12 位数据补齐至 16 位。这样,我们的数据就变成了:0000 0011 1110 1011。

输入反转 ​

在开始 CRC 计算之前,我们需要先对每 8 位的数据进行反转。原因是 CRC 算法需要从低位到高位进行计算。因此:

0000 0011 1110 1011 反转后为:1100 0000 1101 0111

生成多项式 ​

CRC 是基于多项式运算的,所以我们需要一个多项式来进行计算。这个多项式在这里被称为「生成多项式」。

KTH7816 的生成多项式是:X⁴ + X + 1。

这个多项式的意思是:1X⁴ + 0X³ + 0X² + 1X + 1

提取其系数后,我们可以得到这个多项式的二进制表示:10011。

异或除法 ​

接下来,我们要进行异或除法。首先,我们将反转后的数据末尾加上 4 个 0,使其与多项式的位数对齐。然后开始异或运算,步骤如下:

  1. 将数据与多项式对齐。
  2. 进行异或运算。
第一次对齐与异或运算
第一次对齐与异或运算

将得到的结果再与多项式对齐。重复上述步骤,直到所有位都进行了计算。

逐位异或除法的完整过程
逐位异或除法的完整过程

输出反转 ​

最后 1110 反转为 0111。注意一般大于 8 位的 CRC,依然是 8 位 8 位分别内部反转;对于这里 4 位 CRC,只在 4 位内反转。

最后输出 ​

KTH7816 最后会将 12 bit 原始数据与 4 bit CRC 结果连成一个 16 bit 数据,发送给用户:

0011 1110 1011 0111

KTH78 的 CRC 校验 ​

KTH78 系列产品以其先进的 CRC 校验功能著称。这一系列具有卓越的数据传输准确性和可靠性。它的 12 bit 位置数据提供了足够的精度,满足了大多数应用的需求,而 4 bit 的 CRC 校验确保了数据的完整性和真实性。

KTH78 系列也采用了 CRC-4/ITU 标准(上节计算演示就是基于此标准),这是一个广泛认可和使用的标准,提供了稳定和可靠的校验功能。与其他品牌的类似产品相比,KTH78 在数据处理速度和准确率方面都表现出色。

此外,其输入反转和输出反转的特点进一步增强了其校验功能,确保了即使在嘈杂的数据环境中,数据传输也不会出现错误。这种高度的精度和可靠性使 KTH78 系列成为了许多行业专家和技术人员的首选。

本文首发于微信公众号「昆泰芯微电子」,2023-10-13。查看原文

同栏目文章 ​

需要选型建议、样品或技术支持?

昆泰芯提供芯片选型、磁场仿真与方案设计支持,欢迎与我们的销售和技术团队联系。

泉州总部 · 苏州 / 上海 / 南京 / 杭州研发中心 · 深圳运营中心 | 闽ICP备18009754号