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