CRC(循環(huán)冗余校驗)是一種根據(jù)數(shù)據(jù)產(chǎn)生簡短固定位數(shù)校驗碼的常用方法,主要用來檢查數(shù)據(jù)傳輸或者保存后是否有錯誤。CRC計算單元的工作過程如下:
1. 首先,CRC計算單元會初始化一個寄存器(通常是一個32位或64位的寄存器),初始值是生成多項式(在這個問題中是0x4C11DB7)。
2. 然后,CRC計算單元會逐位處理輸入的數(shù)據(jù)緩沖區(qū)。對于每一個數(shù)據(jù)位,它都會將寄存器的當(dāng)前值與這一位進(jìn)行異或操作。
3. 如果結(jié)果的最高位(第31位或第63位)是1,那么CRC計算單元就會將寄存器與生成多項式進(jìn)行模2除法,并將余數(shù)保留在寄存器中。
4. 這個過程會持續(xù)到所有的數(shù)據(jù)位都被處理完。最后,寄存器中的值就是CRC碼。
注意,這個過程中的關(guān)鍵步驟就是異或操作和模2除法,它們都是計算機科學(xué)中的基本操作。
審核編輯 黃宇
-
寄存器
+關(guān)注
關(guān)注
31文章
5434瀏覽量
124513 -
crc
+關(guān)注
關(guān)注
0文章
204瀏覽量
30129
發(fā)布評論請先 登錄
請問USB緩沖區(qū)取數(shù)據(jù)可以多次取嗎?
想從linux系統(tǒng)讀回CYC65215部件的配置程序映像,并檢查其CRC是否正確(假設(shè)它有附加 CRC),圖像有CRC嗎?
求助,關(guān)于3014的緩沖區(qū)設(shè)置疑問求解
求助,關(guān)于ad7616序列器模式+crc的兩個問題求解
FreeRTOS進(jìn)階使用之流緩沖區(qū):高效處理字節(jié)流的秘密武器
基于Verilog語言實現(xiàn)CRC校驗

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

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

評論