《畢業(yè)論文——基于FPGA的HDB3編解碼器的設計》由會員分享,可在線閱讀,更多相關《畢業(yè)論文——基于FPGA的HDB3編解碼器的設計(8頁珍藏版)》請在裝配圖網上搜索。
1、基于FPGA的HDB3編解碼器的設計摘 要:本文簡要介紹了HDB3的基本原理和結構,分析了現有的HDB3編碼器和譯碼器的缺點,然后提出了一個基于FPGA的HDB3編碼器和譯碼器的新的設計,并介紹了硬件設計電路和軟件仿真。在Quartus7.2的開發(fā)環(huán)境中,通過VERILOG-HDL在EP2C35F672C8 CycloneII系列的芯片上來實現仿真。結果表明,本設計滿足HDB3編碼器和譯碼器的要求,具有簡易的硬件電路和靈活可變的軟件,運算快速,可以用在特定的通信系統(tǒng)。關鍵詞:FPGA;HDB3;編碼器和譯碼器I. 介 紹通信鏈路的編碼研究是現代數字通信技術的重要課題。行模式選擇正確時,有利于提
2、高通信質量,改善傳輸性能和擴展傳播距離。HDB3(高密度雙相碼)被稱為高角度雙相編碼,它甚至被允許“0”數量最大不超過3,這有利于定時信號的復位。因為它使用極性逆轉,基帶信號沒有直流分量,且非常小的低頻成分,這個曼徹斯特代碼有一個特定的錯誤檢測能力,而且非常容易解碼。現在,這個代碼被廣泛用于數字移動通信、數字光纖通信和數字微波通信系統(tǒng),這是一個現代數字通信系統(tǒng)的主要組成部分。它也是一個數字光纖光學通訊設備和PCM設備的接口模式,PCM設備是CCITT推薦的PCM基礎組、中等組和三組。因此,研究HDB3編解碼器是至關重要的。II. HDB3編碼和解碼的基本準則 HDB3碼是一種基于AMl的代碼改
3、進的雙相NRZ碼。當數據不會出現超過四個或含0字符的四個字符時,HDB3碼是AMI碼(替代馬克反演碼),也就是說交替極性信號。當數據出現在四個以上或含0的四個以上字符時,首先字符根據AMI編碼規(guī)則進行編碼,然后遵循這些步驟。第四個“0”必須改變?yōu)榉恰?”脈沖,標志著“+ V”或“V”,也被稱為“破壞性的脈沖”。至于“+ V”或“V”,其正極性和負極性應與原非極性的“0”的極性相同。與此同時,相鄰的“V”的標志交替變換極性,以確保代碼沒有直流組件。在本文中,字符串“000V”被稱為“破壞性序列”。當信號“V”和另一個相鄰的信號之間的非“0”的數目是單的時候,編譯后的代碼是HDB3編碼。相反,第一
4、個“0”在“破壞性序列”應當更換為“+B”或“-B”。對于“+B”或“-B”,它的正極性和負極性應當與前面的非“0”的相反,而非“0”的符號在“V”的后面,然后開始變換。它的轉換步驟見圖1。二進制序列 1 1 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1AMI碼 1 -1 1 0 0 0 0 -1 0 0 0 0 0 0 0 0 1編碼的第一步 1 -1 1 0 0 0 V -1 0 0 0 -V 0 0 0 -V 1編碼的第二步 1 -1 1 0 0 0 V -1 0 0 0 -V B 0 0 V -1圖1.HDB3編碼的格式HDB3碼的解碼是編碼的逆過程,解碼比編碼更容易實現
5、??梢钥闯鼍幋a規(guī)則,符號的破壞性脈沖極性總是與“V”前一樣,包括“B”。因此,從HDB3的編碼序列很容易識別“V”的符號。與此同時,可以得出結論,“V”的標志和三個相鄰符號必須是0,所以它們可以恢復成四個相鄰的“0”代碼。然后所有的“-1”變成“+1”,這是可用的原始資料來源。III. HDB3編解碼器的設計 目前,許多學者已經在設計和研究HDB3編解碼器。一方面是,堵塞“B”后添加“V”。另一方面是,該變量的信號雙極或單極輸出在參考文獻1中實現。當破壞符號插入時,信號的極性在編程過程中預留一邊。該變量雙極或單極輸出信號也在參考文獻2中計算出來。首先,四個相鄰的“0”代碼以及增加的“V”被檢測
6、出來。此外,一個破壞性的序列判定電路被設計出來。最后,HDB3編碼獲得?;贑D22103的HDB3編解碼器也被其他學者應用,這些設計方法大部分都基于AMI編解碼器的進化。HDB3編解碼器的規(guī)則一步一步進行到完全一致,過程復雜,缺乏優(yōu)化。插入“V”和“B”在這個過程中沒有分開,但這兩個步驟在本文中通過設置的信號參數合并到一起。根據實際需要,已經插入的脈沖“V”和“B”分別被“+ 1”或“1”取代。在系統(tǒng)的編譯過程中,字符串“00”是用來表示符號“0”,“01”代表符號“0”,“11”被視為“-1”,這是不同于其他設計系統(tǒng)中的增加脈沖“V”和插入脈沖“B”后的信號極性判斷。A. 編碼器的設計HD
7、B3編碼電路方框圖如圖2所示,根據HDB3規(guī)則進行編碼。零界的檢測首先通過輸入NRZ碼來實現,確定哪一個是四個“0”代碼相鄰的,相鄰的四個“0”碼將取代破壞性的“000V”或“B00V”序列。第一個相鄰的四個“0”代碼必須被摧毀的“000 V”序列所取代,有兩個邏輯電路的圖插入“V”脈沖和“B”脈沖。一個是當輸入信號序列是AMI碼,輸入信號直接輸出。另一個是當輸入的信號數量是等于或大于4,4n(n = 1、2、N)空數字而不是使用大規(guī)模數據,插入“V”脈沖。而“V”脈沖的位置僅僅是替代了空著的第一個符號位,輸出四個空字符串。在“B”的脈沖填滿了HDB3碼。根據破壞性序列的準則,決定“B”脈沖是
8、否插入“V”信號脈沖。是否加入大量空號或者原來的數字是保留在第一個4位空字符串中。同時,通過判斷奇偶校驗的非零字符的數量,在兩個破壞性脈沖之間選擇哪一個破壞時序電路。最后HDB3編碼序列的電路輸出扭轉形成交替,輸入序列和輸出序列是串行輸入和串行輸出。 HDB3的編碼可以通過可編程芯片EP2C35F672C8來完成,兩極的HDB3編碼是通過外部電路對稱的結構來完成,電路如圖3所示。pin1和pin2分別是正向和負向的單極輸入脈沖,這是由晶體管、電阻和電容組成,極性是由結合了高低信號的PNP型和NPN型的基極和發(fā)射級而改變的。圖2.HDB3編碼電路的功能模塊圖解圖3.HDB3編碼的電路圖B. 解碼
9、器的設計HDB3解碼是其逆變換,這時HDB3碼會減少到一個二進制的NRZ碼。HDB3解碼電路圖如圖4所示。首先,HDB3編碼及其逆變換通過一個平衡放大與非門的輸出。然后,HDB3+和HDB3-信號由雙或單輸出轉換。因為破壞性脈沖對HDB3編碼的影響,信號的互相及時轉換不能用于兩路二進制信號。因此信號甚至可能是一個非連續(xù)的兩個脈沖信號,以免另一個等同于“0”?!癡”脈沖的檢測是兩路脈沖,兩路二進制代碼的雙脈沖信號,這被稱為“V”脈沖。此外,NRZ信號輸出的時間決定是否發(fā)送到與非門。“B”脈沖和“V”脈沖信號同時得到。最后綜合兩個從“HDB3+”和“HDB3-”輸出的信號,“V”脈沖被減少到NRZ
10、信號。HDB3解碼的電路圖如圖5所示。圖4.HDB3解碼電路的功能模塊圖解圖5.HDB3解碼的電路圖 圖6.編碼流程圖 圖7.解碼流程圖編碼和解碼軟件流程在圖6和圖7中。verilog hdl仿真程序的一部分編碼和解碼:插入“V”的過程。always (clk=1)if (data_in=0 and sl3v(3 downto 1)=000)numv=1; judv=1;sl3v=(1 & sl3v(3 downto 1);else numv=0; judv=0;sl3v=data_in & sl3v(3 downto 1);The process of counting.if (judv=1
11、)sl2v=000;else always (clk=1)if (sl2v=111)sl2v=sl2v;else sl2v=sl2v+1;The process of V point tracking.if (numv=1)parv=0;else always (clk=1)if(data_in=1)parv=1;else parv=0; HDB3編解碼器的實時仿真是通過QartusII 7.2來實現的,包括輸出仿真結果,波形是否完全符合HDB3編解碼器在圖8和圖9中的編碼規(guī)則,編碼頻率100MHZ是系統(tǒng)時鐘輸入。在圖8中data_in1000011包括輸入二進制代碼的連續(xù)四個字符0。在HDB
12、3編碼的基礎原則上,輸出碼轉換數據輸出data_out是 11。在圖9中輸入系統(tǒng)時鐘,時鐘頻率100MHZ。data0是HDB3輸入代碼類型,data1是HDB3相反的代碼,data_out是二進制輸出流。圖8.HDB3編碼的仿真波形圖9.HDB3解碼的仿真波形IV.結 論 FPGA技術用于數字通信系統(tǒng),用芯片可以實現多種數字邏輯功能并且由于靈活多變的方式而提高了工作效率。在本文中,HDB3編解碼器的設計是基于FPGA實現的。首先,硬件電路的設計以及電路的仿真由軟件來完成,因為它是由很簡單的硬件電路來演示的。當進行仿真的時候,添加脈沖“V”和“B”在一起。本設計使用的芯片是Altera公司的C
13、ycloneII系列,有強大的模擬功能。該系統(tǒng)基于光纖通信原理實驗箱,有簡單的硬件電路、可擦寫的EP2C35F672C8芯片和編譯能力強的verilog hdl語言,具有容易升級,高靈活性的特點。系統(tǒng)只有12個存儲單元和12個寄存器,冗余少,運算速度快。本設計雖沒有應用通信實驗教學,但滿足了實際的通信系統(tǒng)傳輸的編碼要求,具有實際應用價值。 0參考文獻1 WANG Guang-yu; ZHANG Xiang-dong.A New Method Using VHDL Language to Code the HDB3J.Communications Technology, vol.12, pp.2
14、114, December 2007.2 Jia Huibin; Wang Lanxun. HDB3 Encoder and Decoder Based on FPGA. Electronic Science and Technology. pp.3740, September 2005.3 Jiang Qing,Lv Yi. Fast Implementation using programmable logic devices HDB3 EncoderJElectronic Technology. pp.21-23,July 2004.4 Fang Zhihao,Zhu Qiuping.
15、Optical Fiber CommunicationM.Wu Chang: Wuhan University Press,2004.5 HuBei zhongyou technology ind.Communication theory test guide bookM:2003.6 Wu Haitao,Chen Yingjun,Liang Yingchun.Design of HDB3 Codec Based on FPGAJ. Microcomputer Information, vol.6, pp.236238, January 2008.7 XU Jin.Design of a HD
16、B3 Encoder Based on VHDL TechnologyJ. Communications Technology, vol.34, pp.2831, August 2008.8 WAND Su-zhenWAND Tao. A Way to Implement the HDB 3 Encoding-decoding Based on VHDL LanguageJ. Journal of Inner Mongolia Normal University(Natural Science Edition)vol.35, pp.300303, March 2007.9 XIE WuYANG RuiSHAO Xin. A simple method of HDB3 coding based on FPGAJ. Applied Science and Technology, vol.12, pp.1618, May 2007.10 QIAO Jihong, GU Weijuan. Circuit design of HDB3 based on CPLDJ.Journal of Beijing Technology and Business University: Natural Science Edition, vol.23, pp.5052, January 2007