CRC-16-CCITT的选择

问题描述 投票:0回答:1

经常使用循环冗余校验,并且在正确的配置下效果很好。 ITU(“ CCIT”)CRC被大量使用-

为什么经常使用ITU的CRC值?可以说,找到了一个常见的“默认”,只是好奇为什么

crc
1个回答
0
投票

多项式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。

© www.soinside.com 2019 - 2024. All rights reserved.