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