新聞中心

EEPW首頁 > EDA/PCB > 設計應用 > 基于FPGA的循環(huán)冗余校驗實驗系統(tǒng)的實現(xiàn)

基于FPGA的循環(huán)冗余校驗實驗系統(tǒng)的實現(xiàn)

作者: 時間:2012-03-26 來源:網(wǎng)絡 收藏

摘要:文章首先分析了碼的功能,在此基礎上提出了基于的實現(xiàn)方法,詳細闡述了CRC校驗編解碼的實現(xiàn)方法,并提出了基于現(xiàn)有的實驗箱設備實現(xiàn)小型的CRC校驗系統(tǒng)的總體設計框架和設計思路,完成了CRC校驗的設計,充分提高了設備的使用效率。
關鍵字: CRC編解碼

一、引言
隨著人們對數(shù)據(jù)業(yè)務的需求越來越多,數(shù)據(jù)通信在近來得到了長足的發(fā)展。但是由于通信信道傳輸特性的不理想和加性噪聲的影響,設備之間的數(shù)據(jù)通信常會發(fā)生一些無法預測的錯誤,為確保高效而無差錯的傳輸數(shù)據(jù),降低錯誤而帶來的影響,必須對數(shù)據(jù)進行差錯檢測及控制。在諸多檢錯手段中,循環(huán)冗余檢測方法(CRC)是非常有效的一種方法。CRC是對傳送數(shù)據(jù)進行校驗的特點是:檢錯能力極強,開銷小,易于編程。從其檢錯能力來看,它所不能發(fā)現(xiàn)錯誤的幾率達0.0047%以下,從其性能及開銷上均遠遠優(yōu)于奇偶校驗以及算術和檢錯等方式。因而,在數(shù)據(jù)存儲和數(shù)據(jù)通信領域,CRC無處不在。
是在PAL、GAL、PLD等可編程器件的基礎上進一步發(fā)展的產(chǎn)物,采用了邏輯單元陣列這樣一個新概念,內(nèi)部包括可配置邏輯模塊CLB、輸出輸入模塊IOB和內(nèi)部連線三個部分。用戶可對內(nèi)部的邏輯模塊和I/O模塊重新配置,以實現(xiàn)用戶的邏輯。它還具有靜態(tài)可重復編程和動態(tài)在系統(tǒng)重構的特性,使得硬件的功能可以像軟件一樣通過編程來修改。FPGA如同一張白紙或是一堆積木,工程師可以通過傳統(tǒng)的原理圖輸入法,或是硬件描述語言自的設計一個數(shù)字系統(tǒng)。通過軟件仿真,我們可以事先驗證設計的正確性。因此,F(xiàn)PGA的使用非常靈活。利用FPGA實現(xiàn)CRC校驗是一個高效的切實可行的方法。
在教學過程中,我們嘗試利用現(xiàn)有的EDA實驗箱設備,設計實現(xiàn)小型的CRC校驗系統(tǒng),拓展設備的功能,提高設備使用效率。

二、系統(tǒng)總體設計
CRC是數(shù)據(jù)通信領域中最常用的一種差錯校驗碼,其特征是信息字段和校驗字段的長度可以任意選定。它的基本原理是:在K位信息碼后再拼接R位的校驗碼,整個編碼長度為N位,因此,這種編碼又叫(N,K)碼。對于一個給定的(N,K)碼,可以證明存在一個最高次冪為N-K=R的多項式G(x)。根據(jù)G(x)可以生成K位信息的校驗碼,而G(x)叫做這個CRC碼的生成多項式。
校驗碼的具體生成過程為:假設發(fā)送信息用信息多項式C(x)表示,將C(x)左移R位,則可表示成C(x)*2R,這樣C(x)的右邊就會空出R位,這就是校驗碼的位置。通過C(x)*2R除以生成多項式G(x)得到的余數(shù)就是校驗碼。
生成多項式是接受方和發(fā)送方的一個約定,也就是一個二進制數(shù),在整個傳輸過程中,這個數(shù)始終保持不變。在發(fā)送方,利用生成多項式對信息多項式做模2除(異或運算)生成校驗碼。在接受方利用生成多項式對收到的編碼多項式做模2除(異或運算)檢測,當被傳送信息(CRC
碼)任何一位發(fā)生錯誤時,被生成多項式做模2除(異或運算)后應該使余數(shù)不為0。
基于這樣的原理,利用FPGA實現(xiàn)的小型的循環(huán)冗余校驗可以由五個部分組成:數(shù)據(jù)輸入電路、CRC編碼處理電路、CRC解碼處理電路、時鐘電路、顯示電路。作為CRC校驗的輸入部分,本設計采用通用的數(shù)字機械式鍵盤。本系統(tǒng)顯示信息電路采用共陰極8位7段數(shù)碼管顯示碼值,使用3-8譯碼器譯碼。CRC校驗結果提示電路用LED燈顯示,方便、簡潔。時鐘電路使用可調(diào)數(shù)字信號源產(chǎn)生時鐘。編解碼處理電路使用FPGA適配器。發(fā)送端首先將數(shù)據(jù)寫入設計好的FIFO存儲器,然后依次地調(diào)出數(shù)據(jù)進行編碼,然后將生成的CRC碼發(fā)送出去,并給以接收端一個接收信號;接收端收到信號后,開始對接收到的數(shù)據(jù)進行解碼,并將解碼信息反饋給發(fā)送方。當解碼正確時,發(fā)送方繼續(xù)發(fā)送下一個數(shù)據(jù),當解碼錯誤時,發(fā)送方把剛發(fā)的數(shù)據(jù)重新調(diào)出,進行編碼,發(fā)送出去。系統(tǒng)原理圖見圖1。

本文引用地址:http://butianyuan.cn/article/190601.htm

a.jpg


fpga相關文章:fpga是什么



上一頁 1 2 3 4 下一頁

評論


相關推薦

技術專區(qū)

關閉