光纖通信系統(tǒng)5B6B碼譯碼的設(shè)計(jì)與仿真.doc_第1頁
光纖通信系統(tǒng)5B6B碼譯碼的設(shè)計(jì)與仿真.doc_第2頁
光纖通信系統(tǒng)5B6B碼譯碼的設(shè)計(jì)與仿真.doc_第3頁
光纖通信系統(tǒng)5B6B碼譯碼的設(shè)計(jì)與仿真.doc_第4頁
光纖通信系統(tǒng)5B6B碼譯碼的設(shè)計(jì)與仿真.doc_第5頁
已閱讀5頁,還剩30頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

光纖通信系統(tǒng)5B6B碼譯碼的設(shè)計(jì)與仿真中文摘要在電力系統(tǒng)通信中,數(shù)字光纖通信由于其本身的優(yōu)點(diǎn)得到越來越廣泛的應(yīng)用。在數(shù)字光纖通信系統(tǒng)中,從電端機(jī)傳輸過來的電信號(hào)均要結(jié)合數(shù)字光纖通信傳輸?shù)奶攸c(diǎn)經(jīng)過線路碼型的轉(zhuǎn)換。通過線路碼型的轉(zhuǎn)變平衡數(shù)字碼流中的“0”和“1”碼字,從而避免碼流中出現(xiàn)長“0”或者長“1”的現(xiàn)象。在數(shù)字光纖通信系統(tǒng)中比較常用的線路碼型就是mBnB碼型,mBnB線路碼型的最大優(yōu)點(diǎn)是最大相同碼元連碼數(shù)少、定時(shí)信息豐富、且有簡單成熟的誤碼監(jiān)測與碼組同步的方法。5B6B碼編碼是將自己編寫的數(shù)據(jù)按照一定的規(guī)律,編成6B碼流后輸出;而譯碼則是將傳輸?shù)浇邮諜C(jī)的6B碼流,翻譯成5B碼流后輸出。5B6B碼譯碼的過程是編碼的逆過程,本文主要涉及到的是譯碼的過程,譯碼部分由序列產(chǎn)生模塊、緩沖模塊以及譯碼模塊構(gòu)成。這篇論文重要介紹了光纖通信系統(tǒng)的優(yōu)缺點(diǎn),組成以及發(fā)展趨勢(shì);常見的線路碼型;Quartus2軟件的介紹;5B6B碼的譯碼原理和設(shè)計(jì),最后對(duì)程序以及電路譯碼的仿真,最終得到正確的結(jié)果。關(guān)鍵詞:5B6B碼譯碼;FPGA;VHDL 語言;Quartus2 軟件;波形仿真5B6B Code Decoding of Optical Fiber Communication System Design and Simulation ABSTRACTIn power system communication, digital optical fiber communication because of its advantages to get itself more and more widely used. In the digital optical fiber communication system, from the electric machine transmission to come over to the electrical signals to combine the characteristics of the digital optical fiber communication transmission via the line type conversion. Through balance the digital stream line type 0 and 1 in the code word, thus avoiding stream in 0 or 1 long. Are frequently used in the digital optical fiber communication system in the line type is mBnB type, the biggest advantage of this type is the same biggest mBnB line element even less yards, timing, abundant information, simple and mature method of error monitoring and synchronization code group.5B6B code coding is to write your own data, according to certain rules into after 6B stream output; The decoding is 6B stream will be transmitted to the receiver, after translated into 5B stream output. 5B6B code decoding is the process of the inverse process of coding, this paper mainly involves is the process of decoding, decoding part produced by sequence module and buffer module and decoding module. This paper the advantages and disadvantages of important optical fiber communication system are introduced, the composition and development trend; Common line type; The introduction of Quartus2 software; 5B6B code decoding principle and design, finally, the decoding process and circuit simulation, finally get the correct result. KEY WORD:5B6B decoding; FPGA; VHDL language; Quartus2 software; Waveform simulation目錄第一章 光纖通信系統(tǒng)11.1光纖通信的優(yōu)點(diǎn)與缺點(diǎn)11.2光纖通信系統(tǒng)的組成21.3光纖通信的發(fā)展趨勢(shì)2第二章 光纖通信中的線路編碼42.1線路擾碼42.2mBnB碼52.3插入碼5第三章 Quartus2 軟件的簡單介紹63.1 創(chuàng)建工程文件63.2 設(shè)計(jì)輸入63.3 設(shè)計(jì)項(xiàng)目編譯73.4 項(xiàng)目的仿真73.5 編程下載7第四章 5B6B碼譯碼94.1 5B6B碼譯碼原理94.2 5B6B碼譯碼的設(shè)計(jì)104.3 譯碼電路的電路模塊劃分104.3.1序列產(chǎn)生模塊114.3.2譯碼模塊114.4 5B6B碼譯碼的VHDL程序設(shè)計(jì)124.4.1 序列產(chǎn)生模塊的設(shè)計(jì)與仿真124.4.2 緩沖電路模塊的設(shè)計(jì)與仿真154.4.3 譯碼模塊的設(shè)計(jì)與仿真174.4.4 頂層原理圖的設(shè)計(jì)與仿真204.5禁碼的還原224.6 5B6B碼譯碼設(shè)計(jì)與仿真總結(jié)23第五章 結(jié)束語24參考文獻(xiàn)25致謝26附錄1:圖表目錄I附錄2:5B6B碼碼碼表II附錄3:序列產(chǎn)生模塊make_6b代碼III附錄4:緩沖電路的程序代碼IV附錄5:譯碼模塊decode_change6bto5b代碼IV 第一章 光纖通信系統(tǒng) 高錕博士在1966年提出了光纖通信,此后光纖通信的迅速發(fā)展遠(yuǎn)遠(yuǎn)超出了人們的想象,并且以其獨(dú)特的優(yōu)點(diǎn)掀起了通信領(lǐng)域的革命性改革。無論人們是在玩電腦,打電話還是在購物,我們無時(shí)無刻都在使用著光纖通信技術(shù),即我們每次通過電子設(shè)備進(jìn)行的遠(yuǎn)距離通信,就是在使用光纖通信技術(shù)。從光纖通信系統(tǒng)的鏈路上來看,光纖是指光發(fā)射機(jī)與光接收機(jī)之間的強(qiáng)大鏈路,并且它有著強(qiáng)大的運(yùn)載信息能力,在目前看來,我們對(duì)帶寬日益增長的需求,除了光纖通信系統(tǒng)以外,再也沒有其他的途徑可以滿足我們這一需求了1。1.1光纖通信的優(yōu)點(diǎn)與缺點(diǎn)沒有好的光源以及理想的傳輸煤質(zhì)這兩大因素曾嚴(yán)重地阻礙了光纖通信向?qū)嵱没姆较虬l(fā)展,在目前看來,這些因素都得到了非常圓滿的解決。1982年后光纖通信的迅速發(fā)展促進(jìn)了光纖產(chǎn)業(yè)化應(yīng)用,因此光纖的需求量呈現(xiàn)了指數(shù)規(guī)律的增長趨勢(shì)。光纖在世界各國的各個(gè)領(lǐng)域都得到廣泛應(yīng)用,它也成為了高質(zhì)量的信息傳輸?shù)闹匾侄?。在光纖通信系統(tǒng)中,載波的光波頻率要比電波頻率高,但是對(duì)于傳輸介質(zhì)的光纖又比同軸電纜或者波導(dǎo)管的損要低,所以相對(duì)于電纜通信來說,光纖通信有以下優(yōu)點(diǎn): 抗電磁干擾性能很好 泄漏小,保密性能很好 重量比較輕,體積也很小 頻帶很寬,傳輸?shù)娜萘勘容^大 節(jié)約材料,有利于資源合理利用 損耗小,誤碼率小,中繼距離長, 事情都是有利有弊的,光纖通信有很多的優(yōu)點(diǎn),但是也存在著一些弊端,如下: 抗拉強(qiáng)度比較低。在抗拉強(qiáng)度方面,光纖的抗拉強(qiáng)度要遠(yuǎn)大于鋼的。光纖在的生產(chǎn)過程的中,表面會(huì)多多少少存在一些微型的裂痕,為了保護(hù)光纖可以增加涂覆層,或者增加一些特殊的抗拉元件。 光纖連接比較困難。在光纖的連接上,必須使兩根光纖的纖芯特別細(xì),并且要加上石英,因?yàn)槭⒌娜埸c(diǎn)很高,這樣才能使得光纖的連接損耗小,所以總體來說,光纖的連接還是很困難的2。1.2光纖通信系統(tǒng)的組成光纖通信系統(tǒng)的組成有光發(fā)射機(jī)、光纖和光接收機(jī),每個(gè)部分如下圖所示。光發(fā)射機(jī)光接收機(jī)光纖信道光源光耦合器光檢測器光解調(diào)器光耦合器光調(diào)制器圖1光纖通信系統(tǒng)的組成 光發(fā)射機(jī)主要由光源、光耦合器以及光調(diào)制器組成。光發(fā)射機(jī)主要負(fù)責(zé)將電信號(hào)轉(zhuǎn)換為光載波并且還要通過光耦合器注入到光纖信道中。光源采用與光纖通信信道兼容的發(fā)光管或者是激光器。光調(diào)制器主要用來完成由光載波到光信號(hào)的調(diào)制。光耦合器利用微透鏡,以它最大的效率將光信號(hào)注入到光纖信道中。光纖起著光信號(hào)通道的作用。光纖將光信號(hào)沒有變化的從光發(fā)射機(jī)傳送到光接收機(jī)中去。光纖的衰減系數(shù)決定了長途光纖通信系統(tǒng)的中繼器或者放大器的間距。光纖通信系統(tǒng)的傳輸距離和傳輸速率主要受光纖的色散系數(shù)來限制。光接收機(jī)主要由光解調(diào)器、光檢測器以及光耦合器組成。光接收機(jī)主要負(fù)責(zé)將光纖輸出端接受到的光信號(hào)變換成原來的電信號(hào)。光解調(diào)器主要是利用直接光強(qiáng)度調(diào)制技術(shù),通過判決電路來辨別光檢測器所產(chǎn)生的電信號(hào)幅值是比特“0”或者是“1”,來完成對(duì)光的解調(diào)。光檢測器主要是用來實(shí)現(xiàn)光電轉(zhuǎn)換的。光耦合器則是將接收到的光信號(hào)集合至光檢測器3。1.3光纖通信的發(fā)展趨勢(shì)隨著現(xiàn)代科技技術(shù)的進(jìn)步,電信的改革及電信市場對(duì)外的全方面開放,再一次地呈現(xiàn)了光纖通信蓬勃發(fā)展的新新局面,以下介紹的就是光纖通信領(lǐng)域中的幾個(gè)主要的發(fā)展趨勢(shì):1、向超高速系統(tǒng)的方向發(fā)展網(wǎng)絡(luò)容量的需求以及提高傳輸速率一直以來都是在過去20多年的電信發(fā)展史上的一對(duì)非常主要的矛盾。每當(dāng)傳輸速率提高時(shí),傳輸每比特的成本就會(huì)下降,所以說高比特率的經(jīng)濟(jì)效益會(huì)按照一定的指數(shù)規(guī)律來增長。2、 向超大容量WDM系統(tǒng)的演進(jìn) 波分復(fù)用的好處是: 光纖的帶寬資源,可以擴(kuò)大傳輸?shù)娜萘浚?長距離傳輸時(shí)可以通過節(jié)約光纖來降低成本; 引進(jìn)寬帶新業(yè)務(wù),與電調(diào)制方式以及信號(hào)速率無關(guān);3、 實(shí)現(xiàn)了光聯(lián)網(wǎng)波分復(fù)用系統(tǒng)的基礎(chǔ)是點(diǎn)到點(diǎn)的通信,所以在一定程度上來說,其靈活性以及它的可靠性還不夠完善。光聯(lián)網(wǎng)的好處有: 實(shí)現(xiàn)了網(wǎng)絡(luò)的透明性; 實(shí)現(xiàn)了網(wǎng)絡(luò)快速恢復(fù); 實(shí)現(xiàn)了網(wǎng)絡(luò)的擴(kuò)展性; 實(shí)現(xiàn)了超大容量的光網(wǎng)絡(luò); 實(shí)現(xiàn)了網(wǎng)絡(luò)的可重塑性,以提高靈活性;4、 新型光纖隨著IP業(yè)務(wù)量的增長而增長傳統(tǒng)的G.652單模光纖不能夠適應(yīng)長距離超高速傳送網(wǎng)絡(luò)的發(fā)展需要了,因此需要開發(fā)出新型的光纖。而在此時(shí)電信網(wǎng)正向下一代可持續(xù)發(fā)展的方向努力發(fā)展著,新一代的非零色散光纖的設(shè)計(jì)思路是在1550窗口工作波長區(qū)具有合適的較低色散,可以不需要色散的補(bǔ)償來支持長距離的傳輸4。第二章 光纖通信中的線路編碼 光纖通信系統(tǒng)中,從輸出端輸出來的都是雙極性碼。然而光源是不可以發(fā)射出負(fù)的光脈沖的,所以碼型的變換在這種情況下是非常重要的。在光纖通信系統(tǒng)中,“無光脈沖”表示“0”碼,“有光脈沖”表示“1”碼,它采用的都是二電平碼,這種碼也存在著以下問題: 在隨機(jī)的碼流中,極易出現(xiàn)長串連碼,即長連“0”碼和長連“1”碼,這樣會(huì)帶來位同步信息的丟失,會(huì)造成定時(shí)誤差。 不能進(jìn)行在線的誤碼檢測,而且也適合于長距離通信。 因此在光纖通信系統(tǒng)中線路碼型的傳輸透明性很重要的,具體的要求如下: 為了減小隨機(jī)波動(dòng),必須限制信號(hào)的帶寬,減小高低頻分量,以此來提高靈敏度。 給光接收機(jī)足夠的定時(shí)信息,保證定時(shí)信息足夠豐富。 合理地減小冗余度。線路編碼是數(shù)字光發(fā)射機(jī)中的重要組成部分,其主要是將電端機(jī)輸出的代碼按照光纖通信系統(tǒng)的基本要求來進(jìn)行碼型的相關(guān)變換。在光纖通信系統(tǒng)中,常用的線路碼型有:擾碼,mBnB碼以及插入碼5。2.1線路擾碼 線路擾碼就是對(duì)輸入的二進(jìn)制序列進(jìn)行轉(zhuǎn)換,這樣這個(gè)二進(jìn)制序列就會(huì)接近隨機(jī)的序列。然后再接收端再將擾碼解擾還原,因此保證了信息傳輸?shù)耐该鞫取T谙到y(tǒng)光發(fā)射機(jī)的調(diào)制器前面可以增加一個(gè)擾碼器,這樣做的目的是保證傳輸?shù)耐该餍?,以此來將原始的二進(jìn)制碼序列進(jìn)行一些簡單的變換,讓其基本上接近于隨機(jī)序列。如:擾碼前序列:1100000011000擾碼后序列:1101110110011 m序列可以用來實(shí)現(xiàn)擾碼器,在發(fā)射端產(chǎn)生m序列,然后將m序列與信息序列做模二加的運(yùn)算,這樣輸出來的就是經(jīng)過加擾的隨機(jī)序列了。解擾器在使用相同的擾碼序列與接收到的序列做模二加運(yùn)算,用來恢復(fù)原始的信息。擾碼也有它的一些缺點(diǎn):不能控制連續(xù)碼的出現(xiàn);不能在線誤碼檢測;不能夠解決隨機(jī)波動(dòng)。2.2mBnB碼該碼型又稱為塊碼、分組碼以及字母平衡型碼等等。在一般情況下都是nm。將輸入的二進(jìn)制碼每mB分成一組作為一個(gè)碼字,將輸入的碼字在相同的時(shí)間間隔內(nèi),根據(jù)一定的編碼規(guī)則,將其變換成nB一組的新碼字,最后以不歸零或歸零格式傳輸這些新碼流,此新碼就是mBmB碼。m,n都為正整數(shù),且多數(shù)用n=m+1這種形式,經(jīng)過一些變換,線路碼速率就會(huì)相比原二進(jìn)制碼率提高了n/m倍。常見的有1B2B,2B3B,3B4B,4B5B,5B6B碼,8B9B等,其中5B6B碼在高次群光纖通信系統(tǒng)中用得比較頻繁。mBnB碼的編碼原理以最簡單的1B2B碼(曼徹斯特碼)即將原碼中的“0”碼變換為“01”碼,將“1”碼變成“10”碼6。2.3插入碼 插入碼是將原始輸入的二進(jìn)制碼按照每m比特一組進(jìn)行分組操作,然后在每組碼的后面插入一個(gè)碼字,組成一組新的線路碼型長度為m+1,插入碼根據(jù)其插入碼字的規(guī)律不同可以分為以下幾種碼型:mB1C碼、mB1H碼以及mB1P碼7。 第三章 Quartus2 軟件的簡單介紹Quartus2是美國Altera公司研制的第四代有關(guān)PLD的開發(fā)軟件,這款軟件是適合單芯片可編程系統(tǒng)(SOPC)的最全面的設(shè)計(jì)環(huán)境。Quartus2軟件所支持的器件有很多,如max3000A、max 7000B、max 7000S、max7000AE、max2、mercury、cyclone、cyclone 2、stratix2、stratix GX、stratix、flex6000、flex10K、flex10KA以及flex0KE等。Quartus2軟件包的編程器可以提供功能強(qiáng)大的設(shè)計(jì)處理,因?yàn)樗钦麄€(gè)系統(tǒng)的主要部分,設(shè)計(jì)者可以通過增加一定的約束條件來提高芯片的利用率。Quautus2軟件有它自帶的仿真器與綜合器,這些可以用來完成從設(shè)計(jì)輸入到硬件配置的整個(gè)設(shè)計(jì)過程。它可以支持altera的ip核,并且含有一些宏功能模塊庫8。Quartus2軟件的項(xiàng)目設(shè)計(jì)過程可以劃分為下面幾個(gè)步驟:設(shè)計(jì)流程如下圖所示 輸入電路 創(chuàng)建新工程 項(xiàng)目編譯 項(xiàng)目仿真 編程下載 圖2 項(xiàng)目設(shè)計(jì)過程的步驟3.1 創(chuàng)建工程文件在Quartus2軟件上創(chuàng)建一個(gè)新的工程。所謂工程就是你的設(shè)計(jì)的描述、設(shè)置、數(shù)據(jù)以及輸出的整個(gè)集合,此軟件會(huì)將這些存儲(chǔ)在不同類型文件集中放在同一個(gè)文件夾下,所以要?jiǎng)?chuàng)建一個(gè)工程。創(chuàng)建一個(gè)新的工程步驟如下: 打開Quartus2軟件,點(diǎn)擊“File”,選擇“New Project Wizard”; 在新彈出的窗口中分別鍵入新工程的工作路徑、項(xiàng)目名稱以及實(shí)體名稱,且項(xiàng)目名稱和實(shí)體名稱要一致; 然后用鼠標(biāo)點(diǎn)擊下方的“finish”按鈕即可完成對(duì)新工程的創(chuàng)建。3.2 設(shè)計(jì)輸入 在設(shè)計(jì)輸入之前還有重要的一步是電路的設(shè)計(jì)部分,在整個(gè)系統(tǒng)的設(shè)計(jì)之前首先必須進(jìn)行的是方案的論證、系統(tǒng)的設(shè)計(jì)以及FPGA芯片的選擇等等。一般來說采用的設(shè)計(jì)方案都是自頂向下的,即將整個(gè)系統(tǒng)劃分為若干個(gè)小模塊,然后再每個(gè)模塊劃分為下一個(gè)層次的小模塊,直到直接可以調(diào)用元件庫里的元件。設(shè)計(jì)輸入是將所設(shè)計(jì)的電路按照開發(fā)系統(tǒng)要求的形式表達(dá)出來的過程9。設(shè)計(jì)輸入有如下三種方式: 原理圖輸入方式。這種方式非常適合于對(duì)各部分電路都很熟悉的設(shè)計(jì)。 硬件描述語言輸入方式。硬件描述語言就是用文本方式描述出來的設(shè)計(jì),硬件描述語言有ABEL、AHDL、VHDL、verilog等。 波形輸入方式。 一般常用的設(shè)計(jì)輸入方式是和,我的本次設(shè)計(jì)采用的是原理圖輸入的方式。3.3 設(shè)計(jì)項(xiàng)目編譯 打開“Processing”菜單,點(diǎn)擊“Start Compilation”即可執(zhí)行項(xiàng)目的編譯功能,編譯器將運(yùn)行預(yù)先指定的各個(gè)模塊的功能。編譯成功后,編譯器將會(huì)產(chǎn)生相應(yīng)的輸出文件。如果有錯(cuò)誤出現(xiàn),編譯器將停止編譯,并會(huì)相應(yīng)的給出錯(cuò)誤的信息欄,用鼠標(biāo)點(diǎn)擊“error”的信息條,一般下可以指出錯(cuò)誤的地方,以便修改,直至所有的錯(cuò)誤均消除后,系統(tǒng)就會(huì)彈出編譯成功的窗口10。3.4 項(xiàng)目的仿真仿真檢查綜合結(jié)果是否與原先要設(shè)計(jì)的項(xiàng)目功能是否一致。項(xiàng)目的編譯成功,需要做的就是對(duì)每個(gè)模塊的功能進(jìn)行仿真測試,來查看設(shè)計(jì)的結(jié)果是否滿足原先設(shè)計(jì)的基本要求。仿真分為功能仿真、時(shí)序仿真以及波形仿真。功能仿真僅僅測試設(shè)計(jì)的邏輯功能;而時(shí)序仿真首先要測試邏輯的功能,而且還要測試有關(guān)設(shè)計(jì)的一些目標(biāo)器件;波形仿真是在波形編輯器中將設(shè)計(jì)的邏輯功能用波形圖的形式顯示,通過查看波形圖來檢查設(shè)計(jì)的邏輯功能是否符合設(shè)計(jì)的要求。波形仿真的步驟包括新建波形文件、設(shè)置波形仿真器、插入仿真節(jié)點(diǎn)、編輯輸入波形、運(yùn)行仿真器、檢查輸出波形是否符合設(shè)計(jì)要求等。3.5 編程下載編程下載之前必須把下載線將計(jì)算機(jī)與硬件連接好,然后打開電源: 打開編程窗口和配置文件。選擇ToolPromgrammer,彈出編程窗口。注意核對(duì)一下下載路徑與文件名,如果此文件沒有出現(xiàn)或者出錯(cuò),需要手動(dòng)來選擇配置文件。最后單擊Start按鈕,進(jìn)入下載操作。 設(shè)置編程器。 器件編程就是編譯和波形仿真正確后,Quartus2將生成的如.pof和.sof等編程數(shù)據(jù)文件通過下載電纜載到預(yù)先選擇的FPGA芯片中。下載成功后,該FPGA芯片就會(huì)執(zhí)行設(shè)計(jì)文件描述的功能。器件編程的步驟可以分為:編程硬件連接、編程文件的產(chǎn)生、運(yùn)行編程操作。器件編程操作成功后,查看FPGA功能與設(shè)計(jì)文件描述的功能是否一致即可。第四章 5B6B碼譯碼4.1 5B6B碼譯碼原理 5B6B碼譯碼是編碼過程的逆過程,也就是將發(fā)送端送來的已變換的6B信號(hào)碼流,按照每6比特分為一組,然后讀出5B碼流。5B6B碼譯碼簡單的講就是將6B的數(shù)據(jù)怎樣變成是5B的數(shù)據(jù)。5B6B碼譯碼的實(shí)現(xiàn)的方法主要有兩種:一種是用集成電路來實(shí)現(xiàn),另一種是用碼表類實(shí)現(xiàn)。我用的是第二種方法實(shí)現(xiàn)的。5B6B碼線路碼型編碼是將二進(jìn)制數(shù)據(jù)流每5bit劃分為個(gè)字組,然后在相同時(shí)間段內(nèi)按一個(gè)確定的規(guī)律編碼為6bit碼組代替原5bit碼組輸出。原5bit二進(jìn)制碼組有25共32種不同組合,而6bit二進(jìn)制碼組有26共64種不同組合。所以不可能是一一對(duì)應(yīng)的映射。為了使“0”碼“1”碼出現(xiàn)的機(jī)會(huì)相同,為了減小直流漂移和避免出現(xiàn)長連“0”和長連“1”的碼組,必須要進(jìn)行碼組的變換。為解決這個(gè)問題,必須要進(jìn)行6B的碼表設(shè)計(jì)。而其它的碼組作為不允許使用的碼組和禁用碼組,如6B碼流“011000000110”、“111111”、“000000”前者是由于使用了不允許使用的碼組而造成的;后者是由于使用了禁止碼組。有了碼表,就可以按照碼表進(jìn)行設(shè)計(jì)了。6bit碼組的64種組合中碼組數(shù)字和WDS值分布情況是:WDS0的碼組有C63 =20個(gè) WDS2的碼組有C62 + C64=30個(gè)WDS4的碼組有C61 +C65 =12個(gè) WDS6的碼組有C60 +C66 =2個(gè)選擇6bit碼組的原則是使線路碼型的功率譜密度中無直流分量,最大相同碼元連碼和小,定時(shí)信息豐富,編碼器、譯碼器和判決電路簡單且造價(jià)低廉等等。因?yàn)楦鶕?jù)線路傳輸要求,應(yīng)盡量選擇游程差值小的碼組11。據(jù)此原則選擇6bit碼組的方法為:d4、d6的6bit碼組舍去(共14種),作為禁止碼組(或稱“禁字”)處理。d0、d2的六位碼組都有取舍,并且取兩種編碼模式:一種模式是d0、2,稱模式I;另一種模式是d0、2,稱模式II。當(dāng)采用模式I編碼時(shí),遇到d2的碼組后,后面編碼就自動(dòng)轉(zhuǎn)換到模式II,在模式II編碼中遇到d2的碼組時(shí)編碼又自動(dòng)轉(zhuǎn)到模式I。碼表見附表。碼表設(shè)計(jì)是有一定的原則的: “0”碼和“1”碼出現(xiàn)的機(jī)會(huì)相同; 減少相同符號(hào)連續(xù)數(shù)的數(shù)量; 選取D值較小的碼組。mB碼字變換到nB碼字都是按照預(yù)先設(shè)定的碼表進(jìn)行的,碼表的不同將會(huì)產(chǎn)生不同的線路碼。它的線路碼速只比原始碼速增加百分之二十,但是變換以及逆變換電路并不復(fù)雜。5B6B碼線路碼型也有一定的缺點(diǎn),主要是:有誤碼擴(kuò)散,即當(dāng)傳輸線路碼中發(fā)生一個(gè)誤碼后,在譯碼變換為原信源碼時(shí)會(huì)產(chǎn)生幾個(gè)誤碼,使平均誤碼劣化,其可視為對(duì)接收靈敏度造成一定的功率損失12。4.2 5B6B碼譯碼的設(shè)計(jì)5B6B碼譯碼就是5B6B編碼過程的逆過程,它包含了序列產(chǎn)生模塊、緩存電路和譯碼電路模塊,與編碼相似。根據(jù)FPGA系統(tǒng)開發(fā)的設(shè)計(jì)步驟,把5B6B碼的譯碼電路分成若干模塊。由FPGA的主要設(shè)計(jì)方法。自頂向下的設(shè)計(jì)原則,可以將5B6B碼的譯碼電路的功能行為用原理框圖表示出來。進(jìn)而可以設(shè)計(jì)出各功能模塊。6B碼組5B碼組譯碼的輸出譯碼的輸入譯碼原理圖如下所示: 緩存電路譯碼電路序列產(chǎn)生模塊本地時(shí)鐘輸入時(shí)鐘變頻器圖3譯碼原理圖譯碼器的工作原理:同本地脈沖的驅(qū)動(dòng)下,通過時(shí)鐘變頻器產(chǎn)生5B碼和6B碼所需要的時(shí)鐘脈沖,輸入的碼流通過序列產(chǎn)生模塊和緩存電路模塊產(chǎn)生6B碼組,再通過譯碼電路,譯碼成相應(yīng)的5B碼組,這樣就可以完成了5B6B碼碼組的還原,輸出即可13。該模塊的功能是將序列產(chǎn)生模塊產(chǎn)生的序列進(jìn)行譯碼。譯碼的方法是通過調(diào)用碼表來實(shí)現(xiàn)的。即把碼表當(dāng)成是一種映射條件,輸入幾位得就調(diào)用幾次。如輸入24位的就需要調(diào)用4次。4.3 譯碼電路的電路模塊劃分由上面的提到的譯碼電路的原理框圖,在設(shè)計(jì)時(shí),結(jié)合實(shí)際和VHDL語言的描述特性,可把譯碼電路劃分為以下模塊。它們分別是:序列產(chǎn)生模塊、緩沖模塊、譯碼模塊和頂層模塊。以下是這四個(gè)模塊的設(shè)計(jì)思路以及相關(guān)的編寫程序。4.3.1序列產(chǎn)生模塊 序列產(chǎn)生模塊是由按鍵cout控制的,當(dāng)cout為0時(shí)清零,cout為2時(shí)輸出序列一個(gè)24位的序列,因?yàn)樵谠O(shè)計(jì)時(shí)采用的是循環(huán)技術(shù),它可以避免信號(hào)的重疊和覆蓋 ,所以可以產(chǎn)生所需要的目標(biāo)序列:6B序列。cout按鍵的值可以控制輸出的序列值,數(shù)據(jù)經(jīng)過編碼過后將變成是六位的序列。在Quartus2軟件下5B6B碼譯碼將采用由頂?shù)较碌脑O(shè)計(jì)方法,譯碼是比較復(fù)雜,模式的轉(zhuǎn)換容易出錯(cuò),所以我們一定要注意模式的轉(zhuǎn)換,然后還有禁碼的簡單處理。禁碼的處理可以見后面一節(jié)。4.3.2譯碼模塊 譯碼模塊的作用主要是負(fù)責(zé)輸入的并行碼組的譯碼。依然采用本地時(shí)鐘作為其工作時(shí)鐘。這個(gè)譯碼模塊是整個(gè)5B6B碼譯碼設(shè)計(jì)的核心部分。在整個(gè)譯碼過程中,當(dāng)然還要解決很多的問題,主要要解決的問題有:監(jiān)視和禁碼處理問題,時(shí)序同步問題等14。在6B碼中,在本設(shè)計(jì)中我選擇的是其中的46個(gè)碼組,在碼表的每種模式下都有一些禁碼,所謂禁碼就是出現(xiàn)而沒有采用的碼組。根據(jù)光纖通信實(shí)際情況來看,本設(shè)計(jì)用“重傳”的方法來解決這一問題或者根據(jù)禁字還原表來確定其信源碼。譯碼過程可以采用CASE語句來表達(dá)。在線路傳輸時(shí),注入一定數(shù)量的冗余碼,冗余碼是按照一定的規(guī)律計(jì)算出來的。在接收端,在對(duì)6B數(shù)據(jù)進(jìn)行計(jì)算,比較二次計(jì)算得來的冗余碼,看是否相同。如果相同,則傳輸無錯(cuò)誤;不同則傳輸有錯(cuò)誤。譯碼過程用VHDL語言描述:如case A is when 011000 = Q Q Q= 00001;4.4 5B6B碼譯碼的VHDL程序設(shè)計(jì)之前提到的模塊劃分,是為了進(jìn)一步了解5B6B碼譯碼模塊設(shè)計(jì)的過程。在具體的實(shí)際設(shè)計(jì)時(shí),一個(gè)大模塊中可以在劃分為若干小模塊。為了使代碼變得簡單點(diǎn),把串并轉(zhuǎn)換和并串轉(zhuǎn)換可以合并為一個(gè)模塊,可根據(jù)實(shí)際需要再設(shè)計(jì)模塊。4.4.1 序列產(chǎn)生模塊的設(shè)計(jì)與仿真該模塊的主要功能是產(chǎn)生一個(gè)24位的序列。當(dāng)按鍵cout=0時(shí),make_6b模塊清零,輸出是24位的全零;當(dāng)cout=1、2、3、4、5、6、9、10時(shí),分別輸出一份是24位的序列;當(dāng)cout=7時(shí)輸出高阻態(tài)值;當(dāng)cout=8時(shí),輸出禁碼“111111111111111111111111”。編譯成功,經(jīng)過封裝后創(chuàng)建的元件make_6b邏輯框圖 圖4 make_6b封裝后的框圖 該元件圖是可以方便后期的頂層文件設(shè)計(jì)。仿真成功后,仿真圖形如下: 在make_6b模塊中,當(dāng)cout=0時(shí),清零了這一模塊,從圖中可以看出輸出decode_ymin是一個(gè)24位的零值仿真之后的圖形如下:圖5 make_6b cout=0時(shí)產(chǎn)生的仿真圖下圖為make_6b cout=2時(shí)的仿真圖,當(dāng)cout=2時(shí)輸出值為“100110011001100110011001”。由下圖的仿真結(jié)果可以看出是仿真正確的。圖6 make_6b cout=2時(shí)產(chǎn)生的仿真圖下圖為make_6b cout=5時(shí)仿真圖,當(dāng)cout=2時(shí)輸出值為“101010101010101010101010”。由下圖的仿真結(jié)果可以看出是仿真正確的。圖7 make_6b cout=5時(shí)產(chǎn)生的仿真圖 下圖為make_6b cout=8禁碼時(shí)產(chǎn)生的仿真圖,為了在模擬序列光纖傳輸時(shí)受到干擾,所以變成是禁碼。當(dāng)cout=8時(shí),將輸出禁碼“111111111111111111111111”。從輸出仿真圖形可以看出仿真結(jié)果是正確的。圖8 make_6b cout=8時(shí)產(chǎn)生的仿真圖 由以上幾個(gè)波形仿真可以看出make_6b模塊的VHDL程序設(shè)計(jì)是正確的。此模塊的VHDL代碼可以參見附錄。4.4.2 緩沖電路模塊的設(shè)計(jì)與仿真 緩沖電路的作用是等序列產(chǎn)生電路序列產(chǎn)生好了以后,在進(jìn)行輸出譯碼。在序列產(chǎn)生模塊make_6b和譯碼模塊decode_change6bto5b之間,起到一定的速度緩沖作用。需要通過按鍵set來操作.如當(dāng)set=1時(shí)使能。程序的流程圖如下:等于1 set不等于1 decodein 高阻態(tài)圖9 緩沖電路huanchong_cir流程圖編譯成功,經(jīng)過封裝后創(chuàng)建的元件huanchong_cir邏輯圖圖10 huanchong_cir框圖仿真成功后,仿真圖形如下: 下圖為huanchong_cir模塊中 set=0時(shí)的仿真圖。當(dāng)set=0時(shí)低電平將不輸出輸入值,而輸出一個(gè)高組態(tài)值,即一組隨機(jī)值。從圖中我們可以看出仿真結(jié)果是正確的。圖11 huanchong_cir reset=0時(shí)仿真圖 下圖為 huanchong_cir模塊中的 set=1時(shí)的仿真圖。當(dāng)set=1時(shí),高電平有效,把輸入傳給輸出,從圖中我們可以看出仿真結(jié)果是正確的。圖12 huanchong_cir set=1時(shí)仿真圖 由以上幾個(gè)波形仿真可以看出huanchong_cir 模塊的VHDL程序設(shè)計(jì)是正確的,此模塊的VHDL代碼可以參見附錄。4.4.3 譯碼模塊的設(shè)計(jì)與仿真該模塊的功能是將序列產(chǎn)生模塊產(chǎn)生的序列進(jìn)行譯碼。譯碼的方法是通過調(diào)用碼表來實(shí)現(xiàn)的。即把碼表當(dāng)成是函數(shù),輸入幾位得就調(diào)用幾次。如輸入24位的就需要調(diào)用4次15。這樣可以簡化代碼。子程序不可像進(jìn)程那樣可以從其他進(jìn)程中進(jìn)行賦值操作,而只能調(diào)用后進(jìn)行端口映射;函數(shù)的return的數(shù)字類型不能加寬度。decode_change6bto5b程序清零賦值給decode_output ,而不能給decode_ymout因?yàn)檫M(jìn)程里面必須是中間信號(hào),而不可是外部引腳。程序的流程圖如下:decodein24位decodeout20位譯碼圖13譯碼decode_change6bto5b流程圖編譯成功,經(jīng)過封裝過后創(chuàng)建的元件decode_change6bto5b邏輯框圖圖14 decode_change6bto5b邏輯框圖 仿真成功后,仿真圖形如下: 下圖為decode_change6bto5b 模塊中,reset=0時(shí)仿真圖。當(dāng)reset=0時(shí)將復(fù)位,直接在輸出端口decode_ymout輸出20為的零值。從圖中的仿真結(jié)果可以看出仿真是正確的。圖15 decode_change6bto5b reset=0時(shí)仿真圖 下圖為decode_change6bto5b 模塊中,reset=1時(shí)仿真圖。6B碼為“101010101010101010101010”,通過譯碼模塊,輸出的5B碼流為“10101101011010110101”,通過查詢碼表可以看出此仿真結(jié)果是正確的。圖16 decode_change6bto5b reset=1時(shí)仿真圖(無禁碼) 下圖decode_change6bto5b模塊是禁碼時(shí)的仿真,輸出結(jié)果為“00000000001010110101”為正確結(jié)果。圖17 decode_change6bto5b禁碼時(shí)仿真圖 由以上幾個(gè)波形仿真可以看出decode_change6bto5b這一模塊的VHDL程序設(shè)計(jì)是正確的。此模塊的VHDL代碼可以參見附錄。4.4.4 頂層原理圖的設(shè)計(jì)與仿真其實(shí)頂層文件的設(shè)計(jì)可以用各模塊的實(shí)體連接電路圖來實(shí)現(xiàn)。這樣做的好處是方便易懂易實(shí)現(xiàn),也可以直接通過VHDL語言的描敘來完成。頂層原理圖的流程圖如下: make_6bHuanchong_cirdecode_change6bto5b圖18 頂層文件_decode流程圖 整個(gè)5B6B碼碼碼的譯碼變換頂層文件原理圖如下圖所示:圖19 頂層文件的原理圖編譯成功后,仿真圖形如下: 下圖為_decode頂層模塊中 ,cout=0時(shí)的清零仿真圖。圖 20_decode cout=0清零仿真圖 下圖為_decode模塊中cout=5時(shí),輸入6B碼“101010101010101010101010”無禁碼輸入時(shí)的仿真圖。當(dāng)沒有禁碼輸入時(shí),就可以根據(jù)前面設(shè)計(jì)的碼表來進(jìn)行譯碼。輸出的5B碼流為“1010110101101011010110101”,經(jīng)查碼表可以看出譯碼結(jié)果是正確的。即整個(gè)系統(tǒng)的譯碼仿真圖是正確的。圖21 _decode 無禁碼輸入時(shí)仿真圖 下圖為禁碼時(shí)的輸入,cout=8時(shí)的輸入為禁碼,6B輸入的碼流為“111111111111111111111111”5B的輸出碼流為“000000000000000000000000”經(jīng)驗(yàn)證該仿真結(jié)果是正確的。圖22 _decode 輸入禁碼時(shí)的仿真圖 由以上幾個(gè)波形仿真可以看出_decode模塊的VHDL程序設(shè)計(jì)是正確的,到此時(shí),整個(gè)5B6B碼的譯碼仿真就結(jié)束了。此模塊的VHDL代碼可以參見附錄。4.5禁碼的還原編碼的碼表出來以后,就要考慮進(jìn)一步確定譯碼的方案了。在6B碼64種線路碼中,大部分在碼表中都已經(jīng)有了對(duì)應(yīng)的解碼信息,可以直接解碼。在碼表中沒有定義的禁碼如何來尋找它們的譯碼呢?理想的情況下是不可能出現(xiàn)禁碼的,但是實(shí)際的信息傳輸過程中,是有可能出現(xiàn)禁字的。所以在這種情況下,得依靠建立禁字還原表來將禁字與信源碼對(duì)應(yīng)起來。建立禁字還原表可以分為三個(gè)步驟來進(jìn)行:(1) 根據(jù)禁

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論