推荐的CRC16多项式用于数据记录应用

时间:2012-09-03 20:21:50

标签: crc error-detection

我正在编写一个数据记录应用程序(在微控制器上运行),它将数据写入普通的嵌入式NOR型串行闪存(在本例中为AT25DF161。)

每个数据包(240或496字节)将一个接一个地单独记录到闪存中。我认为闪存中最常见的故障是卡住位 - 通常为“0”,即非擦除状态。我需要能够检测单个位事件,通常是每个记录最多两个(我认为这是100,000次写入周期后的最坏情况。)

我正在使用具有内置16位CRC计算模块的处理器,因此使用更少或更多项没有性能影响 - 那么我需要做出哪些决定才能确定最佳多项式?

2 个答案:

答案 0 :(得分:0)

使用标准多项式。您可以在here找到可供选择的列表。

答案 1 :(得分:0)

请看Philip Koopman撰写的论文“嵌入式网络的循环冗余码(CRC)多项式选择”。他分析了许多16位多项式,测量了它们对不同消息长度的错误检测能力。正如你从他的论文中看到的那样,它们并非都是平等的。对于少量错误(在您的情况下为HD = 2)和相当大的块,0xBAAD可能是一个不错的选择。