高速以太網(wǎng)CRC校驗(yàn)的實(shí)現(xiàn)
一、引言
為了確保數(shù)據(jù)在計(jì)算機(jī)系統(tǒng)中傳輸和存儲(chǔ)中正確可靠,引入了信道編碼。對(duì)于信道編碼有兩個(gè)方面,一是要求編碼后的碼流頻譜適應(yīng)信道頻率特性,二是檢測(cè)并糾正產(chǎn)生的誤碼。前者屬于譜成形技術(shù),后者為差錯(cuò)控制技術(shù)。CRC碼屬于后者。它是通過(guò)增加冗余信息,達(dá)到發(fā)現(xiàn)誤碼的目的。常見(jiàn)的冗余校驗(yàn)有奇偶校驗(yàn),海明校驗(yàn),循環(huán)冗余校驗(yàn)。
本文討論循環(huán)冗余校驗(yàn)(CRC)的實(shí)現(xiàn),及其在以太網(wǎng)中的應(yīng)用。
二、循環(huán)冗余碼介紹
1.循環(huán)冗余碼是建立在近世代數(shù)基礎(chǔ)上的。編解碼電路簡(jiǎn)單,檢錯(cuò)能力強(qiáng)。在計(jì)算機(jī)系統(tǒng)的數(shù)據(jù)存儲(chǔ)及傳輸中得到廣泛應(yīng)用。
2.編碼原理
設(shè)待發(fā)送比特?cái)?shù)據(jù)為D(x),生成多項(xiàng)式為G(x)。信息碼長(zhǎng)k位,校驗(yàn)碼長(zhǎng)n-k位,則編碼后的碼長(zhǎng)為n位。如圖1:

編碼步驟:信息數(shù)據(jù)D(x)乘以,得到的多項(xiàng)式除以生成多項(xiàng)式G(x),最終得到的余式R(x)即為CRC校驗(yàn)碼。它跟在信息碼后一并發(fā)往信道。并不是所有的多項(xiàng)式都可以做位生成多項(xiàng)式G(x),常見(jiàn)的生成多項(xiàng)式有:
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
三、CRC32的實(shí)現(xiàn)
以太網(wǎng)信道編碼采用的是CRC32,所以在這里給出CRC32的實(shí)現(xiàn),它在一般CRC基礎(chǔ)上增加了些細(xì)節(jié)。
介紹以太網(wǎng)MAC幀結(jié)構(gòu):

從數(shù)學(xué)上講,相應(yīng)給定幀的CRC值由下述過(guò)程定義:
1. 對(duì)該幀的前32位作求補(bǔ)運(yùn)算。
2. 然后,將該幀的n位看作為(n-1)階多項(xiàng)式M(x)的系數(shù)。
3. M(x)乘以,然后除以G(x),得到余式R(x)。
4. 對(duì)該比特位逐位求補(bǔ),結(jié)果作為CRC。
主要實(shí)現(xiàn)方式有串行和并行兩種:
1.通過(guò)線性反饋移位寄存器串行實(shí)現(xiàn)(以CRC-CCITT為例),見(jiàn)圖2

信息流由低位送入寄存器,當(dāng)所有信息比特送入寄存器完畢后,寄存器中則為校驗(yàn)碼。
2.CRC32的并行實(shí)現(xiàn)
串行處理對(duì)于高速以太網(wǎng)如100M,10G等,顯然是不合適的,在此我門(mén)給出CRC的并行實(shí)現(xiàn)方法,以一個(gè)字節(jié)位處理單位。下面給出C語(yǔ)言實(shí)現(xiàn)的CRC32源程序:



由于以太網(wǎng)CRC32要求對(duì)幀的前32bit取反,我門(mén)可以初始化寄存器為全1來(lái)達(dá)到此目的。
Crcbuff中存放需要編碼的信息比特,最后計(jì)算出CRC校驗(yàn)碼,跟隨信息碼一同發(fā)送出去。
四、總結(jié)
本文是針對(duì)項(xiàng)目中嵌入式設(shè)備的聯(lián)網(wǎng)問(wèn)題,設(shè)計(jì)的CRC32校驗(yàn)算法,已經(jīng)在FPGA中成功實(shí)現(xiàn),由于用FPGA實(shí)現(xiàn)編碼相對(duì)簡(jiǎn)單,這里就不再累述。
本文標(biāo)簽:高速以太網(wǎng)CRC校驗(yàn)的實(shí)現(xiàn)
* 由于無(wú)法獲得聯(lián)系方式等原因,本網(wǎng)使用的文字及圖片的作品報(bào)酬未能及時(shí)支付,在此深表歉意,請(qǐng)《高速以太網(wǎng)CRC校驗(yàn)的實(shí)現(xiàn)》相關(guān)權(quán)利人與機(jī)電之家網(wǎng)取得聯(lián)系。
關(guān)于“高速以太網(wǎng)CRC校驗(yàn)的實(shí)現(xiàn)”的更多資訊
個(gè)人求購(gòu)
鄔經(jīng)理 【求購(gòu)】 LED分析... 2026-4-10
李先生 【求購(gòu)】 綜合微機(jī)保... 2026-4-10
王坤 【求購(gòu)】 石英碎片 2026-4-9
陳經(jīng)理 【求購(gòu)】 攪拌設(shè)備的... 2026-4-9
周經(jīng)理 【求購(gòu)】 遠(yuǎn)大流量計(jì) 2026-4-9
蔡經(jīng)理 【求購(gòu)】 歐姆龍傳感... 2026-4-8
呂經(jīng)理 【求購(gòu)】 二手伺服變... 2026-4-8
曾經(jīng)理 【求購(gòu)】 金龍羽電線 2026-4-8
李先生 【求購(gòu)】 綜合微機(jī)保... 2026-4-10
王坤 【求購(gòu)】 石英碎片 2026-4-9
陳經(jīng)理 【求購(gòu)】 攪拌設(shè)備的... 2026-4-9
周經(jīng)理 【求購(gòu)】 遠(yuǎn)大流量計(jì) 2026-4-9
蔡經(jīng)理 【求購(gòu)】 歐姆龍傳感... 2026-4-8
呂經(jīng)理 【求購(gòu)】 二手伺服變... 2026-4-8
曾經(jīng)理 【求購(gòu)】 金龍羽電線 2026-4-8










