日韩欧美自拍在线观看-欧美精品在线看片一区二区-高清性视频一区二区播放-欧美日韩女优制服另类-国产精品久久久久久av蜜臀-成人在线黄色av网站-肥臀熟妇一区二区三区-亚洲视频在线播放老色-在线成人激情自拍视频

淺談CRC標(biāo)準(zhǔn)及計(jì)算過程

出處:awey 發(fā)布于:2011-09-01 23:00:54

標(biāo)準(zhǔn)

  根據(jù)應(yīng)用環(huán)境與習(xí)慣的不同,CRC又可分為以下幾種標(biāo)準(zhǔn):

 ?、貱RC-12碼;

  ②CRC-16碼;

 ?、跜RC-CCITT碼;

  ④CRC-32碼。

  CRC-12碼通常用來傳送6-bit字符串。

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

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

   在國際標(biāo)準(zhǔn)中,根據(jù)生成多項(xiàng)式G(x)的不同,CRC又可分為以下幾種標(biāo)準(zhǔn):
 ?、貱RC-12碼:   G(x)=X12+X11+X3+X2+X+1
  ②CRC-16碼:   G(x)=X16+X15+X2+1
 ?、跜RC-CCITT碼: G(x)=X16+X12+X5+1
 ?、蹸RC-32碼:   G(x)=X32+X26+X23+X22+X16+X12+X11+X10+X8+X7+X5+X4+X2+X1+X+1
  CRC-12碼通常用來傳送6-bit字符串。CRC-16及CRC-CCITT碼則用是來傳送8-bit字符,其中CRC-16為美國采用,而CRC-CCITT為歐洲國家所采用。CRC-32碼大都被采用在一種稱為Point-to-Point的同步傳輸中。下面以常用的CRC-16為例來說明其生成過程。
  CRC-16碼由兩個(gè)字節(jié)構(gòu)成,在開始時(shí)CRC寄存器的每一位都預(yù)置為1,然后把CRC寄存器與8-bit的數(shù)據(jù)進(jìn)行異或,之后對CRC寄存器從高到低進(jìn)行移位,在位(MSB)的位置補(bǔ)零,而位(LSB,移位后已經(jīng)被移出CRC寄存器)如果為1,則把寄存器與預(yù)定義的多項(xiàng)式碼進(jìn)行異或,否則如果LSB為零,則無需進(jìn)行異或。重復(fù)上述的由高至低的移位8次,個(gè)8-bit數(shù)據(jù)處理完畢,用此時(shí)CRC寄存器的值與下一個(gè)8-bit數(shù)據(jù)異或并進(jìn)行如前一個(gè)數(shù)據(jù)似的8次移位。所有的字符處理完成后CRC寄存器內(nèi)的值即為終的CRC值。
  
    生成過程
    下面以常用的CRC-16為例來說明其生成過程。

    CRC16H EQU 40H         ;16位的CRC寄存器
               CRC16L EQU 41H

              ORG 0000H
                  LJMP MAIN

MAIN: MOV 30H,#10H     ;待校驗(yàn)的代碼,為六個(gè)
                    MOV 31H,#06H
                    MOV 32H,#40H
                    MOV 33H,#01H
                    MOV 34H,#00H
                    MOV 35H,#46H

            MOV R0,#30H      ;校驗(yàn)代碼的地址指針
                MOV R1,#06H
                LCALL CRC        ;調(diào)用CRC計(jì)算程序
                JMP

CRC:  MOV CC16H,#0FFH ;CRC寄存器初始化
               MOV CRC16L,#0FFH
    LP1:  MOV R2,#08H      ;右移位8次
               OV A,@R0
               XRL A,CRC16L
               MOV CRC16L,A
    LP2:  MOV A,CRC16H     ;先移高8位
               CLR C
               RRC A
               MOV CRC16H,A     ;再移低8位
               MOV A,CRC16L
               RRC A
               MOV CRC16L,A
               JNC LP3          ;判斷被移出的位是‘0’還是‘1’
               XRL CRC16H,#0A0H ;被移出的位為‘1’時(shí)CRC16寄存器與多項(xiàng)式#0A001H相異或
               XRL CRC16L,#01H
    LP3:  DJNZ R2,LP2
               INC R0
               DJNZ R1,LP1
               RET
               END

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

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

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

  3.CRC寄存器向右移一位,MSB補(bǔ)零,移出并檢查LSB。

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

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

  6.重復(fù)第2至第5步直到所有數(shù)據(jù)全部處理完成。

  7.終CRC寄存器的內(nèi)容即為CRC值。

  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

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



  

版權(quán)與免責(zé)聲明

凡本網(wǎng)注明“出處:維庫電子市場網(wǎng)”的所有作品,版權(quán)均屬于維庫電子市場網(wǎng),轉(zhuǎn)載請必須注明維庫電子市場網(wǎng),http://www.hbjingang.com,違反者本網(wǎng)將追究相關(guān)法律責(zé)任。

本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個(gè)人從本網(wǎng)轉(zhuǎn)載時(shí),必須保留本網(wǎng)注明的作品出處,并自負(fù)版權(quán)等法律責(zé)任。

如涉及作品內(nèi)容、版權(quán)等問題,請?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。

廣告
OEM清單文件: OEM清單文件
*公司名:
*聯(lián)系人:
*手機(jī)號碼:
QQ:
有效期:

掃碼下載APP,
一鍵連接廣大的電子世界。

在線人工客服

買家服務(wù):
賣家服務(wù):
技術(shù)客服:

0571-85317607

網(wǎng)站技術(shù)支持

13606545031

客服在線時(shí)間周一至周五
9:00-17:30

關(guān)注官方微信號,
第一時(shí)間獲取資訊。

建議反饋

聯(lián)系人:

聯(lián)系方式:

按住滑塊,拖拽到最右邊
>>
感謝您向阿庫提出的寶貴意見,您的參與是維庫提升服務(wù)的動(dòng)力!意見一經(jīng)采納,將有感恩紅包奉上哦!