VGA原理
VGA(VideoGraphicsArray)是IBM在1987年隨PS/2機一起推出的一種視頻傳輸標準,具有解析度高、顯示速率快、顏色豐富等優點,在彩色顯示器領域得到了廣泛的套用。目前VGA技術的套用還主要基於VGA顯示卡的計算機、筆記本等設備,而在一些既要求顯示彩色高解析度圖像又沒有必要使用計算機的設備上,VGA技術的套用卻很少見到。本文對嵌入式VGA顯示的實現方法進行了研究。基於這種設計方法的嵌入式VGA顯示系統,可以在不使用VGA顯示卡和計算機的情況下,實現VGA圖像的顯示和控制。系統具有成本低、結構簡單、套用靈活的優點,可廣泛套用於超市、車站、飛機場等公共場所的廣告宣傳和提示信息顯示,也可套用於工廠車間生產過程中的操作信息顯示,還能以多媒體形式套用於日常生活。
1顯示原理與VGA時序實現
通用VGA顯示卡系統主要由控制電路、顯示快取區和視頻BIOS程式三個部分組成。控制電路如圖1所示。控制電路主要完成時序發生、顯示緩衝區數據操作、主時鐘選擇和D/A轉換等功能;顯示緩衝區提供顯示數據快取空間;視頻BIOS作為控制程式固化在顯示卡的ROM中。
1.1VGA時序分析
通過對VGA顯示卡基本工作原理的分析可知,要實現VGA顯示就要解決數據來源、數據存儲、時序實現等問題,其中關鍵還是如何實現VGA時序。VGA的標準參考顯示時序如圖2所示。行時序和幀時序都需要產生同步脈衝(Synca)、顯示後沿(Backporchb)、顯示時序段(Displayintervalc)和顯示前沿(Frontporchd)四個部分。幾種常用模式的時序參數如表1所示。
1.2VGA時序實現
首先,根據刷新頻率確定主時鐘頻率,然後由主時鐘頻率和圖像解析度計算出行總周期數,再把表1中給出的a、b、c、d各時序段的時間按照主計數脈衝源頻率折算成時鐘周期數。在CPLD中利用計數器和RS觸發器,以計算出的各時序段時鐘周期數為基準,產生不同寬度和周期的脈衝信號,再利用它們的邏輯組合構成圖2中的a、b、c、d各時序段以及D/A轉換器的空白信號BLANK和同步信號SYNC。
1.3讀SRAM地址的產生方法
主時鐘作為像素點計數脈衝信號,同時提供顯存SRAM的讀信號和D/A轉換時鐘,它所驅動的計數器的輸出端作為讀SRAM的低位地址。行同步信號作為行數計數脈衝信號,它所驅動的計數器的輸出端作為讀SRAM的高位地址。由於採用兩片SRAM,所以最高位地址作為SRAM的片選使用。由於信號經過CPLD內部邏輯器件時存在一定的時間延遲,在CPLD產生地址和讀信號讀取數據時,讀信號、地址信號和數據信號不能滿足SRAM讀數據的時序要求。可以利用硬體電路對讀信號進行一定的時序調整,使各信號之間能夠滿足讀SRAM和為DAC輸入數據的時序要求。
1.4數據寬度和格式
如果VGA顯示真彩色BMP圖像,則需要R、G、B三個分量各8位,即24位表示一個像素值,很多情況下還採用32位表示一個像素值。為了節省顯存的存儲空間,可採用高彩色圖像,即每個像素值由16位表示,R、G、B三個分量分別使用5位、6位、5位,比真彩色圖像數據量減少一半,同時又能滿足顯示效果。
2功能單元設計
實現VGA顯示,除了實現時序控制,還必須有其他功能單元的支持才能實現完整的圖像顯示。
(1)控制器:VGA顯示有多種模式,需要通過控制器實現模式間切換,還需要對顯示的內容進行接收、處理和顯示。所以控制器的性能越高,數據更新和顯示效果就越好。
(2)顯示數據快取區:VGA顯示要求顯存速度快、容量大。讀速度要達到65MHz以卜,存儲容量至少要2MB。可採用高速SRAM或SDRAM作為顯示數據快取。
(3)數模轉換器DAC:VGA顯示對數模轉換DAC有如下要求:一是高速轉換,轉換的速度應該在80MHz或以上;二是剛步性好,能保證R、G、B三路信號的同步性;三是有相應的精度。可選擇一種包括3路8位高速D/A的專用視頻晶片。
(4)數據源及其接口:要提高VGA顯示的效率,就要不斷更新數據,同時還要保證實時性,因此需要非常高的接口速度。VGA顯示卡雖可達到100Mbps的數據更新速度,但是一般設備、特別是嵌入式設備達不到這么高的速度,而且大多數情況下也不需要這么高的數據更新率。目前常用接口為EPP接口、USB接口、TCP/IP、RS232C/485等。其中TCP/IP、EPP接口和USB接口是基於計算機的,速度較快;TCP/IP、RS232C/485是基於網路通信的接口,其中RS485速度雖慢,但套用廣泛且容易實現遠程控制。
在數據源為低速接口時,可以考慮採用Flash或者SM存儲卡等預先存儲一些常用的圖像顯示數據和字型檔檔案,在更新數據時直接套用這些數據,從而加快顯示快取的更新速度。這樣既能滿足高解析度圖像的顯示,又能滿足文字信息數據的快速更新。剛時為了存儲更多的圖像,可以先存儲JPEG格式圖像,再由控制器解碼成BMP點陣圖圖像後送到顯示快取顯示,這樣就相對擴展了Flash的存儲空間。同時,由於圖像的解碼速度要大大快於數據源接口的速度,也就相應提高了顯示快取的數據更新速度。
由各功能單元組成的VGA顯示硬體結構框圖如圖3所示。
3顯存數據更新與顯示的同步實現
在VGA顯示時,要考慮如何實現顯存數據更新與顯示的同步進行。解決的方案有以下幾種:
(1)採用具有快取作用的雙口RAM,這種方法使用的器件數量多、功耗大、成本高,基本不可取。
(2)採用兩組SRAM進行桌球工作模式,一組SRAM用於顯示的同時,另一組SRAM用於圖像數據的更新,然後在兩組SRAM之間切換。這樣做會提高一些成本,而且需要更複雜的匯流排控制。
(3)利用FPAG/CPLD和SDRAM構造雙口SRAM。這種方法實時性好,成本較低,時序控制比較複雜,它是
實現高性能低成本要求的最佳方案。
(4)採用一組SRAM作為顯存,可以簡化系統設計、降低成本。這時可以考慮利用行時序和幀時序中SRAM匯流排空閒的時序段,在不關閉圖像顯示的情況下實現顯存SRAM的數據更新。該方法的更新率與數據寫速度密切相關,顯存的寫數據速度越快,該方法的更新率就越高。
假設CPU的工作時鐘最大為60MHz,並採用JPEG解碼更新方式。這時如果將解碼快取區分配在CPU片內記憶體,則更新數據時直接由記憶體向SRAM寫數據,一次需要0.17μs;如果將解碼快取區分配在片外空間,則更新數據時CPU要先從片外讀數據,再向SRAM寫數據,這樣寫一次需要0.25μs。在相鄰顯示的兩幀圖像只存在局部差別或更新文本顯示信息時,可使用局部數據更新方法,以提高更新率。表2給出了顯示每幀圖像包含的匯流排空閒時間,以及在不同解碼快取區分配方式下圖像全部更新和10%局部更新的幀率。這裡提到的幀率是指對顯存數據的更新速度,而不是指圖像的螢幕刷新率,它對刷新率沒有影響。
基於以上方案設計的嵌入式VGA顯示系統在只有系統控制板和CRT顯示器的情況下實現了嵌入式高解析度VGA顯示。
通過對嵌入式VGA顯示系統的設計分析和實際使用,得到如下結論:
(1)由於VGA顯示是一個高速過程,所以選擇器件時要選擇高速器件。
(2)VGA顯示時序要求較嚴格,時序中的前後沿及同步脈衝寬度都要依照嚴格的參考數據設定。
(3)在一般情況下,由於數據接口的限制,數據更新率不能達到計算機的水平。通過一些特殊設計,還是能夠滿足大多數嵌入式VGA的需求。
(4)性能、成本和複雜度要綜合考慮,要以系統的實際需求為目標,採用合理而實用的設計方案。
VGA(VideoGraphicsArray)是IBM於1987年提出的一個使用模擬信號的電腦顯示標準,這個標準已對於現今的個人電腦市場已經十分過時。即使如此,VGA仍然是最多製造商所共同支援的一個低標準,個人電腦在載入自己的獨特驅動程式之前,都必須支援VGA的標準。例如,微軟Windows系列產品的開機畫面仍然使用VGA顯示模式,這也說明其解析度和載色數的不足。
VGA這個術語常常不論其圖形裝置,而直接用於指稱640×480的解析度。VGA裝置可以同時儲存4個完整的EGA色版,並且它們之間可以快速轉換,在畫面上看起來就像是即時的變色。
除了擴充為256色的EGA式色版,這256種色彩其實可以透過VGADAC(Digital-to-analogconverter),任意的指定為任何一種顏色。這就程度上改變了原本EGA的色版規則,因為原本在EGA上,這只是一個讓程式可以在每個頻道(即紅綠藍)在2bit以下選擇最多種顏色的方式。但在VGA下它只是簡單的64種顏色一組的表格,每一種都可以單獨改變——例如EGA顏色的首兩個bit代表紅色的數量,在VGA中就不一定如此了。
VGA在指定色版顏色時,一個顏色頻道有6個bit,紅、綠、藍各有64種不同的變化,因此總共有262,144種顏色。在這其中的任何256種顏色可以被選為色版顏色(而這256種的任何16種可以用來顯示CGA模式的色彩)。
這個方法最終仍然使了VGA模式在顯示EGA和CGA模式時,能夠使用前所未有的色彩,因為VGA是使用模擬的方式來繪出EGA和CGA畫面。提供一個色版轉換的例子:要把文字模式的字元顏色設定為暗紅色,暗紅色就必須是CGA16色集合中的一種顏色(譬如說,取代CGA默認的7號灰色),這個7號位置將被指定為EGA色版中的42號
規格表
VGA的規格表如下:
* 256 KiB 的 Video RAM
* 16 色和 256 色模式
* 總共 262144 種顏色的色版(紅、綠、藍三色各 6 bit,總共 (26)3 種)
* 選擇性的 25.2 MHz 或 28.3 MHz 處理頻率
* 最多 720 個水平像素
* 最多 480 條線
* 最高 70 Hz 的更新頻率
* Vertical Blanking interrupt(不是所有卡都支援)
* 平面模式:最多 16 色(4 bit 面板)
* Packed-pixel 模式:256 色(Mode 13h)
* 順暢捲動畫面的能力
* Some "Raster Ops" support
* Barrel shifter
* 支援分割畫面
VGA支援可單獨操控像素的APA(All Points Addressable)模式,也支援字母與數字的文字模式。標準的圖形模式如下:
* 640×480×16色
* 640×350×16色
* 320×200×16色
* 320×200×256色(Mode 13h)
它也支援用模擬的方式畫出以往規格的解析度:EGA、CGA和MDA。
標準的VGA文字模式使用 80×25 或 40×25 個字母或數字組成的平面。每個字元的塊狀區域可以選擇16種前景色和8種背景色;8種背景色來自bit容量較低的集合(以今天的標準來說,例如 ffffff 或者是 000000)。而字元本身也可設定是否閃爍,而字元的閃爍動作都是同時的。畫面的閃爍功能和選擇背景顏色的功能是可交換的,換句話說兩者只能擇一。以上這些選項和IBM先前生產的 CGA 轉換器是相同的。
VGA雖然支援黑白和彩色的文字模式,但黑白模式很少使用。大多的VGA在顯示黑白模式時使用彩色模式,即是將灰色字畫在黑色背景上。而使用VGA 的單色顯示器也能很好的支援這樣的彩色模式。現代顯示器和顯示卡若連線不當,偶爾會導致顯示卡的VGA部份偵測顯示器為單色的,而這將使BIOS開機顯示為黑白模式。通常在載入作業系統和適當的驅動程式以後,顯示卡的設定被復蓋,顯示器就會變回彩色。
在彩色的文字模式中,每個字元其實由兩個byte代表。較低的一個byte用來顯示字元,而較高的byte就用來代表彩色、閃爍等等屬性。這種成對的byte模式是從CGA就一直傳續下來的。 VGA的英文全稱是Video Graphic Array,即顯示繪圖陣列。VGA支持在640X480的較高解析度下同時顯示16種色彩或256種灰度,同時在320X240解析度下可以同時顯示256種顏色.
肉眼對顏色的敏感遠大於解析度,所以即使解析度較低圖像依然生動鮮明。VGA由於良好的性能迅速開始流行,廠商們紛紛在VGA基礎上加以擴充,如將顯存提高至1M並使其支持更高解析度如800X600或1024X768,這些擴充的模式就稱之為VESA(Video Electronics Standards Association,視頻電子標準協會)的Super VGA模式,簡稱SVGA,現在的顯示卡和顯示器都支持SVGA模式。不管是VGA還是SVGA,使用的連線都是15針的梯形插頭,傳輸模擬信號。
只有在電腦顯示卡驅動異常,進不去桌面的時候選擇這個模式,這個模式會載入系統默認自帶的驅動,以方便用戶操作.
套用
目前大多數計算機與外部顯示設備之間都是通過模擬VGA接口連線,計算機內部以數字方式生成的顯示圖像信息,被顯示卡中的數字/模擬轉換器轉變為R、G、B三原色信號和行、場同步信號,信號通過電纜傳輸到顯示設備中。對於模擬顯示設備,如模擬CRT顯示器,信號被直接送到相應的處理電路,驅動控制顯像管生成圖像。而對於LCD、DLP等數字顯示設備,顯示設備中需配置相應的A/D(模擬/數字)轉換器,將模擬信號轉變為數位訊號。在經過D/A和A/D2次轉換後,不可避免地造成了一些圖像細節的損失。VGA接口套用於CRT顯示器無可厚非,但用於連線液晶之類的顯示設備,則轉換過程的圖像損失會使顯示效果略微下降。
啟動方法
主要套用在,顯示解析度設定過高,顯示器黑屏,無法正常顯示了。要修復這個問題,就必須啟動到VGA模式,這樣解析度、刷新率會很低,方便用戶更改到合適的設定。
是Windows系統診斷的一種方式。