首页 > 解决方案 > CRC-8 与 Fletcher-16 的错误检测性能

问题描述

我有一个应用程序,我目前正在使用 Fletcher-16 校验和进行错误检测。计算速度很重要。

不过,我想知道,如果 CRC-8 算法(使用查找表)会捕获与 Fletcher-16 校验和一样多甚至更多的错误?

我可以节省查找表所需的额外 256 字节,这似乎是为了更快的计算速度而进行的公平交易。CRC-8 查找表算法肯定比任何 Fletcher-16 算法都快。

在网上搜索这个主题似乎只会产生学术结果,老实说,这超出了我的理解范围。

任何人都可以对此有所了解吗?谢谢!

标签: checksumcrc

解决方案


特蕾莎·C·马克西诺;Philip J. Koopman,“嵌入式控制网络校验和的有效性”,IEEE Transactions on Dependable and Secure Computing,vol。6,第 1 期,2009 年 3 月:

对于分别小于 128、256 和 512 位的码字长度,CRC-8、CRC-9 和 CRC-10 的性能都优于 Fletcher-16。

因此,如果要保护的码字/消息长度小于 128 位,那么 CRC-8 可能比 Fletcher-16 更好。

(请注意,并非所有 CRC 多项式都是相等的:有些比其他多项式差得多。对于 CRC-8,共识似乎是在 0xEA 上;例如,参见Philip Koopman 和 Tridib 的“嵌入式网络的循环冗余码 (CRC) 多项式选择”查克拉瓦蒂,2004 年。)


推荐阅读