數(shù)字基帶信號(hào)的傳輸是數(shù)字通信系統(tǒng)的重要組成部分。在數(shù)字通信中,有些場(chǎng)合可不經(jīng)過載波調(diào)制和解調(diào)過程,而對(duì)基帶信號(hào)進(jìn)行直接傳輸。采用AMI碼的信號(hào)交替反轉(zhuǎn),有可能出現(xiàn)四連零現(xiàn)象,這不利于接收端的定時(shí)信號(hào)提取。而HDB3碼因其無直流成份、低頻成份少和連0個(gè)數(shù)最多不超過三個(gè)等特點(diǎn),而對(duì)定時(shí)信號(hào)的恢復(fù)十分有利,并已成為CCITT協(xié)會(huì)推薦使用的基帶傳輸碼型之一。為此,本文利用VHDL語言對(duì)數(shù)據(jù)傳輸系統(tǒng)中的HDB3編碼器進(jìn)行了設(shè)計(jì)。
1 HDB3碼的編碼規(guī)則
HDB3碼是AMI碼的改進(jìn)型,稱為三階高密度雙極性碼,它克服了AMI碼的長連0串現(xiàn)象。
HDB3碼的編碼規(guī)則為先檢查消息代碼(二進(jìn)制)的連0串,若沒有4個(gè)或4個(gè)以上連0串,則按照AMI碼的編碼規(guī)則對(duì)消息代碼進(jìn)行編碼;若出現(xiàn)4個(gè)或4個(gè)以上連0串,則將每4個(gè)連0小段的第4個(gè)0變換成與前一非0符號(hào)(+1或-1)同極性的V符號(hào),同時(shí)保證相鄰V符號(hào)的極性交替(即+1記為+V,-1記為-V);接著檢查相鄰V符號(hào)間非0符號(hào)的個(gè)數(shù)是否為偶數(shù),若為偶,則將當(dāng)前的V符號(hào)的前一非0符號(hào)后的第1個(gè)0變?yōu)?B或-B符號(hào),且B的極性與前一非0符號(hào)的極性相反,并使后面的非0符號(hào)從V符號(hào)開始再交替變化。
2 HDB3編碼器的VHDL建模與程序設(shè)計(jì)
HDB3碼的VHDL建模思想是在消息代碼的基礎(chǔ)上,依據(jù)HDB3編碼規(guī)則進(jìn)行插人“V”符號(hào)和“B”符號(hào)的操作,且用2位二進(jìn)制代碼分別表示。最后完成單極性信號(hào)變成雙極性信號(hào)的轉(zhuǎn)換。其編碼模型如圖1所示。
2.1 插“V”模塊的實(shí)現(xiàn)
插“V”模塊主要是對(duì)消息代碼里的四連0串的檢測(cè),即當(dāng)出現(xiàn)四個(gè)連0串的時(shí)候,把第四個(gè)“0”變換成符號(hào)“V”,用“11”標(biāo)識(shí)。 “1”用“01”標(biāo)識(shí),“0”用“00”標(biāo)識(shí)。其模型如圖2所示,實(shí)現(xiàn)的VHDL結(jié)構(gòu)代碼如artv:
2.2 插“B”模塊的實(shí)現(xiàn)
插“B”模塊的建模思路是當(dāng)相鄰“V”符號(hào)之間有偶數(shù)個(gè)非0符號(hào)時(shí),把后一小段的第1個(gè)“0”變換成一個(gè)“B”符號(hào)。可用一個(gè)4位的移位寄存器來實(shí)現(xiàn)延遲,這樣經(jīng)插“V”處理過的碼元,可在同步時(shí)鐘的作用下同時(shí)進(jìn)行是否插“B”的判決,等到碼元從移位寄存器里出來的時(shí)候,就可以決定是應(yīng)該變換成“B”符號(hào),還是照原碼輸出。輸出端用“11”表示符號(hào)“V”,“01”表示“1”碼, “00”表示“0”碼,“10”表示符號(hào)“B”。其模型如圖3所示,VHDL的結(jié)構(gòu)代碼如artb:
2.3 單極性變雙極性的實(shí)現(xiàn)
根據(jù)編碼規(guī)則, “B”符號(hào)的極性與前一非零符號(hào)相反,“V”極性符號(hào)與前一非零符號(hào)一致。因此,可對(duì)“V”單獨(dú)進(jìn)行極性變換(“V”已經(jīng)由“11”標(biāo)識(shí),相鄰“V”的極性是正負(fù)交替的),余下的“1”和“B”看成一體進(jìn)行正負(fù)交替,從而完成HDB3的編碼。
因?yàn)榻?jīng)過插“B”模塊后, “V”、 “B”、“1”已經(jīng)分別用雙相碼“11”、 “10”、 “01”標(biāo)識(shí)。“0”用“00”標(biāo)識(shí)。而在實(shí)際應(yīng)用中,CPLD或FPGA端口的輸出電壓只有正極性電壓,且在波形仿真中也只有“+1”和“0”,而無法識(shí)別“-1”。所以要得到所需HDB3編碼的結(jié)果,需定義“00”、“01”、“10”來分別表示“0”、 “-1”、 “+1”。可將插“B”模塊后輸出的“00”、“01”、“10”、“11”組合轉(zhuǎn)換為“00”、“01”、 “10”組合,再通過“00”、 “01”、“10”控制四選一數(shù)字開關(guān)的地址來選擇輸出通道,就可以實(shí)現(xiàn)0、-B、+B。本設(shè)計(jì)使用CC4052的一組通道作為四選一數(shù)字開關(guān),從而將CPLD或FPGA目標(biāo)芯片的標(biāo)識(shí)性輸出轉(zhuǎn)換成雙極性信號(hào),最終實(shí)現(xiàn)HDB3非歸零編碼。CC4052的接線如圖4所示,所實(shí)現(xiàn)的地址控制器的模型如圖5所示。其VHDL結(jié)構(gòu)代碼如artd:
3 HDB3編碼器的仿真
在此,以四連“0”的可能性通過如表1所列的多“0”消息代碼進(jìn)行分析,并利用EDA工具對(duì)VHDL源程序進(jìn)行編譯、適配、優(yōu)化、邏輯綜合與仿真。仿真結(jié)果顯示其完全可以達(dá)到編碼要求。其仿真圖如圖6所示。而將HDB3編碼硬件描述下載到CPLD或FPGA目標(biāo)芯片中,然后連接好CC4052進(jìn)行實(shí)際應(yīng)用測(cè)試(用示波器測(cè)得)的編碼波形如圖7所示。
4 結(jié)束語
將基于VHDL的HDB3編碼用在光纖通信系統(tǒng)中作為誤碼儀測(cè)試誤碼的HDB3轉(zhuǎn)換器,能滿足實(shí)際測(cè)試的需要。且運(yùn)用基于VHDL的可編程芯片開發(fā)技術(shù)將相關(guān)的信號(hào)處理電路進(jìn)行硬件描述,并用CPLD/FPGA技術(shù)實(shí)現(xiàn)數(shù)字通信系統(tǒng),不僅可以實(shí)現(xiàn)多種數(shù)字邏輯功能,而且可大大提高工作效率,減少電路設(shè)計(jì)的時(shí)間和可能發(fā)生的錯(cuò)誤,同時(shí)也可降低開發(fā)成本。
-
編碼器
+關(guān)注
關(guān)注
45文章
3639瀏覽量
134430 -
eda
+關(guān)注
關(guān)注
71文章
2755瀏覽量
173207 -
vhdl
+關(guān)注
關(guān)注
30文章
817瀏覽量
128121 -
HDB3
+關(guān)注
關(guān)注
0文章
9瀏覽量
10875
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論