陸小鋒,王卓磊,陸亨立,郭眾磊
(上海大學通信與信息工程學院,上海 200072)
大尺寸、高分辨力、效果多樣的屏幕顯示技術在科學研究、交通指揮、展示、娛樂等方面得到了廣泛應用。實現更大尺寸、更高分辨力、更多特效的一個有效方法就是將多臺成像設備(DLP或LCD屏幕)拼接起來形成一個邏輯上統一的超大屏幕顯示系統。多個LCD或者DLP屏幕拼接完成的超大尺寸顯示系統與常規的單屏幕顯示系統相比,能夠將用戶需求的更多視頻信息、交互信息進行同步顯示與操作,滿足不同用戶對于可視內容多而全的需求,從空間上擴展了顯示分辨力。目前大屏幕拼接系統已經逐步在電力系統、會展系統、交通系統等方面有廣泛應用[1-3]。專業拼接型大屏幕系統的核心硬件組件便是多路、多制式視頻圖像集成處理顯示系統。
本文介紹的VW550多路圖像集成顯示處理系統由4塊主控板卡(Main Card)、1塊視頻矩陣板卡(Video Matrix)和1塊VGA矩陣板卡(VGA Matrix)組成,全部通過PCI總線實現數據連接和信號控制,在后臺計算機的控制下完成了多路圖像在2×2拼接屏幕上的圖像信號實時顯示,并能夠實現畫中畫、疊加、移動、圖像切換等特效功能。系統硬件設計特別是控制器主要基于Altera公司的FPGA與CPLD實現,采用了靈活的SoPC技術,具有很好的系統可擴展性和剪裁性,系統功能調整方便,降低了開發成本[4-5]。
多路圖像集成顯示系統主要由Main Card,Video Matrix和VGA Matrix這3類硬件板卡組成。圖1所示為系統總體設計框圖。
16路CVBS視頻信號或8路S-Video視頻信號經由Video Matrix按用戶設定要求分配給后端的Main Card,系統支持PAL與NTSC制式視頻格式,每塊Main Card可獲取其中任意4路CVBS或2路S-Video。同時,4路VGA信號通過VGA Matrix,其中每塊Main Card可以獲取其中任意2路VGA信號。Main Card支持同時處理4路CVBS(或2路S-Video)和2路VGA信號,通過DVI接口輸出到單屏分辨力為1400×1050的DLP投影屏幕組成的2×2大屏拼接墻。通過后臺計算機控制軟件,支持用戶通過簡單操作透明的完成Video和VGA信號切換、圖像的跨屏顯示、畫中畫、畫面的亮度調節、對比度調節等特效與控制功能。

圖1 多路圖像集成顯示處理系統總體設計框圖
Main Card主要由視頻ADC與視頻處理模塊、VGA ADC與VGA處理模塊、PCI總線適配模塊、系統整體邏輯主控制模塊和圖像輸出模塊等硬件模塊。各模塊硬件連接框圖如圖2所示。

圖2 Main Card硬件模塊連接圖
2.1.1 視頻ADC與視頻處理模塊設計
視頻ADC模塊采用Philips公司的SAA7114,由整體邏輯主控制模塊通過I2C方式控制,完成將輸入的模擬視頻信號數字化,解碼后傳送給后端的視頻處理模塊。在本系統中,通過I2C配置使得SAA7114輸出16位YUV數字視頻信號。
視頻處理模塊從視頻ADC模塊接收數字化YUV信號后進行隔逐行變換、幀頻提升等處理,因此對數字YUV信號進行緩存。由于多路輸入視頻信號是異步采集,在后端屏幕上同時顯示時需要完成輸出場頻同步的操作,為了節省大量的SDRAM存儲器及其帶來的PCB布板困難,本設計中沒有采用傳統的多片SDRAM輪換讀寫方案。如圖3所示,在本系統中,對每路輸入的獨立異步視頻信號首先輸入由1片CPLD控制的FIFO緩存,通過慢寫快讀模式,能夠保證多路異步視頻的同步讀入后續由FPGA控制的3片并聯SDRAM中,進行包括隔逐行變換、幀頻提升、圖像插值運算等操作。

圖3 視頻處理模塊信號框圖
2.1.2 VGA ADC與VGA處理模塊設計
VGA信號ADC模塊電路核心芯片是AD公司的AD9884A。AD9884A是8位RGB模數轉換集成芯片。它具有140 Msymbol/s(兆字符/秒)和500 Hz全功率的模擬帶寬,能夠支持1280×1024(SXGA)分辨力和75 Hz刷新率。輸出信號 DR[7:0]、DG[7:0]、DB[7:0]是數字化的24 bit RGB分量,連同模數轉換后的同步信號plsg(像素時鐘)、hsg(行同步)一起傳遞到VGA處理模塊。
VGA處理模塊視頻處理模塊對數字化RGB信號進行插值運算、窗口“游動”等處理。因此對數字RGB信號也需緩存。本設計中每路VGA處理模塊都采用1片FPGA與3片SDRAM組成處理核心。由于輸入的模擬VGA是場頻為75 Hz的逐行信號,因此無須幀頻提升與隔逐行變換。對于輸入的2路VGA信號不同步的問題,通過3片SDRAM的輪換讀寫操作實現同步化操作。SDRAM單片容量為128 Mbit,對于1400×1050的VGA信號,可以存放3幀圖像;每片SDRAM都有3個狀態Write,Wait和Read,對于某一路VGA處理,根據其獨立同步信號寫入SDRAM,讀出數據則要根據基準同步信號輸出;經過實驗測試,在寫和讀狀態中加入特定等待狀態,可使2路VGA實現在異步輸入前提下同步讀出。
2.1.3 PCI總線適配模塊設計
PCI總線適配模塊主要完成后臺計算機控制指令與多路集成顯示處理板卡之間的控制指令通信橋接,整體邏輯主控制模塊中FPGA硬件描述語言編程實現了PCI從模式的數據協議,節省了專用ASIC,降低了硬件開發成本。PCI總線適配器完全基于硬件描述語言通過狀態機進行模塊式設計。
2.1.4 系統邏輯主控制模塊設計
系統邏輯主控制模塊設計功能主要包括PCI協議適配以及根據PCI協議指令進行系統多種功能控制。其中PCI協議適配、視頻與VGA的輸出SDRAM多片輪換控制及系統同步邏輯控制完全采用硬件描述語言設計實現,系統功能控制采用在Altera FPGA中植入NiosII軟核的方式通過軟件實現。NiosII軟核處理器豐富的外設接口時可以通過用戶自己的需求來進行添加或刪除,對于系統擴展性和成本控制都有益處。
多路圖像顯示處理板卡從PCI總線上獲得指令數據后,通過PCI總線適配模塊處理后將數據放入片上FIFO,供NiosII處理器使用,而NiosII處理器通過自定義的片上數據總線來控制Main Processor中其他的模塊以及多路圖像顯示卡上其他的模塊。圖4為NiosII微處理器中的程序執行流程,表1為NiosII微處理器解碼PCI協議指令定義。

圖4 主控制模塊中NiosII軟核主程序流程

表1 NiosII軟核解碼PCI協議指令定義
2.1.5 圖像輸出模塊設計
本系統設計中視頻輸出格式支持VGA與DVI用戶自選。圖像輸出模塊中輸出VGA模擬視頻信號的芯片采用AD公司的ADV7197,支持3路兼容TTL輸入的高速視頻數字/模擬轉換器,3個獨立的10比特數據輸入端口,可接收4∶4∶410 bit YCrCb 或 RGB 信號,或者4∶2∶210 bit YCrCb信號;輸出DVI差分數字信號的芯片采用是TI公司的TFP410,支持從VGA到UXGA的分辨力(25 MHz到165 MHz的像素率),有12位雙邊和24位單邊2種輸入模式。ADV7197與TFP410由整體邏輯主控制模塊通過I2C方式控制。
Video Matrix由視頻矩陣模塊和PCI總線適配模塊組成。其中視頻矩陣模塊使用的是AD公司的AD8113,可以進行16×16的視頻矩陣切換,通過并行或串行方式配置AD8113中的寄存器便可將16路輸入的視頻信號的任意一路輸出到16路輸出端口的任意一個,而完成對AD8113中的寄存器的配置以及修改是靠PCI總線適配模塊來完成的,它的任務就是將PCI總線上傳輸過來的命令通過譯碼后去配置或更改AD8113寄存器。硬件與信號流程圖如圖5所示。

圖5 視頻矩陣板卡硬件與信號流程圖
VGA Matrix的構成類似Video Matrix,由VGA矩陣模塊和PCI總線適配模塊組成,VGA Matrix中使用了3片AD8114分別對R,G,B這3個分量及每路的同步信號進行矩陣切換。圖6為 VGA矩陣硬件與信號流程圖。

圖6 VGA矩陣板卡硬件與信號流程圖
要實現4塊Main Card、1塊Video Matrix和1塊VGA Matrix插到計算機中通過上層用戶軟件對其進行控制,首先操作系統能夠識別出這些板卡,需要編寫WDM驅動程序。WDM分層驅動模型如圖7所示。FDO表示功能設備對象,PDO表示物理設備對象。分層模型中PCI總線驅動程序與過濾驅動程序為系統自帶,其中的功能驅動程序為自行設計[6-8]。

圖7 WDM分層模型
本系統設計中選用DriverStudio+DDK的方法來編寫PCI總線驅動程序,通過使用DriverStudio的生成向導可以的到PCI驅動的一個框架,通過DriverStudio定義的類函數,可以調用它們來完成用戶需求的驅動程序。如圖8所示,用戶軟件不是直接調用Win32 API函數來實現與驅動程序通信的,而是加了一層自定義函數庫作為隔離。自定義函數庫的本質是動態鏈接庫,在里面對驅動的調用進行封裝,可使編寫上層軟件的人員避免直接調用出錯時產生的保護模式錯誤或者系統崩潰,同時也使上層軟件編寫人員無須了解底層硬件運作原理。
在自定義函數庫中對VW550中Main Card,Video Matrix和VGA Matrix的各種操作進行封裝,例如對Main

圖8 用戶軟件與驅動程序間通信示意圖
Card控制需要對圖像縮放時窗口左上角坐標點、窗口長度和寬度的參數傳遞的函數進行封裝。對于不同的設備、不同的功能就要定義不同的函數,這些函數通過“設備接口”去訪問相應的硬件驅動,實現對各PCI設備上各功能的控制和使用。函數庫對外只留出一個函數接口給上層應用軟件編寫人員使用,這樣便可使編寫出來的軟件能夠“透明”地控制VW550多路圖像集成顯示處理器。
本設計實現的系統硬件實物如圖9所示,包括4塊Main Card、1塊Video Matrix和1塊VGA Matrix硬件板卡實現了2×2拼接屏幕控制系統設計。系統顯示效果如圖10所示,圖10a為4路屏幕上分別顯示同一路視頻,圖10b為4路屏幕上同步顯示一路視頻的1/4分割畫面。通過實驗效果,本設計在多路異步視頻同步化顯示、SDRAM視頻存儲控制、PCI接口協議控制等方面較好地完成了系統功能設計,設計的硬件電路板卡已經能夠在拼接大屏幕控制系統中進行有效應用。


[1]陸珉,邱鋼,季曉勇.運用VHDL語言設計電視墻數字圖像處理電路[J].微計算機應用,2002,23(1):10-13.
[2]丁玉珍.HDTV多媒體大屏顯示墻系統方案[J].中國有線電視,2005(12):1182-1184.
[3]李建,吳久清,陳寧.大屏幕液晶數模一體電視機的設計實踐[J].電視技術,2009,33(11):50-53.
[4]CILETTI M D.Verilog HDL高級數字設計[M].北京:電子工業出版社,2006.
[5]吳繼華,王誠.Altera FPGA/CPLD設計高級篇[M].北京:人民郵電出版社,2005.
[6]徐曉畫,高小鵬,龍翔.可定制PCI接口設計[J].計算機與數字工程,2005,33(10):123-126.
[7]張廣華,蘇秀琴,李哲.Windows2000下PCI數據采集卡WDM驅動程序設計[J].科學技術與工程,2006,6(12):1633-1635.
[8]宋海吒,唐立軍,謝新輝.基于FPGA和OV7620的圖像采集及VGA顯示[J].電視技術,2011,35(5):45-47.