Selection of CRC-16-CCITT



循环冗余检查经常使用,并且与正确的配置配合得很好。国际电联(">CCIT"(的CRC被大量使用-

  • 参考文献 - CRC16-CCITT 参考 - 乔·格卢索

为什么国际电联的CRC值如此频繁地使用?可以这么说,发现了一个常见的"默认值",只是好奇为什么

多项式0x11021用于软盘。选择该多项式的部分原因是0x1021只有三个 1 位,这简化了基于硬件的 CRC 计算。对于0x10007(FOP-16(和0x14003(CRC16,CRC16-IBM(也是如此,所以我不确定为什么选择0x11021而不是其他两个在较低的16位中只有三个1位的

常见。0x11021也用于XMODEM(旧计算机的串行文件传输程序(,通常在软件中实现,其中多项式中的1位数无关紧要,但可能是因为它用于软盘而被选中。

0x11021是两个素多项式的乘积:0xf01f 和 0x3。0x3 (x+1( 将检测任何奇数位错误,它的 2 位错误检测适用于多达 32751 个数据位 + 16 crc 位 = 32767 位,足以满足 128、256、512 和 1024 字节的软盘扇区大小(也可用于 2048 字节,但我不记得扇区大小为 2048 字节的软盘(。我不知道为单突发错误检测选择多项式有任何优势。一些多项式更适合单脉冲串误差校正,但单脉冲串校正并不常见。

我提到的另外两个多项式是相似的,0x10007 = 0xfffd * 0x3 ,0x14003 = 0xc001 * 0x3。

最新更新