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

這個CRC計算單元是如何基于固定的生成多項式(0x4C11DB7)來獲取給定數(shù)據(jù)緩沖區(qū)的CRC碼的?
評論