新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于FPGA的多路數字信號復分接器的設計

        基于FPGA的多路數字信號復分接器的設計

        作者: 時間:2011-07-11 來源:網絡 收藏
        在現代數字通信中,對數據傳輸容量和傳輸效率的要求越來越高,因此經常依據[1]的原理通過數字復接與分接(簡稱)將不同速度和不同類型數據進行合并與分離,以充分發揮和利用傳輸能力。實現此功能的設備稱為數字復接系統,它由數字復接器和數字分接器兩部分組成(簡稱復接器和分接器)。數字復接系統設計方法多種多樣,本文介紹了一種基于特點、對多信號數字復分接器的設計方法。

        1 多信號數字復分接器的設計要求

        復分接器需要完成對以下信號的復分接:

        (1)4路8 kB語音(符合G.729A標準)及線路信令;

        (2)1路4.8 kB低速同步數據;

        (3)2路最高為2.4 kB的異步數據。

        形成速率為64 kb/s的群路碼流。功能框圖見圖1。

        2 復分接器的設計與實現

        2.1 復分接器的設計

        2.1.1 復分接器的幀結構設計

        本方案采用技術,幀結構見表1。

        根據表1可以計算出:

        每幀的幀長L=1 280 bit

        當群路碼速率fS=64 kb/s時:

        由幀結構設計結果可對信道容量估算如下:

        4路話音壓縮成23×8×4×50=36.8 kb/s,低速異步數據2路為128×2×50=12.8 kb/s,低速同步數據1路為4.8 kb/s,總開銷為54.4 kb/s。

        的分割方式是用時隙實現的,每一支路信號分配一路時隙,幀同步碼和其他業務信號、信令信號再分配一個或兩個時隙,這種按時隙分配的重復性圖案就是幀結構。設計的多路信號復接器,就是按幀結構將各種信息規律性地相互交插匯總成64 kb/s的群路碼流。

        PCM基群[3]的復接是在時隙信號控制下進行的。以30/32路PCM基群為例,在一個完整的幀周期中,定時系統均勻地產生32個時隙信號,所有時隙信號均和系統時鐘同步。在每幀的開始,第一個時隙信號有效,此時在系統時鐘作用下,復接器讀取第一支路的數據信息(8 bit);接著,第二個時隙信號有效,復接器讀取第二支路的數據信息,直至依次讀取完所有32個支路信息,如此周而復始進行。這種復接方式以字節為單位進行。

        從設計要求可知,復接器要復接的各個支路數據量差別較大,既有8 kB語音信號(該數據由語音壓縮電路提供),還有4.8 kB的同步數據及2.4 kB的異步數據。如果按字節方式復接,不僅會造成在不同的時隙中需要復接的有效數據差別很大(如對每一個語音支路、同步數據、異步數據而言,其有效數據分別為184 bit、103 bit、128 bit,而幀對告只需1 bit),而且會浪費較多的系統資源?;谝陨戏治?,本設計采用按位復接。

        具體復接過程如下:首先設計一個計數器,該計數器計數速率為64 kb/s,計數范圍為0~1 280,與一幀數據的長度正好相同。計數時鐘從系統時鐘中得到,因而它們是完全同步的。計數器從復位開始計數時,即是每一幀數據的開始。當計數器計數為1時,復接器讀取幀的第1位,即幀頭的第1位;當計數為2時,復接器讀取第2位,即幀頭的第2位……,在計數為1 280時,復接器則讀取幀的最后一位數據。若按復接支路劃分,則有如表2所示的對應關系。

        綜上所述,可以得出以下結論:復接器應讀取的數據位在數值上等于計數器計數值。需要說明的是:CRC采用ITU-T建議的CRC-4方案,其生成多項式為x4+x+1。在計數器值每次變化即復接器每讀取一位數據后,立即把該數據發送到群路碼流中而不需要進行保存,發送的同時進行CRC校驗計算。待需要復接CRC數據時,正好得到其計算結果,不會影響到復接結果。

        2.1.2 復分接器的硬件設計

        復分接器基于一片來實現,模塊化硬件框圖見圖2。

        2.2 復分接器的設計實現

        2.2.1 同步設計

        一個時分復用系統必須收、發同步才能正常工作,這個同步包括位同步(時鐘同步)和幀同步。位同步是最基本的同步,是實現幀同步的前提。

        位同步的基本含義是收、發兩端的時鐘頻率必須同頻、同相,這樣接收端才能正確接收和判決發送端送來的每一個碼元。為此,一般應在傳輸的群路碼流中含有發送端的時鐘頻率成分。這樣,接收端從接收到的碼流中可提取出發端時鐘頻率,通過鎖相技術就可做到位同步。

        幀同步是為了保證收、發各對應的支路在時間上保持一致,這樣接收端就能正確分接出各支路信號。為了建立幀同步,需要在每一幀的固定位置插入具有特定碼型的幀同步碼。這樣,只要接收端能正確識別出這些幀同步碼,就能正確辨別出每一幀的首尾,從而能正確區分出發送端送來的各路信號。

        常用的幀同步碼插入方式有分散插入和集中插入兩種方式。分散插入采用把多位同步碼分散地插入到信息碼流中,最大特點是同步碼不占用信息時隙,但同步引入時間長;集中插入則將多位同步碼以集中的形式插入到信息碼流中,顯然,幀同步碼需占用信息時隙,但縮短了同步引入時間。

        本設計采用幀同步碼(1B)集中插入方式。同步捕捉模塊框圖見圖3。

        [next]

        2.2.2 準同步復接

        同步復接是指參與復接的支路數字信號與復接時鐘嚴格同步;準同步復分接則是把標稱速率相同、而實際速率略有差異、但均在規定的容差范圍內的多路數字信號進行復接分接的技術。

        在設計中,由于同步數據時鐘和系統時鐘不同源,因此,該部分復分接屬準同步復分接。碼率調整及碼速恢復技術是該部分的設計要點,即先把參與復接的各準同步支路碼流調整成為同步碼流,然后再對這些同步碼流進行同步復接;在接收端,則先實施同步分接,得到同步支路碼流后,再經過碼速恢復裝置,把同步支路碼流還原成原來的準同步支路碼流。碼速調整示意圖如圖4所示。

        被復接的碼速fL與其標稱碼速fm之間有三種關系:fLm,fL=fm,fL>fm。當瞬間fL>fm時,采用負碼速調整;當瞬間fLm時,采用正碼速調整。

        在設計的幀結構中,該部分復接后占用的幀長度是固定的,它包含的信息和相應位置如表3。

        “插入標志”用來表示采用碼速調整的方式,很明顯,使用2 bit即可代表三種碼速調整方式,在此用6 bit來指示三種碼速調整方式,將該6 bit分為3組,對3組數據采用大數判決,可較好解決由于該插入標志誤碼造成分接時的碼流恢復錯誤。插入碼則表示對應的調整碼。在分接端,通過讀取插入標志即可正確判斷和分離出插入碼,從而還原成為原來的準同步支路碼流。

        下面對碼速調整率進行估算:

        其物理意義為:對速率為4.8 kb/s的同步數據,允許的速率變化范圍是(4.8-4.8×1 %) kb/s~(4.8+4.8×1 %) kb/s,在此范圍內均可完全正確地進行復分接。

        2.2.3 語音數據和異步數據的采樣

        結合圖1可知,話音經抽樣壓縮為8 kb/s,在MCU的控制下,實時寫入語音通道的FIFO中,等待參與復接。

        異步數據的最高速率限制為2 400 b/s。根據采樣定理,以6.4 kb/s的速率對低速異步數據過采樣,使之成為一個同步碼流,即可參加復接。

        2.2.4 芯片選型

        數字復接時,緩存器是必不可少的部件,因為復接過程中,各個支路信號均為連續傳輸。當復接某一支路信碼時,其他支路信碼仍在傳送,但暫時尚未輪到復接它們,因此需要將這些數據緩存起來,以免丟失。

        FPGA既繼承了ASIC的大規模、高集成度、高可靠性的優點,又克服了ASIC設計的周期長、投資大、靈活性差的缺點。結合性能、成本等要求,設計選用了Xilinx公司的 XC2S300E-6,該FPGA為30萬門大規??删幊踢壿嬈骷?,基于查找表、觸發器結構。查找表可等效為16×1 RAM或移位寄存器,提高邏輯利用率,內置專用雙端口BlockRAM,方便了系統開發。

        3 設計中需要注意的問題

        系統中其他相關設備對群路碼流的速率容差要求較為嚴格,為±50 ppm,因此在選擇全局時鐘源時應慎重考慮,避免由于時鐘源造成的碼速抖動和漂移。設計中應多采用同步時序電路來實現各個進程模塊的功能,以免電路中產生毛刺。接口數字信號5 V TTL,內部芯片工作電壓3.3 V LVTTL,需要進行電平轉換。

        本設計選用Xilinx公司的ISE6.1作為硬件開發平臺,并采用VHDL編程語言。程序已通過了綜合實驗,并使用ModelSim軟件進行了功能仿真和時序仿真,仿真結果正確。在硬件實現與調試過程中,將程序下載到Xilinx公司的SPARTANⅡE系列的XC2S300E-6芯片,經過整體調試,最終實現了對多路數字復分接器的設計。該方法不僅具有通用性、實用性,而且具有靈活性和程序可移植性,相信在很多行業都會得到廣泛應用。



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 宜兰市| 靖州| 昌图县| 义马市| 天门市| 七台河市| 屯昌县| 韶山市| 玛沁县| 莫力| 左云县| 德化县| 洪湖市| 麻城市| 金昌市| 静宁县| 漠河县| 东乌| 噶尔县| 江北区| 济源市| 依安县| 宁河县| 博罗县| 黄浦区| 中西区| 阳谷县| 南靖县| 延川县| 郑州市| 日喀则市| 辉南县| 新民市| 正安县| 大名县| 仪陇县| 六枝特区| 苏尼特右旗| 叶城县| 吴忠市| 奎屯市|