首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >了解使用LFSR实现CRC生成的两种不同方法

了解使用LFSR实现CRC生成的两种不同方法
EN

Stack Overflow用户
提问于 2014-08-21 06:48:08
回答 1查看 8.1K关注 0票数 5

有两种使用线性反馈移位寄存器(LFSR)实现CRC生成的方法,如下图所示

。图中生成多项式的系数为100111,红色的"+“圆圈是异或运算符。两者的初始化寄存器值均为00000。

例如,如果输入数据比特流是10010011,则A和B都将给出CRC校验和1010.不同之处在于A以8个移位结束,而B具有8+5=13移位,因为输入数据附加了5个零。我可以很容易地理解B,因为它非常接近模2除法。然而,我不能从数学上理解A如何在少5个班次的情况下得到同样的结果。我听说人们在谈论A利用了前置的零,但我不明白。有人能给我解释一下吗?谢谢!

EN

回答 1

Stack Overflow用户

发布于 2021-02-20 16:45:40

您可以说,架构(A)通过将polyn的MSB与Message的MSB对齐来实现模除,因此它实现了类似以下内容(在我的示例中,实际上我有另一个crc polyn ):

但在架构(B)中,您可以说我们尝试预测消息的MSB,因此我们将CRC polyn的MSB与消息的MSB-1对齐,类似于以下内容:

我可以在this tutorial中推荐有关此操作的详细信息

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25415724

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档