新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 在Virtex-5 FPGA芯片中使用CRC硬模塊

在Virtex-5 FPGA芯片中使用CRC硬模塊

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

  數(shù)據(jù)損壞是與數(shù)據(jù)傳輸和存儲(chǔ)有關(guān)的首要問(wèn)題。只要是在通道上傳輸數(shù)據(jù),就總會(huì)有出現(xiàn)某些錯(cuò)誤的有限概率。

  關(guān)鍵是接收模塊要能區(qū)分無(wú)錯(cuò)消息和有錯(cuò)消息。檢錯(cuò)有多種方法,其中大多數(shù)都是專門為此目的引入冗余位。數(shù)據(jù)通信中常用的檢錯(cuò)方法包括奇偶碼、漢明碼和循環(huán)冗余校驗(yàn)(),其中使用最廣泛。

  根據(jù)一個(gè)給定的數(shù)據(jù)位組算出,然后在傳輸或存儲(chǔ)之前附加到數(shù)據(jù)幀尾部。接收或檢索到幀后,對(duì)其內(nèi)容重新計(jì)算CRC,以此來(lái)驗(yàn)證其有效性,確保數(shù)據(jù)無(wú)誤。

  本文簡(jiǎn)述CRC計(jì)算所依據(jù)的原理,并且探討用線性反饋移位寄存器實(shí)現(xiàn)其硬件的方法。然后,我們把注意力轉(zhuǎn)向?TM-5 LXT/SXT 器件中存在的 CRC 硬模塊。

  原理

  加法和減法運(yùn)算是用模2算法執(zhí)行;也就是說(shuō),這兩種運(yùn)算與“異或”(XOR)運(yùn)算相同。除了沒(méi)有進(jìn)位,多項(xiàng)式算法中的兩數(shù)相加與普通二進(jìn)制算法中的多數(shù)相加相同。

  例如:二進(jìn)制消息流11001011表達(dá)為x7+x6+x3+x+1。傳輸點(diǎn)與接收點(diǎn)約定一個(gè)固定多項(xiàng)式,稱為生成器多項(xiàng)式;這是CRC計(jì)算的關(guān)鍵參數(shù)。

  將數(shù)據(jù)解釋為一個(gè)多項(xiàng)式的系數(shù),用一個(gè)給定的生成器多項(xiàng)式除這些系數(shù)。除得的余數(shù)就是CRC。假設(shè)有一個(gè)m位消息序列和一個(gè)r階生成器多項(xiàng)式,發(fā)射器創(chuàng)建一個(gè)n位 (n=m+r)序列,稱為幀校驗(yàn)序列 (FCS),使這個(gè)(m+r)位合成幀可以被一個(gè)預(yù)先確定的序列整除。

  發(fā)射器將r個(gè)0位附加到m位的消息,并且用生成器多項(xiàng)式除所得 m+r-1階多項(xiàng)式。這樣可得到一個(gè)階數(shù)等于或小于(r-1)的余數(shù)多項(xiàng)式。該余數(shù)多項(xiàng)式有r個(gè)系數(shù),這些系數(shù)形成校驗(yàn)和。將商丟棄。傳輸?shù)臄?shù)據(jù)是原m位消息后附r位校驗(yàn)和。

  在接收器上,可以按以下兩種標(biāo)準(zhǔn)方法之一評(píng)估所接收數(shù)據(jù)的有效性:
  對(duì)收到的前m個(gè)位再次計(jì)算校驗(yàn)和,然后與收到的校驗(yàn)和(收到的后r個(gè)位)進(jìn)行比較。
  對(duì)收到的全部(m+r)個(gè)位計(jì)算校驗(yàn)和,然后與一個(gè)0余數(shù)進(jìn)行比較。

  為了說(shuō)明第二種方法如何得出 0余數(shù),我們做如下約定:
M=消息的多項(xiàng)表達(dá)式
R=發(fā)射器上所算得余數(shù)的多項(xiàng)表達(dá)式
G=生成器多項(xiàng)式
Q=用G除M得到的商

  傳輸?shù)臄?shù)據(jù)對(duì)應(yīng)于多項(xiàng)式 Mxr–R。變量xr表示消息為容納校驗(yàn)和而產(chǎn)生的一個(gè)r位移位。

  我們知道:Mxr=QG+R

  在發(fā)射器上將校驗(yàn)和R附加到消息中相當(dāng)于從消息中減去余數(shù)。于是,傳輸?shù)臄?shù)據(jù)變?yōu)镸xr-R=QG,這顯然是G的倍數(shù)。這就是我們?cè)诘诙N情況下得到0余數(shù)的過(guò)程。

  不過(guò),這一過(guò)程對(duì)所傳輸數(shù)據(jù)中首0位和尾0位的個(gè)數(shù)不敏感。換句話說(shuō),無(wú)論消息插入還是刪除尾0位,余數(shù)都保持為0,從而使錯(cuò)誤漏檢,這表明不會(huì)復(fù)原成同樣的位序列。下面介紹一種克服這一缺點(diǎn)的變通辦法。


上一頁(yè) 1 2 3 4 下一頁(yè)

關(guān)鍵詞: FPGA Virtex Xilinx CRC

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉