當前位置:編程學習大全網 - 編程語言 - VGA數據線的原理

VGA數據線的原理

VGA(Video Graphics Array)是IBM在1987年隨PS/2機壹起推出的壹種視頻傳輸標準,具有分辨率高、顯示速率快、顏色豐富等優點,在彩色顯示器領域得到了廣泛的應用。VGA技術的應用還主要基於VGA顯示卡的計算機、筆記本等設備,而在壹些既要求顯示彩色高分辨率圖像又沒有必要使用計算機的設備上,VGA技術的應用卻很少見到。本文對嵌入式VGA顯示的實現方法進行了研究。基於這種設計方法的嵌入式VGA顯示系統,可以在不使用VGA顯示卡和計算機的情況下,實現VGA圖像的顯示和控制。系統具有成本低、結構簡單、應用靈活的優點,可廣泛應用於超市、車站、飛機場等公***場所的廣告宣傳和提示信息顯示,也可應用於工廠車間生產過程中的操作信息顯示,還能以多媒體形式應用於日常生活。

1 顯示原理與VGA時序實現

通用VGA顯示卡系統主要由控制電路、顯示緩存區和視頻BIOS程序三個部分組成。控制電路如圖1所示。控制電路主要完成時序發生、顯示緩沖區數據操作、主時鐘選擇和D/A轉換等功能;顯示緩沖區提供顯示數據緩存空間;視頻BIOS作為控制程序固化在顯示卡的ROM中。

1.1 VGA時序分析

通過對VGA顯示卡基本工作原理的分析可知,要實現VGA顯示就要解決數據來源、數據存儲、時序實現等問題,其中關鍵還是如何實現VGA時序。 VGA的標準參考顯示時序如圖2所示。行時序和幀時序都需要產生同步脈沖(Sync a)、顯示後沿(Back porch b)、顯示時序段(Display interval c)和顯示前沿(Front porch d)四個部分。幾種常用模式的時序參數如表1所示。1.2 VGA時序實現

首先,根據刷新頻率確定主時鐘頻率,然後由主時鐘頻率和圖像分辨率計算出行總周期數,再把表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的存儲空間。同時,由於圖像的解碼速度要大大快於數據源接口的速度,也就相應提高了顯示緩存的數據更新速度。 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仍然是最多制造商所***同支援的壹個低標準,個人電腦在加載自己的獨特驅動程式之前,都必須支援VGA的標準。例如,微軟Windows系列產品的開機畫面仍然使用VGA顯示模式,這也說明其分辨率和載色數的不足。

VGA這個術語常常不論其圖形裝置,而直接用於指稱640×480的分辨率。VGA裝置可以同時儲存4個完整的EGA色版,並且它們之間可以快速轉換,在畫面上看起來就像是即時的變色。

除了擴充為256色的EGA式色版,這256種色彩其實可以透過 VGA DAC(Digital-to-analog converter),任意的指定為任何壹種顏色。這就程度上改變了原本EGA的色版規則,因為原本在EGA上,這只是壹個讓程式可以在每個頻道(即紅綠藍)在2 bit以下選擇最多種顏色的方式。但在VGA下它只是簡單的64種顏色壹組的表格,每壹種都可以單獨改變——例如EGA顏色的首兩個bit代表紅色的數量,在VGA中就不壹定如此了。

VGA在指定色版顏色時,壹個顏色頻道有6個bit,紅、綠、藍各有64種不同的變化,因此總***有 262,144 種顏色。在這其中的任何 256 種顏色可以被選為色版顏色(而這 256 種的任何 16 種可以用來顯示 CGA 模式的色彩)。

這個方法最終仍然使了VGA模式在顯示EGA和CGA模式時,能夠使用前所未有的色彩,因為VGA是使用模擬的方式來繪出EGA和CGA畫面。提供壹個色版轉換的例子:要把文字模式的字符顏色設定為暗紅色,暗紅色就必須是 CGA 16 色集合中的壹種顏色(譬如說,取代 CGA 默認的 7 號灰色),這個 7 號位置將被指定為 EGA 色版中的 42 號,然後 VGA DAC 將 EGA #42 指定為暗紅色。則畫面上的原本的 CGA 七號灰色,都會變成暗紅色。這個技巧在 256 色的 VGA DOS 遊戲中,常常被用來表示加載遊戲的淡入淡出畫面。

總結來說,CGA 和 EGA 同時只能顯示 16 種色彩,而 VGA 因為使用了 Mode 13h 而可以壹次顯示 256 色版中的所有色彩,而這 256 種顏色又是從 262,144 種顏色中挑出的。 VGA所使用的視訊內存,透過壹個窗口對應於PC的主內存,它們的真實位址為0xA000和0xC000之間的內存。典型地來說位址的開始點是:

* 0xA000 使用於 EGA/VGA 圖型模式(64 KiB)

* 0xB000 單色文字模式(32 KiB)

* 0xB800 彩色文字模式和 CGA 相容模式(32 KiB)

由於使用的區段皆不相同,在同壹部機器上裝置壹個單色顯卡(MDA)和另壹個彩色顯卡(VGA、EGA或CGA)是不沖突的。在 1980 年代初,這種典型的搭配方式用於 Lotus 1-2-3 試算表上,壹部高解析單色屏幕用來顯示文字,而另壹部低解析的 CGA 屏幕用來顯示圖表。許多程式設計師也用這種配置來開發軟件,壹部屏幕顯示 debug 細節,另壹部屏幕則顯示真正的軟件運行畫面。許多商業的除錯軟件都支援這種配置,例如 Borland 的 TurboDebugger、由 Alan J. Cox 開發的 D86、微軟的 CodeView 等,Turbo Debugger 和 CodeView 可以甚至可拿來 debug 微軟的 Windows 軟件。也有 DOS 驅動程式如ox.sys模擬壹個終端機來接受 Windows 的 debug 訊息,而不用真正接上另壹個終端機。在 DOS 底下使用“單色模式”指令,使其輸出轉向單色也是可能的。另外,假如電腦上並無單色顯卡,那麽可以使用 EMM386.EXE 程序讓其他程式可以使用 B000-B7FF 這壹段內存。(於 config.sys 檔案中加入 DEVICE=EMM386.EXE I=B000-B7FF) 壹個未被紀錄但十分廣泛使用的技術稱作 Mode X(由 Michael Abrash 導入),使程式設計師能夠使用在 Mode 13h 之下無法做到的分辨率。他將 256 KiB 連續的視訊內存“解開”並分成四個層次,因此在 256 色模式時全部 256 KiB 的內存都可以使用。技術上這將使得處理變得更復雜,並且效能降低。但在壹些特殊情況下,效能損失的情況可以被彌補:

* 單色的多邊形填色增快,因為壹次寫入可以設定四個像素。

* VGA 可以用來協助視訊內存之間的拷貝,有些時候會比使用 8088 或 80286 等慢速 CPU 更快。

* 提供更高的分辨率:16 色可使用 704×528、736×552、768×576、甚至 800×600。諸如 Xlib(1990 年代早期的 C 圖形函式庫)和 ColoRIX(256 色的圖形程式)支援 256 色下的各種分辨率調和:直行 256、320 和 360 個像素,以及水平行 200、240、256、400 和 480 個像素的組合(上限的 640×400 幾乎用掉 256 KiB 中每壹個 byte)。不過,320×240仍然是最常被使用的,因它為典型的4:3比例,為方形像素。

* multiple video pages 讓程序員能夠使用雙重緩沖(所有的 16 色模式都可),這在 Mode 13h 無法辦到。

有時候,顯示器必須降低更新頻率來滿足這些模式,這會造成眼睛的疲勞這樣的低分辨率雖然在PC市場早已淡出,但在Pocket PC和PDA市場,它正逐漸成為標準。它也常被用來指稱15針的D型接頭,這種接頭仍然用來傳輸各式各樣分辨率的類比訊號。

曾經IBM官方宣布VGA被XGA標準所取代,但在歷史上,它是被其他的OEM制造商使用的所謂SVGA標準取代了。 * 256 KiB 的 Video RAM

* 16 色和256色模式

* 總***262144種顏色的色版(紅、綠、藍三色各 6 bit,總***(26)3 種)

* 選擇性的25.2 MHz或28.3MHz處理頻率

* 最多720個水平像素

* 最多480 條線

* 最高70Hz的更新頻率

* 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) 標準的VGA文字模式使用 80×25 或 40×25 個字母或數字組成的平面。每個字符的塊狀區域可以選擇16種前景色和8種背景色;8種背景色來自bit容量較低的集合(以今天的標準來說,例如 ffffff 或者是 000000)。而字符本身也可設定是否閃爍,而字符的閃爍動作都是同時的。畫面的閃爍功能和選擇背景顏色的功能是可交換的,換句話說兩者只能擇壹。以上這些選項和IBM先前生產的 CGA轉換器是相同的。

VGA雖然支援黑白和彩色的文字模式,但黑白模式很少使用。大多的VGA在顯示黑白模式時使用彩色模式,即是將灰色字畫在黑色背景上。而使用VGA 的單色顯示器也能很好的支援這樣的彩色模式。現代顯示器和顯卡若連接不當,偶爾會導致顯卡的VGA部份偵測顯示器為單色的,而這將使BIOS開機顯示為黑白模式。通常在加載操作系統和適當的驅動程式以後,顯卡的設定被覆蓋,顯示器就會變回彩色。

在彩色的文字模式中,每個字符其實由兩個byte代表。較低的壹個byte用來顯示字符,而較高的byte就用來代表彩色、閃爍等等屬性。這種成對的byte模式是從CGA就壹直傳續下來的。 VGA的色彩系統可以向前相容於EGA和CGA轉換器,而它在其上又新增了壹種設定。CGA可以顯示16種色彩,EGA則將其擴充成從64種顏色色版選出的16色模式(即紅綠藍各2 bits)。VGA則更將其擴充成256種顏色色版,但為了向前相容,壹次只能選擇256種之中的64種(例如第壹個64種顏色集合、第二個…)。所以壹個。它們也不相容於較老舊的顯示器,將造成諸如 overscan、閃爍、垂直滾動、缺乏水平同步等等缺點。因為如此,多數的商業軟件使用的 VGA 調適都限制在顯示器的“安全界線”之下,例如 320×400(雙倍分辨率,2 video pages)、320×240(方形像素,3 video pages)和 360x480(最高的相容分辨率,1 video page)。

VGA數據線

VGA數據線是用來連接VGA接口設備的線纜,長度有1.5米,3米,到100多米不等,因為它所采用的線材比較粗象電纜壹樣因此幾十米上百米也不會出現明顯的信號減退現象,不過相對於HDMI線就沒那麽清晰。 壹般在VGA接頭上,會1,5,6,10,11,15等標明每個接口編號。如果沒有,如上圖所示編號。

VGA接口15根針,其對應接口定義如下:

1.紅基色 red

2.綠基色 green

3.藍基色 blue

4.地址碼ID Bit(也有部分是RES,或者為ID2顯示器標示位2)

5.自測試 ( 各家定義不同 )(壹般為GND)

6.紅地

7.綠地

8.藍地

9.保留 ( 各家定義不同 )(KEY··我也不是很理解)

10. 數字地

11.地址碼(ID0顯示器標示位0)

12.地址碼(ID1顯示器標示位1)

13.行同步

14.場同步

15.地址碼 ( ID3或顯示器標示位3 )

  • 上一篇:易懂分布式
  • 下一篇: Kademlia算法
  • copyright 2024編程學習大全網