摘 要: 在簡(jiǎn)要介紹同步數(shù)字復(fù)接" title="復(fù)接">復(fù)接基本原理的基礎(chǔ)上,,采用VHDL語(yǔ)言對(duì)同步數(shù)字復(fù)接各組成模塊進(jìn)行了設(shè)計(jì),,并在ISE集成環(huán)境下進(jìn)行了設(shè)計(jì)描述、綜合,、布局布線及時(shí)序仿真,,取得了正確的設(shè)計(jì)結(jié)果,同時(shí)利用中小容量的FPGA實(shí)現(xiàn)了同步數(shù)字復(fù)接功能,。
關(guān)鍵詞: 同步數(shù)字復(fù)接/分接 FPGA 位同步" title="位同步">位同步 幀同步" title="幀同步">幀同步檢測(cè)
基群速率數(shù)字信號(hào)的合成設(shè)備和分接設(shè)備是電信網(wǎng)絡(luò)中使用較多的關(guān)鍵設(shè)備,,在數(shù)字程控交換機(jī)的用戶模塊、小靈通基站控制器和集團(tuán)電話中都需要使用這種同步數(shù)字復(fù)接設(shè)備,。近年來(lái),,隨著需要自建內(nèi)部通信系統(tǒng)的公司和企業(yè)不斷增多,同步數(shù)字復(fù)接設(shè)備的使用需求也在增加,。FPGA(現(xiàn)場(chǎng)可編程門陣列)器件的高性能簡(jiǎn)化了數(shù)字通信系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn),。本文基于FPGA的技術(shù)特點(diǎn),結(jié)合數(shù)字復(fù)接技術(shù)的基本原理,,實(shí)現(xiàn)了基群速率(2048kbps)數(shù)字信號(hào)的數(shù)字分接與復(fù)接,。
1 同步數(shù)字復(fù)接的基本原理
在數(shù)字通信網(wǎng)中,為了擴(kuò)大傳輸容量和傳輸效率,,常常需要把若干個(gè)低速數(shù)字信號(hào)合并成為一個(gè)高速數(shù)字信號(hào),,然后通過(guò)高速信道傳輸,;而在接收端又按照需要分解成低速數(shù)字信號(hào),。數(shù)字復(fù)接技術(shù)就是實(shí)現(xiàn)這種數(shù)字信號(hào)合并(復(fù)接)和分解(分接)的專門技術(shù)[1]。
1.1 系統(tǒng)劃分
同步數(shù)字復(fù)接終端包括同步數(shù)字復(fù)接器" title="復(fù)接器">復(fù)接器(Synchronous Digital Multiplexer)和同步數(shù)字分接器" title="分接器">分接器(Synchronous Digital Demultiplexer)兩部分,,如圖1所示,。數(shù)字復(fù)接器把兩個(gè)或兩個(gè)以上的支路數(shù)字信號(hào)按時(shí)分復(fù)用方式合并成單一的合路數(shù)字信號(hào);數(shù)字分接器把單一的合路數(shù)字信號(hào)分解為原來(lái)的各支路數(shù)字信號(hào),。通??偸前褦?shù)字復(fù)接器和數(shù)字分接器裝在一起做成一個(gè)設(shè)備,稱為復(fù)接分接器(Muldex),,一般簡(jiǎn)稱數(shù)字復(fù)接設(shè)備[2],。
同步數(shù)字復(fù)接器由定時(shí)和復(fù)接單元組成;而同步數(shù)字分接器則由同步,、定時(shí)和分接單元組成,。定時(shí)單元給設(shè)備提供各種定時(shí)信號(hào),,復(fù)接器的主時(shí)鐘可由內(nèi)部產(chǎn)生,也可由外部提供,,而分接器主時(shí)鐘則從接收信號(hào)中提取,,并通過(guò)同步電路的調(diào)整控制,使得分接器基準(zhǔn)時(shí)序信號(hào)與復(fù)接器基準(zhǔn)時(shí)序信號(hào)保持正確的相位關(guān)系,,即收發(fā)同步,。同步的建立由同步單元實(shí)現(xiàn)[1]。
1.2 位同步[3]
在數(shù)字通信中,,位同步是最基本的同步,。位同步的基本含義就是收端和發(fā)端時(shí)鐘信號(hào)必須同頻同相,這樣接收端才能正確接收和判決發(fā)送端送來(lái)的每一個(gè)碼元,。為了達(dá)到收發(fā)端時(shí)鐘同頻同相,,接收端需要從收到的碼流中提取發(fā)送端的時(shí)鐘信號(hào)來(lái)控制接收端時(shí)鐘,從而做到位同步,。實(shí)現(xiàn)位同步的方法分為插入導(dǎo)頻法和直接法兩類,。而直接法按照提取同步信號(hào)的方式,大致又可分為濾波法和鎖相法,。鎖相法的原理是:在接收端用鑒相器比較接收碼元和本地產(chǎn)生的位同步信號(hào)的相位,,如果兩者不一致,則用鑒相器輸出誤差信號(hào)去控制本地同步信號(hào)的相位,,直至本地的位同步信號(hào)的相位與接收信號(hào)的相位一致為止,。
1.3 幀同步
在復(fù)接分接器中,如果只是循環(huán)交織地復(fù)接各支路數(shù)字信號(hào),,那么一旦合并成為一個(gè)合路數(shù)字信號(hào)后就難以正確地實(shí)施分接,。為了保證接收端分路系統(tǒng)能和發(fā)送端一致,在保持位同步的基礎(chǔ)上還必須要有一個(gè)幀同步系統(tǒng),,以實(shí)現(xiàn)發(fā)送端與接收端的幀同步[2],。
實(shí)現(xiàn)幀同步的基本方法是在發(fā)送端預(yù)先規(guī)定的時(shí)隙(即幀同步碼時(shí)隙)插入一組特殊碼型的幀同步碼組;在接收端由幀同步檢測(cè)電路檢測(cè)該碼組以保證收發(fā)幀同步[2],。
幀同步檢測(cè)狀態(tài)有失步態(tài),、同步校核態(tài)、同步態(tài)和同步保護(hù)態(tài)四種狀態(tài),。
2 基于FPGA的同步數(shù)字復(fù)接的設(shè)計(jì)與實(shí)現(xiàn)
FPGA/CPLD既繼承了ASIC的大規(guī)模,、高集成度、高可靠性的優(yōu)點(diǎn),,又克服了普通ASIC設(shè)計(jì)的設(shè)計(jì)周期長(zhǎng),、投資大、靈活性差的缺點(diǎn),,逐步成為復(fù)雜數(shù)字電路設(shè)計(jì)的理想首選[4],。
ISE是XILINX公司提供的一個(gè)開(kāi)發(fā)FPGA/CPLD的集成環(huán)境,,其集成的工具可以完成從設(shè)計(jì)輸入、功能仿真,、綜合優(yōu)化,、綜合后仿真、布局布線,、時(shí)序仿真到配置芯片等整個(gè)FPGA/CPLD開(kāi)發(fā)過(guò)程,。
本設(shè)計(jì)采用ISE集成環(huán)境進(jìn)行開(kāi)發(fā),使用SPARTAN-3系列FPGA器件實(shí)現(xiàn)設(shè)計(jì),。
2.1 按碼字復(fù)接系統(tǒng)的設(shè)計(jì)
數(shù)字信號(hào)復(fù)接主要有兩種方式[1]:一種是“逐位復(fù)接”,,另一種是“按碼字復(fù)接”。其中按碼字復(fù)接方式保留了碼字結(jié)構(gòu),,有利于多路合成處理和交換,。本設(shè)計(jì)要實(shí)現(xiàn)32路信號(hào)的復(fù)接,信息位采取各支路彼此循環(huán)且每次插入一個(gè)8位信息位到合路數(shù)字信號(hào)中的碼字復(fù)接形式,,幀同步碼采用CCITT推薦的10011011,。
2.1.1 復(fù)接器和分接器的設(shè)計(jì)
復(fù)接器應(yīng)完成兩個(gè)功能。一是循環(huán)接收32個(gè)64kbps的支路信號(hào),,每支路每次送入8位信息位(其中第一支路送入固定的幀同步碼10011011),,形成合路數(shù)據(jù);二是將合路數(shù)據(jù)以2048kbps的速率發(fā)送出去,,形成合路信號(hào)——基群速率信號(hào),。
同步數(shù)字復(fù)接器電路原理圖如圖2所示,復(fù)接器由移位寄存器和定時(shí)模塊兩部分構(gòu)成,。移位寄存器分兩組,,每組由32個(gè)8位移位寄存器組成。在一幀時(shí)間(125μs)內(nèi),,當(dāng)其中一組移位寄存器在64kHz時(shí)鐘控制下同時(shí)移入32個(gè)支路的數(shù)據(jù)時(shí),,另一組移位寄存器在2048kHz時(shí)鐘(xclk_2M)的控制下將上次存入的32個(gè)支路的數(shù)據(jù)依次送出。在下一幀時(shí)間內(nèi),,則由第一組移位寄存器輸出2048kbps的合路信號(hào),,第二組移位寄存器讀入32個(gè)64kbps的支路數(shù)據(jù),。依此規(guī)律,,在定時(shí)模塊的控制下,由兩組移位寄存器交替變換工作任務(wù),,實(shí)現(xiàn)了支路輸入和合路輸出的連續(xù)性,。定時(shí)模塊由計(jì)數(shù)器(cnt)、多路選擇器(mul2~mul5)等組成,,為兩組移位寄存器提供工作允許信號(hào),、合路信號(hào)輸出的切換選擇信號(hào),。
為了提高時(shí)鐘的可靠性、降低時(shí)鐘的延時(shí)抖動(dòng),、提高時(shí)鐘的驅(qū)動(dòng)能力,,從而更好地完成同步復(fù)接,利用FPGA自身提供的全局時(shí)鐘資源驅(qū)動(dòng)本設(shè)計(jì)的主時(shí)鐘,,將外部時(shí)鐘從芯片的全局時(shí)鐘管腳輸入,,經(jīng)過(guò)BUFGP(IBUFG+BUFG)后通過(guò)全局時(shí)鐘網(wǎng)絡(luò)送至同步復(fù)接部分。
分接器的功能與復(fù)接器相反,。分接器在其定時(shí)單元的控制下,,對(duì)兩組移位寄存器進(jìn)行2048kbps的數(shù)據(jù)寫(xiě)入和64kbps的數(shù)據(jù)讀出,實(shí)現(xiàn)基群速率合路數(shù)字信號(hào)的32路分接,。
2.1.2 位同步提取電路的設(shè)計(jì)
實(shí)現(xiàn)合路數(shù)字信號(hào)的分接,,需要從數(shù)據(jù)流中提取時(shí)鐘同步信息。目前,,在數(shù)字通信系統(tǒng)中,,常常采用數(shù)字鎖相法提取位同步信號(hào)[3]。
位同步提取電路如圖3(a)所示,,主要由微分與鑒相模塊,、添門/扣門控制模塊、高頻時(shí)鐘模塊以及分頻器(clk_gen)等部分組成,。微分電路(diff)的功能是把非歸零碼轉(zhuǎn)換為歸零碼,,以利于定時(shí)信息的提取。鑒相器的功能是比較接收碼元(code_in)與分頻器輸出的本地時(shí)鐘信號(hào)(clk_out)的相位,,若本地時(shí)鐘超前于接收碼元的相位,,鑒相器向扣門電路輸出一個(gè)超前脈沖,在16分頻器輸入端扣除一個(gè)高頻窄脈沖,,使分頻器輸出的時(shí)鐘信號(hào)的相位滯后1/16周期,;若本地時(shí)鐘滯后于接收碼元的相位,鑒相器向添門電路輸出一個(gè)滯后脈沖,,增加一個(gè)高頻窄脈沖,,使分頻器的輸出脈沖的相位提前1/16周期。高頻時(shí)鐘模塊將本地高頻時(shí)鐘輸入信號(hào)clk_in轉(zhuǎn)換為兩路相位差為90°的窄脈沖序列,,分別為添門和扣門提供高頻窄脈沖序列,。添門為常閉門,在沒(méi)有滯后脈沖控制時(shí),,此門始終關(guān)閉,;扣門為常開(kāi)門,若無(wú)超前脈沖控制時(shí),窄脈沖信號(hào)通過(guò)此常開(kāi)門,。分頻器將輸入的高頻時(shí)鐘信號(hào)分頻后輸出位同步信號(hào)clk_out,。
對(duì)位同步提取電路進(jìn)行時(shí)序仿真,得到的時(shí)序仿真波形圖如圖3(b)所示,。圖中,,code_in為輸入碼流,clk_out為位同步信號(hào)輸出,。由圖可知,,該電路可以從輸入碼流中準(zhǔn)確提取位同步信號(hào),并且在碼流相位有變化的時(shí),,位同步信號(hào)可以快速地做出相位調(diào)整,,保持同步。
2.1.3 幀同步單元的設(shè)計(jì)
為了正確地實(shí)施分接,,在分接前必須先通過(guò)幀同步單元對(duì)合路信號(hào)進(jìn)行幀同步檢測(cè),。
幀同步單元是復(fù)接設(shè)備中較復(fù)雜也很重要的部分。如圖4所示,,它主要由同步碼檢測(cè)模塊(chk)和同步檢測(cè)控制模塊(chk_ctrl)兩部分組成,。其中,同步碼檢測(cè)模塊對(duì)輸入的數(shù)據(jù)流進(jìn)行搜索,,一旦檢測(cè)到幀同步碼(10011011),,立即輸出一個(gè)捕獲脈沖信號(hào)(get);同步檢測(cè)控制模塊由幀同步系統(tǒng)狀態(tài)計(jì)數(shù)器和一幀計(jì)數(shù)器等構(gòu)成,,完成幀同步單元的狀態(tài)轉(zhuǎn)換控制,、每幀檢測(cè)同步頭的控制等功能。
幀同步的關(guān)鍵部分是前方保護(hù)和后方保護(hù)的設(shè)計(jì),。為了減少?gòu)氖Р降街匦芦@得同步的時(shí)間和減小信道誤碼對(duì)同步工作狀態(tài)的影響,,從而得到較好的通信質(zhì)量,本設(shè)計(jì)采用了2幀后方保護(hù)和3幀前方保護(hù)的方案,。
幀同步系統(tǒng)狀態(tài)轉(zhuǎn)換圖如圖5所示,。系統(tǒng)上電復(fù)位后,在起始時(shí)刻處于失步狀態(tài)(STATE0_1xx——其中x表示無(wú)關(guān)值),,系統(tǒng)從外部輸入的合路碼流中搜捕幀同步碼“10011011”,,若合路碼流中沒(méi)有幀同步碼,狀態(tài)計(jì)數(shù)器仍保持為1xx,;若從合路碼流中檢測(cè)出同步碼(get=“1”),,則狀態(tài)計(jì)數(shù)器清零為000,系統(tǒng)進(jìn)入同步校核態(tài)(STATE1_000),,開(kāi)始將合路碼流寫(xiě)入移位寄存器,,分接器輸出開(kāi)關(guān)仍然為關(guān)閉狀態(tài)(switch=“0”),。在同步校核狀態(tài)下,,若下一幀確認(rèn)幀同步碼不正確,,判斷為虛假同步,則狀態(tài)計(jì)數(shù)器減1變?yōu)?11,,系統(tǒng)回到失步態(tài),;相反,若下一幀確認(rèn)幀同步碼正確,,則系統(tǒng)進(jìn)入同步態(tài)(STATE2_001),,分接器輸出開(kāi)關(guān)打開(kāi)(switch=“1”),開(kāi)始正常分接合路碼流,。系統(tǒng)進(jìn)入同步態(tài)后,,若合路碼流中出現(xiàn)幀同步碼丟失,則狀態(tài)計(jì)數(shù)器加1,,系統(tǒng)進(jìn)入同步保護(hù)態(tài)1(STATE3_010),;若下一幀仍然檢測(cè)幀同步碼失敗,則狀態(tài)計(jì)數(shù)器再加1,,系統(tǒng)進(jìn)入同步保護(hù)態(tài)2(STATE4_011),;若連續(xù)第三幀未收到幀同步碼,則狀態(tài)計(jì)數(shù)器再加1轉(zhuǎn)為100,,系統(tǒng)進(jìn)入失步狀態(tài),,停止分接合路碼流(switch=“0”),同時(shí)重新開(kāi)始搜捕幀同步碼“10011011”,。系統(tǒng)在同步保護(hù)態(tài)(狀態(tài)計(jì)數(shù)器值為01x)下,,若檢測(cè)幀同步碼正確,則狀態(tài)計(jì)數(shù)器置數(shù)為001,,系統(tǒng)回到同步態(tài),。
2.2 系統(tǒng)仿真與驗(yàn)證
在ISE集成環(huán)境下,調(diào)用ModelSim仿真軟件對(duì)系統(tǒng)各模塊進(jìn)行功能仿真,、綜合后仿真以及布局布線后的時(shí)序仿真,。仿真結(jié)果表明,復(fù)接器,、分接器,、同步單元等所有模塊的設(shè)計(jì)均滿足設(shè)計(jì)要求。
為了進(jìn)一步確保系統(tǒng)設(shè)計(jì)的可實(shí)用性,,將系統(tǒng)各組成模塊按照自環(huán)工作狀態(tài)連接起來(lái),,對(duì)系統(tǒng)各模塊進(jìn)行了聯(lián)合仿真。復(fù)接設(shè)備自環(huán)驗(yàn)證的原理圖如圖6所示,。
將32路64kbps的支路信號(hào)Ts_in(31:0)送到復(fù)接器(multiplexer)的支路信號(hào)輸入端Ts(31:0),,復(fù)接器的合路信號(hào)輸出端E1_out與同步單元syn_module(包括位同步和幀同步)的合路信號(hào)輸入端E1_in相連(自環(huán)),,合路信號(hào)經(jīng)過(guò)位同步信號(hào)提取以及幀同步檢測(cè)后,由同步單元將非失步狀態(tài)下的合路序列從信號(hào)輸出端E1_out送出,,同步單元還提供位同步信號(hào)clk_out,,送分接器demultiplex的輸入端xclk-2M,同步單元輸出的合路序列送入分接器的合路信號(hào)輸入端E1_in,經(jīng)過(guò)分接器實(shí)施分接后,,最后從支路輸出控制單元output_gate的輸出端可以得到各個(gè)支路的輸出信號(hào)Ts_out(31:0),。
圖7為復(fù)接設(shè)備自環(huán)驗(yàn)證的仿真時(shí)序圖。其中,,Ts_in為32個(gè)支路送來(lái)的64kbps的激勵(lì)信號(hào),;mul_E1_out為經(jīng)復(fù)接器實(shí)施復(fù)接后的合路信號(hào);E1_check_in為進(jìn)入幀同步碼檢測(cè)模塊的合路序列,;get_syn為幀同步碼檢測(cè)的結(jié)果,;one_fr為同步校核和同步保護(hù)所需的幀同步碼檢測(cè)控制信號(hào);syn_n為系統(tǒng)失步信號(hào),;syn_E1_out為非失步狀態(tài)下的合路序列,;opn為支路信號(hào)輸出允許信號(hào);Ts_out為實(shí)施分接后各支路的64kbps輸出信號(hào),;Ts_in(1)為復(fù)接器第一支路輸入信號(hào),;Ts_out(1)為分接器第一支路輸出信號(hào)。
將輸入激勵(lì)信號(hào)Ts_in與系統(tǒng)支路輸出信號(hào)Ts_out相比較,,結(jié)果表明,,在從同步到下一次失步的時(shí)間內(nèi),Ts_out與Ts_in信號(hào)波形基本一致——Ts_out中會(huì)出現(xiàn)一些1~2ns的過(guò)渡值,,這些過(guò)渡值是由于Ts_out總線中32個(gè)支路信號(hào)到達(dá)寄存器輸出端的時(shí)間不一致而造成的,,這是由FPGA器件時(shí)延不確定性決定的。由Ts_in(1)和Ts_out(1)的波形比較可知,,對(duì)于每個(gè)單一的支路信號(hào),,并不存在這種過(guò)渡值,分接后的支路信號(hào)與復(fù)接器支路輸入信號(hào)一致,。因此,,Ts_out總線中出現(xiàn)的這種過(guò)渡值不會(huì)影響系統(tǒng)的性能。
時(shí)序仿真結(jié)果表明,,復(fù)接,、同步以及分接功能均正常,滿足設(shè)計(jì)要求,。在5萬(wàn)門的SPARTAN-3系列FPGA器件xc3s50上實(shí)現(xiàn)設(shè)計(jì),,硬件資源的使用情況如下:319個(gè)Slice,263個(gè)Slice Flip Flop,,562個(gè)4 input LUT,,70個(gè)bonded IOB,,2個(gè)GCLK。該設(shè)計(jì)已作為一個(gè)模塊應(yīng)用到其它系統(tǒng)中,,具有一定的實(shí)用價(jià)值,。同時(shí),由于該設(shè)計(jì)采用VHDL語(yǔ)言描述,,具有可移植性,,利用中小容量的FPGA就能實(shí)現(xiàn)該系統(tǒng)功能,。
參考文獻(xiàn)
1 張應(yīng)中,,張德民,溫 榮.數(shù)字通信工程.北京:人民郵電出版社[M],,1996.8
2 曹志剛,,錢亞生.現(xiàn)代通信原理[M].北京:清華大學(xué)出版社,1992.8
3 段吉海,,黃智偉.基于CPLD/FPGA的數(shù)字通信系統(tǒng)建模與設(shè)計(jì)[M].北京:電子工業(yè)出版社,,2004.8
4 王 誠(chéng),薛小剛,,鐘信潮.FPGA/CPLD設(shè)計(jì)工具——Xilinx ISE 5.x使用詳解[M]. 北京:人民郵電出版社,,2003.6