新聞中心

        EEPW首頁 > 手機與無線通信 > 設計應用 > 一種寬帶復接器的設計與實現

        一種寬帶復接器的設計與實現

        作者: 時間:2009-03-11 來源:網絡 收藏

        信息時代的到來使人們需要共享越來越多的信息。隨著信息及其需求的爆炸性增長,信息的選擇及傳輸速率成為一個重要問題。有線電視有其固有的高帶寬特性,適合大容量的數據傳輸和實時性要求,使數字接入成為可能。在我國由于有線電視網是一個已經存在的接入,成本低、可維護性強、頻率資源豐富、覆蓋面廣、用戶量大,因而通過有線電視網進行數據廣播是目前國內應用領域的一大熱點。DVB-C是ETSI(European Telecommunications Standards Institute)提供的基于Cable上數據廣播的一整套標準[1,2,3],本文首先介紹系統的基本結構,接著詳細分析在整個系統中的重要性與功能,然后詳細說明利用(數字信號處理器)與(現場可編程門陣列)相結合的一個方案,闡明了其中的方法和系統結構。

        本文引用地址:http://www.104case.com/article/158199.htm

        1 DVB-C數字廣播系統簡介

        一個實用的DVB-C廣播系統的結構如圖1所示[3~6],整個系統可以大致分為三個部分:(1) 信息前端,包括視頻服務器、播控服務器、通信控制服務器、用戶管理工作站、節目采集工作站、節目編排工作站等;(2)傳輸,利用現有的HFC網絡巨大的頻帶資源數據傳輸;(3)用戶終端,用戶利用機頂盒或者Cable-Modem接收和瀏覽信息。

        從圖1可以看到,在DVB-C數字廣播系統中,一個通道上傳輸的數據可能包含多路節目或來自多個節目源,因此需要對多路多節目TS流(MPTS)進行復合轉接,生成一個符合DVB-C標準的MPTS,再經調制后在一個通道上傳輸。由來完成這個功能。在前端系統中相當于一個交換機,它負責對多個MPTS進行轉換和復合,生成一個MPTS。在復合過程中,要完成包標識符(PID)過濾、PID重新標識、插入節目特定信息/服務信息(PSI/SI)、多路MPTS的交織等工作[4,5]。從中可以看出復接器在整個系統中的重要性,TS復接器工作是否穩定可靠,直接影響整個系統的正常運作。

        2 TS復接器的方法

        在該系統中需要對6路數字衛星電視節目進行復接。各路有效速率為0~15Mbps的異步串行接口(ASI)輸入,6路總速率不超過36Mbps,輸出為恒定速率38.1Mbps的ASI輸出,輸出的MPTS為符合DVB-C標準的傳送流;復接器調整PID,包括將輸入MPTS中的PSI/SI等不需要的信息過濾掉以及對有效TS包重新分配PID。新的PSI/SI信息作為復接器的輸入按一定速率插入到MPTS中,插入的PSI/SI信息包括節目關聯表(PAT)、節目映射表(PMT)、網絡信息表(NIT)、服務描述表(SDT)等[4,5],復接器還能接受來自播控系統的數據信息,作為復接器輸出流的一部分。系統的功能模塊結構如圖2所示。

        由圖2可以看到,由于需要處理的數據速率快、數據量大、要求實時性,一般的處理芯片無法完成。為了達到上述目的,采用高速一起來完成。整個系統基于,配以CPLD、高速SRAM、異步FIFO等。DSP具有運算速度快、計算能力強、可用資源比較豐富的特點,尤其適合于各種數字信號的處理功能,在各種領域具有廣泛的應用。但由于所要處理的數據量太大,僅靠DSP片內RAM是遠遠不夠的,所以還必須要有大容量、訪問速度快的緩沖區對接收到的數據進行緩沖,以便于DSP進行處理。基本思想是FPGA完成TS包過濾和PID置換、PSI/SI提取等工作,系統的控制工作、TS包交織算法則由DSP完成,整個控制邏輯則由CPLD完成。

        3 TS復接器的一種實現方案

        針對上述分析,采用DSP與FPGA相結合的方法成功實現了TS復接器,該實現方案如圖3所示。圖3中的DSP采用TI公司的TMS320VC5410-100,它具有100MIPS的快速處理能力,以及片內64K的RAM和多個串口等資源,其片外尋址空間可以多達8M Word。FPGA則采用了Xilinx公司的XCV300。

        筆者為DSP擴展了2M Word的高速SRAM作緩沖,分為兩個1M Word的雙緩沖,處理時以幀為單位,DSP和FPGA只能訪問其中一個1M Word的SRAM。一般情況下,FPGA從輸入接口把一幀數據存入其中一個緩沖區,DSP對另外一個緩沖區進行操作,根據交織表把數據送到FIFO,再輸出到輸出接口,兩者的總線切換由FPGA負責完成。

        圖3可以分為以下幾個模塊:

        a.輸入模塊:使用ASI接口將270M串行編碼數據轉換成27M并行數據,并提供接收時鐘、數據有效等控制信號。

        b.FPGA模塊:接收ASI接口輸出的并行數據,實現同步、PID置換、PSI/SI提取等,并將數據寫入SRAM中,跟蹤記錄每路的TS包數;產生幀切換脈沖,控制雙緩沖區的切換。

        c.DSP主控模塊:DSP完成整個系統的控制功能,計算交織表,負責與播控系統的通信等。

        d.CPLD模塊:根據DSP提供的地址和數據進行譯碼,對總線上的各設備進行互斥片選;產生中斷申請信號;對發送FIFO的全空信號進行采樣,控制從發送FIFO讀數據并將數據送給輸出ASI接口。

        e.輸出模塊:由CPLD提供控制信號,將數據從發送FIFO讀出來,同時寫入發送ASI接口。

        f.命令通信接口:復接器通過串口與播控服務器通信,從服務器接收系統復位、狀態查詢、PID置換、PSI/SI插入和提取等命令,并向服務器反饋必要的信息。

        為保證數據信號接收端解碼器能正確解碼,緩沖區不會上溢或下溢,解碼輸出信號平穩,要求復接器輸入的各路TS包均勻分布在輸出數據流中,所以必須在發送之前對輸入的各路TS包做交織。采用實時交織的方法,FPGA能夠在每次幀切換的時候記錄各路TS包的數目,然后計算交織表。交織表依照如下方式計算:

        設數據流共有K路MPTS流,數據流的一個數據幀有M個TS包,每路MPTS有m(i)(i=0,1,...K-1)個TS包, 假設各路TS包由大到小排序,m(0)最大,否則首先排序。根據M、K、m(i)對輸入的TS流進行交織,對第i路有:用p(i,n)指示第i路是否將一個TS包輸出到MPTS中的第n個TS包,q(i)表示第i路中已輸出到MPTS中的TS包數,初值為0;

        i=0,n=0;

        while(nM)

        {

        p(i,n)=[m(i) * n/M]+1; [ ]表示取整

        if (p(i,n)-q(i)>=1)

        {

        將第i路的第q(i)個TS包輸出到MPTS中的第n個TS包;

        q(i)++;

        n++;

        }

        i++;

        if ( i=K ) i=0;

        }

        最后在Xilinx的Xilinx Foundation Series先對所的邏輯進行仿真,利用DSP的simulation進行程序的仿真,仿真結束后在單板上進行調試。由于選用的FPGA的容量限制,門數有限,能夠進行PID置換的個數受到限制,但是可以根據估算出的各路TS包數對每一路能夠置換的PID數目進行動態調整;由于采用了交織算法,能夠對突發數據進行很好的平滑作用,利于后級進行處理。把復接器接到圖1所示的系統中去,通過復接器處理的節目流在STB(機頂盒)上能夠接收到穩定清晰的節目,并且系統穩定工作,說明本文所設計的復接器達到了預期目的。

        本文詳細分析了系統中的關鍵部件――復接器的一種實現方法,該方法基于DSP+FPGA的結構,便于以后的升級與擴展。同時,所設計的復接器除了應用在系統外,凡是輸入符合DVB-C的TS流標準均可以使用。



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 札达县| 加查县| 闽清县| 通州市| 闸北区| 克拉玛依市| 襄垣县| 阳东县| 平陆县| 普兰店市| 永福县| 宣汉县| 陆良县| 丹凤县| 中西区| 丽江市| 德格县| 长宁县| 贵州省| 虞城县| 长沙县| 南安市| 崇礼县| 彝良县| 利辛县| 高碑店市| 独山县| 竹溪县| 珲春市| 宁强县| 宜春市| 清水河县| 泽库县| 寿宁县| 商洛市| 绥芬河市| 乌什县| 肇源县| 青州市| 长沙县| 丹巴县|