FPGA在衛(wèi)星數(shù)字電視碼流轉(zhuǎn)發(fā)器設(shè)計中的應(yīng)用
由于數(shù)字電視能提供更清晰的圖像、更逼真的聲音、更大的屏幕,以及數(shù)字化傳輸方式所特有的高效數(shù)據(jù)傳輸率,可以在有限的傳輸頻帶內(nèi)傳送更多的電視節(jié)目,正成為數(shù)字化視聽技術(shù)發(fā)展的一個新方向。作為數(shù)字電視前端設(shè)備中的衛(wèi)星數(shù)字電視碼流轉(zhuǎn)發(fā)器,簡稱為碼流機,其主要功能就是接收頻率為950~2 150 MHz的國內(nèi)外數(shù)字衛(wèi)星節(jié)目信號進行QPSK解調(diào),并轉(zhuǎn)換成ASI格式的MPEG-2傳輸流,輸出給TS流復(fù)用器、QAM調(diào)制器等前端設(shè)備處理后發(fā)射到數(shù)字電視終端用戶,即相當(dāng)于有線電視臺轉(zhuǎn)播節(jié)目的信號源;同時他還輸出模擬視頻和音頻信號,供管理人員監(jiān)控使用。本文主要討論如何把調(diào)諧器輸出的TS流轉(zhuǎn)換為ASI格式的MPEG-2傳輸流。
2 系統(tǒng)硬件組成及ASI接口
衛(wèi)星數(shù)字電視碼流轉(zhuǎn)發(fā)器主要由調(diào)諧器,FPGA,ASI輸出,SPI輸出以及音視頻解碼輸出部分構(gòu)成,其中調(diào)諧器部分負(fù)責(zé)接收來自衛(wèi)星的節(jié)目信號;音視頻解碼輸出是供管理人員監(jiān)控使用;FPGA主要負(fù)責(zé)ASI的數(shù)據(jù)鏈路層的具體實現(xiàn)、SPI輸出以及TS流的轉(zhuǎn)接到音視頻解碼芯片上;控制部分主要負(fù)責(zé)碼流路由選擇和音視頻解碼部分 的控制。其內(nèi)部結(jié)構(gòu)如圖1所示。
由于SPI接口采用的是低電壓差分信號,其傳輸距離短、抗干擾性差,因此當(dāng)今數(shù)字電視前端設(shè)備的輸入輸出接口一般都要求配有ASI接口。DVB-ASI是一種傳輸速率恒定,允許具有不同數(shù)據(jù)速率的串行編碼傳輸系統(tǒng),我國的ASI接口沒有采用ISO/IEC規(guī)定的265.625 Mb/s傳輸速率,而是采用了270.000 Mb/s的傳輸速率。DVB-ASI接口協(xié)議是基于MPEG-2傳輸包的分層結(jié)構(gòu),共分3層[1],如圖2所示。
第0層:物理層,傳輸介質(zhì)可以是電纜或光纖;
第1層:數(shù)據(jù)鏈路層,主要定義了8 B/10 B編碼,同步字節(jié)插入以及串并轉(zhuǎn)換;
第2層:傳輸層,采用MPEG-2的傳輸包,有兩種傳輸數(shù)據(jù)格式:一種是每個TS包中的188 B是連續(xù)的,同步字插在兩個包間,稱為突發(fā)模式(burst);另外一種是同步字隨機均勻地插在TS數(shù)據(jù)之間,稱為非突發(fā)模式,一般設(shè)備只支持非突發(fā)模式的傳輸。
下面主要討論數(shù)據(jù)鏈路層的。FPGA的具體實現(xiàn)。
3 8 B/10 B編碼的理論基礎(chǔ)
DVB-ASI的8 B/10 B編碼[2,3]主要包括數(shù)據(jù)編碼,插入特殊字符和誤差控制。通過8 B/10 B映射保證發(fā)射信號正負(fù)均衡,即‘O’和‘1’為1∶1的直流信號,并且不會有連續(xù)的‘0’或連續(xù)的‘1’。每8 b分成3 b和5 b兩組,分別映射成4 b和6 b兩部分,合起來就是10 b。其中每部分按照‘0’和‘1’的數(shù)量關(guān)系有惟一的奇偶特性,稱之為RD(Running Disparity),當(dāng)‘1’的個數(shù)大于‘0’的個數(shù)時,RD為正,反之為負(fù)。個數(shù)相等時,RD保持不變[4]。具體的編碼規(guī)則見表1。
每個編碼字符可表示為Dx.y或Kx.y,D表示是數(shù)據(jù)信號,K表示是字符信號。
其中x,y為十進制數(shù),編碼中依次對一個信息字符的x和y部分進行編碼,其編碼的結(jié)果取決于當(dāng)前x或y的值和前一次編碼結(jié)果的RD。若前一次RD為正,則后一次編碼采用RD為負(fù)的碼字編碼,反之亦然。這樣編碼的結(jié)果保證傳輸信號的電平統(tǒng)計上的直流特性。
在這種編碼控制下,根據(jù)RD的變化一方面可以保證比特流的直流特性且不會存在多個的連續(xù)‘O’或連續(xù)‘1’;另一方面可以進行自動檢測,實現(xiàn)誤差控制。ASI傳輸系統(tǒng)中的誤比特率小于10-13。系統(tǒng)中插入的特殊符號實現(xiàn)控制功能,包括同步信號K28.5,在接收端的字節(jié)同步正是依靠檢測到連續(xù)兩個K28.5的同步信息且滿足奇偶校驗,在同步信號后的比特被依次組成字節(jié),完成字節(jié)同步。
4 FPGA部分的詳細設(shè)計
在FPGA的設(shè)計中,我們選用Altera的EP1C3T144C8。按照自頂向下的設(shè)計思路,我們把FPGA的ASI部分詳細設(shè)計化分為5個子模塊,如圖3所示。
4.1 輸入FIF0的設(shè)計
由于從調(diào)諧器輸出的TS流與實際FPGA處理的TS流速度并不是同步的,因此在FPGA內(nèi)部建立一個FIFO對輸入的TS流進行數(shù)據(jù)緩沖處理是必需的,但FIFO的深度是一個不容忽視的問題,F(xiàn)IFO的參考設(shè)計深度為一幀TS流長度的2倍,由于一個TS包的長度可能是188 B,也可能是204 B,同時,由于8 B/10 B模塊讀FIFO的速度是恒定的27 MHz,大于TS流的數(shù)據(jù)速率,因此FIFO是永遠都不會上溢的。綜上所述,F(xiàn)IFO的深度選用512 B是比較合適的。
4.2 8 B/10 B模塊設(shè)計
在該部分設(shè)計的過程中,參照上述的8 B/10 B理論基礎(chǔ)[4],我們沒有選用CYPRESS公司的CY7B923[5]HOTLinkTM專用芯片,也沒有選用Altera的8 B/10 B的IP Core,而是自己開發(fā)的8 B/10 B模塊,按照自頂向下的設(shè)計思路,我們把該部分又分為6個子模塊,其對應(yīng)的Verilog接口如下:
8 B/10 B頂層模塊:module top——8B10B(clk,rst,din,dout,invalidK);
3 B/4 B模塊:module e3Bto4B(clk,rst,din,kin,dout,dsp4b);
5 B/6 B模塊:module e5Bto6B(clk,rst,din,kin,dout,dsp6b);
K字符檢測模塊:module k_detector(clk,rst,din,kin,invalidK);
特殊3 B字符處理模塊:module dec_spec3b4b(clk,rst,din3b,din4b,kin,rdp,rdn);
RD控制模塊:module RD(clk,rst,kin,din4b,din6b,dsp4b,dsp6b,out6b,out4b,rdp,rdn);
4.3 同步字節(jié)插入模塊設(shè)計
當(dāng)TS流的數(shù)據(jù)速度始終小于8 B/10 B編碼模塊讀取數(shù)據(jù)的時候,F(xiàn)IFO就有可能下溢,當(dāng)FIFO為空時,并/串轉(zhuǎn)換模塊的輸入數(shù)據(jù)為K28.5同步字節(jié)(8 B/10 B編碼后為:0011111010或1100000101)[6],以達到ASI的固定的270.000 Mb/s的傳輸速率。同步字節(jié)的插入方法有兩種:
(1) 由TS流中的數(shù)據(jù)有效信號來確定是否向FIFO中插入K28.5同步字節(jié);
(2) 由FIFO的EMPTY信號和來確定并串轉(zhuǎn)換模塊的的輸入數(shù)據(jù)為0011111010或1100000101,即不通過8 B/10 B編碼模塊。在本設(shè)計中,我們選用了方法(1)插入K28.5同步字節(jié)。
4.4 并/串轉(zhuǎn)換模塊設(shè)計
該模塊對10 B的并行數(shù)據(jù)進行并/串轉(zhuǎn)換,在實際的設(shè)計中,采用1個移位寄存器和1個計數(shù)器即可完成并/串轉(zhuǎn)換操作。
4.5 PLL模塊設(shè)計
由于ASI的標(biāo)準(zhǔn)輸出速率是270.000 Mb/s,因此為整個并/串轉(zhuǎn)換的最小時鐘就是270 MHz,而系統(tǒng)FPGA的外部時鐘選用的是27 MHz的有源晶振,所以可以采用EPlC內(nèi)部自帶的鎖相環(huán)來提供270 MHz的內(nèi)部時鐘,實際的操作方法就是例化一個PLL模塊,把倍頻系數(shù)設(shè)置為10即可。
5 系統(tǒng)測試與仿真結(jié)果
對數(shù)字衛(wèi)星碼流轉(zhuǎn)發(fā)器ASI輸出的測試可以采用標(biāo)準(zhǔn)MPEG-2碼流分析儀AD953,也可以直接選用DVB解碼器,以觀看能否正確收視節(jié)目來確定ASI流是否正常。FPGA部分設(shè)計的軟件平臺選用Quartuns和仿真工具ModelSim,部分仿真結(jié)果如圖4所示。
6 結(jié) 語
本方案經(jīng)硬件實現(xiàn)后,接上衛(wèi)星信號,ASI接口輸出的信號經(jīng)過DVB解碼器后,得到了穩(wěn)定連續(xù)的音視頻信號。采用一塊FPGA代替?zhèn)鹘y(tǒng)的CY7B923+CPLD方案[6],由于省去了價格昂貴的CY7B923HOTLinkTM芯片,大大降低了該部分的物理成本和硬件電路原理設(shè)計的復(fù)雜性,因此,本方案具有很強的實用價值。
評論