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文章
5434瀏覽量
124546 -
crc
+關(guān)注
關(guān)注
0文章
204瀏覽量
30132
發(fā)布評(píng)論請(qǐng)先 登錄
請(qǐng)問(wèn)USB緩沖區(qū)取數(shù)據(jù)可以多次取嗎?
第十八章 淺談循環(huán)冗余校驗(yàn)(CRC)計(jì)算單元

想從linux系統(tǒng)讀回CYC65215部件的配置程序映像,并檢查其CRC是否正確(假設(shè)它有附加 CRC),圖像有CRC嗎?
求助,關(guān)于3014的緩沖區(qū)設(shè)置疑問(wèn)求解
求助,關(guān)于ad7616序列器模式+crc的兩個(gè)問(wèn)題求解
FreeRTOS進(jìn)階使用之流緩沖區(qū):高效處理字節(jié)流的秘密武器
基于Verilog語(yǔ)言實(shí)現(xiàn)CRC校驗(yàn)

L9663如何使用上行緩沖區(qū)發(fā)送同步脈沖?
RTOS的流緩沖區(qū)機(jī)制解析

求助,關(guān)于ADS125H02數(shù)據(jù)通訊格式及CRC校驗(yàn)問(wèn)題求解
TAS5805內(nèi)部的硬件CRC8對(duì)應(yīng)標(biāo)準(zhǔn)的哪種? CRC校驗(yàn)的數(shù)據(jù)是offset和value值嗎?
內(nèi)存緩沖區(qū)和內(nèi)存的關(guān)系
單片機(jī)中的幾種環(huán)形緩沖區(qū)的分析和實(shí)現(xiàn)

評(píng)論