基于EDA技術(shù)的HDB3編碼器的設(shè)計(jì)與實(shí)現(xiàn)
摘要:HDB3碼是數(shù)字基帶通信系統(tǒng)中重要組成部分之一,因其具有無直流成份,檢錯(cuò)能力強(qiáng),具有時(shí)鐘恢復(fù)性能等優(yōu)點(diǎn),成為ITU推薦使用的基帶傳輸碼型之一。首先介紹了HDB3編碼的原理和方法,提出了一種基于EDA技術(shù)實(shí)現(xiàn)的HDB3編碼器的方法,具有電路簡單,成本低,開發(fā)周期短,執(zhí)行速度高,升級(jí)方便等特點(diǎn)。
0 引言
HDB3碼(High Density Bip01ar Code of threecodes,三階高密度雙極性碼)是串行數(shù)據(jù)傳輸?shù)囊环N重要編碼方式,也是數(shù)字通信系統(tǒng)中重要組成部分之一。和最常用的NRZ碼(Non—Return Zero,非歸零碼)相比,HDB3碼具有很多優(yōu)點(diǎn),例如:消除了NRZ碼的直流成分,具有時(shí)鐘恢復(fù)和更好的抗干擾性能,這使它更適合于長距離信道傳輸。同時(shí),HDB3碼具有較強(qiáng)的檢錯(cuò)能力,當(dāng)數(shù)據(jù)序列用HDB3碼傳輸時(shí),若傳輸過程中出現(xiàn)單個(gè)誤碼,其極性交替變化規(guī)律將受到破壞,因而在接收端根據(jù)HDB3碼這一獨(dú)特規(guī)律特性,可檢出錯(cuò)誤并糾正錯(cuò)誤,同時(shí)HDB3碼方便提取位定時(shí)信息。因而HDB3碼作為數(shù)據(jù)傳輸?shù)囊环N碼型,應(yīng)用廣泛,成為ITU推薦使用的碼型之一。HDB3碼編譯碼器的實(shí)現(xiàn)有多種途徑,常用的解決方案是應(yīng)用專用的HDB3收發(fā)芯片,如選用專用E1收發(fā)芯片DS2153Q和單片機(jī)實(shí)現(xiàn)該碼制的轉(zhuǎn)換功能。本文提供了一種利用現(xiàn)代EDA技術(shù),以ACEX系列FPGA芯片EPlK10為硬件平臺(tái),以Quartus II為軟件平臺(tái),以VHDL,為開發(fā)工具,適合于FPGA實(shí)現(xiàn)的HDB3編碼器的設(shè)計(jì)方案。
1 HDB3碼的編碼規(guī)則
HDB3碼的編碼規(guī)則如下:
(1)將消息代碼變換成AMI碼;
AMI碼(Alternate Mark Inversion)全稱是傳號(hào)交替反轉(zhuǎn)碼。這是一種將消息代碼0和1按如下規(guī)則進(jìn)行編碼:代碼0仍變換為傳輸碼0,而把代碼中的1交替地變?yōu)閭鬏敶a的+1,-1,+1,-l,……。
(2)檢查AMI碼中的連0情況,當(dāng)無4個(gè)或4個(gè)以上的連0串時(shí),則保持AMI的形式不變;若出現(xiàn)4個(gè)或4個(gè)以上連0串時(shí),則將1后的第4個(gè)0變?yōu)榕c前一非O碼(+1或-1)同極性的符號(hào),用V表示(+n己為+V,-n己為-V)。
(3)檢查相鄰v碼間的非0碼的個(gè)數(shù)是否為偶數(shù),若為偶數(shù),則再將當(dāng)前的V碼的前一非0碼后的第1個(gè)0變?yōu)?B或-B碼,且B的極性與前一非O碼的極性相反,并使后面的非0碼從V碼開始再交替變化。
NRZ碼轉(zhuǎn)換為HDB3碼的過程如表1舉例所示。
2 HDB3編碼器的建模與實(shí)現(xiàn)
如果直接將要進(jìn)行編碼的數(shù)據(jù)按上述編碼原則先轉(zhuǎn)換成AMI碼,然后進(jìn)行加v碼,加B碼操作,會(huì)發(fā)現(xiàn)轉(zhuǎn)化成AMI碼時(shí)有一個(gè)“+1”“一1”碼極性形成的過程,而在加B碼操作之后,非零碼元相應(yīng)極性還有可能進(jìn)行反轉(zhuǎn),因此有兩個(gè)信號(hào)極性產(chǎn)生的過程。
分析HDB3的編碼結(jié)果:V碼的極性是正負(fù)交替的,余下的1碼和B碼看成為一體也是正負(fù)交替的,同時(shí)滿足V碼的極性與前面的非零碼極性一致。由此產(chǎn)生了利用FPGA進(jìn)行HDB3碼編碼的思路:先進(jìn)行加V碼,加B碼操作,在此過程中,暫不考慮其極性,然后將V碼,1碼和B碼分成兩組,分別進(jìn)行極性變換來一次實(shí)現(xiàn)。這樣可以提高系統(tǒng)的效率,同時(shí)減小系統(tǒng)延時(shí)。
HDB3編碼器的數(shù)字電路部分由三個(gè)模塊組成:V碼產(chǎn)生單元(v Gen),B碼產(chǎn)生單元(B Gen),單極性一雙極性轉(zhuǎn)換單元(single2double),其結(jié)構(gòu)圖如圖1所示。
2.1 V碼產(chǎn)生單元(V_Gen)
V碼產(chǎn)生單元的功能實(shí)際上就是對(duì)消息代碼里的四連0串的檢測,即當(dāng)出現(xiàn)四個(gè)連0串的時(shí)候,把第四個(gè)0碼變換成V碼,而在其他情況下,則保持消息代碼的原樣輸出。為了為以后的編碼過程提供方便,將原信號(hào)中的一位碼元用2位二進(jìn)制傳輸碼表示,在進(jìn)行加V碼時(shí),統(tǒng)一用“11”標(biāo)識(shí)之,原l碼用“01”標(biāo)識(shí),0碼用“00”標(biāo)識(shí)。圖2所示為V碼產(chǎn)生單元的工作流程圖。
原信號(hào)NRZ_in通過V碼產(chǎn)生單元(V_Gen)后的信號(hào)V_Gen_out波形如圖3所示:
2.2 B碼產(chǎn)生單元(B_Gen)
B碼產(chǎn)生單元的功能是保證附加V碼后的序列不破壞“極性交替反轉(zhuǎn)”形成的無直流特性,即當(dāng)相鄰V碼之間有偶數(shù)個(gè)非0碼的時(shí)候,把后一小段的第1個(gè)0變換成一個(gè)非破壞符號(hào)一B碼。因此,在判斷某一0是否應(yīng)被轉(zhuǎn)化為B時(shí),首先應(yīng)保證其后第三位碼元為V碼元,因此,必須對(duì)當(dāng)前碼元進(jìn)行暫存,等待其后第三位碼元的到來。為實(shí)現(xiàn)此目的,首先把碼元(經(jīng)插V處理過的)放入一個(gè)3位的移位寄存器里,在同步時(shí)鐘的作用下,同時(shí)進(jìn)行是否加B碼的判決,等到碼元從移位寄存器里出來的時(shí)候,就可以決定是應(yīng)該變換成B碼,還是照原碼輸出。圖4所示為B碼產(chǎn)生單元的工作流程圖。
經(jīng)加v后信號(hào)V_Gen_out通過B碼產(chǎn)生單元(B_Gen)后的信號(hào)B_Gen_out波形如圖3所示。
2.3 單極性-雙極性轉(zhuǎn)換單元(singIe2doubIe)
根據(jù)HDB3的編碼規(guī)則,我們可以知道,V碼的極性是正負(fù)交替的,余下的1碼和B碼看成為一體且是正負(fù)交替的,同時(shí)滿足V碼的極性與前面的非零碼極性一致。由此我們可以將其分別進(jìn)行極性變換來實(shí)現(xiàn)。從前面的程序知道,“V”、“B”、“1”已經(jīng)分別用雙相碼“11”、“10”、“01”標(biāo)識(shí)之,“0”用“00”標(biāo)識(shí),所以通過以下的程序我們可以很容易實(shí)現(xiàn)。圖5是所示為單極性一雙極性轉(zhuǎn)換單元的工作流程圖。
經(jīng)過單極性一雙極性轉(zhuǎn)化單元,+1(包括“+1”、“+V”、“+B”)用2位二進(jìn)制碼“01”表示,-1(包括“-1”、“-V”、“-B”)用2位二進(jìn)制碼“11”表示,0用2位二進(jìn)制碼“00”表示,這樣編碼的好處是,當(dāng)我們把編碼形成的二位二進(jìn)制碼的高位視為有符號(hào)數(shù)的符號(hào)位時(shí),“O1”、“11”、“00”分別對(duì)應(yīng)+1、-1、0.這樣方便我們觀察仿真結(jié)果。經(jīng)加B后信號(hào)B_Gen_out通過單極性一雙極性轉(zhuǎn)換單元(single2double)后的信號(hào)Code out波形如圖3所示。
3 實(shí)現(xiàn)單/雙極性變換的硬件電路
將上述的程序下載到可編程器件中,產(chǎn)生的編碼結(jié)果是單極性雙電平信號(hào)。此信號(hào)還不是真正意義上的HDB3碼,需要將上述編碼轉(zhuǎn)換成“+1”、“-1”、“0”的多電平變化波形,而此工作單純依靠數(shù)字電路是無法完成的。比較直接的方式,就是利用編碼結(jié)果,控制多路模擬選擇開關(guān)來實(shí)現(xiàn),如利用雙4選一的多路模擬選擇開關(guān)CD4052,其功能表如表2所示。
如圖6所示是利用多路模擬選擇開關(guān)CD4052實(shí)現(xiàn)電平轉(zhuǎn)換的電路連接圖,圖中HDB3_out即為最終形成的標(biāo)準(zhǔn)HDB3碼流。
4 結(jié)束語
EDA技術(shù)本身是一種工業(yè)生產(chǎn)技術(shù),在實(shí)踐中運(yùn)用基于硬件描述語言的可編程芯片開發(fā)技術(shù)可對(duì)通信系統(tǒng)中的相關(guān)電路進(jìn)行硬件描述,然后用CPLD/FPGA實(shí)現(xiàn)數(shù)字通信系統(tǒng),同時(shí)結(jié)合電子設(shè)計(jì)自動(dòng)化和電路仿真技術(shù)即可縮小產(chǎn)品的設(shè)計(jì)周期,降低可能發(fā)生的錯(cuò)誤,提高通信產(chǎn)品的開發(fā)效益。
實(shí)踐表明,運(yùn)用FPGA來實(shí)現(xiàn)NRz碼到HDB3碼的轉(zhuǎn)換比采用專用集成電路不僅給調(diào)試帶來了方便,克服了分立硬件電路帶來的抗干擾差和不易調(diào)整等缺陷,而且具有軟件開發(fā)周期短,成本低,執(zhí)行速度高,實(shí)時(shí)性強(qiáng),升級(jí)方便等特點(diǎn)。而且可以把該電路和它的解碼電路及其他功能電路集成在同一塊FPGA芯片中,減少了外接元件的數(shù)目,提高了集成度,而且有很大的編程靈活性,很強(qiáng)的移植性,因此有很好的應(yīng)用前景。
參考文獻(xiàn):
[1].DS2153Qdatasheethttp://www.dzsc.com/datasheet/DS2153Q_266909.html.
[2].CPLDdatasheethttp://www.dzsc.com/datasheet/CPLD_1136600.html.
來源:風(fēng)中的葉子2次