1 引言 數(shù)字通信系統(tǒng)的某些應(yīng)用可對(duì)基帶信號(hào)不載波調(diào)制而直接傳輸,其中傳輸線(xiàn)路對(duì)碼型的要求如下:信碼中不宜有直流分量,低頻分量應(yīng)盡可能的少,碼型要便于時(shí)鐘信號(hào)提取。根據(jù)這些要求,ITU-T(國(guó)際電聯(lián))在G.703建議中規(guī)定,對(duì)于2 MHz、8 MHz、32 MHz速率的數(shù)字接口均采用HDB3(三階高密度雙極性)碼。HDB3碼具有無(wú)直流分量,低頻成分少,連零個(gè)數(shù)不超過(guò)3個(gè)等特點(diǎn),便于時(shí)鐘信號(hào)的提取和恢復(fù),適合在信道中直接傳輸。這里利用Verilog HDL語(yǔ)言設(shè)計(jì)用于數(shù)字通信系統(tǒng)中的HDB3編解碼器。 2 HDB3編碼模塊設(shè)計(jì) 要設(shè)計(jì)一個(gè)實(shí)用的編碼模塊,首先要深入研究其編碼規(guī)則及其特點(diǎn),然后根據(jù)編碼規(guī)則設(shè)計(jì)符合電路特性的編碼流程。HDB3碼的編碼規(guī)則包括:①將消息代碼變換成AMI碼,AMI碼的編碼規(guī)則是對(duì)碼流中的非“0”符號(hào)進(jìn)行正負(fù)交替;②檢查AMI碼中的連零情況,當(dāng)連零的個(gè)數(shù)小于4個(gè)時(shí),保持AMI的形式不變;當(dāng)連零的個(gè)數(shù)達(dá)到4個(gè)或超過(guò)4個(gè)時(shí),則將非零碼后的第4個(gè)“0”替換成V碼,其中V碼的極性與前一非零碼(+1或-1)的極性保持一致,例如,前面的非零碼是+1,則將V碼記為+V;③完成插V操作后,檢查2個(gè)相鄰V碼之間非零碼的個(gè)數(shù)是否為偶數(shù),若為偶數(shù),則再將相鄰2個(gè)V碼中后一個(gè)V碼的前一非零碼后的第一個(gè)“0”變?yōu)锽碼,B碼的極性與前一非“0”碼的極性相反,同時(shí)B碼后面的非“0”碼極性再次進(jìn)行交替變換,保證極性交替反轉(zhuǎn)特性。 編碼規(guī)則中出現(xiàn)的V碼、B碼只是作為標(biāo)識(shí)符,最終的電路實(shí)現(xiàn)還是“0”和“1”這兩種邏輯電平,因此需要采用二進(jìn)制編碼對(duì)“1”、“0”、V、B進(jìn)行編碼,“00”表示“0”、“0l”表示“1”,“10”表示B,“11”表示V。根據(jù)編碼規(guī)則和利用FPGA實(shí)現(xiàn)的特點(diǎn),將編碼過(guò)程:首先插入V碼,然后插入B碼,最后是單雙極性變換。如果按照編碼規(guī)則的順序設(shè)汁.應(yīng)該首先進(jìn)行單雙極性變換,在完成插V和插B后,還需根據(jù)編碼規(guī)則變換當(dāng)前B碼之后的非零碼的極性,這需要大量的寄存器來(lái)保存當(dāng)前數(shù)據(jù)的狀態(tài),導(dǎo)致電路非常復(fù)雜,占用大量的FPGA內(nèi)部邏輯單元,實(shí)現(xiàn)難度大,且成本高。HDB3編碼過(guò)程示意圖如圖1所示。 ![]() 2.1 插入V碼過(guò)程 插入V碼過(guò)程是對(duì)消息代碼里的連零串進(jìn)行檢測(cè),一旦出現(xiàn)4個(gè)連零串的時(shí)候,就把第4個(gè)“O”替換成破壞符V,其他情況下消息代碼原樣輸出。輸入的代碼經(jīng)插 V操作后全部轉(zhuǎn)換成雙相碼,即“0”變換成“00”,“1”變換成“01”,V變換成“l(fā)l”。圖2是插入V碼過(guò)程的流程,代碼輸入到插V模塊后,如果輸入是“l(fā)”,則輸出為“01”,同時(shí)計(jì)數(shù)器清零;如果輸入是“O”.則對(duì)輸入“O”的個(gè)數(shù)進(jìn)行計(jì)數(shù),當(dāng)計(jì)數(shù)器計(jì)數(shù)到第4個(gè)“O”時(shí),輸出“11”作為V 碼,同時(shí)計(jì)數(shù)器要清零用于下一輪檢測(cè);計(jì)數(shù)器未滿(mǎn)4個(gè)“0”,則輸出“00”。 ![]() 2.2 插入B碼過(guò)程 當(dāng)相鄰兩個(gè)V碼之間有偶數(shù)個(gè)非“0”碼時(shí).則把后一個(gè)V碼之前的第1個(gè)非“0”碼后面的“0”碼變換成B碼。該模塊設(shè)計(jì)的難點(diǎn)在于插入B碼的過(guò)程中涉及一個(gè)由現(xiàn)在事件的狀態(tài)控制過(guò)去事件狀態(tài)的問(wèn)題,按照實(shí)時(shí)信號(hào)處理的理論,這是無(wú)法實(shí)現(xiàn)的,這里使用兩組4位移位寄存器。采用4位移位寄存器是根據(jù)HDB3編碼規(guī)則的特點(diǎn)確定,經(jīng)插V后,連零串中的第4個(gè)“0”變成V碼,代碼中連零個(gè)數(shù)最多是3個(gè),而插入B碼操作是把在后一個(gè)V碼之前的第1個(gè)非零碼之后的 “O”變換成B碼,這個(gè)長(zhǎng)度不超過(guò)3個(gè)“0”,因此只需4位寄存器就可通過(guò)判斷現(xiàn)在的輸入狀態(tài)來(lái)決定是否應(yīng)插入B碼。圖3是判斷是否插入B碼的流程.2組 4位移位寄存器在時(shí)鐘的作用下逐位將數(shù)據(jù)移出,在移位的同時(shí)還需對(duì)寄存器的最低位進(jìn)行操作,即判斷是否需插入B碼。這部分功能的實(shí)現(xiàn)需設(shè)置一個(gè)檢測(cè)當(dāng)前V 碼狀態(tài)的標(biāo)志位firstv。 ![]() 2.3 單雙極性變換過(guò)程 分析HDB3碼的編碼規(guī)則,發(fā)現(xiàn)V碼的極性是正負(fù)交替的,余下的“1”和B碼的極性也是正負(fù)交替的,且V碼的極性與V碼之前的非零碼極性一致。因此可以將所有的“1”和B碼取出來(lái)做正負(fù)交替變換,而V碼的極性則根據(jù)“V碼的極性與V碼之前的非零碼極性一致”這一特點(diǎn)進(jìn)行正負(fù)交替變換。具體操作是設(shè)置一個(gè)標(biāo)志位flag,通過(guò)檢測(cè)判斷標(biāo)志位的狀態(tài)來(lái)確定是否進(jìn)行單雙極性變換,標(biāo)志位要交替變換以實(shí)現(xiàn)“l(fā)”和“B”正負(fù)交替,V碼的極性也根據(jù)標(biāo)志位變換。圖4 是單雙極性變換過(guò)程的流程,“10”表示輸出正電平,“Ol”表示輸出負(fù)電平,“00”表示輸出為零電平。 ![]() 3 HDB3解碼模塊設(shè)計(jì) 根據(jù)編碼規(guī)則,V碼是為了解決4連零現(xiàn)象而插入的,而B(niǎo)碼總是出現(xiàn)在V碼之前,且只相隔2個(gè)“0”,因此只要在接收到的信號(hào)中找到V碼并將其和前面的3位代碼全部復(fù)原成“0”即可完成解碼過(guò)程。 3.1 HDB3解碼模塊建模 首先外圍電路從HDB3碼中提取出時(shí)鐘、正整流信號(hào)和負(fù)整流信號(hào),將這3路信號(hào)送到FPGA中,解碼模塊所用的時(shí)鐘是從HDB3碼中提取出來(lái)的時(shí)鐘。從正整流信號(hào)和負(fù)整流信號(hào)中可以檢測(cè)出2路包含V碼的信號(hào),將2路V碼合成一路信號(hào),然后對(duì)該路信號(hào)進(jìn)行解碼,最后將雙相碼變成單相碼,圖5是解碼過(guò)程的流程。 ![]() 3.1.1 V碼檢測(cè)過(guò)程 V碼檢測(cè)同時(shí)進(jìn)行正V碼檢測(cè)和負(fù)V碼檢測(cè),這兩個(gè)檢測(cè)模塊的設(shè)計(jì)思想類(lèi)似,這里對(duì)正V碼檢測(cè)模塊進(jìn)行詳細(xì)說(shuō)明。為了方便描述,假設(shè)從正整流電路輸入的信號(hào)為+P,從負(fù)整流電路輸入的信號(hào)為-N。+V碼檢測(cè)模塊是在-N的控制下,對(duì)輸入的+P進(jìn)行檢測(cè)。其原理是:當(dāng)+P的上升沿到來(lái)時(shí),對(duì)輸入的+P脈沖進(jìn)行計(jì)數(shù),當(dāng)計(jì)數(shù)到1時(shí),輸出一個(gè)脈沖作為+V脈沖,同時(shí)計(jì)數(shù)器清零,在計(jì)數(shù)期間,一旦檢測(cè)到-N信號(hào)脈沖,計(jì)數(shù)器立即清零,計(jì)數(shù)器重新從零計(jì)數(shù)。這是因?yàn)樵趦蓚€(gè)+P脈沖之間,存在-N脈沖,說(shuō)明第2個(gè)+P脈沖不是+V碼,只有在連續(xù)兩個(gè)+P脈沖之間無(wú)-N脈沖,才能說(shuō)明這兩個(gè)P脈沖在HDB3碼中是真正同極性的,才可以判斷第2個(gè)P脈沖實(shí)際上是+V碼,達(dá)到檢測(cè)+V碼的目的。-V碼檢測(cè)原理與+V碼檢測(cè)類(lèi)似,所不同的是,-V碼檢測(cè)電路是在+P控制下,對(duì) -N信號(hào)進(jìn)行計(jì)數(shù)、檢測(cè)和判定。 3.1.2 V碼和B碼解碼過(guò)程 檢測(cè)V碼后,根據(jù)HDB3編碼規(guī)則,只需將V碼及之前3位碼全部置零就可同時(shí)完成扣V/扣B操作。這又會(huì)涉及到一個(gè)由現(xiàn)在事件狀態(tài)決定過(guò)去事件狀態(tài)的情況,仍可采用兩組4位移位寄存器解決。根據(jù)編碼規(guī)則,V碼是取代連“0”串中的第4個(gè)“0”,而B(niǎo)碼總是出現(xiàn)在V碼之前,且只相隔兩個(gè)“O”,當(dāng)輸入是V 碼后,只需同時(shí)將4位移位寄存器置零,即可同時(shí)完成V碼和B碼的解碼過(guò)程。扣除V碼和B碼后,還需將雙相碼變換成單相碼,即當(dāng)輸入是“00”時(shí)輸出 “0”,輸入是“01”時(shí)輸出“l(fā)”,至此便完成了HDB3解碼。 3.2 HDB3解碼的Verilog HDL實(shí)現(xiàn) 以下利用硬件描述語(yǔ)言實(shí)現(xiàn)解碼功能,這里只給出正V碼檢測(cè)模塊和扣V碼/扣B碼模塊的關(guān)鍵程序。 ![]() ![]() 4 仿真分析 設(shè)計(jì)的編解碼模塊是誤碼檢測(cè)儀的組成部分,采用Cy-clone系列FPGA(EPlC3T144C8)實(shí)現(xiàn)電路的核心功能,該器件擁有近3 000個(gè)邏輯單元,可滿(mǎn)足整個(gè)系統(tǒng)設(shè)計(jì)的要求。 4.1 HDB3編碼模塊仿真分析 對(duì)該HDB3編碼模塊進(jìn)行仿真驗(yàn)證,圖6是仿真波形圖,仿真時(shí)鐘頻率為32 MHz,Codein表示待編碼的輸入信號(hào),輸入的二進(jìn)制代碼為:101011000001100001;VBcodeout是插入V碼和B碼后的輸出,觀察波形發(fā)現(xiàn),在A和B位置插入“11”作為V碼,在C位置插入B碼:Codeout是單雙極性變換后波形,“10”表示正電平,“01”表示負(fù)電平.從波形可看出實(shí)現(xiàn)了正負(fù)交替;Pos_rzhdb3out和Neg_rzhdb3out是最終的歸零碼輸出。該HDB3編碼模塊正確實(shí)現(xiàn)編碼功能。 4.2 HDB3解碼模塊仿真分析 采用一個(gè)偽隨機(jī)序列發(fā)生器產(chǎn)生測(cè)試數(shù)據(jù),仿真時(shí)鐘頻率為32 MHz。將HDB3編碼模塊和解碼模塊相連接,觀察輸入和輸出波形。 ![]() 圖7是仿真波形,其中msequence9是一個(gè)周期為511的偽隨機(jī)序列碼,在A時(shí)刻產(chǎn)生第1個(gè)高電平;將該碼輸入到HDB3編碼模塊,完成編碼后輸入到解碼模塊中進(jìn)行解碼,decodeout是解碼后的輸出,從B時(shí)刻開(kāi)始輸出解碼后的數(shù)據(jù),可以發(fā)現(xiàn)其波形與輸入數(shù)據(jù)完全相同,因此解碼模塊實(shí)現(xiàn)了 HDB3解碼功能。 5 結(jié)論 所設(shè)計(jì)的HDB3編解碼模塊簡(jiǎn)單實(shí)用,利用FPGA實(shí)現(xiàn)HDB3編解碼功能具有很強(qiáng)的靈活性,可以集成到不同的通信系統(tǒng)中,提高系統(tǒng)設(shè)計(jì)的速度。這里所涉及的仿真均為帶有時(shí)序信息的仿真,仿真時(shí)鐘頻率設(shè)為32 MHz,該頻率是HDB3碼應(yīng)用的最高頻率。目前該編解碼模塊已成功應(yīng)用于誤碼檢測(cè)儀中,性能穩(wěn)定可靠。 參考文獻(xiàn) 1. 樊昌信,曹麗娜.通信原理[M].北京:國(guó)防工業(yè)出版社,2006. 2. 曹志剛,錢(qián)亞生.現(xiàn)代通信原理[M].北京:清華大學(xué)出版社,2005. 3. 李白萍,吳冬梅.通信原理與技術(shù)[M].北京:人民郵電出版社,2003. 4. 夏宇聞.數(shù)字系統(tǒng)設(shè)計(jì)-Verilog實(shí)現(xiàn)[M].北京:高等教育出版社,2006. 5. 黃智偉,王彥,陳瓊,等.FPGA系統(tǒng)設(shè)計(jì)與實(shí)踐[M].北京:電子工業(yè)出版社,2005. 6. 段吉海,黃智偉.基于CPLD/FPGA的數(shù)字通信系統(tǒng)建模與設(shè)計(jì)[M].北京:電子工業(yè)出版社,2004. 作者:朱勤為 唐寧 趙明劍 桂林電子科技大學(xué)信息與通信學(xué)院,廣西,桂林,541004 來(lái)源:電子設(shè)計(jì)工程 2009(12) |