<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > CRC標準及計算過(guò)程

CRC標準及計算過(guò)程

作者: 時(shí)間:2010-08-23 來(lái)源:網(wǎng)絡(luò ) 收藏

本文引用地址:http://dyxdggzs.com/article/151633.htm

  根據應用環(huán)境與習慣的不同,又可分為以下幾種

 ?、?a class="contentlabel" href="http://dyxdggzs.com/news/listbylabel/label/CRC">CRC-12碼;

 ?、?a class="contentlabel" href="http://dyxdggzs.com/news/listbylabel/label/CRC">CRC-16碼;

 ?、跜RC-CCITT碼;

 ?、蹸RC-32碼。

  CRC-12碼通常用來(lái)傳送6-bit字符串。

  CRC-16及CRC-CCITT碼則是用來(lái)傳送8-bit字符串,其中CRC-16為美國采用,而CRC-CCITT為歐洲國家所采用。

  CRC-32碼大都被采用在一種稱(chēng)為Point-to-Point的同步傳輸中。

  生成

  下面以最常用的CRC-16為例來(lái)說(shuō)明其生成。

  CRC-16碼由兩個(gè)字節構成,在開(kāi)始時(shí)CRC寄存器的每一位都預置為1,然后把CRC寄存器與8-bit的數據進(jìn)行異或(異或:二進(jìn)制運算 相同為0,不同為1;0^0=0;0^1=1;1^0=1;1^1=0),

  之后對CRC寄存器從高到低進(jìn)行移位,在最高位(MSB)的位置補零,而最低位(LSB,移位后已經(jīng)被移出CRC寄存器)如果為1,則把寄存器與預定義的多項式碼進(jìn)行異或,否則如果LSB為零,則無(wú)需進(jìn)行異或。重復上述的由高至低的移位8次,第一個(gè)8-bit數據處理完畢,用此時(shí)CRC寄存器的值與下一個(gè)8-bit數據異或并進(jìn)行如前一個(gè)數據似的8次移位。所有的字符處理完成后CRC寄存器內的值即為最終的CRC值。

  

  1.設置CRC寄存器,并給其賦值FFFF(hex)。

  2.將數據的第一個(gè)8-bit字符與16位CRC寄存器的低8位進(jìn)行異或,并把結果存入CRC寄存器。

  3.CRC寄存器向右移一位,MSB補零,移出并檢查L(cháng)SB。

  4.如果LSB為0,重復第三步;若LSB為1,CRC寄存器與多項式碼相異或。

  5.重復第3與第4步直到8次移位全部完成。此時(shí)一個(gè)8-bit數據處理完畢。

  6.重復第2至第5步直到所有數據全部處理完成。

  7.最終CRC寄存器的內容即為CRC值。

  常用的CRC循環(huán)冗余校驗多項式如下:

  CRC(12位) =X12+X11+X3+X2+X+1

  CRC(16位) = X16+X15+X2+1

  CRC(CCITT) = X16+X12 +X5+1

  CRC(32位) = X32+X26+X23+X16+X12+X11+X10+ X8+X7+X5+X4+X2+X+1

  以CRC(16位)多項式為例,其對應校驗二進(jìn)制位列為1 1000 0000 0000 0101。

  注意:這兒列出的標準校驗多項式都含有(X+1)的多項式因子;各多項式的系數均為二進(jìn)制數,所涉及的四則運算仍遵循對二取模的運算規則。

  (注:對二取模的四則運算指參與運算的兩個(gè)二進(jìn)制數各位之間凡涉及加減運算時(shí)均進(jìn)行XOR異或運算,即:1 XOR 1=0,0 XOR 0=0,1 XOR 0=1,0 XOR 1=1,即相同為0,不同為1)



關(guān)鍵詞: 過(guò)程 計算 標準 CRC

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>