CRC(Cyclic Redundancy Check),即循环冗余校核,是一种根据网络数据包或电脑文件等数据产生简短固定位数校核码的快速算法,主要用来检测或校核数据传输或者保存后可能出现的错误。CRC利用除法及余数的原理,实现错误侦测的功能,具有原理清晰、实现简单等优点。这里我们只作简单介绍。
基本原理
对于长度为K的比特数据,CRC位数为n,也就是CRC多项式编码结果为n,输出(k,n)数据,总长度为k+n。这里我们以多项式:
为例,利用LFSR方法进行深入了解其工作原理。该多项式的最高项次数为16,阶数为16。

如果实现16阶CRC并行计算结果可以写作:
| b0 | bin^b15_inst |
| b1 | b0_inst |
| b2 | b1_inst |
| b3 | b2_inst |
| b4 | b3_inst |
| b5 | b4_inst^bin^b15_inst |
| b6 | b5_inst |
| b7 | b6_inst |
| b8 | b7_inst |
| b9 | b8_inst |
| b10 | b9_inst |
| b11 | b10_inst |
| b12 | b11_inst^bin^b15_inst |
| b13 | b12_inst |
| b14 | b13_inst |
| b15 | b14_inst |
本文介绍了CRC(循环冗余校验)的基本原理,使用16阶多项式和LFSR方法,详细说明了如何通过并行计算实现CRC校验,以检测数据传输或存储中的错误。

被折叠的 条评论
为什么被折叠?



