0

所以我很难找到一系列命令的 CRC 值,我已经有了一些命令的 CRC 值,但我需要弄清楚它们是如何计算的。在仔细检查数据流并尝试计算 CRC 后,我们无法获得已知的 CRC 值和计算出的值来匹配。我以前从未计算过 CRC,但我已经阅读了多篇关于它的论文,它似乎很容易,除了它不起作用的事实。我的手册说多项式生成器是(x^8 + x^7 + X^2 + X^0),它给了我一个唯一的非零值 B1(十六进制)。完整的命令是 A9E40401(十六进制),CRC 为 1E(十六进制)。我目前使用的过程涉及将数据流从十六进制转换为二进制,使用 LSB 优先规则,将 FF(hex) 插入到命令中以检测无关的零,在末尾添加 00(hex) 作为占位符,然后执行 mod2 除法,然后我将其反转并将其应用于数据流。要么我做错了什么,要么我错过了一步。我假设我提供的多项式是正确的。任何帮助将不胜感激。

4

2 回答 2

0

您可以尝试使用 RevEng来从一组示例中确定 CRC 参数。

然后就可以使用crcany生成代码了。

于 2016-10-04T01:39:34.957 回答
0

我觉得自己像个白痴。当我计算我的 CRC 时,除了最后一步,你必须执行 LSB 优先规则并且反转其余部分之外,我正确地完成了每一步。我只执行了 LSB 第一规则(认为这就是反转的意思)。所以剩下的 00011101 我得到了错误的 CRC 值(10111000)。当我应该得到 01000111 时。

于 2016-10-06T16:09:17.170 回答