同步數字複接的設計及其FPGA實現 

  自動化在線Autooo.net  

摘要:在簡要介紹同步數字複接基本原理的基礎上,采用VHDL語言對同步數字複接各組成模塊進行了設計,並在ISE集成環境下進行了設計描述、綜合、布局布線及時序仿真,取得了正確的設計結果,同時利用中小容量的FPGA實現了同步數字複接功能。

   關鍵詞:同步數字複接/分接 FPGA位同步 幀同步檢測
基群速率數字信號的合成設備和分接設備是曜網絡中使用較多的關鍵設備,在數字程控交換機的用戶模塊、小靈通基站控製器和集團電話中都需要使用這種同步數字複接設備。近年來,隨著需要自建內部通信係統的公司和企業不斷增多,同步數字複接設備的使用需求也在增加。FPGA(現場可編程門陣列)器件的高性能簡化了數字通信係統的設計與實現。本文基於FPGA的技術特點,結果數字複接技術的基本原理,實現了基群速率(2048kbps)數字信號的數字分接與複接。
1 同步數字複接的基本原理
在數字通信網絡中,為了擴大傳輸容量和傳輸效率,常常需要把若幹個低速數字信號合並成為一個高速數字信號,然後通過高速信道傳輸;而在接收端又按照需要分解成低速數字信號。數字複接技術就是實現這種數字信號合並(複接)和分解(分接)的專門技術[1]。

    1.1 係統劃分
同步數字複接終端包括同步數字複接器(Synchronous Digital Multiplexer)和同頻數字分接器(Synchronous Digital Demultiplexer)兩部分,如圖1所示。數字複接器把兩個或兩個以上的支路數字信號按時分複用方式合並成單一的合數數字信號;數字分接器把單一的合數數字信號分解為原來的各支路數字信號。通常總是把數字複接器和數字分接器裝在一起做成一個設備,稱為複接分接器(Muldex),一般簡稱數字複接設備[2]。
同步數字複接器由定時和複接單元組成;定時單元給字分接器則由同步、定時和分接單元組成。定時單元給設備提供各種定時信號,複接器的主時鍾可由內部產生,也可由外部提供,而分接器主時鍾則從接收信號中提取,並通過同步電路的高速整控製,使得分接器基準時序信號與複接器基準時序信號保持正確的相位關係,即收發同步。同步的建立由同步單元實現[1]。
1.2 位同步[3]
在數字通信中,位同步是最基本的同步。位同步的基本含義就是收端和發端時鍾信號必須同頻同相,這樣接收端才能正確接收和判決發送端送來的每一個碼元。為了達到收發端時鍾同頻同相,接收端需要從收到的碼流中提取發送端的時鍾信號來控製收端時鍾,從而做到位同步。實現位同步的方法分為插入導頻法和直接法兩類。而直接法按照提取同步信號的方式,大致又可分為濾波法和鎖相法。鎖相法的原理是:在接收端用鑒相器比較接收碼元和本地產生的位同步信號的相位,如果兩者不一致,則用鑒相器輸出誤差信號去控製本地同步信號的相位,直至本地的位同步信號的相位與接收信號的相位一致為止。
1.3 幀同步
在複接分接器中,如果隻是循環交織地複接各支路數字信號,那麼一旦合並成為一個合路數字信號後就難以正確地實施分接。為了保證接收端分路係統能和發送端一致,在保持位同步的基礎上還必須要有一個幀同步係統,以實現發送端與接收端的幀同步[2]。

    實現幀同步的基本方法是在發送端預先規定的時隙(即幀同步碼時隙)插入一組特殊碼型的幀同步碼組;在接收端由幀同步檢測電路檢測該碼組以保證收發幀同步[2]。
幀同步檢測狀態有失步態、同步校核態、同步態和同步保護態四種狀態。
2 基於FPGA的同步數字複接的設計與實現
FPGA/CPLD即繼承了ASIC的大規模、高集成度、高可靠性的優點,又克服了普通ASIC設計的設計周期長、投資大、靈活性差的缺點,逐步成為複雜數字電路設計的理想首選[4]。
ISE是XILINX公司提供的一個開發FPGA/CPLD的集成環境,其集成的工具可以完成從設計輸入、功能仿真、綜合優化、綜合後仿真、布局布線、時序仿真到配置芯片等整個FPGA。CPLD開發過程。
本設計采用ISE集成環境進行開發,使用SPARTAN-3係列FPGA器件實現設計。

    2.1 按驪字複接係統的設計
數字信號複接主要有兩種方式[1]:一種是“逐位複接”,另一種是“按碼字複接”。其中按碼複接方式保留了碼字結構,有利於多種合成處理和交換。本設計要實現32路信號的複接,信息位采取各支路彼此循環且每次插入一個8位信息位到合路數字信號中的碼字複接形式,幀同步碼采用CCITT推薦的10011011。
2.1.1 複接器和分接器的設計
複接器應完成兩個功能。一是循環接收32個64kbps的支路信號,每個支路每次送入8位信息位(其中第一支路送入固定的幀同步碼10011011),形成合路數字;二是將合路數據以2048kbps的速率發送出去,形成合路信號——基群速率信號。
同步數字複接器電路原理圖如圖2所示,複接器由移位寄存器和定時模塊兩部分構成。移位寄存器分兩組,每組由32個8位移位寄存器組成。在一幀時間(125μs)內,當其中一組移位寄存器在64kHz時鍾控製下同時移入32個支路的數據時,另一組移位寄存器個支路的數據依次送出。在下一幀時間內,則由第一組移位寄存器輸出2048kbps的合路信號,第二組移位寄存器讀入32個64kbps的支路數據。依此規律,在定時模塊的控製下,由兩組移位寄存器交換變換工作任務,實現了支路輸入和合路輸出的連續性。定時模塊由計數器(cnt)、多路選擇器(mu12~mu15)等組成,為兩組移位寄存器提供工作允許信號、合路信號輸出的切換選擇信號。
為了提高時鍾的可靠性、降低時鍾的延時抖動、提高時鍾的驅動能力,從而更好地完成同步複接,利用FPGA自身提供的全局時鍾資源驅動本設計的主時鍾,將外部時鍾從芯片的全局時鍾管腳輸入,經過BUFGP(IBUFG+BUFG)後通過全局時鍾網絡送至同步複接部分。

    分接器的功能與複接器相反。分接器在其定時單元的控製下,對兩組移位寄存器進行2048kbps的數據寫入和64kbps的數據讀出,實現基群速率合路數字信號的32路分接。
2.1.2 位同步提取電路的設計
實現合路數字信號的分接,需要從數據流中提取時鍾同步信息。目前,在數字通信係統中,常常采用數字鎖相法提取位同步信號[3]。
位同步提取電路如圖3(a)所示,主要由微分與鑒相模塊、添門/扣門控製模塊、高頻時鍾模塊以及分頻器(clk_gen)等部分組成。微分電路(diff)的功能是把非歸
零碼轉換為歸零碼,以利於定時信息的提取。鑒相器的功能是比較接收碼元(code_in)與分頻器輸出的本地時鍾信號(clk_out)的相位,若本地時鍾超前於接收碼元的相位,鑒相器向扣門電路輸出一個超前脈衝,在16分頻器輸入端扣除一個高頻窄脈衝,使分頻器輸出的時鍾信號和相位滯後1/16周期;若本地時鍾滯後於接收碼元的相頻窄脈衝,使分頻器的輸出脈衝的相位提前1/16周期。高頻時鍾模塊將本地高頻時鍾輸入信號clk_in轉換為兩路相位差為90°的窄脈衝序列,分別為添門和扣門提供高頻窄脈序列。添門為常閉門,在沒有滯後脈衝控製時,此門始終關閉;扣門為常開門,若無超前脈衝控製時,窄脈衝信號通過此常開門。分頻器將輸入的高頻時鍾信號分頻後輸出位同步信號clk_out。
對位同步提取電路進行時序仿真,得到的時序仿真波形圖如圖3(b)所示。圖中,code_in為輸入碼流,clk_out為位同步信號輸出。由圖可知,該電路可以從輸入碼流中準確提取位同步信號,並且在碼流相位有變化的時,位同步信號可以快速地做出相位調整,保持同步。

    2.1.3 幀同步單元的設計
為了正確地實施分接,在分接前必須先通過幀步單元對合路信號進行幀同步檢測。
幀同步單元是複接設備中較複雜也很重要的部分。如圖4所示,它主要由同步碼檢測模塊(chk)和同步檢測控製模塊(chk_ctrl)兩部分組成。其中,同步碼檢測模塊對輸入的數據流進行搜索,一旦檢測到幀同步碼(10011011),立即輸出一個捕獲脈衝信號(gen);同步檢測控製模塊由幀同步係統狀態計數器和一幀計數器等構成,完成幀同步單元的狀態轉換控製、每幀檢測同步頭的控製等功能。
幀同步的關鍵部分是前方保護和後方保護的設計。為了減少從失步到重新獲得同步的時間和減小信道誤碼對同步工作狀態的影響,從而得到較好的通信質量,本設計采用了2幀後方保護和3幀前方保護的方案。
幀同步係統狀態轉換圖如圖5所示。係統工程上電複位後,在起始時刻處於失步狀態(STATE0_1xx——其中x表示無關值),係統從外部輸入的合碼路流中搜捕幀同步碼“10011011”,若合路碼流中沒有幀同步碼,狀態計數器仍保持為1xx;若從合碼路流中檢測同步碼(get="1"),則狀態計數器清零為000,係統進入同步核校態(STATE1_000),開始將合路碼流寫入移位寄存器,分接器輸出開關仍然為關閉狀態(switch="0")。在同步校核狀態下,若下一幀確認幀同步碼不正確,判斷為虛假同步,則狀態計數器減1變為111,係統回到失步態;相反,若下一幀確認幀同步確正確,則係統進入同步態(STATE2_001),分接器輸出開關打開(switch="1"),開始正常分接合路碼流。係統進入同步態後,若合路碼流中出現幀同步碼丟失,則狀態計數器加1,係統進入同步保護態1(STATE3_010);若下一幀仍然檢測幀同步碼失敗,則狀態計數器再加1,係統進入同步保護態2(STATE4_011);若連續第三幀未收到幀同步碼,則狀態計數器再加1轉為100,係統進入失步狀態,停止分接合路碼流(switch="0"),同時重新開始搜搏幀同步碼“10011011”。係統在同步保護態(狀態計數器值為01x)下,若檢測幀同步碼正確,則狀態計數器置數為001,係統回到同步態。
2.2 係統仿真與驗證
在ISE集成環境下,調用ModelSim仿真軟件對係統各模塊進行功能仿真、綜合後仿真以及布局布線後的時序仿真。仿真結果表明,複接器、分接器、同步單元等所有模塊的設計均滿足設計要求。

圖6

    為了進一步確保係統設計的可實用性,將係統各組成模塊按照自環工作狀態連接起來,對係統各模塊進行了聯合仿真。複接設備自環驗證的原理圖如圖6所示。
將32路64kbps的支路信號Ts_sin(31:0)送到複接器(multiplexer)的支路信號輸入端Ts(31:0),複接器的合路信號輸出端E1_out與同步單元syn_module(包括位同步和幀同步)的合路信號輸入端E1_in相連(自環),合路信號經過位同步信號提取以及幀同步檢測後,由同步單元將非失步狀態下的合路序列從信號輸出端E1_out送出,同步單元還提供位同步信號clk_out,送分接器demultiplex的輸入端xclk-2M,同步單元輸出的合路序列送入分接器的合路信號輸入端E1_in,經過分接器實施分接後,最後從支路輸出控製單元output_gate的輸出端可以得到各個支路的輸出信號Ts_out(31:)。
圖7為複接設備自環驗證的仿真時序圖。其中,Ts_in為32個支路送來的64kbps的激勵信號;mul_E1_out為經複接器實施複接後的合路信號;E1_check_in為進入幀同步碼檢測模塊的合路序列;get_syn為幀同步碼檢測的結果;one_fr為同步校核和同步保護所需的幀 步碼檢測控製信號;syn_n為係統失步信號;syn_E1_out為非失步狀態下的合路序列;opn為支路信號輸出允許信號;Ts_out為實施分接後各支路的64kbps輸出信號;Ts_in(1)為複接器第一支路輸入信號;Ts_out(1)為分接器第一支路輸出信號。
將輸入激勵信號Ts_in與係統支路輸出信號Ts_out相比較,結果表明,在從同步到下一次失步的時間內,Ts_out與Ts_in信號波形基本一致——Ts_out中會出現一些1~2ns的過渡值,這些過渡值是由於Ts_out總線中32個支路信號到達寄存器輸出端的時間不一致而造成的,這是由FPGA器件時延不確定性決定的。由Ts_in(1) 和Ts_out(1)的波形比較可知,對於每個單一的支路信號,並不存在這種過渡值,分接後的分路信號與複接器支路輸入信號一致。因此,Ts_out總線中出現的這種過渡值不會影響係統的性能。

    時序仿真結果表明,複接、同步以及分接功能均正常,滿足設計要求。在5萬門的SPARTAN-3係列FPGA器件xc3s50上實現設計,硬件資源的使用情況如下:319個Slice,263個Slice Flip Flop,562個4 input LUT,70個bonded IOB,2個GCLK。該設計已作為一個模塊應用到其它係統中,具有一定的實用價值。同時,由於該技術采用VHDL語言描述,具有可移植性,利用中小容易的FPGA就能實現該係統功能。
(

http://www.autooo.net/icdata/data_45367.html