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