CRC(循環(huán)冗余校驗)是一種根據(jù)數(shù)據(jù)產生簡短固定位數(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除法,它們都是計算機科學中的基本操作。
審核編輯 黃宇
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。
舉報投訴
相關推薦
更新各自的 CRC 和反向 CRC 值。
* 使用 IEEE 802.3 標準中定義的 CRC-32 多項式生成
發(fā)表于 05-31 06:43
使用C語言實現(xiàn)的CRC計算單元的例子
發(fā)表于 05-16 16:16
?509次閱讀
根據(jù)參考文檔,CRC模塊可以配置CRC多項式,應該可以做(Modbus)CRC16計算,自己試了一下,發(fā)現(xiàn)結果不正確,總是一個
發(fā)表于 04-29 06:50
使用crc16 怎么辦呢,多項式和起始值又是在哪里設置.我在HAL庫文件里也沒找到這部分的內容。有沒有熟悉的朋友幫忙指點下,該怎么用啊。謝謝啦!
發(fā)表于 04-03 08:04
交換芯片緩沖區(qū)大小并不一定是固定的。緩沖區(qū)的設計和實現(xiàn)會根據(jù)芯片的具體型號、規(guī)格以及應用場景的不同而有所差異。一些交換芯片可能具有固定大小的緩沖區(qū)
發(fā)表于 03-18 14:42
?339次閱讀
1 TX FIFO 緩沖區(qū)中的一個字節(jié)從 UART 0 TX FIFO 更改為一個字節(jié)(見下圖)。
據(jù)我所見,問題發(fā)生在FIFO硬件的某個地方,因為軟件發(fā)送的數(shù)據(jù)是正確的。
UART 設置
發(fā)表于 03-06 06:59
瑞薩RA單片機硬件CRC計算單元采用固定的多項式發(fā)生器來計算
發(fā)表于 02-26 11:45
?640次閱讀
方法,通過對發(fā)送的數(shù)據(jù)進行計算并附加到數(shù)據(jù)末尾,接收方能夠使用相同的校驗算法來檢測傳輸中的錯誤。CRC可以檢測多種不同類型的錯
發(fā)表于 01-04 11:06
?1025次閱讀
循環(huán)冗余碼(CRC)校驗是一種常用的錯誤檢測和糾正方法,廣泛應用于通信和存儲設備中,用于確定數(shù)據(jù)在傳輸或存儲過程中是否出現(xiàn)錯誤。 CRC校驗方法的工作原理可以分為以下幾個步驟:
發(fā)表于 12-20 11:27
?801次閱讀
傳輸檢錯功能,對數(shù)據(jù)進行多項式計算,并將得到的結果附在幀的后面,接收設備也執(zhí)行類似的算法,以保證數(shù)據(jù)傳輸?shù)恼_性和完整性。
發(fā)表于 12-07 10:23
?1669次閱讀
該CRC-8的生成多項式為G(D)=D8+D2+D+1,對CRC進行簡化表示時可以忽略最高位的D8,結合圖示中三個異或運算的位置更容易理解生成
發(fā)表于 11-12 09:53
?3973次閱讀
Buffer) 環(huán)形緩沖區(qū)(Circular Buffer),也被稱為循環(huán)緩沖區(qū)(Cyclic Buffer)或者環(huán)形隊列(Ring Buffer),是一種數(shù)據(jù)結構類型,它在內存中形成一個環(huán)形
發(fā)表于 11-09 11:21
?1271次閱讀
在“使用IAR Embedded Workbench和MCU的CRC模塊來檢查代碼的完整性”一文中,介紹了如何在IAR Embedded Workbench中配置生成對應代碼區(qū)域的CRC
發(fā)表于 10-27 11:49
?1281次閱讀
0x66 返回的數(shù)據(jù)后(最后一個周期的上升沿),立馬寫 NTC 位,則會發(fā)出錯誤的 CRC 值(0x2A,CRC
發(fā)表于 10-20 08:10
以前都是使用軟件CRC,浪費計算時間,有硬件CRC不用,真是可惜。本次使用硬件CRC對ModBus的CRC進行
發(fā)表于 10-16 15:01
?899次閱讀
評論