CRC(循環(huán)冗余校驗(yàn))是一種根據(jù)數(shù)據(jù)產(chǎn)生簡短固定位數(shù)校驗(yàn)碼的常用方法,主要用來檢查數(shù)據(jù)傳輸或者保存后是否有錯(cuò)誤。CRC計(jì)算單元的工作過程如下:
1. 首先,CRC計(jì)算單元會(huì)初始化一個(gè)寄存器(通常是一個(gè)32位或64位的寄存器),初始值是生成多項(xiàng)式(在這個(gè)問題中是0x4C11DB7)。
2. 然后,CRC計(jì)算單元會(huì)逐位處理輸入的數(shù)據(jù)緩沖區(qū)。對(duì)于每一個(gè)數(shù)據(jù)位,它都會(huì)將寄存器的當(dāng)前值與這一位進(jìn)行異或操作。
3. 如果結(jié)果的最高位(第31位或第63位)是1,那么CRC計(jì)算單元就會(huì)將寄存器與生成多項(xiàng)式進(jìn)行模2除法,并將余數(shù)保留在寄存器中。
4. 這個(gè)過程會(huì)持續(xù)到所有的數(shù)據(jù)位都被處理完。最后,寄存器中的值就是CRC碼。
注意,這個(gè)過程中的關(guān)鍵步驟就是異或操作和模2除法,它們都是計(jì)算機(jī)科學(xué)中的基本操作。
審核編輯 黃宇
-
寄存器
+關(guān)注
關(guān)注
31文章
5620瀏覽量
130455 -
crc
+關(guān)注
關(guān)注
0文章
206瀏覽量
30972
發(fā)布評(píng)論請(qǐng)先 登錄
【量產(chǎn)燒錄】Verify通過還報(bào)錯(cuò)?拆一次CRC校驗(yàn)的實(shí)現(xiàn)機(jī)制就明白問題在哪
一文解讀CRC校驗(yàn)
C語言的緩沖區(qū)(緩存)詳解
硬件循環(huán)冗余校驗(yàn)(CRC)模塊介紹
飛凌嵌入式ElfBoard-標(biāo)準(zhǔn)IO接口之設(shè)置緩沖區(qū)
CRC校驗(yàn)的原理和應(yīng)用
CRC校驗(yàn)的本質(zhì)和物理意義
8種常用的CRC算法分享
RVMCU課堂「19」: 手把手教你玩轉(zhuǎn)RVSTAR—CRC計(jì)算篇
查找表與多項(xiàng)式近似算法實(shí)現(xiàn)初等函數(shù)
求助,關(guān)于TC39x使用Fce_crc在特定PFlash范圍內(nèi)進(jìn)行CRC32校驗(yàn)失敗的問題求解
第十八章 淺談循環(huán)冗余校驗(yàn)(CRC)計(jì)算單元
這個(gè)CRC計(jì)算單元是如何基于固定的生成多項(xiàng)式(0x4C11DB7)來獲取給定數(shù)據(jù)緩沖區(qū)的CRC碼的?
評(píng)論