CRC(循環(huán)冗余校驗(yàn))是一種根據(jù)數(shù)據(jù)產(chǎn)生簡(jiǎn)短固定位數(shù)校驗(yàn)碼的常用方法,主要用來(lái)檢查數(shù)據(jù)傳輸或者保存后是否有錯(cuò)誤。CRC計(jì)算單元的工作過(guò)程如下:
1. 首先,CRC計(jì)算單元會(huì)初始化一個(gè)寄存器(通常是一個(gè)32位或64位的寄存器),初始值是生成多項(xiàng)式(在這個(gè)問(wèn)題中是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è)過(guò)程會(huì)持續(xù)到所有的數(shù)據(jù)位都被處理完。最后,寄存器中的值就是CRC碼。
注意,這個(gè)過(guò)程中的關(guān)鍵步驟就是異或操作和模2除法,它們都是計(jì)算機(jī)科學(xué)中的基本操作。
審核編輯 黃宇
-
寄存器
+關(guān)注
關(guān)注
31文章
5608瀏覽量
130016 -
crc
+關(guān)注
關(guān)注
0文章
205瀏覽量
30852
發(fā)布評(píng)論請(qǐng)先 登錄
【量產(chǎn)燒錄】Verify通過(guò)還報(bào)錯(cuò)?拆一次CRC校驗(yàn)的實(shí)現(xiàn)機(jī)制就明白問(wèn)題在哪
一文解讀CRC校驗(yàn)
C語(yǔ)言的緩沖區(qū)(緩存)詳解
硬件循環(huán)冗余校驗(yàn)(CRC)模塊介紹
CRC校驗(yàn)的原理和應(yīng)用
CRC校驗(yàn)的本質(zhì)和物理意義
8種常用的CRC算法分享
RVMCU課堂「19」: 手把手教你玩轉(zhuǎn)RVSTAR—CRC計(jì)算篇
查找表與多項(xiàng)式近似算法實(shí)現(xiàn)初等函數(shù)
第十八章 淺談循環(huán)冗余校驗(yàn)(CRC)計(jì)算單元
想從linux系統(tǒng)讀回CYC65215部件的配置程序映像,并檢查其CRC是否正確(假設(shè)它有附加 CRC),圖像有CRC嗎?
FreeRTOS進(jìn)階使用之流緩沖區(qū):高效處理字節(jié)流的秘密武器
基于Verilog語(yǔ)言實(shí)現(xiàn)CRC校驗(yàn)
這個(gè)CRC計(jì)算單元是如何基于固定的生成多項(xiàng)式(0x4C11DB7)來(lái)獲取給定數(shù)據(jù)緩沖區(qū)的CRC碼的?
評(píng)論