欢迎光临散文网 会员登陆 & 注册

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

2021-07-16 16:44 作者:神电测控  | 我要投稿

        本节实验向大家展示了在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。

图1:基于FPGA实现的各种CRC算法项目浏览器
图2:基于FPGA实现的各种CRC算法程序前面板
图3:基于FPGA实现的各种CRC算法程序框图


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

分享到微博请遵守国家法律