《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 設(shè)計應(yīng)用 > FPGA在衛(wèi)星數(shù)字電視碼流轉(zhuǎn)發(fā)器設(shè)計中的應(yīng)用
FPGA在衛(wèi)星數(shù)字電視碼流轉(zhuǎn)發(fā)器設(shè)計中的應(yīng)用
摘要: 作為數(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傳輸流。
關(guān)鍵詞: FPGA EP1C3T144C8 CY7B923 CPLD
Abstract:
Key words :

  1 引 言

  由于數(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ā)器的結(jié)構(gòu)示意圖

  衛(wèi)星數(shù)字電視碼流轉(zhuǎn)發(fā)器主要由調(diào)諧器,,FPGA,,ASI輸出,SPI輸出以及音視頻解碼輸出部分構(gòu)成,,其中調(diào)諧器部分負責(zé)接收來自衛(wèi)星的節(jié)目信號,;音視頻解碼輸出是供管理人員監(jiān)控使用;FPGA主要負責(zé)ASI的數(shù)據(jù)鏈路層的具體實現(xiàn),、SPI輸出以及TS流的轉(zhuǎn)接到音視頻解碼芯片上,;控制部分主要負責(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)換,;

ASI的傳輸系統(tǒng)模型

  第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ā)射信號正負均衡,,即‘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為正,,反之為負,。個數(shù)相等時,RD保持不變[4],。具體的編碼規(guī)則見表1,。

8B/10B編碼規(guī)則

  每個編碼字符可表示為Dx.y或Kx.y,D表示是數(shù)據(jù)信號,,K表示是字符信號,。

編碼的理論基礎(chǔ)

  其中x,y為十進制數(shù),,編碼中依次對一個信息字符的x和y部分進行編碼,,其編碼的結(jié)果取決于當(dāng)前x或y的值和前一次編碼結(jié)果的RD。若前一次RD為正,,則后一次編碼采用RD為負的碼字編碼,,反之亦然。這樣編碼的結(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所示。

FPGA內(nèi)部功能模塊劃分

  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所示,。

8B/10B模塊時序仿真圖

  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ù)雜性,,因此,本方案具有很強的實用價值,。

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載。