CAN 总线中生成多项式 (CRC) 的最大次数

问题描述 投票:0回答:1

我是 CAN 初学者,我有一个问题。

我在文档中看到 CRC 中的生成多项式 ist (x^15 + x^14 + x^10 + x^8 + x^7 +x^4 +x^3 + x^0) 和位数CAN总线中的CRC是15。那么当CAN数据帧只有15位时,如何将这个多项式写入到CAN数据帧中呢?我们以 x^0 开始,以 x^15 结束意味着我们需要 16 位而不是 15 位。或者它会自动将 x^0 添加到生成多项式中吗?

提前致谢

我用Google搜索过,但找不到答案

can-bus crc
1个回答
0
投票

n 位 CRC 的多项式是 nth 次多项式,因此有 n+1 项。 CRC 寄存器有 n 位。写入的是 CRC 寄存器的内容,因此在本例中为 15 位。

当一位被移出寄存器时,并且该位是 1,则从寄存器和移出的高位中减去(异或)多项式,其中多项式的高项 (

x n)抵消移出的位。这将寄存器加移出位更新为该多项式的模数。该高位总是被取消,因此不需要存储,也不需要发送。

这类似于计算以某个数字为模的整数和。假设以 13 为模。每次在总和上加上一个小增量,您就会看到结果是否为 13 或更大。如果是,则减去 13。

© www.soinside.com 2019 - 2024. All rights reserved.