




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、前言在數字通信系統中消息的傳輸有基帶信號的選擇問題,因為并不是所有電波都能在信道中傳輸。當數字信號進行長距離傳輸時要求線路傳輸碼型的頻譜不含直流分量,并且只有很少的低頻分量和高頻分量。其次,傳輸碼型中應含有定時時鐘信息,以利于收端定時時鐘的提取,在基帶傳輸系統中,定時信息是在接收端再生原始信息所必需的。再次,實際傳輸系統常希望在不中斷通信的前提下,能監視誤碼,如果傳輸碼型有一定的規律性,那么就可以根據這一規律性來檢測傳輸質量,以便做到自動監測,因此,傳輸碼型應具有一定的誤碼檢測能力。當然,對傳輸碼型的選擇還需要編碼和解碼設備盡量簡單等要求,但以上的幾點是最主要的考慮因素。以上要求導致了HDB3
2、碼的出現并獲廣泛應用。HDB3(High Density Bipolar三階高密度雙極性)碼是在AMl碼的基礎上改進的一種雙極性歸零碼,它除具有AMI碼功率譜中無直流分量,可進行差錯自檢等優點外,還克服了AMl碼當信息中出現連“O”碼時定時提取困難的缺點,而且HDB3碼頻譜能量主要集中在基波頻率以下,占用頻帶較窄,因此HDB3碼的編解碼就顯得極為重要了。目前,HDB3碼主要由專用集成電路及相應匹配的外圍中小規模集成芯片來實現,但集成程度不高,特別是位同步提取非常復雜,不易實現。隨著可編程器件的發展,這一難題得到了很好地解決。本設計就是用VHDL語言實現HDB3碼的編/解碼器功能。第一章 基帶傳
3、輸碼型介紹及HDB3碼編/譯碼原理1.1 數字基帶信號數字基帶信號的傳輸是數字通信系統的重要組成部分之一。在數字通信中,有些場合可不經過載波調制和解調過程,而對基帶信號進行直接傳輸。為使基帶信號能適合在基帶信道中傳輸,通常要經過基帶信號變化,這種變化過程事實上就是編碼過程。于是,出現了各種各樣常用碼型。不同碼型有不同的特點和不同的用途。作為傳輸用的基帶信號歸納起來有如下要求:1 希望將原始信息符號編制成適合與傳輸用的碼型;2 對所選碼型的電波形,希望它適宜在信道中傳輸。可進行基帶傳輸的碼型較多。1、AMI碼AMI碼稱為傳號交替反轉碼。其編碼規則為代碼中的0仍為傳輸碼0,而把代碼中1交替地變化為
4、傳輸碼的+1-1+1-1,、。 舉例如下。消息代碼:0 1 1 1 0 0 1 0 、AMI 碼:0 +1 -1 +1 0 0 -1 0 、或 0 -1 +1 -1 0 0 +1 0 、AMI碼的特點:(1) 無直流成分且低頻成分很小,因而在信道傳輸中不易造成信號失真。(2) 編碼電路簡單,便于觀察誤碼狀況。(3) 由于它可能出現長的連0串,因而不利于接受端的定時信號的提取。2、HDB3碼 這種碼型在數字通信中用得很多,HDB3碼是AMI碼的改進型,稱為三階高密度雙極性碼。它克服了AMI碼的長連0傳現象。1.2 NRZ,AMI,HDB3碼之間的對應關系假設信息碼為0000 0110 0001
5、0000,對應的NRZ碼、AMI碼,HDB3碼如圖1-1所示。 信息代碼 0 0 0 0 0 1 1 0 0 0 0 1 0 0 0 0AMI波形AMI代碼 0 0 0 0 0 1 -1 0 0 0 0 1 0 0 0 0NRZ波形HDB3代碼 B 0 0 V 0 -1 1 -B 0 0 -V 1 0 0 0 VHDB3波形 圖1-1 NRZ ,AMI,HDB3碼型圖分析表現,AMI碼及HDB3碼的功率譜不含有離散譜fS成份(fS1/TS,等于位同步信號頻率)。在通信的終端需將他們譯碼為NRZ碼才能送給數字終端機或數/模轉換電路。在做譯碼時必須提供位同步信號。工程上,一般將AMI或HDB3碼數
6、字信號進行整流處理,得到占空比為0.5的單極性歸零碼(RZ|0.5TS)。由于整流后的AMI,HDB3碼中含有離散譜fS,故可用一選頻網絡得到頻率為fS的正弦波,經整形、限幅、放大處理后即可得到位同步信號。1.3 HDB3碼編碼原理HDB3碼的編碼規則:(1) 將消息代碼變換成AMI碼;(2) 檢查AMI碼中的連0情況,當無4個以上的連0傳時,則保持AMI的形式不變;若出現4個或4個以上連0時,則將1后的第4個0變為與前一非0符號(+1或-1)同極性的符號,用V表示(+1記為+V,-1記為-V(3)檢查相鄰V符號間的非0符號的個數是否為偶數,若為偶數,則再將當前的V符號的前一非0符號后的第1個
7、0變為+B或-B符號,且B的極性與前一非0符號的極性相反,并使后面的非0符號從V符號開始再交替變化。舉例如下:代碼 : 1 0 1 0 1 1 0 0 0 0 0 1 1 0 0 0 0 1 HDB3碼: +1 0 -1 0 +1 -1 0 0 0 -1 0 +1 -1 +1 0 0 +1 -1V、B : -V +B +VHDB3碼的特點如下:(1) 基帶信號無直流成分,且只有很小的低頻成分;(2) 連0串符號最多只有3個,利于定時信息的提取;(3) 不受信源統計特性的影響。1.4 HDB3碼譯碼原理HDB3碼的譯碼是編碼的逆過程,其譯碼相對于編碼較簡單。從其編碼原理可知,每一個破壞符號V總是
8、與前一非0符號同極性,因此,從收到的HDB3碼序列中,容易識別V符號,同時也肯定V符號及其前面的3個符號必是連0符號,于是可恢復成4個連0碼,然后再將所有的-1變成+1后變得到原消息代碼。 舉例如下:HDB3碼 +1 0 -1 0 +1 -1 0 0 0 -1 0 +1 -1 +1 0 0 +1 -1V符號 -V +V 譯碼 1 0 1 0 1 1 0 0 0 0 0 1 1 0 0 0 0 1 第二章 HDB3碼編碼器設計2.1 HDB3編碼器的設計思路從編碼規則來分析,這個設計的難點之一是如何判決是否應該補“B”,因為這涉及到由現在事件的狀態決定過去事件狀態的問題。按照實時信號處理的理論,
9、這是沒辦法實現的。但在實際的電路中,可以考慮用寄存器的方法,首先把信碼寄存在寄存器里,同時設置一個計數器計數兩個“V”之間“1”的個數,經過4個碼元時間后,由一個判偶電路來給寄存器發送是否補“B”的判決信號,從而實現補“B”功能。不過,信號處理的順序不能像編碼規則那樣:首先把代碼串變換成為AMI碼,完成插“V”、補“B”工作之后,其后的“+1”和“-1”的極性還要依據編碼規則的規定變換。這樣做需要大量的寄存器,同時電路結構也變的復雜。若把信號處理的順序變換一下:首先完成插“V”工作,接著執行補“B”功能。最后實現單極性變雙極性的信號輸出。這樣做的好處是:輸入進來的信號和插“V”、補“B”功能電
10、路中處理的信號都是單極性信號,且需要的寄存器的數目可以少很多。另外,如何準確識別電路中的“1”、“V”和“B”。因為“V”和“B”符號是人為標識的符號,但在電路中最終的表現形式還是邏輯電平“1”。解決的方法是利用了雙相碼,將其用二進制碼去取代。例如,代碼: 1 1 0 0 1 0雙相碼 10 10 01 01 10 01 這樣就可以識別電路中的“1”、“V”、“B”。也可以人為地加入一個標識符(其最終目的也是選擇輸出“1”的極性)。控制一個選擇開關,使輸出“1”的極性能按照編碼規則進行變化。2.2 HDB3編碼器的設計方法本設計的思想如前面HDB3編碼原理介紹的那樣首先把消息代碼變換成為AMI
11、碼,然后進行V符號和B符號的變換,最后完成單極性信號變成雙極性信號的變換。整個HDB3編碼器包含3個功能部分:插“V”、補“B”和單極性碼轉變成雙極性碼。各部分之間采用同步時鐘作用,并且帶有一個異步的復位(清零)端口。HDB3碼的編碼器模型框圖如圖2-1所示: 單/雙極性變換 補“B”插“V” AMI碼 HDB3碼圖2-1 HDB3碼的編碼器模型框圖2.2.1 插V模塊的設計插“V”模塊的功能實際上就是對消息代碼里的四連0串的檢測即當出現四個連0串的時候,把第四個“0”變換成為符號“V”(“V”可以是邏輯“1”高電平),而在其他情況下,則保持消息代碼的原樣輸出。同時為了減少后面工作的麻煩,在進
12、行插“V”時,用“11”標識它,“1”用“01”標識,“0”用“00”標識。插“V”符號的設計思想很簡單:首先判斷輸入的代碼是什么(用一個條件語句判斷),如果輸入的是“0”碼,則接著判斷這是第幾個“0”碼,則把這一位碼元變換成為“V”碼。在其他條件下,讓原代碼照常輸出。插'V'流程圖如圖2-2所示。如前考慮,插”V”模塊須設計一個計數器(count0),用來作為插”V”符號的標志。在進程(process)中,通過條件控制開關(case語句)完成插”V”功能。這里使用了一個技巧來實現流程的控制,即在選擇語句(case語句)中嵌套了條件判斷語句(if語句)來控制雙重條件判斷的執行結
13、果。(詳細程序見附錄)假設輸入一串代碼,根據設計思想,輸入代碼與插入”V”符號之后的關系如下:代碼 : 1 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0插V后:01 00 00 00 11 01 00 00 00 11 01 01 00 00 00 11 startFlag0=0,cnt0=1,firstv=0Codein=0NYCodeoutv=0Cnt0=cnt0+1Cnt0=0Flag0<=0Cnt0=4YN NYYCodeoutv=''-v''Flag1=0Flag0=0Codeoutv=+1Flag0=1Codeoutv='
14、'+v''Flag1=1Codeoutv=-1Flag0=0Codeoutv=''+v''Flag1=0Flag0=0Codeoutv=''-v''Flag1=0Flag1=0Firstv=0 NY YFlag0=0 NNYYFirstv=1Cnt0=0注: Cnt0為計數器0的個數; Flag0表示非零碼的極性; end Flag1表示V的極性; Firstv表示第一個V碼; Codein為輸入碼型; Codeoutv為輸出V的碼型;圖2-2 插''V''流程圖2.2.2
15、補B模塊的設計插“B”模塊的功能是保證附加“V”符號后的序列不破壞“極性交替反轉”造成的無直流特性,即當相鄰“V”符號之間有偶數個非0符號的時候,把后一小段的第1個“0”變換成一個非破壞符號“B”符號。補B模塊流程圖如圖2-3所示: startFlag2<=0Codeoutb<=''-B'' Flag2<=1Codeoutb<=codeoutvCodeoutb<=codeoutvCodeoutb<=codeoutvCodeoutb<=''+B''Codeoutb<=codeoutvF
16、lag3=0Flag3<=0Flag3<=1Flag3=0Codeoutv=''-v''Codeoutv=''-1''othersCodeoutv=''+1''Codeoutv=''+v'' Y N N Y Codeoutb<=codeoutv注: end Codeoutv為V的極性; Codeoutb為補B的碼型; Flag2為前一V碼的極性; Flag3為標識前一非零碼的極性;圖2-3 補B模塊流程圖圖中補“B”模塊是這個設計遇到的第一個難點,因
17、為他涉及到一個由現在事件的狀態決定過去狀態的的問題。其中還有如何確定是“1”,還是“V”的問題。處理難點的思路是:首先把碼元(經插“V”處理過的)放入一個4位的移位寄存器里,在同步時鐘的作用下,同時進行是否補“B”的判決,等到碼元從寄存器里出來的時候,就可以決定是應該變換成“B”符號,還是照原碼輸出。因此,在程序的結構中進行元件聲明(component declaration),調用庫里的D觸發器來實現延遲作用。為了使程序更清晰,用了幾個元件例化語句(compomemt instantiation),來說明信號的流向。所謂元件例化就是引入一種連接關系,將預先設計好的設計實體定義為一個元件,然后
18、利用特定的語句將此元件與當前的設計實體中的指定端口連接,從而為當前設計實體引入一個新的低一級的設計層次。在這里,當前設計實體相當于一個較大的電路系統,所定義的例化元件相當于一個要插在這個電路系統板上的芯片,而當前設計實體中指定的端口則相當于這塊電路板上準備接收此芯片的一個插座。元件例化是使VHDL設計實體構成自上而下層次設計的一種重要途徑。要進行補“B”判決,首先要知道哪一個是“V”,從前面的程序中我們了解到,“V”已經用“11”代替,“1”用“01”代替,從這里就表現出采用雙相碼的優點,它輕易地解決了“V”和“1”的差別。根據這個設計思想,輸入代碼與插“V”及補“B”后的代碼的關系如下:代
19、碼 :1 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 1 1插V后: 01 00 00 00 11 01 00 00 00 11 01 01 00 00 00 11 01 01 補B后:01 00 00 00 11 01 00 00 00 11 01 01 10 00 00 11 01 012.2.3 單/雙極性變換的實現根據HDB3的編碼規則,我們可以知道,“V”的極性是正負交替的,余下的“1”和“B”看成一體且是正負交替的,同時滿足“V”的極性與前面的非零碼極性一致。由此我們可以將其分別進行極性變換來實現。從前面的程序知道,“V”、“B”、“1”已經分別用雙相碼“11”、“
20、10”、“01”標識,“0”用“00”標識,所以通過以下的程序可以很容易實現。如下圖為實現極性變換功能的流程圖。根據編碼規則,“B”符號的極性與前一非零符號相反,“V”極性符號與前一非零符號一致。因此將“V”單獨拿出來進行極性變換(由前面已知“V”已經由“11”標識,所以很好與其他的代碼區別),余下的“1”和“B”看成一體進行正負交替,這樣就完成了HDB3的編碼。這個部分遇到的難點在于:在QUARTUS 軟件仿真過程中,它無法識別“-1”,在它的波形仿真中只有“1”和“0”。因此在這里采用了雙相碼來分別表示“-1”、“+1”、“0”。要得到所需的結果,僅僅在最后加一個硬件(如四選一數字開關CC
21、4052)就可以將程序中所定義的“00”、“10”、“01”分別轉換成0、+1、-1,從而達到設計所需結果。由上述的程序下載到FPGA或CPLD中,其輸出結果并不是“+1”、“-1”、“0”的多電平變化波形,而是單極性雙電平信號,事實上,程序輸出的是給單/雙變換器的硬件電路地址信號。 利用一個四選一的數據選擇器CC4052,二維數組作為CC4052的選擇地址,在輸出端OUT可以得到符合規則的“+1”、“-1”、“0”變化波形。單/雙極性變換控制流程圖如圖2-4所示: startCodeoutb=”01”10”Codeoutb=”11”Codeoutb=”00”Flag1b=0Flag1b=1C
22、odeout=”00”Flag1b=0Flag1b=1Codeout=”01”Codeout=”10”Codeout=”01”Codeout=”10”Flag1b=flag1bFlag1b=1Flag1b=0 End注:Codeoutb為輸出的碼型;“10”:標識為+1;“01”:標識為-1; flag1b:記“+V”或“-V”之間的奇偶數 圖2-4 單/雙極性變換控制流程圖2.3 HDB3編碼器的頂層設計為了使整個系統看起來簡潔明了,本次設計采用頂層文件的方法,將各個模塊建立成元器件,然后在頂層文件中調用。在編碼前,首先通過編程產生一個序列發生器,通過它產生一段序列碼,由于過程中會產生毛刺,
23、因此在設計中加入了一個D觸發器以消除毛刺現象,隨后將產生的序列通過編碼器,由于編碼設計的結果是不歸零的,所以本次設計在編碼后的基礎上加上了一個歸零模塊,使得出來的結果有一個歸零的效果,圖2-5為編碼的頂層文件圖:圖2-5 編碼頂層文件圖2.4 HDB3編碼器的時序仿真對編碼頂層文件進行時序仿真,得到仿真圖如圖2-6所示。圖中clk1為編碼器時鐘,clk2為歸零模塊時鐘,其中T1=2*T2,從而達到歸零效果。Dataout為編碼輸出,其中dataout1為高位,dataout0為低位。Dataout3為序列產生的原始碼元,GL1對應于歸零后的dataout1,GL2對應于歸零后的dataout0
24、。從仿真圖中可以看到,序列產生的碼元為100001000011000011000010,編碼后的序列為200021000121200212100120,其中2為10即+1,1為01即-1,可以看到仿真的結果與理論是相同的,就是有一定的延時,這是因為編碼器中有移位寄存器,所以存在延時是可能的。對照GL1和dataout1或者GL2與dataout0,可以發現原先碼元中的1變成了10,從而達到了歸零的效果。總體來說,編碼效果與理論還是符合的。圖2-6 編碼仿真圖第三章 HDB3譯碼器的設計3.1 HDB3譯碼器的設計思路根據編碼規則,破壞點V脈沖與前一個脈沖同極性。因此可從所接受的信碼中找到V碼,
25、然后根據加取代節的原則,V碼與前面的三位碼必然是取代碼,需要全部復原為四連0。只要找到V碼,不管V碼前是兩個“0”碼,一律把取代節清零,完成了扣V扣B功能,進而得到原二元信碼序列。可實現HDB3譯碼的模型框圖如圖3-1所示,HDB3譯碼器包括雙/單極性變換、V碼檢測、時鐘提扣V扣B四部分組成。時鐘提取扣V扣B相加器-V碼檢+V碼檢正整流負整流輸入HDB3碼相加器 雙/單極性變換輸出V碼檢測圖3-1 HDB3譯碼的模型框圖上圖中雙/單極性變換電路有兩個正負整流電路組成。正整流電路提取正電平碼部分;負整流電路提取負電平部分。V碼檢測電路包括+V碼檢測和-V碼檢測兩部分。根據編碼規則,V脈沖必然是同
26、極性脈沖。當無V脈沖時,傳號脈沖“+1”和“-1”交替出現。當連續出現兩個“+1”或“-1”時,若無誤碼,則后一個一定是V脈沖。時鐘提取電路用于提取同步時鐘。扣V扣B電路在V脈沖和同步時鐘的控制下,完成扣V扣B的功能。由于雙/單極性變換電路涉及到雙極性信號,無法在FPGA中實現,需加外圍硬件電路。3.2 HDB3譯碼器的設計方法譯碼器的設計可以分為V碼的檢測,然后進行扣V扣B。總體設計思路可以概括為將編碼輸出的消息代碼逐個放入寄存器,用雙相碼表示,分成高低位,根據第一位和第四位的碼型進行判決。其分步模塊如下:1)V碼檢測模塊的建模1)+V碼檢測為了方便,假設從正整流電路輸出的信號為+B,從負整
27、流電路輸出的信號為-B。+V碼檢測模塊-B的控制下,對輸入的+B進行檢測。其原理是:當+B的上升沿到來時,對輸入的+B脈沖進行計數,當計數值等于2時,輸出一個脈沖作為+V脈沖,同時計數器清零,而且計數期間,一旦有-B信號為“1”電平時,立即對計數器清零,計數器重新從零開始計數。這是因為在兩個+B脈沖之間,存在-B脈沖,說明第二個+B脈沖不是+V碼,而只有在連續兩個+B脈沖之間無-B脈沖,才能說明這兩個+B脈沖在HDB3碼中,是真正同極性的于是就可以判定第二個+B脈沖實際上是+V碼,達到檢測+V碼的目的。+V碼檢測模型框如圖3-2所示。 -B碼控制輸入端+B輸入端 +V輸出端來自負整流電路來自正
28、整流電路+V碼輸出 圖3-2 +V碼檢測模型框圖2)-V碼的檢測-V碼檢測原理與+V碼檢測的類似。不同的是,-V碼檢測電路在+B控制下,對來自-B信號進行計數和檢測、判定,若檢測到-V碼,則輸出到-V碼信號。-V碼檢測模型框如圖3-3所示。 來自正整流電路 +B碼控制輸入端-B輸入端 -V輸出端來自負整流電路 -V碼輸出圖3-3 -V碼檢測模型框圖 (2)扣V扣B模塊建模扣V扣B模塊有三個輸入信號,即時鐘信號、V碼信號和來自正、負整流輸出的信號。由于該信號可能包含有B脈沖和V脈沖,因此需要在扣V扣B模塊中,去除V和B脈沖。本模塊的建模方法是,用V碼檢測模塊所檢測出的V碼信號,去控制一個移位寄存
29、器,若未碰到V脈沖,則整流輸出合成信號在時鐘的節拍下,順利通過移位寄存器,當碰到有V脈沖時,該V脈沖將使移位寄存器清零。考慮到四連0,即V脈沖及其前面的三個碼元應為0碼,所以,可設置四位的移位寄存器,當V碼清零時,同時將移存器中的四位碼全變為0。不管是否有B脈沖,在此模塊中,一并清零,因而無需另設扣B電路。另外移位四位寄存器起到延時四位時鐘周期的作用,以使所檢測出的V脈沖與信號流中的V脈沖位置對齊,保證清零的準確性。扣V扣B模塊框圖如圖4-4。 四位移位寄存器 HDB3碼全波整流信號 HDB3譯碼輸出V碼清零 CLK 圖3-4 扣V扣B模塊框圖3.3 HDB3譯碼器的頂層設計同編碼器一樣,將譯
30、碼器也建成元器件模塊,在頂層文件中調用,由于是仿真,則不需要進行極性轉換,將編碼器的兩個單極性輸出作為譯碼器的輸入。其設計圖如圖3-5所示:圖3-5 譯碼頂層模塊圖3.4 HDB3譯碼器的時序仿真對譯碼頂層文件進行編譯仿真,其仿真圖如圖3-6所示:圖3-6 譯碼仿真圖仿真波形分析:圖中dataout3為原始碼元100001000011000011000010,經編碼后得到dataout1和dataout0,即為譯碼的兩個輸入,dataout1為高位,dataout0為低位,dataout5即為譯碼的輸出,由圖中可以看到,譯碼的輸出為100001000011000011000010,與理論結果相
31、同,但存在一定的延時。總體來說還是達到了譯碼的效果的(譯碼程序見附錄)。第四章 HDB3編/譯碼器的系統設計與硬件實現4.1 HDB3編/譯碼器的系統設計首先,這個系統包含編碼器和譯碼器兩大部分,其中編碼和譯碼又由多個小模塊構成。本次設計采用的是頂層文件的方法,先將編碼和譯碼建成元器件,然后在頂層文件中進行調用,在仿真中編碼的輸出時兩個單極性的輸出,把它作為譯碼的兩個單極性輸入,這樣就把編碼和譯碼相互關聯起來了,從而可以進行仿真觀察結果。4.2 HDB3編/譯碼器的硬件電路結構以及硬件調試整體仿真完后,可以對頂層文件進行分配管腳,當然首先要選擇好芯片,本次設計采用的芯片是ACEX1K-EP1K
32、10TC100-3,分配管腳要注意只能用其中標注的I/O口,管腳分配好后,用串口線將電腦與FPGA實驗箱連接起來,開電源,點擊TOOLSProgrammer進入下載頁面,如果是第一次使用的話,點擊Hardware setup,然后在Hardware setting選項中點擊Addhardware,hardware type選擇byteblastermv orbyteblasterII,port選擇LPT1,點擊OK完成硬件設置。設置好硬件后,就可以下載調試了。編譯完成之后待下載的文件會自動添加進來。選中programmer/config,然后點擊start,開始下載。下載成功后,根據分配的管腳
33、用線引出,即可用示波器觀察波形。值得注意的是,時鐘信號的管腳是固定的,分別為39和90號管腳,分配時應注意。根據分配的管腳找到編碼的兩個單極性輸出,接到外圍電路cc4052芯片上,進行一個單極性到雙極性的變換,注意高低位。然后用示波器觀察輸出波形。示波器波形圖如下圖所示:圖4-1 序列產生波形圖4-2 編碼低位輸出dataout0波形圖4-3 編碼高位輸出dataout1波形圖4-4 譯碼輸出波形由示波器波形圖可以看出,序列產生的消息代碼和編碼輸出以及譯碼與理論是一致的,說明本次設計還是比較成功的,不足之處就是編碼經極性變換后得到的波形毛刺太多,波形比較混亂,這是本次設計有待改善的地方。總體來
34、說還是比較滿意的!4.3 單/雙極性變換硬件電路在編碼器的設計中,編碼的輸出是兩個單極性的輸出,如果下載到FPGA實驗箱上,最后的編碼輸出沒有辦法表示,同理譯碼器的設計也是一樣,因此本次設計采用了一個極性變換電路來解決這個問題。這個電路比較簡單,只是用到了CD4052芯片。CC4052 是一個差分4 通道數字控制模擬開關,有A0、A1 兩個二進制控制輸入端和INH 輸入,具有低導通阻抗和很低的截止漏電流。幅值為4.520V 的數字信號可控制峰峰值至20V 的模擬信號。其芯片結構及管腳接法如圖5-1所示:VCCoutputCodeout1Codeout0 GND圖4-5 芯片外圍電路圖電路弄好以
35、后就是焊接了,焊接過程要仔細,布局合理,其焊接電路圖如圖4-6所示:圖4-6 極性變換電路實物圖第五章 結論通過一步步有條不紊的分析和思考,更重要的是在設計中,根據實際情況,對設計初期的思想做不斷完善和改進,因為在設計之前的思路,只能說是一個大體的方向,很多時候,實際的操作和設計要細致和復雜的多,或者原來的想法根本就行不通,得從實際設計的角度一步步來完成了這樣一個系統設計。總結一下實際操作的設計過程,可得到如下設計流程圖:學習VHDL語言設計分析HDB3碼編/解碼器功能確定設計方案仿真不通過應用VHDL進行編程對系統仿真測試、選擇合適芯片并定義管腳調試達到要求、完成設計系統功能的硬件測試 圖5
36、-1 總體設計流程圖本次設計的HDB3碼編/解碼器雖然達到了預期的目的,但是,由于很多方面的影響,和設計時間的要求,在設計很多方面還是存在著不足之處,主要就是以下幾個方面:(1) 由于采用雙相碼表示1、“V”、“B”及0,程序下載到FPGA或CPLD中,其輸出結果并不是“+1”、“-1”、“0”的多電平變化波形,而是單極性雙電平信號。必須采用一個四選一的數據選擇器(CC4052),二維數組作為CC4052選擇地址,在輸出端可以得到“+1”、“-1”、“0”變化波形。也可以采用3位2進制碼表示,000表示0碼,010表示-1,110表示+1,011表示-V,111表示+V,001表示-B,101
37、表示+B。(2) 雖然實現的設計要求的基本功能,但是所用方法較復雜,事實上還可能找到其他的建模方法。(3) 硬件實現的可能性不高。(4) 最后經外圍電路輸出不是很理想,無法消除毛刺現象,還需繼續改進。 這些方面都需要我繼續學習下去,在不斷的積累當中去想清楚、弄明白,豐富這些問題,當然,在豐富了自己的知識和經驗后,問題應會迎刃而解。 通過這次畢業設計,讓我學到了很多知識,也獲得很多體會,這是自己將平日學的理論知識應用到實際操作中的一次很好的實踐。同時,也是通過自己這三個月來的不斷學習和努力,才明白:實際操作和設計,并不是像學習理論知識那么簡單,會理論不等于就會應用,很多都是經驗的東西,需要在自己
38、的努力設計中才能慢慢體會到,設計多了,才會經驗中找到設計自如的感覺。就像我,對于VHDL語言,開始也沒有什么太大的感覺,看書的時候,很清楚明白它的設計結構和流程是什么樣的,但是一旦拋開書本,開始自己編程序的時候,不是這里忘了定義,就是那里忘了結構方式;但是,到了現在,在這段時間的不斷實踐編程中,程序設計的流程和一些要注意的地方,我都記得很清楚,能很容易的編寫一段簡單的程序了,也不用看書本幫忙了,這些都是光靠看書本得不到的經驗,是我最大的收獲。 雖然說,整個系統還存在很多不足,但是,我也并不感到有太多的遺憾,因為面對自己這段時間的辛勤勞動的成果,心里更多的還是萬分喜悅!不足之處總是有的,這些就是
39、自己今后需要努力的地方,只要不斷的朝著自己的目標的努力,很快就會有解決的那一天!參考文獻1 袁天夫NI訖碼與m馮碼相互轉換的實現J集成電路應用,1997(3):24292 夏路易MAx+山教學用教程M太原:太原理工大學出版社,2001年。3 魯繼超,胡建萍,陳顯萼基于FPGA下GDF格式的)碼編碼電路J杭州電子工業學 院學報。2003,23(3):38474 鄧勇、周擇、鄧斌.數字電路設計完全手冊.北京: 國防工業出版社,2004年。5 段吉海、黃智偉等. 基于CPLD/FPGA的數字通信系統建模與設計M. 北京:電子工業 出版社,2004年。6 朱正偉.EAD技術及應用.清華大學出版社,20
40、05年。7 全國大學生電子設計組委會.電子系統設計實踐,2005年。8 催俊杰,郭宏基于FPGA的實時數據采集與遠程傳輸系統設計J電路與系統學報, 2005,30(2):3023039 韋崗、季飛、傅娟. 通信系統建模與仿真M. 北京:電子工業出版社,2007年。10 王興亮通信系統原理教程M,西安:西安電子科技大學出版社,2007年。11 李環等著. 通信系統仿真設計與應用. 北京:電子工業出版社,2009年。12 鄭存芳、隋韋韋、丁麗華.基于EDA技術的HDB3編碼器的設計與實現OL.2009年。13 林明權.VHDL數字控制系統設計范例. 電子工業出版社。14 馮濤.可編程邏輯器件開發技
41、術MAXplus入門與提高,人民郵電出版社。15 王毓銀.數字電路邏輯設計,高等教育出版社。16 趙俊超.集成電路設計VHDL語言教程,北京希望出版社。17 Assuncao P Post-processing of MPEG-2 coded video for transmission at lower bit rates 1996(04).18 Bruce Carlson A;Paul B Crilly;Janet C Rutledge Communication Systems 2002.致謝在這次的畢業設計中,我付出努力的同時,更多的是得到了來自老師們和同學們的熱情幫助,其中,我的輔導
42、老師給予我很多的關心和幫助,經常幫助我分析問題,解決困擾,為我設計的順利進行給予了必要的保證;正是由于得到了這么的幫助和鼓勵,我的畢業設計才能一次又一次挑戰困難,順利達到目標,所以,在此,我對所有幫助和關心過我的所有老師和同學們,說一聲:衷心的感謝! 附錄:基于VHDL語言的HDB3碼編/解碼器設計程序-序列產生library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity xulie is port(clk,en,reset:in std_
43、logic; dout:out std_logic);end entity ;architecture behave of xulie is signal count11:integer range 0 to 23;begin process(clk,reset) begin if reset='1' then count11<=0; elsif clk'event and clk='0' then if en='1' then if count11<24 then count11<=count11+1; else co
44、unt11<=0; end if; end if; end if; end process;process(count11) begin case count11 is when 0=>dout<='1' when 1=>dout<='0' when 2=>dout<='0' when 3=>dout<='0' when 4=>dout<='0' when 5=>dout<='1' when 6=>dout<=
45、'0' when 7=>dout<='0' when 8=>dout<='0' when 9=>dout<='0' when 10=>dout<='1' when 11=>dout<='1' when 12=>dout<='0' when 13=>dout<='0' when 14=>dout<='0' when 15=>dout<='0
46、' when 16=>dout<='1' when 17=>dout<='1' when 18=>dout<='0' when 19=>dout<='0' when 20=>dout<='0' when 21=>dout<='0' when 22=>dout<='1' when 23=>dout<='0' when others=>dout<='
47、0' end case; end process;end behave;-D觸發器library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;ENTITY D ISPORT(D,CLK: IN std_logic;Q: OUT std_logic);END D;ARCHITECTURE behave OF D ISBEGINPROCESS(CLK)BEGINIF(CLK'EVENT ANDCLK='1')THENQ<=D;END IF;END PROCESS;END be
48、have;-編碼器library ieee;use ieee.std_logic_1164.all;entity xhdb3 ISport(codein:in std_logic;clk: in std_logic;clr: in std_logic;codeout:out std_logic_vector(1 downto 0);end xhdb3;architecture behave of xhdb3 issignal cnt0:integer:=0;signal flag0:integer range 1 downto 0:=0;signal flag1:integer range 1
49、 downto 0:=0;signal flag2:integer range 1 downto 0:=1;signal flag3:integer range 1 downto 0:=0;signal firstv:integer range 1 downto 0:=0;signal codeoutv:std_logic_vector(2 downto 0);signal s0:std_logic_vector(4 downto 0):="00000"signal codeoutb:std_logic_vector(2 downto 0);signal s1:std_lo
50、gic_vector(4 downto 0):="00000"signal clkb:std_logic;signal clkv:std_logic;signal clkout:std_logic;signal s2:std_logic_vector(4 downto 0):="00000"signal s3:std_logic_vector(2 downto 0);component dffport(d :in std_logic;clk:in std_logic;q :out std_logic);end component;begin-vclk:c
51、lkv<=clk after 10 ns;add_v:process(clk,clr)beginif clk'event and clk='1'thenif clr='1'thencodeoutv<="000"cnt0<=0;elsecase codein iswhen '1'=>cnt0<=0;if(flag0=0)thencodeoutv<="110"flag0<=1;elsecodeoutv<="010"flag0<=0
52、;end if;when '0'=>if cnt0=3 thenif firstv=0 thenif flag0=0 thencodeoutv<="011"flag1<=0;elsecodeoutv<="111"flag1<=1;end if;firstv<=1;elseif flag1=0 thencodeoutv<="111"flag1<=1;flag0<=1;elsecodeoutv<="011"flag1<=0;flag0&l
53、t;=0;end if;end if;cnt0<=0;elsecnt0<=cnt0+1;codeoutv<="000"end if;when others=>codeoutv<="000"cnt0<=cnt0;end case;end if;end if;end process add_v;s0(0)<=codeoutv(0);s1(0)<=codeoutv(1);s2(0)<=codeoutv(2);ds21:dff port map(s2(0),clk,s2(1);ds11:dff port ma
54、p(s1(0),clk,s1(1);ds01:dff port map(s0(0),clk,s0(1);ds22:dff port map(s2(1),clk,s2(2);ds12:dff port map(s1(1),clk,s1(2);ds02:dff port map(s0(1),clk,s0(2);ds23:dff port map(s2(2),clk,s2(3);ds13:dff port map(s1(2),clk,s1(3);ds03:dff port map(s0(2),clk,s0(3);bclk:clkb<=not clk;add_b:process(clkb)begini
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 新時代醫院電子病歷系統優化與數據安全防護研究報告
- 爆破公司安全試題及答案
- 安全作業試題知識及答案
- 從能源到環保2025年可燃冰開采技術預研全視角報告001
- 安全生法試題及答案
- 安全生產責任制試題及答案
- 安全教培訓試題及答案
- 中國廚藝學校教案課件
- 中國功夫教學大全課件
- 原發性高血壓的健康教學
- 燒傷傷員入院處置技術
- 老舊小區改造、提升項目部與小區居民、單位協調方案
- 云南省玉溪市(2024年-2025年小學五年級語文)人教版期末考試(下學期)試卷及答案
- 反詐宣講培訓課件
- 上海市幼兒園幼小銜接活動指導意見(修訂稿)
- 培訓學校收費和退費管理制度
- Welcome Unit 開學第一課(課件)高中英語人教版必修第一冊
- 護理安全意識
- 鋼筋內部比對作業指導書
- 幼兒園中班社會《美麗的黃山》課件
- 法社會學教程(第三版)教學
評論
0/150
提交評論