數字基帶信號的傳輸是數字通信系統的重要組成部分之一。在數字通信中,有些場合可不經過載波調製和解調過程,而對基帶信號進行直接傳輸。採用AMI碼的傳號交替反轉,有可能出現四連零現象,不利於接收端的定時信號提取。而三階高密度雙極性碼因具有無直流成份,低頻成份少和連O個數最多不超過3個等明顯的優點,對定時信號的恢復十分有利,成為CCITT協會推薦使用的基帶傳輸碼型之一。本文使用硬體描述語言對數字通信系統中的三階高密度雙極性碼的編解碼進行實用設計。
本文引用地址:http://www.eepw.com.cn/article/192112.htm
1 三階高密度雙極性碼的編、解碼規則
1.1 三階高密度雙極性碼的編碼規則
三階高密度雙極性碼是AMI碼的改進型,稱為三階高密度雙極性碼,它克服了AMI碼的長連O串現象。
其編碼規則為先檢查消息代碼(二進位)的連O串情況,當沒有4個或4個以上連0串時,則這時按照AMI碼的編碼規則對消息代碼進行編碼;當出現4個或4個以上連O串時,則將每4個連0小段的第4個0變換成與前一非0符號(+1或一1)同極性的V符號,且必須保證相鄰V符號應極性交替(即+l記為+V,一1記為一V);檢查相鄰V符號問的非O符號的個數是否為偶數,若為偶數,則再將當前的V符號的前一非0符號後的第1個0變為+B或一B符號,且B的極性與前一非O符號的極性相反,並使後面的非0符號從V符號開始再交替變化。
1.2 三階高密度雙極性碼的解碼
三階高密度雙極性碼的解碼是編碼的逆過程,其解碼相對於編碼較簡單。從其編碼原理可知,每一個破壞符號V總是與前一非O符號同極性,因此,從收到的三階高密度雙極性碼序列中,容易識別V符號,同時也肯定V符號及其前面的3個符號必是連O符號,於是可恢復成4個連0碼,然後再將所有的一1變成+1後便得到原消息代碼。
2 三階高密度雙極性編碼的建模
三階高密度雙極性碼的建模思想:在消息代碼的基礎上,依據三階高密度雙極性編碼規則進行插入「V」符號和插入「B」符號的操作,且用2位二進位代碼分別表示。最後完成單極性信號變成雙極性信號的轉換,其編碼器模型如圖1所示。
2.1 插「V」模塊的實現
插「V」模塊是對消息代碼裡的四連0串的檢測,即當出現四個連O串的時候,把第四個「0」變換成為符號「V」,用「11」標識,「1」用「01」標識,「O」用「00」標識,其模型如圖2所示。
2.2 插「B」模塊的實現
建模思路是當相鄰「V」符號之間有偶數個非0符號的時候,把後一小段的第1個「O」變換成一個「B」符號。在此用一個4位的移位寄存器實現延遲作用,經插「V」處理過的碼元,在同步時鐘的作用下,同時進行是否插「B」的判決,等到碼元從移位寄存器裡出來的時候,就可以決定是應該變換成「B」符號,還是照原碼輸出。輸出端用「11」表示符號「V」,「01」表示「1」碼,「00」表示「O」碼,「10」表示符號「B」,其模型如圖3所示。
2.3 單極性變雙極性的實現
根據編碼規則,「B」符號的極性與前一非零符號相反,「V」極性符號與前一非零符號一致。因此將「V」單獨拿出來進行極性變換(由前面已知「V」已經由「11」標識,相鄰「V」的極性是正負交替的),餘下的「1」和「B」看成一體進行正負交替,這樣就完成了三階高密度雙極性的編碼。
因為經過插「B」模塊後,「V」,「B」,「1」已經分別用雙相碼「11」,「10」,「01」標識,「O」用「00」標識。而在實際應用中,CPLD或FPGA埠輸出電壓只有正極性電壓,在波形仿真中也只有「+1」和「O」,而無法識別「一1」。所以要得到所需要三階高密度雙極性編碼的結果,需定義的「00,「01」,「10」來分別表示「0」,「一1」,「+1」。將插「B」模塊後輸出的「OO」,「01」,「10」,「1l」組合轉換為「00」,「01」,「10」組合表示,再通過「00」,「01」,「10」控制四選一數字開關的地址來選擇輸出通道,就可以實現O,一E,+E。在此本文用CC4052的一組通道作為四選一數字開關,將CPLD或FPGA目標晶片的標識性輸出轉換成雙極性信號,最終實現三階高密度雙極性非歸零編碼。CC4052接線如圖4所示,實現地址控制器的模型如圖5所示。