CRC(循環(huán)冗余校驗)是一種根據數據產生簡短固定位數校驗碼的常用方法,主要用來檢查數據傳輸或者保存后是否有錯誤。CRC計算單元的工作過程如下:
1. 首先,CRC計算單元會初始化一個寄存器(通常是一個32位或64位的寄存器),初始值是生成多項式(在這個問題中是0x4C11DB7)。
2. 然后,CRC計算單元會逐位處理輸入的數據緩沖區(qū)。對于每一個數據位,它都會將寄存器的當前值與這一位進行異或操作。
3. 如果結果的最高位(第31位或第63位)是1,那么CRC計算單元就會將寄存器與生成多項式進行模2除法,并將余數保留在寄存器中。
4. 這個過程會持續(xù)到所有的數據位都被處理完。最后,寄存器中的值就是CRC碼。
注意,這個過程中的關鍵步驟就是異或操作和模2除法,它們都是計算機科學中的基本操作。
審核編輯 黃宇
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯系本站處理。
舉報投訴
-
寄存器
+關注
關注
31文章
5608瀏覽量
130002 -
crc
+關注
關注
0文章
205瀏覽量
30845
發(fā)布評論請先 登錄
相關推薦
熱點推薦
【量產燒錄】Verify通過還報錯?拆一次CRC校驗的實現機制就明白問題在哪
+內核的MCU,采用I2C BSL方式燒錄。開發(fā)一套燒錄工具時,CRC算法完全參照官方BSL協議文檔實現,本地計算結果與芯片返回的CRC始終對不上。
換了地址范圍,換
發(fā)表于 02-13 10:10
一文解讀CRC校驗
校驗的過程是什么?
發(fā)送方根據發(fā)送報文,計算出CRC值。將原始信息和該CRC值一起發(fā)送給接收方。接收方根據原始信息,按照同樣的算法,計算CRC
發(fā)表于 01-26 07:20
C語言的緩沖區(qū)(緩存)詳解
,分為輸入緩沖區(qū)和輸出緩沖區(qū)。
為什么要引入緩沖區(qū)
比如我們從磁盤里取信息,我們先把讀出的數據放在緩沖區(qū),
發(fā)表于 01-14 07:30
查找表與多項式近似算法實現初等函數
查找表與多項式近似結合算法是一種把查找表算法和多項式近似算法綜合到一起的算法。這種算法綜合了兩種基本算法各自優(yōu)勢,通過將多項式各項系數存入查找表提高計算效率。
發(fā)表于 10-28 08:10
想從linux系統(tǒng)讀回CYC65215部件的配置程序映像,并檢查其CRC是否正確(假設它有附加 CRC),圖像有CRC嗎?
我想從 linux 系統(tǒng)讀回 CYC65215 部件的配置程序映像,并檢查其 CRC 是否正確(假設它有附加 CRC)。圖像有 CRC 嗎? CRC 是否使用標準
發(fā)表于 05-23 06:22
FreeRTOS進階使用之流緩沖區(qū):高效處理字節(jié)流的秘密武器
工具,通過合理設置觸發(fā)閾值和緩沖區(qū)大小,可顯著提升系統(tǒng)性能。實際開發(fā)中需注意多核同步、阻塞策略及數據格式設計,必要時結合消息緩沖區(qū)實現更復雜的通信需求。掌握這一機制,將助你在嵌入式開發(fā)
發(fā)表于 03-24 11:37
基于Verilog語言實現CRC校驗
CRC即循環(huán)冗余校驗碼:是數據通信領域中最常用的一種查錯校驗碼,其特征是信息字段和校驗字段的長度可以任意選定。循環(huán)冗余檢查(CRC)是一種
這個CRC計算單元是如何基于固定的生成多項式(0x4C11DB7)來獲取給定數據緩沖區(qū)的CRC碼的?
評論