日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 電源 > 數(shù)字電源
[導(dǎo)讀]文章介紹了循環(huán)冗余校驗的實現(xiàn)方法,并成功應(yīng)用于嵌入式設(shè)備于互聯(lián)網(wǎng)的連接。

 

引言

    為了確保數(shù)據(jù)在計算機系統(tǒng)中傳輸和存儲中正確可靠,引入了信道編碼。對于信道編碼有兩個方面,一是要求編碼后的碼流頻譜適應(yīng)信道頻率特性,二是檢測并糾正產(chǎn)生的誤碼。前者屬于譜成形技術(shù),后者為差錯控制技術(shù)。CRC碼屬于后者。它是通過增加冗余信息,達到發(fā)現(xiàn)誤碼的目的。常見的冗余校驗有奇偶校驗,海明校驗,循環(huán)冗余校驗。

    本文討論循環(huán)冗余校驗(CRC)的實現(xiàn),及其在以太網(wǎng)中的應(yīng)用。

 

循環(huán)冗余碼介紹

   1循環(huán)冗余碼是建立在近世代數(shù)基礎(chǔ)上的。編解碼電路簡單,檢錯能力強。在計算機系統(tǒng)的數(shù)據(jù)存儲及傳輸中得到廣泛應(yīng)用。

   2編碼原理

    設(shè)待發(fā)送比特數(shù)據(jù)為Dx,生成多項式為Gx)。信息碼長k位,校驗碼長n-k位,則編碼后的碼長為n位。如圖1

 

編碼步驟:信息數(shù)據(jù)Dx)乘以 ,得到的多項式除以生成多項式Gx),最終得到的余式Rx)即為CRC校驗碼。它跟在信息碼后一并發(fā)往信道。

    并不是所有的多項式都可以做位生成多項式G(x),常見的生成多項式有:

CRC8=X8+X5+X4+1

CRC-CCITT=X16+X12+X5+1

CRC12=X12+X11+X3+X2+1

CRC16=X16+X15+X5+1

CRC32=X32+X26+X23+X22+X16+X12+X11+X10+X8+X7+X5+X4+X2+X1+1

3  CRC32的實現(xiàn)

以太網(wǎng)信道編碼采用的是CRC32,所以在這里給出CRC32的實現(xiàn),它在一般CRC基礎(chǔ)上增加了些細節(jié)。

介紹以太網(wǎng)MAC幀結(jié)構(gòu)

 

 

從數(shù)學(xué)上講,相應(yīng)給定幀的CRC值由下述過程定義:

(1)       對該幀的前32位作求補運算。

(2)       然后,將該幀的n位看作為(n-1)階多項式Mx)的系數(shù)。

(3)       Mx)乘以 ,然后除以Gx),得到余式Rx)。

(4)       對該比特位逐位求補,結(jié)果作為CRC

 

主要實現(xiàn)方式有串行和并行兩種:

a)通過線性反饋移位寄存器串行實現(xiàn)(以CRC-CCITT為例),見圖2

 

信息流由低位送入寄存器,當(dāng)所有信息比特送入寄存器完畢后,寄存器中則為校驗碼。

    bCRC32的并行實現(xiàn)

    串行處理對于高速以太網(wǎng)如100M,10G等,顯然是不合適的,在此我門給出CRC的并行實現(xiàn)方法,以一個字節(jié)位處理單位。下面給出C語言實現(xiàn)的CRC32源程序:

 

 

由于以太網(wǎng)CRC32要求對幀的前32bit取反,我門可以初始化寄存器為全1來達到此目的。

Crcbuff中存放需要編碼的信息比特,最后計算出CRC校驗碼,跟隨信息碼一同發(fā)送出去。

4總結(jié)

     本文是針對項目中嵌入式設(shè)備的聯(lián)網(wǎng)問題,設(shè)計的CRC32校驗算法,已經(jīng)在FPGA中成功實現(xiàn),由于用FPGA實現(xiàn)編碼相對簡單,這里就不再累述。

 

作者Email: lijunshen148@sohu.com

 

 

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關(guān)閉