亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        CRC-32的算法研究與程序?qū)崿F(xiàn)

        2008-04-12 00:00:00任園園劉建平
        中國新技術(shù)新產(chǎn)品 2008年24期

        摘要:循環(huán)冗余校臉CRC(Cyclic Redundancy Check)是一種編碼簡單,且高效、可靠的差錯控制方法,廣泛應(yīng)用于工業(yè)測控及數(shù)據(jù)通信領(lǐng)城。首先分析了CRC的校驗原理、冗余位的產(chǎn)生方法、性能分析。然后以CRC-32為例,給出了軟件實現(xiàn)算法的C語言代碼。

        關(guān)鍵詞:差錯控制;循環(huán)冗余校驗(CRC);檢錯碼

        0 引言

        檢錯(和糾錯)技術(shù)的基本思想都是利用發(fā)送端發(fā)送的所有消息比特產(chǎn)生一個或多個用于檢錯(和糾錯)的特殊比特(如圖1所示)。

        實現(xiàn)檢錯功能的差錯控制方法很多,傳統(tǒng)的有:奇偶校驗、校驗和檢測、重復(fù)碼校驗、恒比碼校驗、行列冗余碼校驗等,這些方法都是增加數(shù)據(jù)的冗余量,將校驗碼和數(shù)據(jù)一起發(fā)送到接受端。接受端對接受到的數(shù)據(jù)進行相同校驗,再將得到的校驗碼和接受到的校驗碼比較,如果二者一致則認為傳輸正確。

        循環(huán)冗余校驗CRC(Cyclic Redundancy Check)是由分組線性碼的分支而來,其主要應(yīng)用是二元碼組。編碼簡單且誤判概率很低,在通信系統(tǒng)中得到了廣泛的應(yīng)用。

        1 CRC校驗原理

        CRC校驗主要是利用線性編碼理論,其基本原理如下:

        在發(fā)送端,根據(jù)要傳送的k位二進制碼信息序列,以一定的規(guī)則產(chǎn)生一個校驗用的r位監(jiān)督碼(即CRC碼),并附在信息序列后邊,構(gòu)成一個新的(k+r)位二進制碼序列,發(fā)送出去;在接收端,根據(jù)信息碼和CRC碼之間所遵循的規(guī)則進行校驗,以確定傳送中是否出錯。

        校驗碼R是通過對數(shù)據(jù)序列D進行二進制除法取余運算得到的,它被一個稱為生成多項式的(r+1)位二進制序列G=[grgr-1…g1g0]來除,用多項式表示為

        其中xrD(x)表示將數(shù)據(jù)序列D左移r位(即在D的末尾再增加r個位), Q(x)代表這一除法所得的商,R(x)就是所需的余式.這一運算關(guān)系還可以用下式來表示:

        其中,Re[]表示對括號內(nèi)的式子進行取余運算。

        校驗碼的編碼計算如上所述,而校驗過程則是對M序列直接進行除法取余運算,即

        所得到的余式R(x)若為0表示數(shù)據(jù)正確,否則認為發(fā)生錯誤。

        2 CRC校驗的檢錯性能

        CRC校驗碼的檢錯能力與其生成多項式G(X)密切相關(guān)。G(X)的次數(shù)越高,其檢錯能力越強。若CRC校驗的生成多項式G(X)的最高次冪為r,則該CRC校驗碼的檢錯性能如下:(1)可檢出所有奇數(shù)個錯誤;(2)可檢出所有2bit個錯誤;(3)可檢出所有長度<=r個bit的突發(fā)錯誤;(4)對于長度二r+1個比特的突發(fā)錯誤,其漏檢率僅為:1/2r-1;(5)對于長度>r+1個比特的突發(fā)錯誤,其漏檢率僅為:1/2r;

        CRC碼具有良好的檢錯性能,因而在數(shù)據(jù)通信中得到廣泛應(yīng)用。

        3 CRC-32的程序?qū)崿F(xiàn)

        編寫CRC校驗程序有2種辦法:一種為計算法,計算法就是依據(jù)CRC校驗碼的產(chǎn)生原理來設(shè)計程序。其優(yōu)點是模塊代碼少,修改靈活,可移植性好;其缺點為計算量大。另一種為查表法,查表法的優(yōu)缺點與計算法的正好相反,可以大大降低CPU的運算時間。這種方法應(yīng)用比較廣泛。

        下面是生成CRC-32校驗碼的子程序。參數(shù)表可以先在PC機上算出來,也可在程序初始化時完成。下面是用于計算參數(shù)表的c語言子程序,在Visual C++ 6.0下編譯通過。

        #include

        unsigned long int crc32_table[256];

        unsigned long int ulPolynomial = 0x04c11db7;

        unsigned long int Reflect(unsigned long int ref, char ch)

        {unsigned long int value(0); // 交換bit0和bit7,bit1和bit6,類推

        for(int i = 1; i < (ch + 1); i++)

        {if(ref 1)value |= 1 << (ch - i);

        ref >>= 1;

        }

        return value;

        }

        unsigned long crc_32_tab[256]={0x00000000, 0x77073096, 0xee0e612c, 0x990951ba, 0x076dc419, 0x706af48f, 0xe963a535, 0x9e6495a3,0x0edb8832,…, 0x5a05df1b, 0x2d02ef8d};//事先計算出的參數(shù)表,共有256項,未全部列出。

        unsigned long GenerateCRC32(char xdata * DataBuf,unsigned longlen)

        {unsigned long oldcrc32;

        unsigned long crc32;

        unsigned long oldcrc;

        unsignedint charcnt;

        char c,t;

        oldcrc32 = 0x00000000; //初值為0

        charcnt=0;

        while (len--) {

        t= (oldcrc32 >> 24) 0xFF; //要移出的字節(jié)的值

        oldcrc=crc_32_tab[t]; //根據(jù)移出的字節(jié)的值查表

        c=DataBuf[charcnt];//新移進來的字節(jié)值

        oldcrc32= (oldcrc32 << 8) | c; //將新移進來的字節(jié)值添在寄存器末字節(jié)中

        oldcrc32=oldcrc32^oldcrc; //將寄存器與查出的值進行xor運算

        charcnt++;}

        crc32=oldcrc32;

        return crc32;

        }

        4 結(jié)束語

        本文給出的CRC-32檢驗碼的C語言源程序,已經(jīng)在PC機上驗證通過,并且應(yīng)用與基于CMX7143芯片的數(shù)傳電臺中,具有良好的可移植性。

        參考文獻

        [1]尹長川,郝建軍,羅濤等譯.數(shù)字通信基礎(chǔ)(M). 北京:機械工業(yè)出版社,2005原書第二版.

        [2] 李壽強,循環(huán)冗余校驗CRC的算法分析及其實現(xiàn)方法(J).成都電子機械高等??茖W(xué)校學(xué)報,2003,12.

        [3]王新梅,肖國鎮(zhèn)編著.糾錯碼原理與方法.西安:西安電子科技大學(xué)出版社,2001

        [4] 張海林,葛思擘,施仁.一種新型循環(huán)冗余碼校驗算法的研究(J)。西安交通大學(xué)學(xué)報,2003,10(37).

        [5] 王忠,李延社,游智勝.CRC算法設(shè)計與程序?qū)崿F(xiàn)(J).電子測量技術(shù),2007,12(30)

        凹凸在线无码免费视频| 亚洲成人av在线播放不卡| 91久久偷偷做嫩模影院| 特黄大片又粗又大又暴| 女人大荫蒂毛茸茸视频| 九九在线精品视频xxx| 久久开心婷婷综合中文 | 国产午夜片无码区在线播放| 第一九区另类中文字幕| 成人免费看aa片| 欧美日韩亚洲国内综合网| 日本不卡一区二区高清中文| 性色国产成人久久久精品二区三区 | 日韩av在线毛片| 91青青草视频在线播放| 色狠狠一区二区三区中文| 精品国产乱码久久久久久郑州公司| 使劲快高潮了国语对白在线| 亚洲一区二区在线视频播放| 日本高清在线播放一区二区| 久久精品国产亚洲av麻豆长发 | 国产精品23p| 天堂av一区二区在线| 亚洲一区在线观看中文字幕| 情侣黄网站免费看| 最近日韩激情中文字幕| 国产成人福利av一区二区三区| 亚洲一区二区三区精品| 日韩精品无码中文字幕电影| 中文字幕在线日韩| 久久2020精品免费网站| 国产猛男猛女超爽免费视频| 永久免费的av在线电影网无码 | 成年奭片免费观看视频天天看| 在线小黄片视频免费播放| 日本久久久久亚洲中字幕| 欧美极品美女| 国产三级自拍视频在线| 亚洲精品中文字幕乱码影院| 少妇无码一区二区三区免费| 精品国产性色av网站|