Nawigacja:
Strona Główna

Definicja

Zasada działania

Podział kart

Magistrale

AGP

PCI Express

Słowniczek A-Z

Karta VGA

Budowa kart graficznych

Galeria

Linki

Współpraca Karta-Monitor

Kontakt
Standardy trącone rydwanem czasu...

Aby móc powiedzieć coś na temat kart VGA należy wspomnieć o poprzednikach standardu VGA. Wszystko zaczęło się w roku 1975, kiedy to firma IBM rozpoczęła sprzedaż pierwszego komputera osobistego IBM 5100. Cały kombajn posiadał 16kB pamięci operacyjnej i potrafił wyświetlić na ekranie monitora 16 lini, a w każdej po 64 znaki. Dopiero 6 lat później w roku 1981 w sprzedaży ukazał się IBM 5150 Personal Computer (stąd IBM PC) uznawany za pradziadka dzisiejszych pecetów. Gwoli informacji w tym komputerze po raz pierwszy zastosowano szesnastobitowy procesor INTEL 8088. Tenże komputer wyposażono w zaawansowany adapter graficzny: MDA (Monochrome Display Adapter), któy wyświetlał aż(!) 25 linii, w każdej po 80 znaków na znak przeznaczając matrycę 9 na 14 pikseli. MDA wyświetlał 4 kolory: szary, biały, czarny i... podkreślenie (uznane za czwarty kolor). Jednak adapter MDA wysyłał cyfrowy sygnał i wymagał specjalnych monochromatycznych monitorów TTL. Monitory te niekoniecznie potrafiły wyświetlać tylko kolory czarny i biały. Spotykano monitory zielono-czrne, oraz bursztynowo-czarne. Komputer IBM PC miał otwartą architekturę. Wszystkie jego komponenty miały postać kart rozszerzeń w standardzie ISA. Takżę MDA był kartą ISA Niebawem po premierze swojego PC, IBM zaproponował kolorową kartę graficzną CGA (Color Graphics Adapter), któa poza trybem tekstowym zaoferowała także tryb graficzny. Za standard przyjął się wówczas tryb 320 x 200 przy 4 kolorach. Kolory można było wybrać zestawami: pierwszy - biały, czarny, różowy i jasno niebieski drugi - żółty, czarny, zielony i czerwony

CGA oferował także tryb wysokiej rozdzielczości 640 x 200, jednak tylko w dwóch kolorach czarnym i białym. W roku 1982 powstał Hercules Graphic Controller (HGC) czyli poprostu Hercules. Oferował tryb tekstowy znany z MDA (80 x 25 znaków) oraz tryb graficzny 720 x 348, oczywiście monochromatyczny. Nie potrafił generować innych kolorów, tak jak CGA, jednak nad CGA miał przewagę w pełnej zgodności z MDA. Jednak na rynku pojawiło siędużo aplikacji przeznaczonych dla CGA, a Hercules nie był zgodny z CGA na poziomie sprzętowym, ktoś sprytny napisał jednak programy emulator CGA dla HGC. Oczywiście bez możliwości wyświetlenia kolorów znanych z CGA. W 1984 narodził się przyzwoity jak na tamte czasy standard EGA (Enchanced Graphics Adapter). Był on zgodny z MDA i CGA wprowadzając jednocześnie tryby 320 x 200 i 640 x 350, z wyświetlaniem 16 kolorów dostępnych z palety 64-kolorowej. EGA była także cyfrową kartą graficzną wymagającą monitorów TTL. W roku 1987 pojawiła się karta PGA oferująca tylko jeden tryb: 640 x 480 przy 256 kolorach. Mimo takich możliwości karta nie przyjęła się na rynku i szybko odeszła w zapomnienie.

Narodziny VGA

Parametry, które oferowała karta EGA, zdecydowanie zwiększały walory użytkowe komputera z kolorowym monitorem, w stosunku do parametrów karty CGA. Nadal jednak nie był to sprzęt o cechach, które pozwalałyby na prowadzenie prac projektowych wspomaganych komputerem (CAD). Do tego celu miedzy innymi opracowano kartę VGA (ang. Video Graphics Array). Była ona zgodna ze standardami CGA, MDA i EGA (ale nie Hercules!). Oryginalna karta VGA może pracować w wielu trybach graficznych, np.: 16 kolorów z rozdzielczością 640 x 480 punktów (tryb 12) lub 256 kolorów z rozdzielczością 320 x 200 punktów (tryb 13). Możliwość uzyskania tak szerokiej liczby palety kolorów (256K=262144) wynika z faktu, iż karta VGA wyposażona jest w konwertory C/A. Karta VGA wymaga współpracy z monitorami o specjalnych parametrach: częstotliwości odchylenia poziomego równej 31,5 kHz, wejść analogowych RGB, itd Zasadę pracy karty ilustruje poniższy rysunek.



Pamięć obrazu RAM podzielona jest na cztery mapy bitowe (ang. Bit Planes) po 64 KB każda. Czterobitowa informacji CO - C3 wybiera jeden z 16 rejestrów palety. Rejestry te (podobnie jak w EGA) zawierają 6-bitowe numery kolorów (R'G'B'RGB). W ośmiu pierwszych rejestrach znajduje się informacja o następujących kolorach: w rej. 0 - kolor czarny (R'G'B'RGB = 000000), rej 1 - kolor niebieski (000001), rej. 2 - kolor zielony (000010), rej. 3- kolor cyan (000011), rej. 4 - kolor czerwony (000100), rej. 5 - kolor purpurowy (000101), rej. 6 - kolor brązowy (000110), rej. 7 - kolor biały (000111). W rejestrach o numerach 8-15 znajdują się te same kolory w wersji rozjaśnionej (na pozycjach R'G'B' w rejestrach 8 - 15 ustawione są jedynki logiczne). Sześciobitowa kombinacja (R'G'B'RGB = P5, P4, P3, P2, P1, P0) wybranego rejestru palety (zaadresowanego bitami C0 - C3) adresuje 1 z 64 rejestrów z zestawu 256 rejestrów 18-bitowych w jakie wyposażony jest VIDEO - konwerter cyfrowo - analogowy (ang. VIDEO-Digital-to-Analog Converter, VIDEO-DAC). Każdy rejestr tego zestawu podzielony jest na trzy 6-bitowe części. Pierwsza część zawiera informacje o kolorze czerwonym, druga - o zielonym, trzecia - o niebieskim. Każdy więc podstawowy kolor opisany jest za pomocą 6 bitów, co pozwala (po konwersji w przetwornikach DAC) uzyskać 64 poziomy napięć sterujących każdą katodą RGB. Dzięki temu na ekranie można uzyskać 64 poziomy nasycenia każdego podstawowego koloru (RGB), co po zmieszaniu daje 64*64*64 = 262144 kolory. Oczywiście w trybie EGA można wybrać maksymalnie 16 z 262144 kolorów. Sześciobitowa informacja binarna na wejściu przekształcana jest na jeden z możliwych 64 poziomów napięcia na wyjściu układu, sterujących jedną z katod RGB. Zapewnia to 64 odcienie podstawowego koloru RGB. W trybie 13 VGA każdemu punktowi na ekranie przyporządkowano 1 bajt pamięci obrazu RAM. Bajt ten wyczytany z pamięci i przesłany poprzez rejestry palety (bity P0, P1, P2, P3) oraz Rejestr Wyboru Kolorów (bity P4, P5, P6, P7) na wejście konwertera VIDEO-DAC, adresuje 1 z 256 rejestrów 18-bitowych. W rejestrach tych zawarte są 6-bitowe informacje o podstawowych kolorach. W trybie 13 VGA może więc uzyskać na ekranie 256 z 262144 możliwych kolorów. Karta VGA zawiera specjalizowany układ scalony tzw. Video Graphics Controller, zawierający kontroler CRT, kontroler graficzny, kontroler atrybutów i układy sekwencyjne. Uproszczony schemat blokowy karty VGA ilustruje powyższy rysunek. Karta posiada pamięć dynamiczną obrazu RAM o pojemności 256 KB. Tego typu pamięć charakteryzuje się multipleksowym wyprowadzaniem adresu ze względu na mała liczbę wyprowadzeń. Adres z kontrolera jest podawany za pomocą magistrali MD w dwóch fazach: część adresu (dla RAS=0 - ang. Row Address Strobe) jest wpisywana do rejestru adresowego wierszy wewnątrz pamięci, a pozostała (dla CAS=0 - ang. Column Address Strobe) do rejestru adresowego kolumn. W ten sposób, za pomocą ośmiu linii (np. MD0-MD7) można przesłać 16-bitowy adres. Po przesłaniu adresu, magistrala MD wykorzystywana jest do przesłania danych (za pomocą magistrali MD0 - MD31 można jednocześnie przesłać 4 bajty danych z/do 4 bloków pamięci). Graficzny kontroler scalony generuje również impulsy synchronizacji poziomej HS i pionowej VS oraz steruje pracą konwertera VIDEO-DAC (liniami P0 - P7 adresuje 1 z 256 rejestrów wewnętrznych DAC, natomiast linią PCLK - Pixel Clock dostarcza impulsów zegarowych). Karta VGA połączona jest z procesorem za pomocą 19-bitowej magistrali adresowej i 8-bitowej magistrali danych. W trybie tekstowym rolę generatora znaków pełni blok pamięci RAM oznaczony na rysunku symbolem PLANE 2. Blok ten ładowany jest przez system BIOS kilkoma zbiorami znaków o różnych krojach. Na rysunku 11 pokazano również uproszczony schemat blokowy scalonego sterownika VIDEO-GRAPHICS CONTROLLER. Układ ten zawiera kontroler CRT, do którego zadań należy adresowanie pamięci RAM podczas odświeżania ekranu. Magistralą MEMORY ADDR. (MA) poprzez multiplekser adresowy wysyłany jest adres, który za pomocą MD0-MD31 wybiera żądaną komórkę w pamięci RAM.(256 KB). Kontroler CRT generuje również impulsy synchronizacji VS i HS. Dane odczytane z pamięci obrazu, ładowane są za pomocą układów odczytu RAM do rejestrów R.Latch. W trybie tekstowym rolę generatora znaków pełni blok pamięci PLANE 2. Dane z tego bloku magistralą MD16 - MD23 poprzez rejestry R.Latch (uzupełniane w układach Blink-Logic i Cursor-Logic o informację o migotaniu znaku i sposobie wyświetlania kursora) ładowane do rejestru przesuwnego, skąd przesyłane są szeregowo na jedno z wejść adresowych multipleksera atrybutów (S0). Multiplekser ten wykorzystuje trzy wejścia 4-bitowe, adresowane sygnałami S1 i S0. Gdy sygnał S1=0 (tryb tekstowy), szeregowa informacja z rejestru przesuwnego poprzez wejście S0 adresuje jedno z dwu wejść: 00 lub 01 multipleksera. Na wejścia te podawany jest kod atrybutu (informacja o kolorze znaku - na wejście 01, natomiast na wejście 00 - informacja o kolorze tła). Na wyjściu multipleksera atrybutów pojawi się więc na przemian informacja o kolorze znaku lub tła, w zależności od wartości bitu na wejściu S0. W trybie graficznym dane wyczytane z pamięci RAM przesyłane są magistralą MD0 - MD31 do rejestrów przesuwnych grafiki (R0 - R3), w których następuje zamiana na postać szeregową. Cztery bity C0 - C3 z wyjść szeregowych rejestrów, przesyłane są na wejście 1X multipleksera atrybutów. Wejście to adresowane jest bitem S1 (GRAPH = "1") dla trybu graficznego. Wyjście multipleksera atrybutów adresuje jeden z 16 rejestrów 6-bitowych. W trybie EGA na wyjściach P0 - P5 pojawia się zawartość wybranego rejestru. W trybie VGA tylko cztery bity P0 - P3 pobierane są z rejestrów palety. Pozostałe P4 - P7 pochodzą z rejestru wyboru kolorów. Bajt P0 - P7 adresuje jeden z 256 rejestrów w zewnętrznym konwerterze VIDEO-DAC. W trybach kolorowej grafiki CGA (numery trybów - 4 i 5) do przechowywania informacji o obrazie, wykorzystywane są tylko dwie mapy bitowe: PLANE 0 i PLANE 1; stąd też użyte będą tylko dwa rejestry przesuwane grafiki R0 i R1; pojawią się więc tylko dwa sygnały C0 i C1, które mogą zaadresować cztery pierwsze rejestry palety. Zawartości tych rejestrów adresują 4 spośród 256 rejestrów konwertera VIDEO-DAC. Na ekranie możemy więc uzyskać tylko cztery kolory z 262144 możliwych. W trybie graficznym numer 7 informacja o treści obrazu przechowywana jest w jednej mapie bitowej PLANE 0. W trybach graficznych D, E, 10 i 12 (Hex) do przechowywania treści obrazu wykorzystywana jest cała pamięć RAM (wszystkie cztery mapy bitowe), co pozwala czterema bitami C0 - C3 zaadresować 16 rejestrów palety i tym samym uzyskać 16 kolorów na ekranie. W trybie 13 H pozwala uzyskać aż 256 kolorów , gdyż każdemu elementowi obrazu przypisano bajt danych w pamięci RAM. Bajt ten przesyłany jest z pamięci w następujący sposób: cztery młodsze bity (P0 - P3) pochodzą z rejestrów palety (w trybie tym zawartości rejestrów równe są ich numerom); cztery starsze bity (P4 - P7) przesyłane są poprzez rejestr wyboru kolorów. Tryb 13 H przy 256 kolorach na ekranie, zapewnia rozdzielczość 320x200 punktów. Aby tę rozdzielczość poprawić należy użyć pamięci o mniejszym czasie dostępu. Czas wyświetlania jednego elementu obrazu (punktu) wynosi ok. 39 ns, przy rozdzielczości 640 punktów w linii. Ponadto należy zwiększyć pojemność pamięci obrazu. Karty VGA mogą również współpracować z monitorami monochromatycznymi typu Mono-VGA. Dzięki temu, na ekranie można uzyskać 64 poziomy szarości. Do sterowania takim monitorem wykorzystywane jest wyjście analogowe G karty VGA (sygnał intensywności koloru zielonego). Oczywiście, w tym przypadku niezbędna jest korekcja zawartości rejestrów przetwornika VIDEO-DAC. Korekcja ta polega na wyliczeniu ważonej sumy intensywności kolorów podstawowych RGB.