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

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

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

科技綠洲 ? 來(lái)源:網(wǎng)絡(luò)整理 ? 作者:網(wǎng)絡(luò)整理 ? 2023-12-20 11:27 ? 次閱讀

循環(huán)冗余碼(CRC)校驗(yàn)是一種常用的錯(cuò)誤檢測(cè)和糾正方法,廣泛應(yīng)用于通信和存儲(chǔ)設(shè)備中,用于確定數(shù)據(jù)在傳輸或存儲(chǔ)過(guò)程中是否出現(xiàn)錯(cuò)誤。

CRC校驗(yàn)方法的工作原理可以分為以下幾個(gè)步驟:

  1. 數(shù)據(jù)和生成多項(xiàng)式的補(bǔ)位
    首先,需要將需要進(jìn)行CRC校驗(yàn)的數(shù)據(jù)進(jìn)行補(bǔ)位操作。CRC校驗(yàn)算法通常以二進(jìn)制的形式工作,因此需要將原始數(shù)據(jù)轉(zhuǎn)換為二進(jìn)制。同時(shí),生成多項(xiàng)式也需要進(jìn)行補(bǔ)位操作,使其與數(shù)據(jù)的位數(shù)相對(duì)應(yīng)。

例如,如果數(shù)據(jù)為11101,生成多項(xiàng)式為1101,則將數(shù)據(jù)進(jìn)行位補(bǔ)齊,變?yōu)?110100,生成多項(xiàng)式不需要補(bǔ)位。

  1. 計(jì)算CRC值
    接下來(lái),使用位移法對(duì)補(bǔ)位后的數(shù)據(jù)進(jìn)行CRC位的計(jì)算。位移法的基本思想是,將數(shù)據(jù)位與生成多項(xiàng)式的各項(xiàng)進(jìn)行異或操作,并根據(jù)異或結(jié)果進(jìn)行位移。位移操作會(huì)將當(dāng)前的校驗(yàn)結(jié)果左移一位,并將下一位數(shù)據(jù)與生成多項(xiàng)式進(jìn)行異或。

具體操作過(guò)程如下:

  • 初始化CRC寄存器為全零
  • 將數(shù)據(jù)的第一個(gè)位與CRC寄存器的最高位進(jìn)行異或運(yùn)算,結(jié)果存回CRC寄存器
  • 將CRC寄存器左移一位,低位補(bǔ)零
  • 判斷CRC寄存器最高位是否為1,如果是,則將CRC寄存器與生成多項(xiàng)式進(jìn)行異或運(yùn)算,并將結(jié)果存回CRC寄存器
  • 重復(fù)以上過(guò)程,直到數(shù)據(jù)的所有位都處理完畢
  1. 得到CRC校驗(yàn)值
    當(dāng)所有數(shù)據(jù)位都處理完畢后,CRC寄存器中存儲(chǔ)的結(jié)果即可作為CRC校驗(yàn)值。該校驗(yàn)值可以附加在原始數(shù)據(jù)之后進(jìn)行傳輸或存儲(chǔ),接收方在接收數(shù)據(jù)后進(jìn)行CRC檢驗(yàn),通過(guò)比對(duì)計(jì)算出的校驗(yàn)值與接收到的校驗(yàn)值是否一致,來(lái)驗(yàn)證數(shù)據(jù)是否出現(xiàn)錯(cuò)誤。

需要注意的是,CRC校驗(yàn)方法并不能糾正錯(cuò)誤,只能檢測(cè)錯(cuò)誤。如果數(shù)據(jù)中存在錯(cuò)誤,校驗(yàn)結(jié)果將與接收方的計(jì)算結(jié)果不一致,接收方可以根據(jù)這一結(jié)果判斷數(shù)據(jù)是否正確。如果校驗(yàn)結(jié)果與接收方計(jì)算結(jié)果一致,可以認(rèn)為數(shù)據(jù)沒(méi)有發(fā)生錯(cuò)誤。

CRC校驗(yàn)方法的優(yōu)點(diǎn)是簡(jiǎn)單、高效,具有較高的錯(cuò)誤檢測(cè)能力。它可以檢測(cè)出大部分單位錯(cuò)誤和一些連續(xù)錯(cuò)誤,而且計(jì)算過(guò)程簡(jiǎn)單,適合硬件實(shí)現(xiàn)。但是,CRC校驗(yàn)方法也有一些缺點(diǎn),它無(wú)法檢測(cè)出少數(shù)特定類(lèi)型的錯(cuò)誤,如偶數(shù)個(gè)位錯(cuò)和某些位錯(cuò)模式。另外,CRC校驗(yàn)方法的錯(cuò)誤檢測(cè)能力與生成多項(xiàng)式的選擇有關(guān),需要根據(jù)具體情況選擇適用的生成多項(xiàng)式。

值得一提的是,CRC校驗(yàn)方法在信息安全領(lǐng)域也有著廣泛的應(yīng)用。通過(guò)選擇適當(dāng)?shù)纳啥囗?xiàng)式和其他參數(shù),可以將CRC方法應(yīng)用于數(shù)據(jù)完整性校驗(yàn)、數(shù)字簽名以及密碼學(xué)中的偽隨機(jī)數(shù)生成等重要任務(wù)中。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀(guān)點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 寄存器
    +關(guān)注

    關(guān)注

    31

    文章

    5294

    瀏覽量

    119814
  • 數(shù)據(jù)
    +關(guān)注

    關(guān)注

    8

    文章

    6808

    瀏覽量

    88743
  • CRC校驗(yàn)
    +關(guān)注

    關(guān)注

    0

    文章

    84

    瀏覽量

    15174
  • 存儲(chǔ)設(shè)備
    +關(guān)注

    關(guān)注

    0

    文章

    155

    瀏覽量

    18560
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    CRC循環(huán)冗余校驗(yàn)的算法

    想問(wèn)下51單片機(jī)和所有嵌入式中一個(gè)很基本也很常見(jiàn)的問(wèn)題,CRC循環(huán)冗余校驗(yàn)的算法中生成多項(xiàng)式為什么要那樣取(有個(gè)生成多項(xiàng)式的表格),如果信息段中一位或多位傳輸錯(cuò)誤,
    發(fā)表于 01-21 21:02

    轉(zhuǎn):循環(huán)冗余校驗(yàn)CRC)算法入門(mén)引導(dǎo)

    寫(xiě)給嵌入式程序員的循環(huán)冗余校驗(yàn)CRC)算法入門(mén)引導(dǎo)前言CRC校驗(yàn)
    發(fā)表于 08-01 18:32

    循環(huán)冗余校驗(yàn)CRC)算法入門(mén)引導(dǎo)

    循環(huán)冗余校驗(yàn)CRC)算法入門(mén)引導(dǎo)
    發(fā)表于 08-17 12:40

    循環(huán)冗余校驗(yàn)碼的單片機(jī)及CPLD 實(shí)現(xiàn)

    循環(huán)冗余校驗(yàn)(CRC)是一種可靠性很高的串行數(shù)據(jù)校驗(yàn)方法。介紹
    發(fā)表于 04-16 14:19 ?16次下載

    循環(huán)冗余校驗(yàn)碼---CRC

    循環(huán)冗余校驗(yàn)碼---CRC   二進(jìn)制信息位串沿一條信號(hào)線(xiàn)逐位在部件之間或計(jì)算機(jī)之間傳送稱(chēng)為串行傳送。
    發(fā)表于 10-13 16:52 ?7154次閱讀
    <b class='flag-5'>循環(huán)</b><b class='flag-5'>冗余</b><b class='flag-5'>校驗(yàn)碼</b>---<b class='flag-5'>CRC</b><b class='flag-5'>碼</b>

    crc校驗(yàn)基本原理

    本內(nèi)容介紹了crc校驗(yàn)基本原理,CRC幾個(gè)基本概念,CRC的生成步驟.CRC
    發(fā)表于 12-21 16:55 ?4689次閱讀

    基于FPGA的循環(huán)冗余校驗(yàn)實(shí)驗(yàn)系統(tǒng)

    文章首先分析了循環(huán)冗余校驗(yàn)碼的功能,在此基礎(chǔ)上提出了基于FPGA的實(shí)現(xiàn)方法,詳細(xì)闡述了CRC校驗(yàn)
    發(fā)表于 03-26 13:52 ?1747次閱讀
    基于FPGA的<b class='flag-5'>循環(huán)</b><b class='flag-5'>冗余</b><b class='flag-5'>校驗(yàn)</b>實(shí)驗(yàn)系統(tǒng)

    STM32L4循環(huán)冗余校驗(yàn)模塊(CRC)介紹

    STM32L4循環(huán)冗余校驗(yàn)模塊(CRC)介紹 有興趣的可以參考下
    發(fā)表于 12-25 10:38 ?27次下載

    循環(huán)冗余校驗(yàn)奇偶校驗(yàn)累加和校驗(yàn)等知識(shí)分享

    CRC校驗(yàn)循環(huán)冗余校驗(yàn))是數(shù)據(jù)通訊中最常采用的校驗(yàn)方式。在嵌入式軟件開(kāi)發(fā)中,經(jīng)常要用到
    的頭像 發(fā)表于 11-08 09:31 ?8694次閱讀
    <b class='flag-5'>循環(huán)</b><b class='flag-5'>冗余</b><b class='flag-5'>校驗(yàn)</b>奇偶<b class='flag-5'>校驗(yàn)</b>累加和<b class='flag-5'>校驗(yàn)</b>等知識(shí)分享

    crc校驗(yàn)方法及示例

     CRC循環(huán)冗余校驗(yàn)碼(Cyclic Redundancy Check[1] ):是數(shù)據(jù)通信領(lǐng)域中最常用的一種查錯(cuò)校驗(yàn)碼,其特征是信息字段
    發(fā)表于 12-04 09:35 ?1.5w次閱讀
    <b class='flag-5'>crc</b><b class='flag-5'>校驗(yàn)方法</b>及示例

    crc循環(huán)冗余校驗(yàn)碼算法

     循環(huán)冗余校驗(yàn)(Cyclic Redundancy Check, CRC)是一種根據(jù)網(wǎng)絡(luò)數(shù)據(jù)包或電腦文件等數(shù)據(jù)產(chǎn)生簡(jiǎn)短固定位數(shù)校驗(yàn)碼的一種散
    發(fā)表于 12-04 10:11 ?2.3w次閱讀
    <b class='flag-5'>crc</b><b class='flag-5'>循環(huán)</b><b class='flag-5'>冗余</b><b class='flag-5'>校驗(yàn)碼</b>算法

    CRC循環(huán)冗余校驗(yàn)簡(jiǎn)介

    CRC 是Cyclic Redundancy Check的縮寫(xiě),循環(huán)冗余校驗(yàn),用于校驗(yàn)數(shù)據(jù)傳輸?shù)耐暾浴R话闱闆r下在數(shù)據(jù)發(fā)送前計(jì)算
    的頭像 發(fā)表于 04-24 13:04 ?6711次閱讀
    <b class='flag-5'>CRC</b><b class='flag-5'>循環(huán)</b><b class='flag-5'>冗余</b><b class='flag-5'>校驗(yàn)</b>簡(jiǎn)介

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

    CRC循環(huán)冗余校驗(yàn)碼(Cyclic Redundancy Check),檢錯(cuò)碼。
    的頭像 發(fā)表于 06-21 15:03 ?3314次閱讀
    <b class='flag-5'>CRC</b><b class='flag-5'>校驗(yàn)碼</b>的多種Verilog實(shí)現(xiàn)方式

    32位可編程循環(huán)冗余校驗(yàn)(CRC)

    電子發(fā)燒友網(wǎng)站提供《32位可編程循環(huán)冗余校驗(yàn)(CRC).pdf》資料免費(fèi)下載
    發(fā)表于 09-25 11:22 ?0次下載
    32位可編程<b class='flag-5'>循環(huán)</b><b class='flag-5'>冗余</b><b class='flag-5'>校驗(yàn)</b>(<b class='flag-5'>CRC</b>)

    CRC循環(huán)冗余校驗(yàn))應(yīng)用舉例

    CRC循環(huán)冗余校驗(yàn))應(yīng)用舉例
    的頭像 發(fā)表于 05-16 16:12 ?990次閱讀