Budowa, zasada działania karty graficznej i programowanie ka.doc

(389 KB) Pobierz
CEL ĆWICZENIA

1. CEL ĆWICZENIA .

         Celem ćwiczenia jest zapoznanie się z budową oraz z zasadą działania karty graficznej.

Z programową obsługą kart graficznych podczas, której należy programowo zmieniać podstawowe parametry kart graficznych takie jak tryb wyświetlania , rozdzielczość oraz zmianę koloru wyświetlanego punktu na ekranie monitora. Należy zapoznać się ze sposobem wyświetlania informacji zarówno w trybie tekstowym jak i graficznym.

 

2. PODSTAWY TEORETYCZNE .

 

2.1. PODSTAWY ARCHITEKTURY KARTY VGA .

         Karta graficzna VGA została opracowana i wprowadzona do produkcji przez firmę IBM w roku 1987, z przeznaczeniem dla mikrokomputerów rodziny PC i PC/2. Architektura sterownika VGA stanowiła rozszerzenie poprzedniego standardu EGA, pochodzącego z roku1984. Zmiany w budowie wprowadzono w taki sposób, by karta VGA mogła emulować tryby tekstowe i graficzne występujące w poprzednich sterownikach obrazu firmy IBM (MDA, CGA i  EGA).

         Najważniejsze dla użytkownika nowe cechy karty VGA to większa matryca znaków trybach alfanumerycznych (16x9 punktów) oraz nowe tryby graficzne: 16-kolorowy o rozdzielczości 640x480 punktów oraz 256-kolorowy o rozdzielczości 320x200 punktów. Ponadto barwy wyświetlane na ekranie (zarówno w trybach 16- jak i 256- kolorowych) można wybierać z palety zawierającej 218 (262144) wartości.

        Od  1987 roku szereg producentów oferuje scalone układy kontrolerów graficznych bazujące na architekturze VGA, lecz posiadające szereg rozszerzeń. Karty zbudowane w oparciu o te układy określane są handlową nazwą „Super” lub „Super VGA”. Niestety nazwa ta nie oznacza już ścisłego standardu. „Super” – rozszerzenia różnią się między sobą tak, że ich wykorzystanie wymaga innych technik programowania dal układów poszczególnych producentów.

 

         Pod względem funkcjonalnym sterownik monitora standardu EGA można podzielić na cztery główne elementy funkcjonalne:

 

-          kontroler CRT (ang. CRT Controller, CRTC),

-          sekwencer (ang. sequencer),

-          kontroler graficzny (ang. Graphics Controler, GDC),

-          kontroler atrybutów (ang. Attribute Controler, ATC),

-           

karta VGA posiada dodatkowo piąty element:

 

-          blok przetworników cyfrowo – analogowych (C/A; ang. DAC – Dogital to Analog Converters).

 

         Z poziomu procesora karta EGA i VGA jest „widoczna” jako zbiór portów w przestrzeni wejścia  - wyjścia oraz obszar pamięci obrazu położony, w zależności od trybu pracy, między adresami A000:000h a B000:FFFFh. Bezpośrednie jej programowanie sprowadza się zatem do zapisu i odczytu odpowiednich wartości do i z pamięci oraz portów wejścia  - wyjścia.

 

 

 

 

         Krata graficzna VGA wykonana jest w postaci 16-bitowego modułu przeznaczonego do instalacji w 16-bitowym slocie ISA (PCI) na płycie głównej. W skład karty wchodzi wiele układów elektronicznych m.in. układ VLSI o wielkiej skali integracji mogący realizować wszystkie funkcje standardu zwanego jako ”VGA”.

 

W skład karty wchodzą:

 

¨      pamięć ekranu – na kartach EGA \VGA zamontowana jest pamięć dynamiczna RAM służąca jako pamięć ekranu, czyli przechowująca informację o wyświetlanym obrazie. Pamięci towarzyszą układy nadzorujące dostęp do niej. Pamięć ekranu zajmuje fragment normalnej przestrzeni adresowej CPU. Procesor ma do nie swobodny dostęp, jednak karta generuje sygnały wstrzymujące chwilowo procesor (tzw. wait states) jeżeli nastąpi konflikt.                                                                                                                                                  Na oryginalnej karcie EGA zamontowano 64kB pamięci RAM, zachowując możliwość jej rozbudowy do 256 kB, blokami po 64kB. Obecnie spotykane karty EGA mają zamontowane pełne 256 kB RAM. Wszystkie karty VGA mają przynajmniej 256 kB pamięci ekranu. Większość kart realizujących rozszerzony standard VGA ( tzw. Super VGA ) ma większą pamięć ekranu – typowo 512 kB albo 1 MB.

 

¨      ROM BIOS – karty EGA \ VGA dysponują własną pamięcią ROM, zawierająca rozszerzenie standardowego BIOS komputera. EGA \ VGA BIOS przejmuje realizacje funkcji BIOS związanych z obsługą ekranu. W pamięci ROM karty zapisane są również zestawy definicji znaków. Podczas wyświetlania tekstu definicje znaków nie są jednak pobierane z pamięci ROM,  lecz z RAM, gdzie muszą zostać uprzednio przepisane.

 

¨      kontroler CRT – jest to zestaw programowalnych liczników, generujących zgodnie z zadanymi parametrami wszystkie przebiegi czasowe niezbędne przy wyświetlaniu obrazu, tzn. częstotliwości impulsów synchronizacji, sygnały wygaszania itd.. Steruje we / wy z monitora, zajmuje się odświeżaniem dynamicznej pamięci obrazu, ” taktuje” pobieranie danych z pamięci ekranu. Kontroler CRT generuje sprzętowo kursor, podkreśleni i nadzoruje obsługę pióra świetlnego na karcie EGA. Układ  ten zawiera 26 rejestrów wewnętrznych w przypadku karty EGA i 24 dla sterownika VGA. Rejestry  te są dostępne pośrednio przez dwa porty, pełniące  rolę  rejestru  indeksowego (adresowego) i rejestru danych. Aby odczytać lub wpisać nową wartość do rejestru wewnętrznego należy wpisać jego numer (indeks) do portu indeksowego a następnie odczytać lub zapisać port będący rejestrem danych.   Bezpośrednie  operacje  na  rejestrach  sterownika  CRT są niezbędne jedynie w specyficznych zastosowaniach  graficznych takich jak:

 

-          programowanie własnych, niestandardowych trybów rozdzielczości,

-          przewijanie (scrolling) obrazu,

-          podział ekranu na dwie części wyświetlające niezależne obrazy (splitting),

-          operacje na kursorze.

 

¨      sequencer - blok Sequencera kontroluje dostęp do pamięci ekranu. Z jednej strony blokuje  lub  umożliwia  procesorowi  zapis  do  niej, z drugiej strony - nadzoruje  cykliczny  dostęp  do  pamięci  układów wyświetlających obraz. Kontroluje podstawowe przebiegi czasowe (częstotliwość generowania pojedynczych pikseli  - tzw. 'dot clock' oraz liczb‘ pikseli przypadającą na linię znaku). Zawiera 6 rejestrów wewnętrznych, z którymi komunikacja programowa wygląda tak samo jak w przypadku sterownika CRT.

 

¨       Kontroler graficzny - układ ten może być potraktowany  jako prosty, wyspecjalizowany procesor udostępniający głównemu procesorowi komputera mechanizmy wyższego rzędu pozwalające na realizowanie operacji graficznych. Graphics Controller nie zapewnia realizacji takich funkcji, jak rysowanie wielokątów,  wypełnianie obszarów itp.,  pozwala jednak wybrać jeden z kilku  sposobów  zapisu i odczytu  pamięci ekranu, może automatycznie wykonywać funkcje   logiczne  (AND,  OR,  XOR)  przy  zapisie.  Ponadto kontroluje położenie pamięci ekranu w przestrzeni adresowej CPU. Zawiera 9 rejestrów  wewnętrznych dostępnych na tej samej zasadzie jak w przypadku sterownika CRT.

 

¨      serializer - układ ten przetwarza  informację o obrazie (w szczególności o kolorach  poszczególnych  elementów  obrazu)  zawartą w pamięci ekranu do postaci  akceptowanej  przez  Attribute Controller (kontroler atrybutów). Ponieważ  pamięć ekranu podzielona jest na rozłączne obszary, tzw. mapy bitowe, Serializer "składa" bity z poszczególnych map w jeden ciąg w celu prawidłowego określenia przez Attribute Controller numeru wzorca koloru.

 

¨      kontroler atrybutów - Na  karcie EGA układ ten odpowiedzialny jest za "składanie" danych z Serializera  i  informacji o aktualnie używanej palecie kolorów w cyfrowy sygnał  kolorów  GRB  dla monitora kolorowego albo w cyfrowy sygnał wizji dla monitora monochromatycznego. Na  karcie  VGA  Attribute Controller nie generuje cyfrowego sygnału kolorów  lecz  jedynie  wybiera  numer  rejestru Video Dac, który zawiera definicję  odpowiedniego  koloru wyświetlanego  punktu. Dla zachowania zgodności z EGA, Attribute Controller zawiera 16 rejestrów palety. Dostęp   do sześciu rejestrów wewnętrznych jest inny niż dla sterownika  CRT.  Zapis  lub odczyt (odczyt tylko dla VGA) odbywa się w sposób pośredni poprzez  jeden port, pełniący na przemian rolę rejestru indeksowego  (adresowego)  i  rejestru danych. Adres portu jest różny dla operacji zapisu i odczytu.

 

·         przetwornik analogowo – cyfrowy - Układ ten występuje jedynie na karcie VGA. Jest to przetwornik cyfrowo-analogowy, który zamienia cyfrową informację o kolorze, na sygnał analogowy dla monitora VGA. Zawiera on  256 rejestrów (zwanych rejestrami DAC), w których może przechowywać cyfrowe definicje 256 kolorów. Typowo, numer koloru elementu obrazu zapisany w pamięci ekranu, wskazuje na jeden z rejestrów  palety  Attribute Controllera. Rejestr palety zawiera numer rejestru  DAC, a wskazany w tam sposób rejestr DAC zawiera 18-bitową definicję koloru (co daje 262.144 możliwe barwy). Ta definicja zamieniana jest na sygnał analogowy. Ponadto  na  karcie  znajdują się liczne układy pomocnicze takie jak bufory lub generator kwarcowy i inne.

 

 

 

 

 

 

 

 

 

 

 

 

 

2.2. ZASADA DZIAŁANIA KARTY GRAFICZNEJ VGA .

 

         Sygnał kierowany z procesora do rejestrów karty VGA trafia do kontrolera  graficznego. Za pośrednictwem znajdujących się tam rejestrów dane  obrazowe  mogą być poddane  -  przed wpisaniem do pamięci karty - operacjom  logicznym  OR,  AND,  XOR,  przesunięciu  cyklicznemu w prawo, porównaniu z aktualnie wyświetlanymi  danymi  lub  zamaskowaniu, czyli zablokowaniu możliwości przesłania wybranych danych do pamięci. Aby dane z CPU mogły być wpisane do pamięci karty musi na to ‘wyrazić zgodę' sequencer. Posiada on możliwość blokowania wpisania danych do  map bitowych. Jeżeli dane ekranowe taką zgodą otrzymały to pamięć karty graficznej jest gotowa do przyjmowania danych.

         W następnej kolejności  dane przekazywane są do serializera, który zamienia je na postać  akceptowaną przez kontroler atrybutów. Jak już wiemy pamięć jest podzielona na rozłączne obszary (mapy bitowe), tak więc serializer składa odpowiednie bity w jeden ciąg.

         Złożone informacje wędrują do kontrolera atrybutów, który na podstawie nich określa numer rejestru Video DAC (wzorca koloru), określający kolor wyświetlanego  punktu.  Dane z kontrolera atrybutów przechodzą przez blok przetworników  C/A, gdzie są zamieniane  na  analogowe sygnały RGB wyświetlane bezpośrednio na ekranie monitora.

          W  procesie  wyświetlania obrazu ważną rolę odgrywa także kontroler CRT, którego podstawowe zadania zastały omówione w opisie budowy karty VGA.

 

SCHEMAT BLOKOWY PRZEDSTAWIAJĄCY BUDOWĘ KARTY VGA

 

 

 

sygnał  z CPU



 









SERIALZER

KONTROLER ATRYBUTÓW

KONTROLER

GRAFICZNY

PAMIĘĆ EKRANU









 



 

 

 

 

 

PRZETWORNIK CYFR.-ANALOG.

SEQUENCER

KONTROLER

CRT

ROM

BIOS











 



 



 

MONITOR



 

 

 

 

 

 

 

 

2.3. TRYBY PRACY STEROWNIKÓW OBRAZU .

 

 

Numer trybu

 

Rodzaj trybu

 

Rozmiar ekranu

 

Matryca znaku

 

Liczba kolorów

Stero-wnik obrazu

Org. pam. dla trybów graf.

Adres pocz. pam. obrazu

00/08

Tekstowy

40x25

#

16/8 poziomów szarości

C,E,V

 

$B800

01/81

Tekstowy

40x25

#

16/8

C,E,V

 

$B800

02/82

Tekstowy

80x25

#

16/8 poziomów szarości

C,E,V

 

$B800

03/83

Tekstowy

80x25

...
Zgłoś jeśli naruszono regulamin