基于FPGA/CPLD的嵌入式VGA顯示系統(tǒng)
作者:王恒心 熊慶國 王鑫 陳禮敏
VGA(視頻圖形陣列Video Graphics Array)是IBM在1987年隨PS/2機一起推出的一種視頻傳輸標準,具有分辨率高、顯示速率快、顏色豐富等優(yōu)點,在彩色顯示器領(lǐng)域得到了廣泛的應(yīng)用。
目前 VGA技術(shù)的應(yīng)用還主要基于 VGA顯示卡的,而在一些既要求顯示彩色高分辨率圖像又不使用計算機的設(shè)備上,VGA技術(shù)的應(yīng)用卻很少。本文對基于 FPGA/CPLD的嵌入式 VGA顯示的實現(xiàn)方法進行了研究。
基于 FPGA/CPLD的嵌入式 VGA顯示系統(tǒng),可以在不使用 VGA顯示卡的情況下實現(xiàn) VGA圖像的顯示和控制。該系統(tǒng)具有成本低、結(jié)構(gòu)簡單、應(yīng)用靈活的優(yōu)點。
1 基于 FPGA/CPLD的嵌入式 VGA顯示系統(tǒng)簡介
通用 VGA顯示卡系統(tǒng)主要由控制電路、顯示緩存區(qū)和視頻 BIOS程序三個部分組成。其控制電路主要完成時序發(fā)生、顯示緩沖區(qū)數(shù)據(jù)操作等功能;顯示緩沖區(qū)提供顯示數(shù)據(jù)緩存空間;視頻BIOS作為控制程序固化在顯示卡的 ROM中。在基于FPGA/CPLD的嵌入式VGA顯示系統(tǒng)的設(shè)計中,可以使用很少的資源,就產(chǎn)生 VGA各種控制信號,達到顯示彩色高分辨率圖像的要求,而不需用 VGA顯示卡和計算機設(shè)備。圖 1是基于 FPGA/CPLD的嵌入式 VGA顯示系統(tǒng)的結(jié)構(gòu)框圖,圖中FPGA采用的是Altera公司Cyclone II系列的EP2C35F672C這款 FPGA.Cyclone II器件采用 90nm、低 K值電介質(zhì)工藝,通過使硅片面積最小化,可以在單芯片上支持復(fù)雜的數(shù)字系統(tǒng)。EP2C35F672C該芯片提供了 33216個邏輯單元 ,包括了嵌入式 18*18位乘法器、專用外部存儲器接口電路、 4KB嵌入式存儲器件、4個鎖相環(huán)和高速差分 I/O等功能。該芯片的工作頻率和引腳 IO等資源都能很好的滿足本系統(tǒng)的要求.FPGA的工作時鐘為 54MHz。
VGA接口芯片采用了 ADV7125,該芯片是美國 ADI公司生產(chǎn)的高速視頻數(shù)模轉(zhuǎn)換芯片,其像素掃描時鐘頻率有 50MHz、140 MHz、270 MHz、330MHz四個等級。ADV7125在單芯片上整合了三組 8位高速 D/A轉(zhuǎn)換器,可以分別處理紅、綠、藍視頻數(shù)據(jù),特別適用于高分辨率模擬接口的顯示終端和要求高速 D/A轉(zhuǎn)換的應(yīng)用系統(tǒng)。 ADV7125的輸入及控制信號非常簡單:3組 8位的數(shù)字視頻數(shù)據(jù)輸入端,分別對應(yīng) RGB視頻數(shù)據(jù),數(shù)據(jù)輸入端采用標準 TTL電平接口;4條視頻控制信號線包括復(fù)合同步信號 SYNC、消隱信號 BLANK、白電平參考信號 REF WHITE和像素時鐘信號 CLOCK;外接一個 1.23 V數(shù)模轉(zhuǎn)換參考電壓源和 1個輸出滿度調(diào)節(jié)。只有 4條輸出信號線:模擬 RGB信號采用高阻電流源輸出方式,可以直接驅(qū)動 75Ω同軸傳輸線。
2模塊劃分與模塊功能定義
FPGA中包含了四個工作模塊: VGA時序發(fā)生器模塊、VGA圖像顯示調(diào)色板模塊、數(shù)據(jù)存儲器和數(shù)據(jù)讀寫控制器。由于 ADV7125內(nèi)部沒有顏色的轉(zhuǎn)換器 ,所以當數(shù)據(jù)存儲器中的數(shù)據(jù)為 YUV信號時,就要把 YUV信號轉(zhuǎn)換成 RGB信號,這一功能就是由 VGA圖像顯示調(diào)色板模塊完成的,當顯示數(shù)據(jù)為 RGB信號時,數(shù)據(jù)可以直接傳輸?shù)?ADV7125,不需調(diào)色板進行顏色轉(zhuǎn)換。數(shù)據(jù)存儲器和數(shù)據(jù)讀寫控制器解決了顯示數(shù)據(jù)的來源和數(shù)據(jù)的存儲。用 FPGA對圖像進行存儲和整理,并產(chǎn)生驅(qū)動電路需要的各種控制波形由視頻控制器對顏色緩沖器進行掃描,其中視頻控制器可以讀取像素顏色,用這些顏色來控制輸出設(shè)備的亮度。
VGA時序發(fā)生器模塊產(chǎn)生顯示器所需的時序,這是完成設(shè)計的關(guān)鍵,時序稍有偏差,顯示必然不正常,甚至?xí)p壞彩色顯示器。
3、 VGA時序分析
顯示器采用光柵掃描方式,即轟擊熒光屏的電子束在 CRT(陰極射線管)屏幕上從左到右(受水平同步信號 HSYNC控制)、從上到下(受垂直同步信號 VSYNC控制)做有規(guī)律的移動。光柵掃描又分逐行掃描和隔行掃描。隔行掃描指電子束在掃描時每隔一行掃一線,完成一屏后再返回來掃描剩下的線,與電視機的原理一樣。隔行掃描的顯示器掃描閃爍的比較厲害,會讓使用者的眼睛疲勞。目前微機所用顯示器幾乎都是逐行掃描。逐行掃描是指掃描從屏幕左上角一點開始,從左向右逐點進行掃描,每掃描完一行,電子束回到屏幕的左邊下一行的起始位置,在這期間,CRT對電子束進行消隱,每行結(jié)束時,用行同步信號進行行同步;當掃描完所有行,形成一幀時,用場同步信號進行場同步,并使掃描回到屏幕的左上方,同時進行行場消隱,開始下一幀的掃描。
完成一行掃描所需時間稱為水平掃描時間,其倒數(shù)稱為行頻率;完成一幀(整屏)掃描所需的時間稱為垂直掃描時間,其倒數(shù)為垂直掃描頻率,又稱刷新頻率,即刷新一屏的頻率。常見的有 60Hz、75Hz等。
VGA 顯示器要正確顯示圖像關(guān)鍵還是如何實現(xiàn) VGA時序。視頻電子標準協(xié)會( VESA, Video Electronics Standards Association)對顯示器時序進行了規(guī)范。 VGA的標準參考顯示時序如圖 2、圖 3所示。行時序和場時序都需要產(chǎn)生同步脈沖(Sync a)、顯示后沿 (Back porch b)、顯示時序段(Display interval c)和顯示前沿 (Front porch d)四個部分。 VGA工業(yè)標準顯示模式要求:行同步、場同步都為負極性,即同步頭脈沖要求是負脈沖。
VGA的行時序如圖 2所示:每一行都有一個負極性行同步脈沖( Sync a),是數(shù)據(jù)行的結(jié)束標志,同時也是下一行的開始標志。在同步脈沖之后為顯示后沿 (Back porch b),在顯示時序段(Display interval c)顯示器為亮的過程,RGB數(shù)據(jù)驅(qū)動一行上的每一個象素點,從而顯示一行。在一行的最后為顯示后沿(Back porch b)。在顯示時序段( Display interval c)之外沒有圖像投射到屏幕時插入消隱信號。同步脈沖(Sync a)、顯示后沿(Back porch b)和顯示前沿(Front porch d)都是在行消隱間隔內(nèi)( Horizontal Blanking Interval),當行消隱有效時, RGB 信號無效,屏幕不顯示數(shù)據(jù)。
VGA的場時序與 VGA的行時序基本一樣,如圖 3所示,每一幀的負極性幀同步脈沖(Sync a)是一幀的結(jié)束標志,同時也是下一幀的開始標志。而顯示數(shù)據(jù)是一幀的所有行數(shù)據(jù)。
幾種常用的時序參數(shù)如表 1和表2 所示,首先,根據(jù)顯示器的性能選擇一種合適的VGA模式,然后由象素時鐘頻率和圖像分辨率計算出行總周期數(shù),再把表 1和表 2中給出的 a、 b、c、d各時序段的時間按照象素計數(shù)脈沖源頻率折算成時鐘周期數(shù)。在 FPGA/CPLD中用計數(shù)器和觸發(fā)器,以計算出的各時序段時鐘周期數(shù)為基準,產(chǎn)生不同寬度和周期的脈沖信號,再利用它們的邏輯組合構(gòu)成圖 2和圖 3中的 a、b、c、d各時序段以及 ADV7125的空白信號 BLANK和同步信號 SYNC。
一個示例就是 60Hz時 1280×1024分辨率顯示的 VESA標準,在 60Hz時,屏幕每16.67毫秒更新一次。這個標準制定了幀大小,用它來定義分辨率和回掃次數(shù)之間的關(guān)系。對于分辨率大小為 1280×1024來說,幀的大小為 1688×1066,這個大小與像素時鐘(Pixel Clock)有關(guān),所謂像素時鐘就是對像素的刷新頻率。像素時鐘為 1688×1066×60Hz 或者 108 兆 Hz(MHz)時,每個像素的刷新頻率也就是大約 9.26納秒,那么行頻就為 60×1066=63960 行/秒,也就是用顯示器的幀率乘以掃描線數(shù)量??梢杂脦笮〉玫娇v向回掃次數(shù),為了得到縱向同步長度(Sync Length),可以從縱向幀大小減去縱向分辨率,也就是 1066-1024=42。這樣,縱向回掃花費的時間和在屏幕上繪出 42 條線的時間相同,對于縱向回掃來說需要的時間為 42×1688×9.26 納秒(656 微秒)。
在顯示時序段( Display interval c),數(shù)據(jù)讀寫控制器從數(shù)據(jù)緩存區(qū)讀取像素顏色,用這些顏色來控制輸出設(shè)備(顯示器)的亮度。一幀圖像就準確的顯示到 VGA顯示器上。
表 1:VGA行時序說明
4、 VGA顯示器在雷達圖像顯示中的應(yīng)用
最初,雷達顯示器到重要作用,在于使雷達接收機到數(shù)據(jù)以一種可視的形式表現(xiàn)出來.操作員可以輕易而精確地檢測目標的出現(xiàn),提取目標的位置信息.隨著數(shù)字信號處理和數(shù)字數(shù)據(jù)處理的進步,越來越多的檢測和信息提取過用電子方法自動完成,因此操作員的任務(wù)越來越少.現(xiàn)在雷達顯示器更像電視監(jiān)視器或計算機顯示器,可以顯示完整的連續(xù)場景.
雷達獲取的信息是徑向圓掃描方式屬極坐標方式,所以早期船用雷達顯示器是一種平面位置顯示器,用極坐標表示,采用徑向圓掃描方式,在這種掃描方式中,熒光屏上掃描線線徑向掃描的數(shù)率取決于量程的大小.掃描線選轉(zhuǎn)的速度取決于天線的轉(zhuǎn)速.物標回波的亮度取決于回波視頻的信號的幅度.物標回波及各種符號視頻在屏上只能是天線每轉(zhuǎn)一圈才能亮一下,在整個平面上亮度不均,且量程小,回波亮度越低,容易丟失小目標.精確保存物標距離信息非常勉強.目標分辨力差,在屏上畫其他符號十分麻煩、困難,且符號量有限.
隨著VGA顯示器廣泛應(yīng)用,VGA顯示器也開始應(yīng)用在雷達顯示上,但VGA顯示起的掃描方式是從左到右到掃描和從上到下的幀掃,屬于直角坐標的方式,而雷達獲取的信息是徑向圓掃描方式屬極坐標方式,所以要實現(xiàn)雷達數(shù)據(jù)的 VGA顯示首先要將雷達的極坐標信息轉(zhuǎn)換成直角坐標信息存入存儲器,再以直角掃描的方式從存儲器中讀出并顯示出來.
VGA顯示器可以將來自其他傳感器得信息 ,例如其他雷達 :空中交通管制雷達應(yīng)答系統(tǒng) (ATCRBS) 、軍用敵我識別 (IFF) 、低亮度 TV、前視紅外 (FLIR),避免碰撞系統(tǒng)或來自民用或軍用數(shù)據(jù)鏈的信息 ,都能組合到顯示器上 .除已處理雷達視頻和原始視頻外 ,雷達觀測的區(qū)域地圖及文字數(shù)字信息和圖形也能添加到 VGA顯示器上.。
5、VGA顯示器在雷達應(yīng)用中的優(yōu)點與平面位置顯示器相比,VGA顯示器的在雷達圖像顯示上有了更大優(yōu)勢:
1)克服了平面位置顯示器整個平面上亮度不均的缺點.實現(xiàn)了高亮度顯示
2)避免顯示器的圖像的閃爍現(xiàn)象,
3)便于彩色顯示
4)便于采用計算機顯示終端技術(shù)
5)降低了成本,提高了可靠性
本文作者的創(chuàng)新點:在本設(shè)計中采用了 1280*1024的高分辨率顯示 ,克服了早期低分辨率 VGA顯示器雷達圖像分裂和定位精度低的缺點 .。
參考文獻:
[1]王世遠,繆德剛 .航海雷達與APRA;大連,大連海事大學(xué)出版社,2006.1.
[2]黃平,吳景東基于 DRAM、FPGA的專用 LCD顯示接口設(shè)計與實現(xiàn)[ J].微計算機信息 2007年第 5-2期
[3]Merrill I.Skolnik.雷達系統(tǒng)導(dǎo)論 (第三版);北京,電子工業(yè)出版社,2006.7.
[4]陳桂,田學(xué)隆等 .ARM嵌入式平臺的 VGA接口設(shè)計 ,單片機及嵌入式系統(tǒng)應(yīng)用,2007,5.
[5]張博,吳芝路 ,張欣宇.基于 FPGA的電子穩(wěn)像平臺的研究 ,電子技術(shù)應(yīng)用, 2004,第 05期.
[6]朱耀東,經(jīng)亞枝 ,張煥春.基于 FPGA的 LCD&VGA控制器設(shè)計,2006,.
[7]張文愛,張博,程永強.基于 FPGA的高分辨率 VGA顯示控制器的設(shè)計,現(xiàn)代顯示,2006,第 9期.
[8] DE2 Developmen and Education Board User Manual, American,Altera Corporation.2006.