LabVIEW FPGA番外篇:實(shí)驗(yàn)72-最全面的FPGA CRC國(guó)標(biāo)算法(CRC-32、CRC-16和CRC-8)

????????本節(jié)實(shí)驗(yàn)向大家展示了在FPGA上實(shí)現(xiàn)了目前國(guó)標(biāo)規(guī)定的所有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。
????????循環(huán)冗余校驗(yàn) (CRC) 本質(zhì)上是一種散列函數(shù),用于檢測(cè)數(shù)據(jù)的無意更改。CRC通常也稱為多項(xiàng)式代碼校驗(yàn)和或幀校驗(yàn)序列 (FCS),關(guān)于CRC不同的標(biāo)準(zhǔn)算法計(jì)算過程如下:
????????CRC-32 IEEE 802.3算法使用查找表和多項(xiàng)式x32+x26+x23+x22+x16+x12+x11+x10+ x8+x7+x5+x4+x2+x+1計(jì)算 CRC。
????????CRC-16-CCITT算法采用多項(xiàng)式x16+x12+x5+1;3個(gè)版本中的每一個(gè)都使用不同的初始值(0xFFF、0x1D0F 和 xModem 0x0000)。
?? ?CRC-8-CCITT和CRC-8-Maxim算法使用查找表分別采用多項(xiàng)式x8+x2+x+1和x8+x5+ x4+1進(jìn)行計(jì)算CRC。



標(biāo)簽: