crc課程設計報告_第1頁
已閱讀1頁,還剩18頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、<p><b>  目 錄 </b></p><p>  序言 ……………………………………………………………………………………… 2</p><p>  第一章 通信系統課程設計要求要求和方案…………………………… 3</p><p>  1.1通信系統課程設計總體要求…………………………………………………… 3&

2、lt;/p><p>  1.2課程設計題目……………………………………………………………………… 3</p><p>  1.3 CRC編解碼器設計方案…………………………………………………………… 3 </p><p>  第二章 QuartusⅡ 簡介……………………………………………………… 5</p><p>  2.1 Q

3、uartus II簡介………………………………………………………………… 5</p><p>  第三章 (24,16)CRC 循環(huán)碼編解碼器的設計……………………… 7</p><p>  3.1 CRC循環(huán)校驗碼的基本原理…………………………………………………… 7 </p><p>  3.1.1 CRC校驗碼的生成…………………………………

4、…………………………… 7 </p><p>  3.1.2 CRC校驗碼校驗原理…………………………………………………………… 7</p><p>  3.1.3 CRC循環(huán)碼糾錯原理…………………………………………………………… 8 </p><p>  3.2 (24,16)CRC循環(huán)碼編解碼器的實現……………………………………… 9<

5、/p><p>  3.2.1 CRC-8 生成多項式…………………………………………………………… 9</p><p>  3.2.2 (24,16)CRC 循環(huán)碼編碼器的設計……………………………………… 10</p><p>  3.2.3 (24,16)CRC 循環(huán)碼解碼器的設計…………………………………… 11</p><p&

6、gt;  3.2.4 (24,16)CRC 循環(huán)冗余校驗碼編解碼器總圖………………………… 14</p><p>  體會與建議……………………………………………………………………………… 16</p><p>  參考文獻………………………………………………………………………………… 17</p><p>  附錄……………………………………………………

7、…………………………………… 18</p><p><b>  序 言</b></p><p>  通常,數據通信中的編碼可以分為兩大類,分別是信源編碼和信道編碼。在實際應用中,為了提高數據通信的可靠性而采取的編碼稱為信道編碼,也稱做抗干擾編碼。一般來講,數據通信要求傳輸過程中的誤碼率應該足夠低,這樣才能真正符合實際應用的具體要求,為了降低數據通信線路傳輸的誤碼

8、率,通常有改善數據通信線路傳輸質量和差錯檢測控制兩種方法。</p><p>  實現差錯檢測控制的方法很多,循環(huán)冗余校驗(CRC)就是一類重要的線性分組碼。循環(huán)冗余碼校驗英文名稱為Cyclical Redundancy Check,簡稱CRC。CRC校驗碼碼的作用是:發(fā)送方發(fā)送的數據發(fā)送給了接收方,但是由于在傳輸過程中信號干擾,可能出現錯誤的碼,造成的結果就是接收方不清楚收到的數據是否就是發(fā)送方要發(fā)的數據,所以就

9、有了CRC校驗碼。保證了發(fā)送跟接受的數據是否一樣,要糾錯的話,還需對軟件進行設計,畢竟傳輸的是2進制,如果知道了哪一位出錯了,可以把那一位取反,需要對軟件進行優(yōu)化。CRC也是數據通信領域中最常用的一種差錯校驗碼,其特征是信息字段和校驗字段的長度可以任意選定。它是利用除法及余數的原理來作錯誤偵測的。實際應用時,發(fā)送裝置計算出CRC值并隨數據一同發(fā)送給接收裝置,接收裝置對收到的數據重新計算CRC并與收到的CRC相比較,若兩個CRC值不同,則

10、說明數據通訊出現錯誤。</p><p>  本次課程設計主要設計(24,16)校驗碼的編碼與解碼,本次課程設計是介紹如何通過quartus軟件,采用原理圖輸入法,分別完成相應的編碼和解碼;最后將編碼和解碼電路圖結合,檢查編碼解碼過程是否發(fā)生錯誤。通過課程設計驗證CRC校驗碼的檢錯糾錯功能。</p><p>  第一章 通信系統課程設計總體要求和方案</p><p&g

11、t;  1.1通信系統課程設計總體要求</p><p>  1、根據題目要求的功能進行設計;設計出整體電路圖和流程框圖;</p><p>  2、設計的電路圖的每個組成部分須有設計說明;以及整體電路概述;</p><p>  3、采用原理圖或 VHDL 語言輸入法,在計算機上進行編譯和軟件仿真。</p><p><b>  1.2課

12、程設計題目</b></p><p> ?。?4,16)CRC 循環(huán)碼編解碼器設計(2 人合作,本設計偏重于譯碼) </p><p>  1、采用原理圖輸入法。 </p><p>  2、根據 CRC 循環(huán)碼的編解碼原理,確定編解碼器具體設計方案。 </p><p>  3、設計 (24,16)CRC 循環(huán)碼編解碼器電路圖。

13、 </p><p>  4、調試及彷真時序波形。 </p><p>  1.3 CRC編解碼器設計方案</p><p>  CRC循環(huán)校驗碼的產生和校驗既可用硬件實現,也可用軟件實現,較經典的硬件實現算法有移位計算法、查表計算法和公式法。</p><p>  方法一、移位計算法。移位計算法就是直接模擬CRC校驗碼基本原理中除法的過程,來得到

14、余數從而得到即CRC值。設生成多項式g(x)有r位,由于最高位是要一直消掉的,所以只需要一個r位的寄存器。</p><p>  圖1 移位算法實現框圖</p><p>  圖中由R0-Rr-1構成的CRC 寄存器是一個r位移位寄存器 組,用來存儲r位的CRC校驗碼R(x)。運算控制開關g1-gr-1的位置與生成多項式G(x) 的系數相關,對應系數1的開關接通反饋支路(上端),否則接地(

15、右側)。編解碼前清零CRC寄存器,在時鐘驅動下,待校驗的信息碼B(x)經運算處理逐位移入CRC寄存器中,當信息碼全部輸入之后,CRC寄存器中存放的值即為生成的CRC碼。另只須輸出開關C開始接下端,在時鐘驅動下逐位輸出待校驗的k位信息碼B(x) ,然后改接上端,再逐位將CRC寄存器中的校驗碼R(x)輸出即可。該算法原理簡單,易于硬件實現,但是效率較低,主要用于串行通信中,不適合高速通信的場合。</p><p>  

16、方法二、查表計算法。該算法是指事先把待校驗的信息碼B(x) 的所有CRC碼全部計算出來,放在一個表里,編碼時只要根據M(x)從表中找出對應的值進行處理即可。編解碼前清零CRC寄存器,編碼時待信息碼M(x)輸入結束,CRC寄存器的值即為校驗碼R(x) ;解碼校驗時待傳送碼B(x)輸入結束時,若CRC寄存器中的值為零,則表明傳輸無誤。該算法執(zhí)行速度快,適合于高速通信場合,但由于需要大容量的存儲表,花費的硬件資源較移位計算法要大得多。<

17、/p><p>  圖2 查表算法實現框圖</p><p>  方法三、公式法。公式法與查表算法一樣,也是以字節(jié)數據為輸入,采用遞推算法,不同之處在于公式法使用公式實時計算CRC碼,從而省去了查找,不僅節(jié)省了硬件存儲資源,還能進一步提高系統的運行速度。因此可以認為公式法是目前前景較好的一種實現方法。</p><p>  第二章 Quratus II簡介</

18、p><p>  2.1 quartus ii簡介 </p><p>  Quartus II 是Altera公司開發(fā)的綜合性PLD/FPGA開發(fā)軟件,支持原理圖、VHDL、VerilogHDL以及AHDL等多種設計輸入形式,內嵌自有的綜合器以及仿真器,可以完成從設計輸入到硬件配置的完整PLD設計流程。 </p><p>  圖3 Quartus軟件打開后的界面<

19、/p><p>  Quartus II 的優(yōu)點: </p><p>  Quartus II提供了完全集成且與電路結構無關的開發(fā)包環(huán)境,具有數字邏輯設計的全部特性,包括:</p><p> ?、倏衫迷韴D、結構框圖、VerilogHDL、AHDL和VHDL完成電路描述,并將其保存為設計實體文件;</p><p> ?、诳捎糜谛酒娐罚┢矫娌季?/p>

20、連線編輯;</p><p> ?、凼且豢罟δ軓姶蟮倪壿嬀C合工具;完備的電路功能仿真與時序邏輯仿真工具;</p><p> ?、苤С周浖次募奶砑雍蛣?chuàng)建,并將它們鏈接起來生成編程文件;</p><p> ?、菔褂媒M合編譯方式可一次完成整體設計流程;自動定位編譯錯誤;</p><p> ?、奘且豢罡咝У钠陂g編程與驗證工具;</p>

21、<p> ?、呖勺x入標準的EDIF網表文件、VHDL網表文件和Verilog網表文件;</p><p> ?、郠uartus ii能生成第三方EDA軟件使用的VHDL網表文件和Verilog網表文件。</p><p>  該軟件界面友好,使用便捷,功能強大,是一個完全集成化的可編程邏輯設計環(huán)境,是先進的EDA工具軟件。Quartus II 可以在XP 、Linux 以及Uni

22、x 上使用,提供了完善的用戶圖形界面設計方式。具有運行速度快,界面統一,功能集中,易學易用等特點。作為一種可編程邏輯的設計環(huán)境, 由于其強大的設計能力和直觀易用的接口,越來越受到數字系統設計者的歡迎。</p><p>  使用軟件時,我們可以雙擊桌面快捷方式圖標,打開軟件進行編輯。</p><p>  總而言之,參照設計方案與軟件結合使用,我們選擇方法一:移位計算法來設計CRC-8循環(huán)碼的

23、編解碼器。該方法簡單實用,易于quartus進行硬件電路的設計仿真。</p><p>  第三章 (24,16)CRC循環(huán)碼編解碼器的設計</p><p>  3.1 CRC循環(huán)校驗碼的基本原理</p><p>  利用CRC進行檢錯的過程可簡單描述為:在發(fā)送端根據要傳送的k位二進制碼序列,以一定的規(guī)則產生一個校驗用的r位監(jiān)督碼(CRC碼),附在原始信息后邊,構成一

24、個新的二進制碼序列數共k+r位,然后發(fā)送出去。這種編碼又叫(n,k)碼。對于一個給定的(n,k)碼,可以證明存在一個最高次冪為n-k=r的多項式g(x)。根據G(x)可以生成監(jiān)督碼,而g(x)叫做這個CRC碼的生成多項式。 </p><p>  3.1.1 CRC校驗碼的生成</p><p>  校驗碼的具體生成過程為:</p><p> ?、僭O發(fā)送的信

25、息碼用多項式m(x)表示,它的生成多項式為g(x)。則m(x)的最高次項為 k-1。將 m(x)乘以xn-k,,得到xn-k*m(x);</p><p> ?、谟脁n-k*m(x)去模2除g(x),得到余式r(x),即</p><p>  r(x)=xn-k*m(x) [mod g(x)]</p><p>  r(x)的次數必小于g(x)的次數,即小于 n-k。&l

26、t;/p><p> ?、?將余式加于信息位之后作為監(jiān)督位,即將 r(x)與 xn-k*m(x)相加,得到的多項式為碼多項式,因為它必能被 g(x)整除,且商的次數不大于 k-1。因此循環(huán)碼的碼多項式可表示為</p><p>  T(x)= xn-k*m(x)+ r(x) </p><p>  其中,xn-k*m(x)代表信息位;r(x)是 xn-k*m(x)與g(x)

27、模2相除得到的余式,代表監(jiān)督位。</p><p>  3.1.2 CRC校驗碼校驗原理</p><p>  因為在數據傳輸過程中,可能會由于噪聲或傳輸特性不理想而使數據序列中的某一位或某些位發(fā)生錯誤,導致接收端接受的序列發(fā)生錯誤。所以必須在數據的接收端進行校驗,可以很容易地實現對數據傳輸正確性的檢查。編碼電路的主體是由生成多項式構成的除法電路,再加上適當的控制電路組成?;贑RC編碼原理,

28、可見其校驗原理也是十分簡單的,它在接收端只需要對接收到的序列直接進行除法取余式運算。若余式為全0,則表示數據傳輸過程中沒有發(fā)生錯誤;若不為0,則表示發(fā)生錯誤,那么就需要對錯誤的序列進行相應的處理操作。</p><p>  檢驗過程的多項式除法形式可以表示為兩種形式: </p><p>  M(x)/G(x)=Q(x)+R(x)/G(x)</p><p>  M(x

29、)= R(x) [ mod G(x)]</p><p>  由此可見,生成多項式G(x)對于CRC循環(huán)碼而言是至關重要的,決定了CRC碼的算法和最終結果。</p><p>  3.1.3 CRC循環(huán)碼糾錯原理</p><p><b>  以(7,3)碼為例</b></p><p><b>  可證明:<

30、/b></p><p>  表1 (7,3)碼E(x)與S(x)對照表</p><p>  可證明,根據單個錯誤出現在最高位的錯誤圖樣及相應的校正子S設計的組合電路,可糾任一一位錯。</p><p>  圖4 (7,3)循環(huán)碼譯碼器</p><p>  設接收碼組B=1011101</p><p>  表2

31、(7,3)循環(huán)碼譯碼器譯碼原理</p><p>  3.2 (24,16)CRC循環(huán)碼編解碼器的實現 </p><p>  3.2.1 CRC-8 生成多項式 </p><p>  生成多項式特點如下: </p><p>  (1)g(x)是常數項為1的 r=n-k 次,也是循環(huán)碼中次數最低的多項式; </p><

32、p> ?。?)所有許用碼組多項式都是g(x)的倍式;</p><p> ?。?)g(x)是xn+1的一個因式。</p><p>  CRC-8 的生成多項式為:g(x)= x 8+ x5 + x4 +1 </p><p>  或 g(x)= x 8+ x2 + x +1 </p><p>  3.2.2 (24,16)CRC 循環(huán)碼

33、編碼器的設計 </p><p>  CRC 循環(huán)碼的生成多項式并不唯一,在設計中我們選擇x8+x5+x4+1作為(24,16)CRC循環(huán)碼的生成多項式。</p><p> ?。?)編碼之步驟如下: </p><p> ?、?m(x)乘以 xn-k </p><p>  ② r(x)= xn-k*m(x) [mod g(x)] <

34、;/p><p>  ③ T(x)= xn-k*m(x)+ r(x) </p><p> ?。?)具體電路圖如下:</p><p>  圖5 (24,16)CRC循環(huán)編碼器電路</p><p>  圖6 (24,16)CRC編碼器電路封裝</p><p><b>  (3)電路工作原理</b><

35、;/p><p> ?、賕(x)的最高次數r等于移位寄存器的級數;g(x)的非零系數對應移位寄存器的反饋抽頭。</p><p>  ②執(zhí)行時,首先將移位寄存器清零,前16位信息位輸入時,門1斷開,門2接通,直接輸出信息碼元,同時送入移位寄存器進入除法運算。</p><p> ?、鄣?16位移位脈沖到來時,將除法電路運算所得的余數存入移位寄存器。第17-24次移位時,門1接

36、通,門2斷開,輸出監(jiān)督碼。輸入的信息元不同,得到的碼元序列也不同。由附錄可見: </p><p>  若信息碼為 1111 1111 1111 1111,可以得到信息序列為 1111 1111 1111 1111 00101101; </p><p>  若信息碼為 0000 0000 1111 1111,可以得到信息序列為 0000 0000 1111 1111 10101100;

37、 </p><p>  若信息碼為 1010 1010 1010 1010 ,可以得到信息序列為 1010 1010 1010 1010 00110110。</p><p>  編碼仿真結果波形為:(波形有 10ns 的延時)</p><p>  圖7 輸入信息碼為1010 1010 1010 1010 時的仿真波形</p><p>  

38、波形分析:輸入信息碼為1010 1010 1010 1010,控制信號AA控制輸入過程,當16位信息碼輸入完成后,切換門電路開關閉合,最終生成8位監(jiān)督碼,由Y輸出,得到的循環(huán)碼與計算所得結果一致,證明了編碼器設計無誤,符合基本要求,為解碼做好準備。</p><p>  3.2.3 (24,16)CRC 循環(huán)碼解碼器的設計</p><p><b>  解碼器設計原理</b&

39、gt;</p><p>  接收端解碼的目的是檢錯。由于任一碼多項式A(x)都應該可以被生成多項式 g(x)整除,所以在接收端可以將接收碼組B(x)用生成多項式g(x)去除。若余式為0,則表示沒有誤碼,接收端正常接收碼元;若余式不為0,則表示傳輸出錯。即:</p><p><b>  余式為0,無錯</b></p><p>  接收碼組B(x)

40、/g(x)={</p><p><b>  余式不為0,出錯</b></p><p>  所以可以用余項是否為零來判斷碼組中有無誤碼。</p><p>  對于糾錯,可以根據單個錯誤出現在最高位的錯誤圖樣及相應的校正子設計組合電路,糾任一一位錯。</p><p>  (24,16)CRC碼的校正子</p>

41、<p>  綜上所述,糾錯的步驟如下:</p><p>  a.把接收碼組R(x)送入除法電路得到余數即為S(x)。</p><p>  b.由典型生成矩陣 G 和典型監(jiān)督矩陣 HT 之間的關系可進一步求得,再由 S=E.HT 可得錯誤圖樣 E(x),這樣就可以確定錯碼的位置。</p><p>  c.根據錯誤的碼位,對該碼位的碼元取反輸出便可得到原發(fā)送碼

42、組 T (x)。其中,T (x) 的前16位即為譯出碼元 m(x)。</p><p><b>  具體電路圖如下:</b></p><p>  圖8 (24,16)CRC循環(huán)解碼器電路</p><p>  解碼仿真波形結果為:</p><p>  圖9 信息碼為1010 1010 1010 1010 0011 010

43、0時的解碼</p><p>  波形分析:CLK為時鐘信號,IN是輸入信號,OUT為解碼輸出信號。PAN判斷信息碼是否出錯,如果出錯則顯示高電平,否則為低電平;FIND找到錯誤所在位置,用高電平表示。</p><p>  由于整個原理圖過于繁雜,故將24個緩存器封裝成一個元件,原理圖如下:</p><p>  圖10 24個觸發(fā)器搭成的移位寄存器</p>

44、;<p>  并將除法電路部分做了改進,用兩個74175芯片代替了8個D觸發(fā)器,簡化了電路。改進后的電路如下:</p><p>  圖11 改進后的(24,16)CRC循環(huán)解碼器電路</p><p>  圖12 (24,16)CRC解碼器電路封裝</p><p>  解碼仿真結果波形為:</p><p>  圖13 信息碼為

45、1010 1010 1010 1010 0011 0110時的解碼</p><p>  波形分析:接收端信息為1010 1010 1010 1010 0011 0110,即為正確序列碼組,輸出應該從第二十五個時鐘,即下一周期開始觀察,如圖,每個周期為 20us,即從480us開始觀察,輸出OUT為正確信息序列,判斷信號PAN為低電平,表明解碼為正確碼組。</p><p>  又如輸入錯誤碼

46、組:1110 1010 1010 1010 0011 0110 </p><p>  當輸入碼組為錯碼時: </p><p>  圖 14 輸入錯誤碼組時的解碼波形 </p><p>  波形分析:如圖,接收端信息為1110 1010 1010 1010 0011 0110,即為錯誤序列碼組,輸出從第二個周期開始觀察,輸出OUT為接收信息,系統實現糾錯功能,

47、輸出為1010 1010 1010 1010 0011 0110,并且判斷信號PAN在出錯位處為高電平,可見與設計思想一致。 </p><p>  3.2.4 (24,16)CRC 循環(huán)冗余校驗碼編解碼器總圖 </p><p>  將CRC編解碼時建模的圖形連接在一起,組成(24,16)CRC循環(huán)編解碼器。如下所示: </p><p>  圖15 (24,16)C

48、RC 循環(huán)編解碼器 </p><p>  編解碼仿真結果波形為:</p><p>  圖16 輸入信息碼為1010 1010 1010 1010的編解碼波形</p><p>  波形分析:輸入信息碼為1010 1010 1010 1010,控制信號AA控制輸入過程,當16位信息碼輸入完成后,切換門電路開關閉合,最終生成8位監(jiān)督碼。由OUT輸出編碼后的信息序列。判

49、斷電平PAN顯示低電平,表示接受到正確信息序列。證明該設計無誤,符合基本要求。</p><p>  由于該課題為信道編碼,對于循環(huán)冗余校驗碼編解碼器總圖傳輸過程中出錯時的情況不易仿真,此處不做討論。</p><p><b>  體會與心得</b></p><p>  通過這一次通信課程設計,讓我對CRC校驗碼有了很深的了解,也相應的對quart

50、us軟件的使用有了很大的加深。經過我的努力,還是比較符合要求的完成了課題的設計。這也使我明白了,學習上的很多事情,只要肯下功夫去鉆研,就一定能夠有所收獲的。作為通信專業(yè)的學生,通過通信原理的課程設計,可以提高我們對通信電路設計領域的認識,有利于培養(yǎng)我們在通信電路設計方面的能力。通過和同學分工合作既鍛煉了我們合作能力同時也提高了我們獨立分析問題和解決問題的能力。設計過程的復雜加老師的嚴格要求有益于培養(yǎng)我們嚴謹的工作作風。</p>

51、;<p>  課程設計過程中我遇到了不少問題,尤其是在設計編碼部分的糾錯功能時遇到了屏障,多虧了同學和老師的指點幫助,才讓我順利完成設計,對此我十分感謝他們。通過理論學習到實際應用,我們更加深刻了解到了理論與實踐結合的重要性,在設計之中也遇到了種種問題和困難,通過對這些問題的解決也相應的提高了我們的動手和解決問題的本領,總之,此次課程設計我收益匪淺。</p><p><b>  參考文獻

52、 </b></p><p>  [1]杜慧敏,李宥謀,趙全良,基于 Verilog 語言的實用 FPGA 設計 [M],西安電子科技大學出版社,2005 年</p><p>  [2]原東昌,李晉炬,通信原理與實驗[M],北京理工大學出版社,2000 年</p><p>  [3] 蔣安平,循環(huán)冗余校驗碼的硬件并行實現[J],微電子學與計算機, 2005

53、年</p><p>  [4] 夏澤中,柴慶芬,循環(huán)冗余校驗碼算法的分析及VHDL語言實現[J],計算機與數字工程,2005年</p><p><b>  附 錄</b></p><p>  CRC-8 監(jiān)督碼具體計算方法如下:</p><p>  若輸入信息碼為0000 0000 1111 1111,

54、 </p><p>  可得監(jiān)督碼為10101100,與信息碼一一對應。</p><p><b>  同理可得:</b></p><p>  若信息碼為 1111 1111 1111 1111,可以得到信息序列為 1111 1111 1111 1111 00101101; </p><p>  若信息碼為 10

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論