想象你正在写一封重要的信,里面有你想告诉朋友的秘密代码。但是你担心这封信在传送过程中可能被风吹散,或者有人拿错了某一页。
为了确保你的朋友能准确无误地读到你的秘密代码,你决定在每一页的底部都写下一个小标记,这个标记是这一页上所有文字的字数。只要内容没错,计算出的字数就会与你写下的匹配。这样,你的朋友在阅读信时,只要检查每一页的内容与字数是否匹配,就可以确保这封信的内容是完整且没有错误的。
这里,信件的内容代表数据,而你写在每一页底部的标记就是CRC校验码。在信号传输领域更加复杂, 并不是数字数, 而是将所有内容按照一定规则算出来一个编码。
演示KTH7816 的CRC计算过程
01输入数据
假设我们现在有一个12位的数据,其十六进制形式是"3EB"。转换为
二进制后,它是:0011 1110 1011。
为了便于接下来的计算,我们需要将这12位数据补齐至16位。这样,我们的数据就变成了:0000 0011 1110 1011。
02输入反转
在开始CRC计算之前,我们需要先对每8位的数据进行反转。原因是
CRC算法需要从低位到高位进行计算。因此:
0000 0011 1110 1011 反转后为:1100 0000 1101 0111
03生成多项式
CRC是基于多项式运算的,所以我们需要一个多项式来进行计算。这
个多项式在这里被称为"生成多项式"。
KTH7816的生成多项式是:X4 + X + 1。
这个多项式的意思是:1X4 + 0X3 + 0X2 + 1X + 1
提取其系数后,我们可以得到这个多项式的二进制表示:10011。
04异或除法
接下来,我们要进行异或除法。首先,我们将反转后的数据末尾加上
4个0,使其与多项式的位数对齐。然后开始异或运算,步骤如下:
(1) 将数据与多项式对齐。
(2) 进行异或运算。
将得到的结果再与多项式对齐。
重复上述步骤,直到所有位都进行了计算。
05输出反转
最后1110 反转0111, 注意一般大于8位的CRC, 依然是8位8位分别内部反转, 对于这里4位CRC, 只在4位内反转。
06最后输出
KTH7816最后会将原始的数字和CRC结果连成一个16bit数据, 发送给用户
0000 0011 1110 1011 0111
KTH78系列产品以其先进的CRC校验功能著称。这一系列具有卓越的数据传输准确性和可靠性。它的12bit位置数据提供了足够的精度,满足了大多数应用的需求,而4bit的CRC校验确保了数据的完整性和真实性
KTH78系列也采用了CRC-4/ITU标准(上节计算演示就是基于此标准),这是一个广泛认可和使用的标准,提供了稳定和可靠的校验功能。与其他品牌的类似产品相比,KTH78在数据处理速度和准确率方面都表现出色。
此外,其输入反转和输出反转的特点进一步增强了其校验功能,确保了即使在嘈杂的数据环境中,数据传输也不会出现错误。这种高度的精度和可靠性使KTH78系列成为了许多行业专家和技术人员的首选。