摘 要:HDB3碼(3階高密度雙極性碼)保持AMI碼極性反轉的特點,減少連0串的長度,有利于提取定時信息,廣泛用于數字通信系統中。針對現有HDB3編碼器中存在編碼復雜、輸出延時長等缺點,設計一種統一位置判斷和極性判斷的HDB3編碼器,并從實際應用出發,將誤碼檢測和位同步提取融入譯碼器芯片中。仿真和實測表明,編譯碼功能正確,且相對延時較小、靈活性高,具有實用價值。
關鍵詞:HDB3碼;編譯碼器;FPGA;VHDL
中圖分類號:TN79 文獻標識碼:B 文章編號:1004373X(2008)1600102
Design of HDB3 Codec Based on FPGA
LU Jingqi
(College of Zhongshan,University of Electronic Science Technology of China,Zhongshan,528402,China)
Abstract:The HDB3 code(high density bipolar order3 encoding) keeps the feature of polarity inversion of AMI code,which reduces the length of zeros,therefore beneficial for extraction of timing message.To solve the drawbacks of the existing HDB3 encoders,a HDB3 encoder based on block encoding unified polarity judgement and position polarity judgment is proposed.Besides,a HDB3 decoder which contains error detection and timing message distiller is also discussed from the practical view.Simulation and practice results show the new HDB3 Codec have a right function and can be applied to actual circuits.
Keywords:HDB3;codec;FPGA;VHDL
目前,信道編碼被廣泛地應用于數字通信、圖像處理系統中,成為數據傳輸中不可缺少的部分。HDB3(High Density Bipolar)碼是AMI碼的改進型,具有無直流分量,少低頻分量,易于提取位同步信號并具有內在的檢錯能力等優點,成為廣泛應用于基帶傳輸系統中的碼型,ITUT G.703規定:2 Mb/s,8 Mb/s和34 Mb/s的數字接口均采用HDB3碼,因此設計一個穩定的HDB3碼的編譯碼器就顯得很有價值。市場上雖有專用的CD22103A芯片,但是該芯片只具有編譯碼功能,在使用時需另配位同步提取和電壓極性轉換電路,不利于系統的集成。本文從HDB3的編碼原理著手,設計了一種基于FPGA的統一位置判斷和極性判斷的HDB3編碼器,并從實際應用及FPGA結構出發,將誤碼檢測和位同步提取融入譯碼器芯片中。
1 HDB3編碼規則
從二進制的NRZ消息代碼到HDB3碼的編碼規則.\\是:
(1) 當NRZ碼序列中連續出現‘0’的個數小于4個時,按AMI碼規則進行編碼,即將‘1’碼變為‘+1’,‘-1’交替脈沖;
(2) 當代碼序列中出現4個或4個以上的連‘0’碼時,則將連‘0’段按4個‘0’分節,即“0000”為一節,并使第4個‘0’碼變為‘1’碼,用V脈沖表示,且V脈沖的極性與前一個‘1’脈沖的極性相同,稱V為破壞碼,“000V”為破壞節。
(3) 如果所得序列中相鄰2個破壞碼V間‘1’脈沖的個數為偶數,則還需將破壞節中的第一個‘0’碼變為‘1’碼,用B脈沖表示。此時破壞節就變為“B00V”形式。B脈沖的極性與其前一個‘1’脈沖的極性相反,而與其后的V脈沖極性相同。
2 HDB3編碼部分
編碼部分的模塊如圖1所示,其中關鍵部分是BV碼元判決和BV極性判決2部分電路。
2.1 BV碼元判決
將編碼后的信碼‘1’、補信碼‘B’和破壞碼‘V’都看作是‘1’碼。根據編碼規則,‘V’必須與前一‘B’同極性,如果條件不滿足,則必須插入與‘V’同極性的補信碼‘B’。因此,當遇到4個連‘0’時,除了第一個4連‘0’固定用“000V”取代外,取代節“B00V”或“000V”的選取由前一B,V的極性是否相同來判決。

2.2 BV極性的判決
根據編碼規則,HDB3碼序列中的‘B’和‘V’都應保持極性交替變化的規律,并且應該保證‘V’與前一‘B’同極性,利用這一性質,很容易實現正負極性碼元的分開。從FPGA輸出的P1,N1信號經過單-雙極性變換電路(如CC4052四選一開關)合成一路雙極性脈沖序列,即HDB3碼序列。
3 HDB3譯碼部分
相對于編碼,HDB3譯碼較為簡單,從實用性的角度出發,在譯碼電路部分融入誤碼檢測和位同步提取電路,總體框圖如圖2所示。

3.1 誤碼檢測
由于HDB3碼具有一定的內在檢錯能力,因此從實用性考慮,設計此部分電路。當輸入碼元序列中連續出現3個以上的′0′碼,或同極性碼元連續到達的個數大于2個時,均表示接收到的編碼或位同步提取出錯,ERROR輸出為高電平。
3.2 位同步提取電路
位同步提取是否正確是譯碼器能否正確譯碼的關鍵。基于FPGA強大的邏輯宏單元,本設計考慮將位同步提取集成于譯碼器內部,通過應用FPGA的LPM宏模塊,配置數字鎖相環,實現片內位同步提取,提高系統的集成度。
3.3 取代碼譯碼部分
從編碼原理看出,每一破壞符號總是與前一非‘0’符號同極性,因此,從收到的符號序列中很容易找到破壞點V,從而用“0000”取代消息碼,再將所有的+1,-1變成‘1’后便得到原信息代碼。
4 FPGA仿真實現
在QuartusⅡ開發平臺下,完成上述原理的HDB3編譯碼器的仿真。通過在仿真文件中加載不同的激勵,輸出波形完全符合HDB3碼的編碼要求,仿真波形如圖3,圖4所示。

5 結 語
經過仿真分析和實際測試,該編譯碼器能夠正常工作,達到預期的效果。本設計通過編碼分組保持碼元的極性交替變換,通過極性生成完成取代節的定位和選取,并在譯碼單元從實際應用出發,集成誤碼檢測和位同步提取電路,具有消耗資源較少、外圍電路簡單等優點。若修改本地時鐘頻率,并且和可編程邏輯結合,還可用于其他速率的實際通信編碼電路中,比專用芯片成本低、集成度更高、更加靈活。
參 考 文 獻
[1]樊昌信,張甫翊,吳成柯.通信原理[M].5版.北京:國防工業出版社,2001.
[2]羅偉雄,韓力,原東昌.通信原理與電路[M].北京:北京理工大學出版社,2000.
[3]段吉海,黃智偉.基于CPLD/FPGA的數字通信系統的建模與設計[M].北京:電子工業出版社,2004.
[4]潘松,黃繼業.EDA技術與VHDL[M].北京:清華大學出版社,2005.
[5]王誠,吳繼華,范麗珍.Altera FPGA/CPLD設計[M].北京:人民郵電出版社,2005.
[6]張厥盛.鎖相技術\\.西安:西安電子科技大學出版社,1994.
[7]付燕.基于SOC的HDB3編譯碼及幀同步電路[D].鄭州:鄭州大學,2004.
[8]賈惠彬,王蘭勛.基于CPLD的HDB3編譯碼器[J].電子科技,2005(9):3740.
[9]Quartus Ⅱ Verison 6.0 Handbook,Altera Corporation [EB/OL].http://www.altera.com.
[10]Cyclone Device Family Data Sheet Altera Corporation [EB/OL].http://www.altera.com.