??? 摘? 要: 數(shù)字復(fù)接技術(shù)是現(xiàn)代數(shù)字通信中常用的技術(shù),。本文給出了一種采用時(shí)分復(fù)用技術(shù),基于FPGA對語音,、同步數(shù)據(jù),、異步數(shù)據(jù)等多路不同等級(jí)數(shù)字信號(hào)進(jìn)行復(fù)分接設(shè)計(jì)與實(shí)現(xiàn)的方法,對設(shè)計(jì)與實(shí)現(xiàn)過程關(guān)鍵技術(shù)進(jìn)行了詳細(xì)的論述,,同時(shí)對設(shè)計(jì)中需要注意的問題做了必要的說明,。?
????關(guān)鍵詞: FPGA;數(shù)字復(fù)接器,;數(shù)字分接器,;同步,;碼速調(diào)整
?
??? 在現(xiàn)代數(shù)字通信中,對數(shù)據(jù)傳輸容量和傳輸效率的要求越來越高,,因此經(jīng)常依據(jù)時(shí)分復(fù)用[1]的原理通過數(shù)字復(fù)接與分接(簡稱數(shù)字復(fù)接技術(shù))將不同速度和不同類型數(shù)據(jù)進(jìn)行合并與分離,,以充分發(fā)揮和利用傳輸能力。實(shí)現(xiàn)此功能的設(shè)備稱為數(shù)字復(fù)接系統(tǒng),,它由數(shù)字復(fù)接器和數(shù)字分接器兩部分組成(簡稱復(fù)接器和分接器),。數(shù)字復(fù)接系統(tǒng)設(shè)計(jì)方法多種多樣,本文介紹了一種基于FPGA特點(diǎn),、對多信號(hào)數(shù)字復(fù)分接器的設(shè)計(jì)方法,。?
1 多信號(hào)數(shù)字復(fù)分接器的設(shè)計(jì)要求?
??? 復(fù)分接器需要完成對以下信號(hào)的復(fù)分接:?
??? (1)4路8 kB語音(符合G.729A標(biāo)準(zhǔn))及線路信令;?
??? (2)1路4.8 kB低速同步數(shù)據(jù),;?
??? (3)2路最高為2.4 kB的異步數(shù)據(jù),。?
??? 形成速率為64 kb/s的群路碼流。功能框圖見圖1,。?
?
?
2 復(fù)分接器的設(shè)計(jì)與實(shí)現(xiàn)?
2.1 復(fù)分接器的設(shè)計(jì)?
2.1.1 復(fù)分接器的幀結(jié)構(gòu)設(shè)計(jì)?
??? 本方案采用時(shí)分復(fù)用技術(shù),,幀結(jié)構(gòu)見表1。?
?
?
??? 根據(jù)表1可以計(jì)算出:?
??? 每幀的幀長L=1 280 bit?
??? 當(dāng)群路碼速率fS=64 kb/s時(shí):?
?????
?????
由幀結(jié)構(gòu)設(shè)計(jì)結(jié)果可對信道容量估算如下:?
??? 4路話音壓縮成23×8×4×50=36.8 kb/s,,低速異步數(shù)據(jù)2路為128×2×50=12.8 kb/s,,低速同步數(shù)據(jù)1路為4.8 kb/s,總開銷為54.4 kb/s,。?
??? 時(shí)分復(fù)用的分割方式是用時(shí)隙實(shí)現(xiàn)的,,每一支路信號(hào)分配一路時(shí)隙,幀同步碼和其他業(yè)務(wù)信號(hào),、信令信號(hào)再分配一個(gè)或兩個(gè)時(shí)隙,,這種按時(shí)隙分配的重復(fù)性圖案就是幀結(jié)構(gòu)。設(shè)計(jì)的多路信號(hào)復(fù)接器,,就是按幀結(jié)構(gòu)將各種信息規(guī)律性地相互交插匯總成64 kb/s的群路碼流,。?
??? PCM基群[3]的復(fù)接是在時(shí)隙信號(hào)控制下進(jìn)行的。以30/32路PCM基群為例,,在一個(gè)完整的幀周期中,,定時(shí)系統(tǒng)均勻地產(chǎn)生32個(gè)時(shí)隙信號(hào),所有時(shí)隙信號(hào)均和系統(tǒng)時(shí)鐘同步,。在每幀的開始,,第一個(gè)時(shí)隙信號(hào)有效,,此時(shí)在系統(tǒng)時(shí)鐘作用下,,復(fù)接器讀取第一支路的數(shù)據(jù)信息(8 bit);接著,,第二個(gè)時(shí)隙信號(hào)有效,,復(fù)接器讀取第二支路的數(shù)據(jù)信息,直至依次讀取完所有32個(gè)支路信息,如此周而復(fù)始進(jìn)行,。這種復(fù)接方式以字節(jié)為單位進(jìn)行,。?
??? 從設(shè)計(jì)要求可知,復(fù)接器要復(fù)接的各個(gè)支路數(shù)據(jù)量差別較大,,既有8 kB語音信號(hào)(該數(shù)據(jù)由語音壓縮電路提供),,還有4.8 kB的同步數(shù)據(jù)及2.4 kB的異步數(shù)據(jù)。如果按字節(jié)方式復(fù)接,,不僅會(huì)造成在不同的時(shí)隙中需要復(fù)接的有效數(shù)據(jù)差別很大(如對每一個(gè)語音支路,、同步數(shù)據(jù)、異步數(shù)據(jù)而言,,其有效數(shù)據(jù)分別為184 bit,、103 bit、128 bit,,而幀對告只需1 bit),,而且會(huì)浪費(fèi)較多的系統(tǒng)資源?;谝陨戏治?,本設(shè)計(jì)采用按位復(fù)接。?
??? 具體復(fù)接過程如下:首先設(shè)計(jì)一個(gè)計(jì)數(shù)器,,該計(jì)數(shù)器計(jì)數(shù)速率為64 kb/s,,計(jì)數(shù)范圍為0~1 280,與一幀數(shù)據(jù)的長度正好相同,。計(jì)數(shù)時(shí)鐘從系統(tǒng)時(shí)鐘中得到,,因而它們是完全同步的。計(jì)數(shù)器從復(fù)位開始計(jì)數(shù)時(shí),,即是每一幀數(shù)據(jù)的開始,。當(dāng)計(jì)數(shù)器計(jì)數(shù)為1時(shí),復(fù)接器讀取幀的第1位,,即幀頭的第1位,;當(dāng)計(jì)數(shù)為2時(shí),復(fù)接器讀取第2位,,即幀頭的第2位……,,在計(jì)數(shù)為1 280時(shí),復(fù)接器則讀取幀的最后一位數(shù)據(jù),。若按復(fù)接支路劃分,,則有如表2所示的對應(yīng)關(guān)系。?
?
?
??? 綜上所述,,可以得出以下結(jié)論:復(fù)接器應(yīng)讀取的數(shù)據(jù)位在數(shù)值上等于計(jì)數(shù)器計(jì)數(shù)值,。需要說明的是:CRC采用ITU-T建議的CRC-4方案,,其生成多項(xiàng)式為x4+x+1。在計(jì)數(shù)器值每次變化即復(fù)接器每讀取一位數(shù)據(jù)后,,立即把該數(shù)據(jù)發(fā)送到群路碼流中而不需要進(jìn)行保存,,發(fā)送的同時(shí)進(jìn)行CRC校驗(yàn)計(jì)算。待需要復(fù)接CRC數(shù)據(jù)時(shí),,正好得到其計(jì)算結(jié)果,,不會(huì)影響到復(fù)接結(jié)果。?
2.1.2 復(fù)分接器的硬件設(shè)計(jì)?
??? 復(fù)分接器基于一片F(xiàn)PGA來實(shí)現(xiàn),,模塊化硬件框圖見圖2,。?
?
?
2.2 復(fù)分接器的設(shè)計(jì)實(shí)現(xiàn)?
2.2.1 同步設(shè)計(jì)?
??? 一個(gè)時(shí)分復(fù)用系統(tǒng)必須收、發(fā)同步才能正常工作,,這個(gè)同步包括位同步(時(shí)鐘同步)和幀同步,。位同步是最基本的同步,是實(shí)現(xiàn)幀同步的前提,。?
??? 位同步的基本含義是收,、發(fā)兩端的時(shí)鐘頻率必須同頻、同相,,這樣接收端才能正確接收和判決發(fā)送端送來的每一個(gè)碼元,。為此,一般應(yīng)在傳輸?shù)娜郝反a流中含有發(fā)送端的時(shí)鐘頻率成分,。這樣,,接收端從接收到的碼流中可提取出發(fā)端時(shí)鐘頻率,通過鎖相技術(shù)就可做到位同步,。?
??? 幀同步是為了保證收,、發(fā)各對應(yīng)的支路在時(shí)間上保持一致,這樣接收端就能正確分接出各支路信號(hào),。為了建立幀同步,,需要在每一幀的固定位置插入具有特定碼型的幀同步碼。這樣,,只要接收端能正確識(shí)別出這些幀同步碼,,就能正確辨別出每一幀的首尾,從而能正確區(qū)分出發(fā)送端送來的各路信號(hào),。?
??? 常用的幀同步碼插入方式有分散插入和集中插入兩種方式,。分散插入采用把多位同步碼分散地插入到信息碼流中,最大特點(diǎn)是同步碼不占用信息時(shí)隙,,但同步引入時(shí)間長,;集中插入則將多位同步碼以集中的形式插入到信息碼流中,顯然,,幀同步碼需占用信息時(shí)隙,,但縮短了同步引入時(shí)間。?
??? 本設(shè)計(jì)采用幀同步碼(1B)集中插入方式,。同步捕捉模塊框圖見圖3,。
?
?
2.2.2 準(zhǔn)同步復(fù)接?
??? 同步復(fù)接是指參與復(fù)接的支路數(shù)字信號(hào)與復(fù)接時(shí)鐘嚴(yán)格同步;準(zhǔn)同步復(fù)分接則是把標(biāo)稱速率相同,、而實(shí)際速率略有差異,、但均在規(guī)定的容差范圍內(nèi)的多路數(shù)字信號(hào)進(jìn)行復(fù)接分接的技術(shù)。?
??? 在設(shè)計(jì)中,,由于同步數(shù)據(jù)時(shí)鐘和系統(tǒng)時(shí)鐘不同源,,因此,該部分復(fù)分接屬準(zhǔn)同步復(fù)分接,。碼率調(diào)整及碼速恢復(fù)技術(shù)是該部分的設(shè)計(jì)要點(diǎn),,即先把參與復(fù)接的各準(zhǔn)同步支路碼流調(diào)整成為同步碼流,然后再對這些同步碼流進(jìn)行同步復(fù)接,;在接收端,,則先實(shí)施同步分接,得到同步支路碼流后,,再經(jīng)過碼速恢復(fù)裝置,,把同步支路碼流還原成原來的準(zhǔn)同步支路碼流。碼速調(diào)整示意圖如圖4所示,。?
?
?
????被復(fù)接的碼速fL與其標(biāo)稱碼速fm之間有三種關(guān)系:fL
????在設(shè)計(jì)的幀結(jié)構(gòu)中,該部分復(fù)接后占用的幀長度是固定的,,它包含的信息和相應(yīng)位置如表3,。?
?
?
????“插入標(biāo)志”用來表示采用碼速調(diào)整的方式,很明顯,,使用2 bit即可代表三種碼速調(diào)整方式,,在此用6 bit來指示三種碼速調(diào)整方式,將該6 bit分為3組,對3組數(shù)據(jù)采用大數(shù)判決,,可較好解決由于該插入標(biāo)志誤碼造成分接時(shí)的碼流恢復(fù)錯(cuò)誤,。插入碼則表示對應(yīng)的調(diào)整碼。在分接端,,通過讀取插入標(biāo)志即可正確判斷和分離出插入碼,,從而還原成為原來的準(zhǔn)同步支路碼流,。?
??? 下面對碼速調(diào)整率進(jìn)行估算:?
?????
??? 其物理意義為:對速率為4.8 kb/s的同步數(shù)據(jù),允許的速率變化范圍是(4.8-4.8×1 %) kb/s~(4.8+4.8×1 %) kb/s,,在此范圍內(nèi)均可完全正確地進(jìn)行復(fù)分接,。?
2.2.3 語音數(shù)據(jù)和異步數(shù)據(jù)的采樣?
??? 結(jié)合圖1可知,話音經(jīng)抽樣壓縮為8 kb/s,,在MCU的控制下,,實(shí)時(shí)寫入語音通道的FIFO中,等待參與復(fù)接,。?
??? 異步數(shù)據(jù)的最高速率限制為2 400 b/s,。根據(jù)采樣定理,F(xiàn)PGA以6.4 kb/s的速率對低速異步數(shù)據(jù)過采樣,,使之成為一個(gè)同步碼流,,即可參加復(fù)接。?
2.2.4 芯片選型?
??? 數(shù)字復(fù)接時(shí),緩存器是必不可少的部件,,因?yàn)閺?fù)接過程中,,各個(gè)支路信號(hào)均為連續(xù)傳輸。當(dāng)復(fù)接某一支路信碼時(shí),,其他支路信碼仍在傳送,,但暫時(shí)尚未輪到復(fù)接它們,因此需要將這些數(shù)據(jù)緩存起來,,以免丟失,。?
??? FPGA既繼承了ASIC的大規(guī)模、高集成度,、高可靠性的優(yōu)點(diǎn),,又克服了ASIC設(shè)計(jì)的周期長、投資大,、靈活性差的缺點(diǎn),。結(jié)合性能、成本等要求,,設(shè)計(jì)選用了Xilinx公司的 XC2S300E-6,,該FPGA為30萬門大規(guī)模可編程邏輯器件,,基于查找表,、觸發(fā)器結(jié)構(gòu)。查找表可等效為16×1 RAM或移位寄存器,,提高邏輯利用率,,內(nèi)置專用雙端口BlockRAM,方便了系統(tǒng)開發(fā)。?
3 設(shè)計(jì)中需要注意的問題?
??? 系統(tǒng)中其他相關(guān)設(shè)備對群路碼流的速率容差要求較為嚴(yán)格,,為±50 ppm,,因此在選擇全局時(shí)鐘源時(shí)應(yīng)慎重考慮,避免由于時(shí)鐘源造成的碼速抖動(dòng)和漂移。設(shè)計(jì)中應(yīng)多采用同步時(shí)序電路來實(shí)現(xiàn)各個(gè)進(jìn)程模塊的功能,,以免電路中產(chǎn)生毛刺,。接口數(shù)字信號(hào)5 V TTL,內(nèi)部芯片工作電壓3.3 V LVTTL,,需要進(jìn)行電平轉(zhuǎn)換,。?
??? 本設(shè)計(jì)選用Xilinx公司的ISE6.1作為硬件開發(fā)平臺(tái),,并采用VHDL編程語言,。程序已通過了綜合實(shí)驗(yàn),并使用ModelSim軟件進(jìn)行了功能仿真和時(shí)序仿真,,仿真結(jié)果正確,。在硬件實(shí)現(xiàn)與調(diào)試過程中,將程序下載到Xilinx公司的SPARTANⅡE系列的XC2S300E-6芯片,,經(jīng)過整體調(diào)試,,最終實(shí)現(xiàn)了對多路數(shù)字復(fù)分接器的設(shè)計(jì)。該方法不僅具有通用性,、實(shí)用性,,而且具有靈活性和程序可移植性,相信在很多行業(yè)都會(huì)得到廣泛應(yīng)用,。?
參考文獻(xiàn)?
[1] 傅海陽.SDH數(shù)字微波傳輸系統(tǒng)[M].北京:人民郵電出版社,,1998.?
[2] 段吉海,黃智偉.基于CPLD/FPGA的數(shù)字通信系統(tǒng)建模與設(shè)計(jì)[M].北京:電子工業(yè)出版社,,2004.?
[3] 劉穎,,石戰(zhàn)勇,李仲俠.大規(guī)模集成電路PCM終端及復(fù)接設(shè)備[M].北京:人民郵電出版社,,1996.