Смекни!
smekni.com

Видеоадаптеры 2 (стр. 2 из 4)

В настоящее время вырабатывается стандарт на видеоадаптеры с локальной шиной. Такой стандарт носит в настоящее время название VL-bus и разрабатывается комитетом по стандартизации VESA. Для подключения к компьютеру видеоадаптеров с локальной шиной необходимо, чтобы материнская плата имела специальный разъем.

3. Архитектура видеоадаптеров EGA и VGA

Видеоадаптеры EGA и VGA условно делятся на шесть логических блоков, описание которых приведены ниже:

1. Видеопамять. В видеопамяти размещаются данные, отображаемые адаптером на экране дисплея. Для EGA и VGA видеопамять обычно имеет объем 256 Кбайт, на некоторых моделях SVGA и XGA объем видеопамяти может быть увеличен до 2Мбайт. Видеопамять находится в адресном пространстве процессора и программы могут непосредственно производить с ней обмен данными. Физически видеопамять разделена на четыре банка, или цветовых слоя, использующих совместное адресное пространство.

2. Графический контроллер. Посредством его происходит обмен данными между центральным процессором и видеопамятью. Аппаратура графического контроллера позволяет производить над данными, поступающими в видеопамять и расположенными в регистрах-защелках простейшие логические операции.

3. Последовательный преобразователь. Выбирает из видеопамяти один или несколько байт, преобразует их в поток битов, затем передает их контроллеру атрибутов.

4. Контроллер ЭЛТ. Контроллер генерирует временные синхросигналы, управляющие ЭЛТ.

5. Контроллер атрибутов. Преобразует информацию о цветах из формата. в котором она хранится в видеопамяти, в формат, необходимый для ЭЛТ.

6. Синхронизатор. Управляет всеми временными параметрами видеоадаптера. Синхронизатор также управляет доступом процессора к цветовым слоям видеоадаптера.

Видеопамять адаптеров EGA и VGA разделена на четыре банка, или на четыре цветовых слоя. Эти банки размещаются в одном адресном пространстве таким образом, что по каждому адресу расположено четыре байта (по одному байту в каждом банке). Какой из банков памяти используется для записи или чтения данных процессором, определяется при помощи установки нескольких регистров адаптера.

Так как все четыре банка находятся в одном адресном пространстве, то процессор может производить запись во все четыре банка за один цикл записи. Благодаря этому некоторые операции, например, заполнение экрана, происходят с большей скоростью. В том случае, когда запись во все четыре банка не требуется, можно разрешать или запрещать запись во все четыре банка при помощи регистра разрешения записи цветового слоя.

Для операции чтения в каждый момент времени может быть разрешен с помощью регистра выбора читаемого цветового слоя только один цветовой слой.

В большинстве режимов видеоадаптера видеопамять разделена на несколько страниц. При этом одна из них является активной и отображается на экране. При помощи функций BIOS или программирования регистров видеоадаптера можно переключать активные страницы видеопамяти. Вывод информации может производиться как в активные, так и в неактивные страницы видеопамяти.

3.1. Текстовый режим.

В текстовых режимах на экране могут отображаться только текстовые символы. Стандартные текстовые режимы позволяют выводить на экран 25 строк по 40 или 80 символов. Для кодирования каждого знакоместа экрана используется два байта: первый из них содержит ASCII код отображаемого символа, второй - атрибуты символа. ASCII коды символов экрана располагаются в нулевом цветовом слое, а их атрибуты - в первом цветовом слое. Атрибуты определяют цвет символа и цвет фона. Благодаря такому режиму хранения информации достигается значительная экономия памяти. При отображении символа на экране происходит преобразование его из формата ASCII в двумерный массив пикселей, выводимых на экран. Для этого преобразования используется таблица трансляции символов (таблица знакогенератора). Таблица знакогенератора хранится во втором слое видеопамяти. При непосредственном доступе к видеопамяти нулевой и первый цветовые слои отображаются на общее адресное пространство с чередованием байтов из слоев. Коды символов имеют четные адреса, а их атрибуты - нечетные.

При установке текстовых режимов работы видеоадаптеров EGA и VGA BIOS загружает таблицы знакогенератора из ПЗУ во второй цветовой слой видеопамяти. В последствие таблицы используются при отображении символов на экране. Благодаря этому можно легко заменить стандартную таблицу знакогенератора своей собственной. Это широко применяется при русификации компьютеров.

EGA и VGA обеспечивают возможность одновременной загрузки соответственно четырех и восьми таблиц знакогенераторов в память. Каждая таблица содержит описание 256 символов. Одновременно активными могут быть одна или две таблицы знакогенератора. Это дает возможность одновременно отображать на экране до 512 символов. При этом один бит из байта атрибутов указывает, какая из активных таблиц знакогенератора используется при отображении данного символа. Номера активных таблиц знакогенератора определяются регистром выбора знакогенератора.

EGA поддерживает два размера для матриц символов: 8х8 и 8х14 пикселов. Один из этих наборов символов автоматически загружается BIOS в видеопамять при выборе текстового режима. Так как VGA имеет большую разрешающую способность, то его матрица символа имеет размеры 9х16. На каждый символ отводится 32 байта. Первая таблица имеет в видеопамяти адреса: 0000h-1FFFh, вторая: 2000h-3FFFh, ... , восьмая: E000h-FFFFh.

Каждый символ, отображаемый на экране в текстовом режиме, определяется не только своим ASCII кодом, но и байтом атрибутов. Атрибуты задают цвет символа, цвет фона, а также некоторые другие параметры. Биты D0-D2 байта атрибутов задают цвет символа, D4-D6 цвет фона. Если активной является одна таблица знакогенератора, то D3 используется для управления интенсивностью цвета символа, что позволяет увеличить количество воспроизводимых цветов до 16. Если одновременно определены две таблицы знакогенератора, то D3 задает таблицу знакогенератора, которая будет использована для отображения данного символа. Бит D7 выполняет две различные функции в зависимости от состояния регистра режима контроллера атрибутов. Данный бит либо управляет интенсивностью цвета фона, увеличивая количество отображаемых цветов до 16, либо разрешением гашения символа, в результате чего символ на экране будет мигать. По умолчанию данный бит управляет разрешением гашения символа.

4. Видеопамять в графических режимах.

Распределение видеопамяти в графических режимах работы адаптеров отличается от распределения видеопамяти в текстовых режимах. Ниже рассмотрена структура распределения видеопамяти отдельно для каждого графического режима.

4.1. Режимы 4 и 5.

Это режимы низкого разрешения (320х200), используются 4 цвета. Поддерживаются видеоадаптерами CGA, EGA и VGA. У EGA и VGA видеоданные расположены в нулевом цветовом слое, остальные слои не используются. Для совместимости с CGA отображение видеопамяти на экране не является непрерывным: первая половина видеопамяти (начальный адрес В800:0000) содержит данные относительно всех нечетных линий экрана, а вторая (начальный адрес В800:2000) - относительно всех четных линий. Каждому пикселю соответствует два бита видеопамяти. За верхний левый пиксель экрана отвечают биты D7 и D6 нулевого байта видеопамяти. В режимах 4 и 5 имеются два набора цветов: стандартный и альтернативный: 00 - черный; 01 - светло-синий (зеленый); 10 - малиновый (красный); 11 - ярко-белый (коричневый).

4.2 Режим 6.

Режим 6 является режимом наибольшего разрешения для CGA (640х200). Видеоадаптеры EGA и VGA используют для хранения информации только нулевой слой. Как и в режимах 4 и 5 первая половина видеопамяти отвечает за нечетные линии экрана, а вторая половина - за четные. В данном режиме на один пиксель отводится один бит видеопамяти. Если значение бита равно 0, то пиксель имеет черный цвет, а если единице - то белый.

4.3. Режимы 0Dh и 0Еh.

Разрешающая способность в режиме 0Dh составляет 320х200, а в режиме 0Eh 640х200 пикселов. Данный режим поддерживается только видеоадаптерами EGA и VGA . Для хранения видеоданных используются все четыре цветовых слоя. Адресу видеопамяти соответствуют четыре байта, которые вместе определяют восемь пикселов. Каждому пикселю соответствуют четыре бита - по одному из каждого цветового слоя. Четыре битана пиксель, используемые в данных режимах, позволяют отображать 16 различных цветов. Запись в каждый из этих цветовых слоев можно разрешить или запретить при помощи разрешения записи цветового слоя. Управление доступом к цветовым плоскостям осуществляется при помощи регистров: Адресный регистр графического контроллера, порт вывода для этого регистра 3CEh; биты 0-3 содержат адрес регистра, остальные не используются. Регистр цвета: для доступа к этому регистру значение адресного регистра должно быть 00h, адрес порта вывода для этого регистра 3CFh; биты 0-3 определяют значение для соответствующей плоскости, остальные не используются. Регистр разрешения цвета: для доступа к этому регистру значение адресного регистра должно быть 01h, адрес порта вывода для этого регистра 3CFh; биты 0-3 означают разрешение соответствующего слоя, а остальные не используются. Регистр выбора плоскости для чтения: для доступа к этому регистру значение адресного регистра должно быть 04h, адрес порта вывода для этого регистра 3CFh; биты 0-2 содержат номер плоскости для чтения, а остальные не используются.

5. Немного технических подробностей.

Прежде чем стать изображением на мониторе, двоичные цифровые данные обрабатываются центральным процессором, затем через шину данных направляются в видеоадаптер, где они обрабатываются и преобразуются в аналоговые данные и уже после этого направляются в монитор и формируют изображение. Сначала данные в цифровом виде из шины попадают в видеопроцессор, где они начинают обрабатываться. После этого обработанные цифровые данные направляются в видеопамять, где создается образ изображения, которое должно быть выведено на дисплее.
Затем, все еще в цифровом формате, данные, образующие образ, передаются в RAMDAC, где они конвертируются в аналоговый вид, после чего передаются в монитор, на котором выводится требуемое изображение.