1、 引 言
現(xiàn)代電子系統(tǒng)設(shè)計(jì)中,數(shù)字系統(tǒng)設(shè)計(jì)所占的比例越來越大,數(shù)字化、集成化是未來系統(tǒng)發(fā)展的趨勢;CPLD/FPGA作為可編程ASIC器件,將在數(shù)字邏輯系統(tǒng)設(shè)計(jì)中發(fā)揮越來越重要的作用。在數(shù)字通信領(lǐng)域,軟件無線電在數(shù)字通信中,特別是第3代移動(dòng)通信中的應(yīng)用越來越成為研究的焦點(diǎn),歐洲的ACIS(先進(jìn)的通信技術(shù)與業(yè)務(wù))計(jì)劃,美國的多頻帶寬式手機(jī)與基站系統(tǒng)設(shè)計(jì)等都將著眼點(diǎn)放在基于軟件無線電的第3代移動(dòng)通信系統(tǒng)上。同時(shí),軟件無線電技術(shù)與計(jì)算機(jī)技術(shù)融合,也為第3代移動(dòng)通信系統(tǒng)提供了良好的平臺(tái)。在實(shí)際的數(shù)字通信系統(tǒng)中,數(shù)字基帶傳輸在應(yīng)用上雖不如頻帶傳輸廣泛,但仍有相當(dāng)多的應(yīng)用范圍。重要的是,數(shù)字基帶傳輸?shù)幕纠碚摬粌H適用于基帶傳輸,而且還適用于頻帶傳輸。本文針對(duì)數(shù)字基帶通信系統(tǒng)中廣為應(yīng)用的AMI碼,采用基于FPGA在Max+plusII平臺(tái)上進(jìn)行設(shè)計(jì)與實(shí)現(xiàn)。
2 、AMI編碼器VHDL設(shè)計(jì)
2.1 AMI碼的設(shè)計(jì)
實(shí)際的基帶傳輸系統(tǒng),含有豐富直流和低頻成分的基帶信號(hào)不適宜在信道中傳輸。而對(duì)具有易獲取定時(shí)信息、無直流成分和只有很小的低頻成分、以及具有內(nèi)在糾錯(cuò)能力的信號(hào)才適宜在基帶傳輸系統(tǒng)中傳輸。AMI碼、HDB3碼均具有這些特點(diǎn),因而廣泛應(yīng)用。
AMI碼編碼規(guī)則:代碼中的0仍為傳輸碼0,而把代碼中的1交替地變?yōu)閭鬏敶a的+1-1+1-1,…。據(jù)AMI碼的編碼規(guī)則和特點(diǎn),在對(duì)它進(jìn)行建模時(shí),由于系統(tǒng)是基于CPLD/FPGA構(gòu)成的模塊,其輸入、輸出信號(hào)為TTL電平,即為單極性信號(hào),而AMI碼信號(hào)為雙極性歸零信號(hào),而HDB3編碼輸出類似,因而須將輸入的單極性信號(hào)轉(zhuǎn)換成輸出的雙極性信號(hào)。為實(shí)現(xiàn)AMI編碼功能,需將軟、硬件混合設(shè)計(jì),其功能模塊分為兩大部分,一部分通過VHDL語言建模和編程實(shí)現(xiàn);另一部分通過由單/雙極性變換電路來實(shí)現(xiàn)。AMI編碼器組成框圖如圖1。
圖1的第一個(gè)方框的功能表示傳號(hào)(即信碼“1”)交替代碼識(shí)別與極性控制,根據(jù)編碼規(guī)則,代碼中的0認(rèn)為傳輸碼0,而把代碼中的1交替地交換為+1和-1(或-1和+1)。考慮到+1和-1不能直接通過FPGA/CPLD來實(shí)現(xiàn),而是通過外圍的單/雙極性變換電路來實(shí)現(xiàn),因此,首先建立識(shí)別符號(hào)來代替+1、-1和0。按此建模思想,可得到單/雙極性控制的功能如表1。
在編碼過程中要考慮的問題是,如何把消息碼中的0變?yōu)榭刂拼a“00” ;把消息碼中的1交替的變?yōu)榭刂拼a“01”和“10” 。具體設(shè)計(jì)思路:建立一個(gè)功能模塊電路,當(dāng)輸入為0時(shí),數(shù)據(jù)選擇器輸出為“00”,當(dāng)輸入為1時(shí),設(shè)置一個(gè)偶數(shù)計(jì)數(shù)器記錄1的個(gè)數(shù),當(dāng)計(jì)數(shù)器記數(shù)為偶數(shù),使數(shù)據(jù)選擇器輸出為“10”(或“01”),若計(jì)數(shù)器記數(shù)為奇數(shù),則使數(shù)據(jù)選擇器輸出為“01”(或“10”)。
2.2 AMI編碼器的實(shí)現(xiàn)流程圖
根據(jù)“+1” 、“-1”的極性判斷并通過給外圍的單/雙極性變換電路S2(4) 、S1(4) 、S0(4)的賦值來輸出0、-1、+1。
在程序輸入完畢并編譯通過的情況下,選擇圖形編輯并在編輯區(qū)輸入程序?qū)嶓w名,就可以出現(xiàn)程序?qū)嶓w框圖如圖4,此圖看起來就像一個(gè)黑箱子,在外觀上只有簡單的輸入、輸出端口。雙擊此圖形,便可以出現(xiàn)最開始輸入的程序。這個(gè)圖形實(shí)現(xiàn)的功能和程序?qū)崿F(xiàn)的一樣,它可以下載到CPLD的實(shí)驗(yàn)箱的硬件設(shè)備上,從硬件效果上可看到實(shí)驗(yàn)效果。
2.3 AMI編碼器的仿真結(jié)果與分析
仿真波形最后的輸出結(jié)果“codeout”并不是“0”、“+1”、或“-1”的多電平變化的波形,它實(shí)際上是一組地址控制碼,在極性轉(zhuǎn)換電路中選中不同的通道,即可實(shí)現(xiàn)單極性到雙極性的轉(zhuǎn)換。圖5是一路信碼經(jīng)過(原碼輸入codein:100001000011000011000010)正、負(fù)交替編碼變換后最終的輸出波形仿真。根據(jù)AMI編碼原則主要是將信號(hào)輸入碼流中的非零碼轉(zhuǎn)換成交替的“+1”和“-1”碼,而其中的0碼不變。
由圖5可知:codeout0表示“-1” 碼波形,codeout0由codeoutv1.Q和codeoutv2.Q的波形疊加而成。當(dāng)codeoutv1.Q和codeoutv2.Q同為高電平時(shí),codeout0輸出為“ –1” 碼,顯示為高電平,否則輸出為0,顯示為低電平; codeout1表示“+1”碼波形,codeout1由codeoutb1.Q和codeoutb2.Q的波形疊加而成。當(dāng)codeoutb1.Q和codeoutb2.Q同為高電平時(shí),codeout1輸出為“+1” 碼,顯示為高電平,否則輸出為0,顯示為低電平;codeout用三位二進(jìn)制碼表示AMI碼的編碼結(jié)果(“0”表示原信號(hào)的“0” 碼,其中1碼表示“-1” ,其中2碼表示“+1”)。但在編碼過程中,由于基帶傳輸系統(tǒng)都是從接收到的基帶信號(hào)中提取位同步信號(hào),而位同步信號(hào)卻又依賴于代碼的碼型,如果代碼出現(xiàn)長時(shí)間的連 “0” 符號(hào),則基帶信號(hào)中長時(shí)間出現(xiàn) 0 電位,從而使位同步恢復(fù)系統(tǒng)難以保證位同步信號(hào)的準(zhǔn)確性,產(chǎn)生的結(jié)果是編碼器輸出結(jié)果最后促使正、負(fù)變換過程中觸發(fā)沿改變,使“-1” 、“+1”的極性錯(cuò)誤地改變。
3、 AMI譯碼器的VHDL設(shè)計(jì)
3.1 AMI譯碼器設(shè)計(jì)原則
AMI碼譯碼原理:把輸入的消息碼流中的非零碼轉(zhuǎn)換成交替出現(xiàn)的+1和-1碼,而0碼不變。在譯碼過程中要考慮的問題是,如何把消息碼中的“00”變?yōu)榭刂拼a0;把消息碼中的交替的“01”和“10”變?yōu)榭刂拼a1。具體建模思路:建立一個(gè)功能模塊電路,當(dāng)檢測到“00”時(shí),數(shù)據(jù)選擇器輸出為0,當(dāng)輸入為“10”或“01” 時(shí),使數(shù)據(jù)選擇器均輸出為1。輸出結(jié)果中1碼沒有正、負(fù)性的區(qū)分。
3.2 AMI譯碼器的仿真結(jié)果與分析
圖6中zb是含有“+1”的輸入碼流: +1000000000+100000+100000;fb是含有“-1”的輸入碼流----00000-100000-100000-100000;clk是表示時(shí)鐘輸入;V2、V3表示時(shí)鐘信號(hào)的提取;decode表示譯碼輸出:1000010000110000110000。Zb和fb在orl功能器件(即加法器)的作用下疊加而成decode。功能元件zv和fv檢測到非“+1” 、“-1”的正信號(hào)就輸入為0。
整個(gè)系統(tǒng)程序編譯成功后,可以創(chuàng)建頂層文件,生成下載編程文件,進(jìn)行程序下載到可編程器件中。
4 、結(jié) 論
現(xiàn)代通信系統(tǒng)的發(fā)展隨著VHDL的設(shè)計(jì)性語言的出現(xiàn)和ASIC的應(yīng)用進(jìn)入了一個(gè)新的階段,特別是,對(duì)數(shù)字通信系統(tǒng)的ASIC芯片的研究為現(xiàn)代通信系統(tǒng)的設(shè)計(jì)有著重要的實(shí)踐性意義。本文作者創(chuàng)新點(diǎn)在于針對(duì)數(shù)字基帶傳輸系統(tǒng)中AMI碼的特點(diǎn),采用基于CPLD/FPGA的VHDL語言,仿真實(shí)現(xiàn)了AMI的編碼器和譯碼器。仿真結(jié)果表明,采用基于FPGA的AMI碼的設(shè)計(jì)實(shí)用、方便、簡單易行。
責(zé)任編輯:gt
評(píng)論