??? 摘? 要: DVB-C數據廣播系統的基本結構,詳細分析了TS復接器在整個系統中的重要性與功能,提出一種DSP與FPGA相結合的實現方案,及其設計方法和系統結構。?
??? 關鍵詞: DVB-C數據廣播? TS復接器? DSP? FPGA
?
??? 信息時代的到來使人們需要共享越來越多的信息。隨著信息及其需求的爆炸性增長,信息的選擇及傳輸速率成為一個重要問題。有線電視網絡有其固有的高帶寬特性,適合大容量的數據傳輸和實時性要求,使寬帶數字接入成為可能。在我國由于有線電視網是一個已經存在的接入網絡,成本低、可維護性強、頻率資源豐富、覆蓋面廣、用戶量大,因而通過有線電視網進行數據廣播是目前國內應用領域的一大熱點。DVB-C是ETSI(European Telecommunications Standards Institute)提供的基于Cable上數據廣播的一整套標準[1,2,3],本文首先介紹DVB-C數據廣播系統的基本結構,接著詳細分析TS復接器在整個系統中的重要性與功能,然后詳細說明利用DSP(數字信號處理器)與FPGA(現場可編程門陣列)相結合的一個實現方案,闡明了其中的設計方法和系統結構。?
1 DVB-C數字廣播系統簡介?
??? 一個實用的DVB-C廣播系統的結構如圖1所示[3~6],整個系統可以大致分為三個部分:(1) 信息前端,包括視頻服務器、播控服務器、通信控制服務器、用戶管理工作站、節目采集工作站、節目編排工作站等;(2)傳輸網絡,利用現有的HFC網絡巨大的頻帶資源實現數據傳輸;(3)用戶終端,用戶利用機頂盒或者Cable-Modem接收和瀏覽信息。?
?
?
??? 從圖1可以看到,在DVB-C數字廣播系統中,一個通道上傳輸的數據可能包含多路節目或來自多個節目源,因此需要對多路多節目TS流(MPTS)進行復合轉接,生成一個符合DVB-C標準的MPTS,再經調制后在一個通道上傳輸。由TS復接器來完成這個功能。TS復接器在前端系統中相當于一個交換機,它負責對多個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可以看到,由于需要處理的數據速率快、數據量大、要求實時性,一般的處理芯片無法完成。為了達到上述目的,采用高速DSP和FPGA一起來完成。整個系統基于DSP和FPGA,配以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(n ??? {? ??? ??? 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(機頂盒)上能夠接收到穩定清晰的節目,并且系統穩定工作,說明本文所設計的復接器達到了預期目的。? ??? 本文詳細分析了DVB-C數據廣播系統中的關鍵部件——復接器的一種實現方法,該方法基于DSP+FPGA的結構,便于以后的升級與擴展。同時,所設計的復接器除了應用在DVB-C數據廣播系統外,凡是輸入符合DVB-C的TS流標準均可以使用。? 參考文獻? 1 Information technology-Generic coding of moving pictures?and associated audio information:Systems. ITU-T Recommendation H.220.0 (1995) | ISO/IEC 13818-1:1995? 2 鐘玉琢,喬秉新,祁衛譯. 運動圖像及其伴音通用國際標準——MPEG-2. 北京:清華大學出版社,1997? 3 Digital broadcasting systems for television, sound and data?services. Framing structure, channel coding and modulation?for cable systems. ETS 300 429; 1994? 4 Allocation of Service Information (SI) codes for DVB systems.ETR 162; 1995? 5 DVB guidelines for implementation and usage of Service?Information (SI). ETR 211; 1997? 6 Support for use of scrambling and Conditional Access(CA) within DVB systems. ETR 289; 1996