VGA

VGA (на английски: Video Graphics Array – видеографичен масив) е видео стандарт с аналогов сигнал на изхода. Стандартът е разработен през 1987 г. от IBM.[1]

Техническа информация

[редактиране | редактиране на кода]
  • 256 KB Video RAM
  • Режими с 16 цвята и 256 цвята
  • Цветна палитра с 262 144 възможни стойности (по шест бита за червен, зелен и син цвят)
  • Избираема тактова честота 25 MHz или 28 MHz
  • 720 пиксела максимална хоризонтална разделителна способност
  • Максимум 480 линии
  • Опреснителни честоти до 70 Hz
  • Равнинен (на английски: planar) режим: до 16 цвята (4 битови равнини)
  • Режим на пакетирани пиксели (на английски: packed-pixel), също наричан Mode 13h: 256 цвята
  • Поддръжка на хардуерно скролиране
  • Поддръжка на някои команди за растерна графика
  • Еднотактови побитови отмествания
  • Поддръжка на разделянето на екрана

Синхронизация на сигнала

[редактиране | редактиране на кода]

Предназначената стандартна стойност за хоризонтална честота на VGA е точно два пъти по-голяма от използваната в NTSC-M видео системите и благодарение на това VGA успява да предложи оптимални решения за TV изходи или външни VGA-TV конверторни кутии по време на разработката си. Формулата за хоризонталната честота на VGA е следната: (60 ? 1001) ? 525 kHz = 4500 ? 143 kHz ? 31.4685 kHz.

Всички други честоти, използвани от VGA са произлезли от тази формула чрез манипулация на цели числа посредством умножение или деление.

Поради факта, че точността на кварцовите осцилатори е лимитирана, в реални условия VGA картите могат да имат малко по-различни стойности.

Всички извлечени синхронизации (тези които все още използват 25.2 и 28.3 MHz-ови и 31.5 KHz-ови кристали) могат да бъдат широко променяни със софтуер, който заобикаля фърмуер интерфейса на VGA и комуникира директно с хардуера му, както са правили много MS-DOS базирани игри. Въпреки това, само стандартните модове, или модове, които използват точно същите H-Sync и почти същите V-Sync тайминги, се очаква да работят на оригиналните VGA монитори от 1980-те и 1990-те години. Използването на други тайминги всъщност може дори да повреди такива монитори и именно затова тази тема е била избягвана от софтуерните издатели. По-късните „multisync“ CRT монитори са обикновено много по-гъвкави и в комбинация с по-късните SVGA видео карти имат възможността да възпроизведат много по-голям диапазон от резолюции и честоти на опресняване.

За най-често срещания VGA режим (640x480 „60 Hz“) хоризонталните тайминги са:

Параметър Стойност Мерна единица
Тактова честота на пиксела 25.175 MHz[10]
Хоризонтална честота 31.469 kHz
Брой хоризонтални пиксели 640
Полярност на хоризонтална синхронизация Отрицателна
Общо време за всяка линия 31.778 µs

Вертикалните тайминги са:

Параметър Стойност Мерна единица
Вертикални линии 480
Полярност на вертикална синхронизация Отрицателна
Вертикална честота 59.94 Hz
Общо време за всеки кадър 16.683 ms

Използва се VGA конектор тип DE-15. Този конектор пасва на изхода на разширителна карта ISA.

Алтернативен метод на свързване на VGA устройства, които поддържат високо качество на сигнал, са BNC конекторите, които обикновено се използват в група от пет, по един за червен, зелен, син, вертикално синхронизиране и хоризонтално синхронизиране. С BNC, коаксиалните кабели напълно се предпазват от край до край и не са възможни външни смущения.

Въпреки това, BNC конекторите са сравнително по-големи от конектори тип DE-15 и е нужно повече внимание, за да е сигурно, че всеки кабел е в правилното гнездо. Също така, BNC конекторите не поддържат допълнителни сигнални линии, например +5 V, DDC и DDC2.

Стандартни текстови режими

[редактиране | редактиране на кода]

BIOS предлага някои текстови режими за VGA адаптер, които имат 80x25, 40x25, 80x43 или 80x50 текстова решетка. Всяка клетка може да избере един от 16 възможни цвята за своя преден план и 8 цвята за фон; допуснатите осем фонови цвята са онези без висок интензитет на битови слоеве. Всеки знак/атрибут може да се направи мигащ. Знаците/атрибутите, на които е зададено да мигат, ще мигат синхронизирано. Тази опция за целия екран може да бъде заменена с възможността всички 16 цвята да се използват като фон. CGA адаптерът предлага същите опции, както е въведено от IBM.

Подобно на EGA, VGA поддържа до 512 различни едновременно изобразявани символа на екрана, макар и в само 8 цвята на преден план, чрез отделянето на един цветен бит, като най-висок бит от броя на символите. Глифове с разделителна способност 80x25 обикновено се изработват от 9x16 пиксела. Потребителите могат да дефинират собствен набор от символи като заредят персонализиран шрифт върху картата. Тъй като обемът на шината за данни на VGA е само 8 бита, подобно на всички негови предшественици, тя обикновено има празна пикселна колона между всеки два хоризонтални съседни глифа. Въпреки това част от шините за данни се правят и с обем 9 бита като се повтаря тяхната последна колона, вместо да се въвежда празна колона. Деветбитови шини за данни се най-вече онези, които определят хоризонтално свързаните IBM видеосигнали-box-drawing characters.

Функционалността е неразривно свързана с цифровите сигнали C0hex до DFhex, където всички хоризонтално свързващи символи се намират в Codepage 437 и неговите най-често срещани производни функции. Същият трик с повтаряне на последната колона е бил вече използван на по-стария MDA хардуер с неговите 9х14 пикселови глифове. Опцията може да бъде изключвана на VGA, когато се зарежда шрифт, в който тези цифрови сигнали не изобразяват видеосигнали.

Стандартни графични режими са:

  • 640×480 с 16 цвята
  • 640×350 с 16 цвята
  • 320×200 с 16 цвята
  • 320×200 с 256 цвята (Mode 13h)

Освен собствените стандартни режими, VGA поддържа и графичните режими на предшествениците си (EGA, CGA и MDA).

VGA адаптерите обикновено поддържат и монохромен и цветен режим, въпреки че монохромният режим почти никога не се използва и поддръжката на пълния комплект от MDA текстови режим атрибути (подчертаване) често липсва. Черният и бял текст на почти всички модерни VGA адаптери се рисува, използвайки сив на цвят текст върху черен фон, в цветен режим.

Адресиране на паметта

[редактиране | редактиране на кода]

Видео паметта на VGA е достъпна чрез основната компютърна памет в адресен прозорец 0xA0000 – 0xC0000 при реален режим. Обикновено това са:

  • 0xA0000 за EGA и VGA графични режими (64 KiB)
  • 0xB0000 за монохромен текстов режим (32 KiB)
  • 0xB8000 за цветен текстов режим и CGA-съвместими графични режими (32 KiB)

Поради използването на различни сегменти от паметта в различните режими на работа, е възможно на една и съща машина да има монтирани монохромен адаптер (т.е. MDA или Hercules) и цветен адаптер като VGA, EGA или CGA. В началото на 1980-те години, това обикновено било използвано за показване на Lotus 1-2-3 таблици във висока резолюция на монохромен дисплей и едновременно с това графики на CGA дисплей с ниска разделителна способност. Много програмисти също използвали монохромна карта за показване на информацията за грешки, докато програмата работи в графичен режим на другата карта. Няколко дебъгери, като Turbo Debugger на Borland, D86 (от Алън Дж Cox) и Майкрософт CodeView можели да работят на два монитора. И Turbo Debugger или CodeView можели да се използват за отстраняване на грешки в Windows. Имало и DOS драйвери на устройства, като например ox.sys, които изпълняват симулация на сериен интерфейс на монохромен дисплей и, например, позволявали на потребителя да получава краш съобщения от Windows, без използване на сериен терминал. Възможно е също така да се използва командата „MODE MONO“ в DOS за пренасочване на изхода към монохромния дисплей.

VGA цветовата гама е съвместима с EGA (Enhanced Graphics Adapter) и CGA (Color Graphics Adapter) адаптери и добавя ново ниво за поддръжка на 256 8-битови цвята. CGA може да изобразява 16 фиксирани цвята, а EGA разширява това, с помощта на 16 адресирани палитри, всеки съдържащ цветна стойност от 64 цветни палитри. Стойността на палитрите на EGA по подразбиране са избрани да приличат на цветовете на CGA, но е възможно да се запази всеки цвят. Сигналът от запазените палитри на EGA пренася група от шест сигнални линии на EGA изхода, с две линии отговарящи на един цвят.

VGA допълнително разширява тази система, като добавя 256 адресирани цвята, 3×6 бита всяка за общо 262 144 цвята. Тези цветови адреси са по подразбиране заложени да съвпадат с 64-те цвята по подразбиране на EGA. Стойностите от тези адреси се транспортират до цифрово-аналогов преобразувател, който от своя страна транспортира три сигнала, един за червен, зелен и син.

Както EGA използва цветовите стойности на CGA, за да адресира запазена палитра, така VGA хардуера използва запазените палитри, но не на сигнално ниво, а като индекс от адресите на цветовете. Затова в 16-цветен режим, стойността на цвета от RAM сочи към адрес на палитра и този адрес избира адрес на цвят.

В 256-цветен режим, адресите на палитрите са зададени без ефект и на преобразувателя е зададено да комбинира две 4-битови цветни стойности в оригиналната 8-битова стойност, от това следва, че 8-битовото число на цвета във видео паметта е точно адресният индекс на цвета, който ще се използва.

  1. pctimeline.info, архив на оригинала от 21 февруари 2015, https://web.archive.org/web/20150221071923/http://pctimeline.info/ibmpc/ibm1987.htm, посетен на 6 януари 2017