摘 要: 應(yīng)用SoPC和千兆以太網(wǎng)技術(shù)設(shè)計(jì)實(shí)現(xiàn)了視頻監(jiān)視器的千兆網(wǎng)顯示接口,。通過該接口視頻監(jiān)視器可以完成數(shù)字視頻信號(hào)的遠(yuǎn)程接收和顯示。該設(shè)計(jì)利用Altera" title="Altera">Altera" title="Altera">Altera SoPC解決方案,,將主要模塊集成在一片F(xiàn)PGA上,,可以快速構(gòu)建千兆以太網(wǎng)系統(tǒng),提高系統(tǒng)的集成度與穩(wěn)定性,。在數(shù)字遠(yuǎn)程視頻傳輸上,,該設(shè)計(jì)充分利用了千兆網(wǎng)的特性,對(duì)比其他數(shù)字視頻傳輸方法,,具有高速率,、低成本以及分組數(shù)據(jù)的優(yōu)勢(shì)。
關(guān)鍵詞: 千兆網(wǎng),;視頻顯示接口,;SoPC
隨著數(shù)字電視技術(shù)的日益成熟,數(shù)字視頻傳輸系統(tǒng)已經(jīng)在各領(lǐng)域得到廣泛應(yīng)用,。在如安防監(jiān)控等許多應(yīng)用環(huán)境中,,都需要系統(tǒng)能將視頻數(shù)據(jù)遠(yuǎn)距離傳輸?shù)教囟ūO(jiān)視器,并要求視頻數(shù)據(jù)是非壓縮的,,以保證運(yùn)動(dòng)監(jiān)控圖像的質(zhì)量,。數(shù)字視頻數(shù)據(jù)量大,對(duì)傳輸系統(tǒng)的帶寬有很高的要求,。目前主流的解決方案是通過串行數(shù)字接口(SDI),,在視頻流的發(fā)送接收端配備相應(yīng)的SDI接口或者轉(zhuǎn)接板卡,,利用視頻同軸電纜傳輸視頻信號(hào)[1]。但是使用SDI接口的缺點(diǎn)是不能直接傳輸壓縮視頻信號(hào),,而且由于傳輸?shù)膬?nèi)容是非分組數(shù)據(jù),,所以要為每路信號(hào)配備一條同軸電纜,布線成本較高,。
隨著技術(shù)成本的降低,千兆網(wǎng)的作用開始超越網(wǎng)絡(luò)主干網(wǎng)領(lǐng)域,。它具備的高帶寬以及網(wǎng)絡(luò)兼容性使其在數(shù)字視頻傳輸領(lǐng)域上也受到了廣泛關(guān)注[2],。千兆網(wǎng)的傳輸介質(zhì)可以使用五類雙絞線,比起同軸電纜具有相當(dāng)?shù)某杀緝?yōu)勢(shì),,并且千兆網(wǎng)可以使數(shù)據(jù)傳輸網(wǎng)絡(luò)化,,益于系統(tǒng)日后的維護(hù)管理。針對(duì)這個(gè)問題,,本文設(shè)計(jì)了視頻監(jiān)視器的千兆網(wǎng)顯示接口,,通過該接口可以利用千兆網(wǎng)完成數(shù)字視頻數(shù)據(jù)的遠(yuǎn)程傳輸。
1 千兆以太網(wǎng)
以太網(wǎng)技術(shù)是廣泛應(yīng)用的網(wǎng)絡(luò)技術(shù),,千兆以太網(wǎng)在兼容原有以太網(wǎng)技術(shù)的基礎(chǔ)上進(jìn)行了一系列改進(jìn),,網(wǎng)絡(luò)數(shù)據(jù)傳輸速率得到大幅度提高。特別是IEEE802.3ab(1000Based-T)千兆網(wǎng)標(biāo)準(zhǔn)的出臺(tái),,將五類非屏蔽雙絞線應(yīng)用在千兆網(wǎng)中,,使得網(wǎng)絡(luò)性能在原有布線基礎(chǔ)上獲得大幅度的提高[3]。如今千兆網(wǎng)已經(jīng)發(fā)展成為主流的網(wǎng)絡(luò)技術(shù),,廣泛應(yīng)用在大中小型企事業(yè)單位,。
千兆網(wǎng)兼容了原以太網(wǎng)標(biāo)準(zhǔn)所規(guī)定的全部技術(shù)規(guī)范,其中包括CSMA/CD協(xié)議,、以太網(wǎng)幀,、全雙工、流量控制等,。千兆網(wǎng)的標(biāo)準(zhǔn)化結(jié)構(gòu)包括介質(zhì)訪問控制(MAC),、物理編解碼(PCS)和物理介質(zhì)接入(PMA)三個(gè)主要部分。其中MAC模塊主要實(shí)現(xiàn)在全雙工模式下的流量控制和MAC幀的發(fā)送和接收功能等,。PCS專門負(fù)責(zé)信道的編解碼,、糾錯(cuò)和擾碼等。PMA模塊的主要功能是實(shí)現(xiàn)數(shù)據(jù)在物理線路上串并\并串轉(zhuǎn)換[4],。在Altera的MegaCore IP庫(kù)中提供了可參數(shù)化的千兆以太網(wǎng)megacore解決方案——Triple Speed Ethernet MegaCore,。它包括了支持千兆以太網(wǎng)的MAC模塊以及可選的1000Base-X PCS和PMA模塊,可以在無需外擴(kuò)物理層芯片的情況下實(shí)現(xiàn)光纖千兆網(wǎng)[5],。
2 總體方案設(shè)計(jì)
顯示接口的整體結(jié)構(gòu)如圖1所示,,主要組成部分包括千兆網(wǎng)物理層芯片,、MAC模塊、CPU,、LCD控制器以及片外存儲(chǔ)器等,。可以看出,,由于使用了片上可編程系統(tǒng)(SoPC),,其中的大部分模塊都構(gòu)建在FPGA內(nèi)部,只留出少數(shù)引腳對(duì)外通信,,硬件電路非常簡(jiǎn)單,。
顯示接口的工作通過以下步驟實(shí)現(xiàn):
(1)網(wǎng)絡(luò)視頻流首先通過網(wǎng)線傳到千兆網(wǎng)物理芯片,物理芯片對(duì)線對(duì)上的PAM-5幅度調(diào)制信號(hào)進(jìn)行A/D轉(zhuǎn)換,、解碼并還原成125 MHz的8 bit數(shù)據(jù)流,,并通過千兆位介質(zhì)獨(dú)立接口(GMII)傳輸?shù)組AC模塊。MAC模塊負(fù)責(zé)辨別幀的目的地址,,對(duì)數(shù)據(jù)進(jìn)行CRC校驗(yàn),。對(duì)檢驗(yàn)合格的數(shù)據(jù)包拆解MAC幀頭幀尾,保留數(shù)據(jù)包中的有效數(shù)據(jù),,并通過DMA單元將網(wǎng)絡(luò)數(shù)據(jù)緩存,,發(fā)起接收中斷。
(2)為了適合網(wǎng)絡(luò)傳輸,,視頻發(fā)送端的ITU-656視頻流按照UDP協(xié)議被打包成網(wǎng)絡(luò)數(shù)據(jù)幀,。MAC模塊在完成MAC幀數(shù)據(jù)的接收之后,還要由CPU進(jìn)一步解析UDP和IP數(shù)據(jù)包,,緩存視頻數(shù)據(jù)到SDRAM中的顯示緩存區(qū),。通過幀緩存的形式可以很容易解決隔行掃描數(shù)據(jù)轉(zhuǎn)換為逐行掃描數(shù)據(jù)的問題,最大程度保證顯示內(nèi)容不失真,。
(3)通過自定義的LCD控制器實(shí)現(xiàn)數(shù)據(jù)顯示,。LCD控制器負(fù)責(zé)讀取顯示緩存數(shù)據(jù),并產(chǎn)生LCD顯示時(shí)序信號(hào),,將數(shù)據(jù)發(fā)送到監(jiān)視器的液晶面板,。自定義的LCD控制器是使用Verilog硬件描述語(yǔ)言設(shè)計(jì)的,并通過SoPC Builder的用戶自定義組件功能添加到系統(tǒng)中,。
3 千兆以太網(wǎng)系統(tǒng)的構(gòu)建
構(gòu)建千兆網(wǎng)系統(tǒng)必須包含硬件MAC,、PCS和PMA這幾個(gè)模塊。在本系統(tǒng)中,,PCS和PMA由片外的千兆網(wǎng)物理層芯片DP83865完成,,MAC模塊則通過Altera的Triple Speed Ethernet核單獨(dú)實(shí)現(xiàn)。下面將千兆網(wǎng)分為以太網(wǎng)端和系統(tǒng)端兩部份來介紹系統(tǒng)的具體結(jié)構(gòu),。
3.1 以太網(wǎng)端結(jié)構(gòu)
物理芯片在接收網(wǎng)絡(luò)信號(hào)之后,,會(huì)將信號(hào)轉(zhuǎn)換為MAC幀格式的并行數(shù)據(jù),,并通過提供的千兆位介質(zhì)獨(dú)立接口(GMII)與MAC模塊通信。MAC并不關(guān)心網(wǎng)絡(luò)信號(hào)如何接收如何轉(zhuǎn)換,,只是負(fù)責(zé)接收幀格式的數(shù)據(jù),。DP83865提供了符合工業(yè)標(biāo)準(zhǔn)的GMII接口,它包含8 bit寬度Rx_D[7..0]和Tx_D[7..0]數(shù)據(jù)接口,,通信的時(shí)鐘頻率為125 MHz,,最高可以達(dá)到1 Gb/s的通信速率。
系統(tǒng)對(duì)物理芯片的配置,,通過MDIO接口實(shí)現(xiàn),。MDIO是一個(gè)2線的管理總線接口,只包含MDC同步時(shí)鐘和MDIO串行數(shù)據(jù)收發(fā)信號(hào),。Triple Speed Ethernet核的內(nèi)部包含有MDIO主控制器,,物理芯片的32個(gè)寄存器可以被映射到MAC模塊內(nèi)部寄存器,。只需要通過系統(tǒng)總線就可以完成對(duì)物理層芯片的控制,,簡(jiǎn)化了開發(fā)工作。
3.2 系統(tǒng)端結(jié)構(gòu)
這部分主要涉及到處理器單元與千兆網(wǎng)底層通信的問題,,具體結(jié)構(gòu)如圖2所示,。MAC模塊掛接在Altera Avalon總線上,CPU通過Avalon-MM總線訪問其內(nèi)部寄存器,。MAC內(nèi)部設(shè)置了收發(fā)FIFO來緩存數(shù)據(jù)流,,并提供了標(biāo)準(zhǔn)的Avalon-ST流接口用作數(shù)據(jù)流收發(fā)。為了避免因數(shù)據(jù)收發(fā)任務(wù)過多而占用CPU,,采用了直接存儲(chǔ)器訪問(DMA)單元來接收網(wǎng)絡(luò)數(shù)據(jù),。Altera的SG-DMA專門提供了Avalon-ST流接口用做數(shù)據(jù)流傳輸,可以工作在存儲(chǔ)器到流接口,、流接口到存儲(chǔ)器以及存儲(chǔ)器之間三種模式下,。
圖2所示的兩個(gè)SG-DMA,一個(gè)是數(shù)據(jù)流發(fā)送Tx SG-DMA,,另一個(gè)是數(shù)據(jù)流接收Rx SG-DMA,。兩部分并行工作實(shí)現(xiàn)千兆網(wǎng)的全雙工工作模式。圖中的命令字存儲(chǔ)器是SG-DMA的操作指令緩存區(qū),,CPU可以提前將SG-DMA要完成的任務(wù)通過命令字的形式寫入命令字存儲(chǔ)器中,。SG-DMA在完成當(dāng)前任務(wù)后,會(huì)自動(dòng)提取命令字開始新的任務(wù),,減少了CPU對(duì)DMA的訪問次數(shù),。由于命令字存儲(chǔ)器與網(wǎng)絡(luò)數(shù)據(jù)緩存區(qū)都比較小,將其設(shè)置為小容量的片內(nèi)RAM,,避免過多模塊訪問SDRAM帶來的系統(tǒng)總線沖突問題,。
3.3 千兆網(wǎng)初始化與數(shù)據(jù)接收
在硬件系統(tǒng)構(gòu)建完畢之后,,需要配置各模塊內(nèi)部寄存器,初始化完成之后才能正常工作,。訪問寄存器的方法非常簡(jiǎn)單,,各寄存器單元都已經(jīng)映射成了存儲(chǔ)器映射寄存器,只需要讀寫映射的存儲(chǔ)器單元即可,。對(duì)各寄存器的配置,,利用了Altera提供的HAL底層驅(qū)動(dòng)程序。初始化操作的程序流程如圖3所示,。
在接收網(wǎng)絡(luò)數(shù)據(jù)時(shí),,為保證傳輸?shù)膶?shí)時(shí)性,系統(tǒng)與視頻流發(fā)送端建立起非連接的數(shù)據(jù)傳輸,。數(shù)據(jù)同步信息已經(jīng)包含在視頻數(shù)據(jù)流中,,系統(tǒng)的主要任務(wù)只是負(fù)責(zé)接收網(wǎng)絡(luò)數(shù)據(jù),恢復(fù)視頻數(shù)據(jù)流,。而視頻數(shù)據(jù)是以UDP協(xié)議傳輸?shù)?,因此網(wǎng)絡(luò)數(shù)據(jù)被接收之后,緩存區(qū)內(nèi)存儲(chǔ)的有效數(shù)據(jù)即是IP數(shù)據(jù)報(bào)文,,通過匹配IP數(shù)據(jù)包頭的IP地址可以判斷數(shù)據(jù)包是否正確,。對(duì)于符合本地地址的IP數(shù)據(jù)包,CPU可以根據(jù)IP與UDP協(xié)議的數(shù)據(jù)結(jié)構(gòu)直接提取其中的有效數(shù)據(jù),,最終獲取的數(shù)據(jù)就是有效的視頻數(shù)據(jù),。
4 圖像顯示模塊
4.1 總體構(gòu)架
顯示模塊的主要工作是獲取有效的視頻數(shù)據(jù),并最終顯示在顯示面板上,。圖4是顯示模塊的具體結(jié)構(gòu)示意圖,。在視頻數(shù)據(jù)獲取的過程中,同樣采用了SG-DMA模塊,,它具備的流接口更適合模塊間連續(xù)數(shù)據(jù)流的傳輸,。而LCD控制器方面,則通過定制用戶自定義組件功能來實(shí)現(xiàn),。
SG-DMA通過Avalon-MM主接口訪問位于SDRAM中的顯示緩存區(qū),,提取緩存區(qū)數(shù)據(jù),并以數(shù)據(jù)流的形式通過Avalon-ST流接口發(fā)給LCD控制器,。完成一項(xiàng)任務(wù)之后,,再通過讀取片內(nèi)RAM存放的命令字,提取下個(gè)傳輸任務(wù)的起始地址和長(zhǎng)度等參數(shù),。因?yàn)轱@示緩存區(qū)的位置是固定的,,設(shè)置的命令字內(nèi)容都相同,確保DMA提取的顯示數(shù)據(jù)傳輸不間斷,。
4.2 TFT LCD控制器核
LCD控制器按功能可以劃分為3個(gè)模塊:片內(nèi)寄存器模塊,、異步FIFO模塊和LCD時(shí)序發(fā)生器,。由于Avalon總線與LCD控制器工作在不同的時(shí)鐘域,如果直接連接會(huì)使得系統(tǒng)工作不穩(wěn)定,。利用異步FIFO作為緩存可以彌補(bǔ)模塊兩邊時(shí)鐘不同步的差別,。同時(shí)在異步FIFO模塊的系統(tǒng)端用almost full和almost empty兩個(gè)信號(hào)組成流控制信號(hào)Ready來控制Avalon-ST接口的數(shù)據(jù)流傳輸。
寄存器模塊是自定義組件中必不可少的內(nèi)容,,它可以讓系統(tǒng)對(duì)LCD模塊進(jìn)行各種功能的設(shè)置,,例如設(shè)置顯示分辨率、LCD的各類時(shí)序參數(shù)等,,同時(shí)也可以向系統(tǒng)反饋所需的狀態(tài)信息,。CPU可以通過Avalon-MM總線來配置這些寄存器,模塊內(nèi)部也可以按照各種需要直接訪問或修改寄存器內(nèi)容,。自定義寄存器的內(nèi)容如表1所示,。
最后的效果測(cè)試中,通過交叉千兆網(wǎng)雙絞線,,將一臺(tái)帶有千兆網(wǎng)卡的PC主機(jī)與系統(tǒng)相連,,測(cè)試數(shù)據(jù)由主機(jī)的視頻采集卡采集攝像頭得到。測(cè)試時(shí),,主機(jī)上的軟件程序?qū)⒁曨l信號(hào)打包發(fā)送到網(wǎng)絡(luò),。系統(tǒng)端接收網(wǎng)絡(luò)數(shù)據(jù),,將數(shù)據(jù)發(fā)送到顯示面板,,測(cè)試的效果清晰。雖然在網(wǎng)絡(luò)傳輸時(shí),,數(shù)據(jù)幀頭幀尾等同步字信息占去一部分的網(wǎng)絡(luò)帶寬,,但由于串行ITU-656數(shù)字視頻速率一般采用270 Mb/s,而千兆網(wǎng)的速率達(dá)到1 Gb/s,,還是可以滿足信號(hào)傳輸?shù)膶?shí)時(shí)性,。
本設(shè)計(jì)通過采用Altera FPGA器件,結(jié)合SoPC設(shè)計(jì)方法,,為視頻監(jiān)視器設(shè)備實(shí)現(xiàn)了一個(gè)可以接收遠(yuǎn)程數(shù)字視頻信號(hào)的千兆網(wǎng)顯示接口,。利用千兆網(wǎng)來實(shí)現(xiàn)視頻信號(hào)傳輸,提高了信號(hào)的傳輸速率,。如今千兆網(wǎng)接口已經(jīng)成為計(jì)算機(jī)系統(tǒng)的主流網(wǎng)絡(luò)接口,,使得該系統(tǒng)的通用性更強(qiáng)。由于采用SoPC解決方案,,降低了電路復(fù)雜度,,同時(shí)也降低了系統(tǒng)的硬件成本,并且千兆網(wǎng)使用雙絞線作為傳輸介質(zhì),,這也明顯小于使用同軸電纜系統(tǒng)的成本,。
參考文獻(xiàn)
[1] 蘇建,,林水生.基于FPGA的SDI接口設(shè)計(jì)[J].中國(guó)有線電視,2005.
[2] STEGER C,,ULRICH M,,WIEDEMANN Ch.Machine vision algorithms and applications[M].Wiley-VCH,2007.
[3] 丁鐵夫,,劉超,,楊磊,等.基于千兆以太網(wǎng)的實(shí)時(shí)視頻傳輸
系統(tǒng)設(shè)計(jì)[J].網(wǎng)絡(luò)與通信,,2008.
[4] 詹俊鵬,,李鵬.基于Altera FPGA的千兆以太網(wǎng)實(shí)現(xiàn)方案
[J].電子設(shè)計(jì)工程,2009.
[5] Altera.Triple Speed Ethernet User Guide.Version 9.0,,2009.