一種寬帶復接器的設計與實現(xiàn)
信息時代的到來使人們需要共享越來越多的信息。隨著信息及其需求的爆炸性增長,信息的選擇及傳輸速率成為一個重要問題。有線電視網絡有其固有的高帶寬特性,適合大容量的數據傳輸和實時性要求,使寬帶數字接入成為可能。在我國由于有線電視網是一個已經存在的接入網絡,成本低、可維護性強、頻率資源豐富、覆蓋面廣、用戶量大,因而通過有線電視網進行數據廣播是目前國內應用領域的一大熱點。DVB-C是ETSI(European Telecommunications Standards Institute)提供的基于Cable上數據廣播的一整套標準[1,2,3],本文首先介紹DVB-C數據廣播系統(tǒng)的基本結構,接著詳細分析TS復接器在整個系統(tǒng)中的重要性與功能,然后詳細說明利用DSP(數字信號處理器)與FPGA(現(xiàn)場可編程門陣列)相結合的一個實現(xiàn)方案,闡明了其中的設計方法和系統(tǒng)結構。
本文引用地址:http://www.ex-cimer.com/article/158199.htm1 DVB-C數字廣播系統(tǒng)簡介
一個實用的DVB-C廣播系統(tǒng)的結構如圖1所示[3~6],整個系統(tǒng)可以大致分為三個部分:(1) 信息前端,包括視頻服務器、播控服務器、通信控制服務器、用戶管理工作站、節(jié)目采集工作站、節(jié)目編排工作站等;(2)傳輸網絡,利用現(xiàn)有的HFC網絡巨大的頻帶資源實現(xiàn)數據傳輸;(3)用戶終端,用戶利用機頂盒或者Cable-Modem接收和瀏覽信息。
從圖1可以看到,在DVB-C數字廣播系統(tǒng)中,一個通道上傳輸的數據可能包含多路節(jié)目或來自多個節(jié)目源,因此需要對多路多節(jié)目TS流(MPTS)進行復合轉接,生成一個符合DVB-C標準的MPTS,再經調制后在一個通道上傳輸。由TS復接器來完成這個功能。TS復接器在前端系統(tǒng)中相當于一個交換機,它負責對多個MPTS進行轉換和復合,生成一個MPTS。在復合過程中,要完成包標識符(PID)過濾、PID重新標識、插入節(jié)目特定信息/服務信息(PSI/SI)、多路MPTS的交織等工作[4,5]。從中可以看出復接器在整個系統(tǒng)中的重要性,TS復接器工作是否穩(wěn)定可靠,直接影響整個系統(tǒng)的正常運作。
2 TS復接器的設計方法
在該系統(tǒng)中需要對6路數字衛(wèi)星電視節(jié)目進行復接。各路有效速率為0~15Mbps的異步串行接口(ASI)輸入,6路總速率不超過36Mbps,輸出為恒定速率38.1Mbps的ASI輸出,輸出的MPTS為符合DVB-C標準的傳送流;復接器調整PID,包括將輸入MPTS中的PSI/SI等不需要的信息過濾掉以及對有效TS包重新分配PID。新的PSI/SI信息作為復接器的輸入按一定速率插入到MPTS中,插入的PSI/SI信息包括節(jié)目關聯(lián)表(PAT)、節(jié)目映射表(PMT)、網絡信息表(NIT)、服務描述表(SDT)等[4,5],復接器還能接受來自播控系統(tǒng)的數據信息,作為復接器輸出流的一部分。系統(tǒng)的功能模塊結構如圖2所示。
由圖2可以看到,由于需要處理的數據速率快、數據量大、要求實時性,一般的處理芯片無法完成。為了達到上述目的,采用高速DSP和FPGA一起來完成。整個系統(tǒng)基于DSP和FPGA,配以CPLD、高速SRAM、異步FIFO等。DSP具有運算速度快、計算能力強、可用資源比較豐富的特點,尤其適合于實現(xiàn)各種數字信號的處理功能,在各種領域具有廣泛的應用。但由于所要處理的數據量太大,僅靠DSP片內RAM是遠遠不夠的,所以還必須要有大容量、訪問速度快的緩沖區(qū)對接收到的數據進行緩沖,以便于DSP進行處理?;舅枷胧荈PGA完成TS包過濾和PID置換、PSI/SI提取等工作,系統(tǒng)的控制工作、TS包交織算法則由DSP完成,整個控制邏輯則由CPLD完成。
3 TS復接器的一種實現(xiàn)方案
針對上述分析,采用DSP與FPGA相結合的方法成功實現(xiàn)了TS復接器,該實現(xiàn)方案如圖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從輸入接口把一幀數據存入其中一個緩沖區(qū),DSP對另外一個緩沖區(qū)進行操作,根據交織表把數據送到FIFO,再輸出到輸出接口,兩者的總線切換由FPGA負責完成。
圖3可以分為以下幾個模塊:
a.輸入模塊:使用ASI接口將270M串行編碼數據轉換成27M并行數據,并提供接收時鐘、數據有效等控制信號。
b.FPGA模塊:接收ASI接口輸出的并行數據,實現(xiàn)同步、PID置換、PSI/SI提取等,并將數據寫入SRAM中,跟蹤記錄每路的TS包數;產生幀切換脈沖,控制雙緩沖區(qū)的切換。
c.DSP主控模塊:DSP完成整個系統(tǒng)的控制功能,計算交織表,負責與播控系統(tǒng)的通信等。
d.CPLD模塊:根據DSP提供的地址和數據進行譯碼,對總線上的各設備進行互斥片選;產生中斷申請信號;對發(fā)送FIFO的全空信號進行采樣,控制從發(fā)送FIFO讀數據并將數據送給輸出ASI接口。
e.輸出模塊:由CPLD提供控制信號,將數據從發(fā)送FIFO讀出來,同時寫入發(fā)送ASI接口。
f.命令通信接口:復接器通過串口與播控服務器通信,從服務器接收系統(tǒng)復位、狀態(tài)查詢、PID置換、PSI/SI插入和提取等命令,并向服務器反饋必要的信息。
為保證數據信號接收端解碼器能正確解碼,緩沖區(qū)不會上溢或下溢,解碼輸出信號平穩(wěn),要求復接器輸入的各路TS包均勻分布在輸出數據流中,所以必須在發(fā)送之前對輸入的各路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數目進行動態(tài)調整;由于采用了交織算法,能夠對突發(fā)數據進行很好的平滑作用,利于后級進行處理。把復接器接到圖1所示的系統(tǒng)中去,通過復接器處理的節(jié)目流在STB(機頂盒)上能夠接收到穩(wěn)定清晰的節(jié)目,并且系統(tǒng)穩(wěn)定工作,說明本文所設計的復接器達到了預期目的。
本文詳細分析了DVB-C數據廣播系統(tǒng)中的關鍵部件――復接器的一種實現(xiàn)方法,該方法基于DSP+FPGA的結構,便于以后的升級與擴展。同時,所設計的復接器除了應用在DVB-C數據廣播系統(tǒng)外,凡是輸入符合DVB-C的TS流標準均可以使用。
評論