0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

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

丙丁先生的自學旅程 ? 來源:丙丁先生的自學旅程 ? 作者:丙丁先生的自學旅 ? 2024-05-16 16:06 ? 次閱讀

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)系本站處理。 舉報投訴
  • 寄存器
    +關注

    關注

    31

    文章

    5250

    瀏覽量

    119194
  • crc
    crc
    +關注

    關注

    0

    文章

    197

    瀏覽量

    29357
收藏 人收藏

    評論

    相關推薦

    如何計算BMHD中的逆CRC值?

    更新各自的 CRC 和反向 CRC 值。 * 使用 IEEE 802.3 標準中定義的 CRC-32 多項式生成
    發(fā)表于 05-31 06:43

    使用C語言實現(xiàn)的CRC計算單元的例子

    使用C語言實現(xiàn)的CRC計算單元的例子
    的頭像 發(fā)表于 05-16 16:16 ?509次閱讀

    用STM32L05xCRC模塊做modbus CRC16計算,結果不正確是為什么?

    根據(jù)參考文檔,CRC模塊可以配置CRC多項式,應該可以做(Modbus)CRC16計算,自己試了一下,發(fā)現(xiàn)結果不正確,總是一個
    發(fā)表于 04-29 06:50

    新版CubeMX CRC校驗模塊沒有Config嗎?

    使用crc16 怎么辦呢,多項式和起始值又是在哪里設置.我在HAL庫文件里也沒找到這部分的內容。有沒有熟悉的朋友幫忙指點下,該怎么用啊。謝謝啦!
    發(fā)表于 04-03 08:04

    交換芯片緩沖區(qū)大小是什么

    交換芯片緩沖區(qū)大小并不一定是固定的。緩沖區(qū)的設計和實現(xiàn)會根據(jù)芯片的具體型號、規(guī)格以及應用場景的不同而有所差異。一些交換芯片可能具有固定大小的緩沖區(qū)
    的頭像 發(fā)表于 03-18 14:42 ?339次閱讀

    使用UART FIFO緩沖區(qū)時,緩沖區(qū)中的數(shù)據(jù)有時會損壞的原因?

    1 TX FIFO 緩沖區(qū)中的一個字節(jié)從 UART 0 TX FIFO 更改為一個字節(jié)(見下圖)。 據(jù)我所見,問題發(fā)生在FIFO硬件的某個地方,因為軟件發(fā)送的數(shù)據(jù)是正確的。 UART 設置
    發(fā)表于 03-06 06:59

    RA MCU中的CRC模塊和使用方法

    瑞薩RA單片機硬件CRC計算單元采用固定多項式發(fā)生器計算
    發(fā)表于 02-26 11:45 ?640次閱讀
    RA MCU中的<b class='flag-5'>CRC</b>模塊和使用方法

    fpga報告crc故障是什么意思

    方法,通過對發(fā)送的數(shù)據(jù)進行計算并附加到數(shù)據(jù)末尾,接收方能夠使用相同的校驗算法檢測傳輸中的錯誤。CRC可以檢測多種不同類型的錯
    的頭像 發(fā)表于 01-04 11:06 ?1025次閱讀

    簡述循環(huán)冗余crc校驗方法的工作原理

    循環(huán)冗余CRC)校驗是一種常用的錯誤檢測和糾正方法,廣泛應用于通信和存儲設備中,用于確定數(shù)據(jù)在傳輸或存儲過程中是否出現(xiàn)錯誤。 CRC校驗方法的工作原理可以分為以下幾個步驟:
    的頭像 發(fā)表于 12-20 11:27 ?801次閱讀

    瑞薩RA MCU中CRC模塊的使用方法

    傳輸檢錯功能,對數(shù)據(jù)進行多項式計算,并將得到的結果附在幀的后面,接收設備也執(zhí)行類似的算法,以保證數(shù)據(jù)傳輸?shù)恼_性和完整性。
    的頭像 發(fā)表于 12-07 10:23 ?1669次閱讀
    瑞薩RA MCU中<b class='flag-5'>CRC</b>模塊的使用方法

    CRC校驗的多種Verilog實現(xiàn)方式

    CRC-8的生成多項式為G(D)=D8+D2+D+1,對CRC進行簡化表示時可以忽略最高位的D8,結合圖示中三個異或運算的位置更容易理解生成
    的頭像 發(fā)表于 11-12 09:53 ?3973次閱讀
    <b class='flag-5'>CRC</b>校驗<b class='flag-5'>碼</b>的多種Verilog實現(xiàn)方式

    C++環(huán)形緩沖區(qū)設計與實現(xiàn)

    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次閱讀
    <b class='flag-5'>C</b>++環(huán)形<b class='flag-5'>緩沖區(qū)</b>設計與實現(xiàn)

    如何在IAR Embedded Workbench中配置生成對應代碼區(qū)域的CRC校驗

    在“使用IAR Embedded Workbench和MCU的CRC模塊檢查代碼的完整性”一文中,介紹了如何在IAR Embedded Workbench中配置生成對應代碼區(qū)域的CRC
    的頭像 發(fā)表于 10-27 11:49 ?1281次閱讀
    如何在IAR Embedded Workbench中配置<b class='flag-5'>生成</b>對應代碼區(qū)域的<b class='flag-5'>CRC</b>校驗<b class='flag-5'>碼</b>

    SPI的CRC值錯誤的解決方式

    0x66 返回的數(shù)據(jù)后(最后一個周期的上升沿),立馬寫 NTC 位,則會發(fā)出錯誤的 CRC 值(0x2A,CRC
    發(fā)表于 10-20 08:10

    N32G45x硬件CRC計算Modbus的CRC16

    以前都是使用軟件CRC,浪費計算時間,有硬件CRC不用,真是可惜。本次使用硬件CRC對ModBus的CRC進行
    的頭像 發(fā)表于 10-16 15:01 ?899次閱讀
    N32G45<b class='flag-5'>x</b>硬件<b class='flag-5'>CRC</b><b class='flag-5'>計算</b>Modbus的<b class='flag-5'>CRC</b>16