LabVIEW FPGA番外篇:实验72-最全面的FPGA CRC国标算法(CRC-32、CRC-16和CRC-8)

本节实验向大家展示了在FPGA上实现了目前国标规定的所有CRC算法,分别是:CRC-8-CCITT、CRC-8-Maxim 1-Wire (DOW)、CRC-16-CCITT (0xFFFF)、CRC-16-CCITT (0x1D0F)、CRC-16-CCITT xModem 和CRC-32 IEEE 802.3。
循环冗余校验 (CRC) 本质上是一种散列函数,用于检测数据的无意更改。CRC通常也称为多项式代码校验和或帧校验序列 (FCS),关于CRC不同的标准算法计算过程如下:
CRC-32 IEEE 802.3算法使用查找表和多项式x32+x26+x23+x22+x16+x12+x11+x10+ x8+x7+x5+x4+x2+x+1计算 CRC。
CRC-16-CCITT算法采用多项式x16+x12+x5+1;3个版本中的每一个都使用不同的初始值(0xFFF、0x1D0F 和 xModem 0x0000)。
CRC-8-CCITT和CRC-8-Maxim算法使用查找表分别采用多项式x8+x2+x+1和x8+x5+ x4+1进行计算CRC。


