Видеоустройства ПЭВМ

ВИДЕОУСТРОЙСТВА ПЕРСОНАЛЬНЫХ ЭВМ И ИХ ОСНОВНЫЕ ХАРАКТЕРИСТИКИ.
Видеоустройства ПЭВМ состоят из 2-х частей: монитора и адаптера. Пользователь
видит только монитор - похожий на телевизор прибор, а адаптер спрятан в корпус
машины. На экране монитора воспроизводится видеосигнал, поступающий от адаптера.
В самом мониторе находится только электронно-лучевая трубка и схемы развертки.
В адаптере содержатся логические схемы, преобразующие данные, поступающие для
отображения, в видеосигнал. Адаптер обеспечивает формирование также строчных и
кадровых синхроимпульсов, необходимых для управления работой схем развертки. Так
как электронный луч “пробегает” экран примерно за 1/50 долю секунды (период
кадровой развертки - 20 миллисекунд),а изображение на экране монитора меняется
довольно редко, то видеосигнал, поступающий на монитор, должен снова и снова
порождать (регенерировать) одно и то же изображение. Для его хранения в адаптере
имеется буферная память (видеобуфер).
Каждому участку видеобуфера соответствует своя область на экране монитора.
Информация в видеобуфер заносится центральным процессором компьютера программным
путем. А адаптер периодически, с частотой смены кадров, считывает видеобуфер и
преобразует его содержимое в видеосигналы, поступающие на управляющий электрод
ЭЛТ монитора.
Центральный процессор имеет к видеобуферу точно такой же доступ, как и к
основной памяти машины. Благодаря этому несложное изображение можно формировать
на ПЭВМ очень быстро - в тысячи раз быстрее, чем на традиционной ЭВМ,
соединенной с дисплеем медленным интерфейсом.
Монитор и адаптер должны быть совместимы, но это вовсе не означает, что они
должны жестко соответствовать друг другу. Напротив, большинство адаптеров
способно работать с мониторами нескольких типов, правда не всегда в оптимальном
режиме.
Совместимость монитора с тем или иным типом адаптера во многом определяется его
характеристиками.
Характеризуя монитор, прежде всего говорят о его цветности - цветной или
монохромный (одноцветный). Далее мониторы отличаются разрешением. Наконец, они
подразделяются на RGB и композитные, а также на аналоговые и цифровые. Особый
класс образуют многочастотные мониторы - “мультисинки”.
Разрешение монитора измеряется количеством строк в кадре и числом элементов
изображения (“пиксел”, а проще говоря - точек) в строке. Оно обозначается
формулой H x V. Например, на мониторе разрешением 720 х 348 изображается 348
строк по 720 пиксел в строке. Практически все профессиональные мониторы имеют
разрешение 640 х 200 и более. В настоящее время чаще всего встречаются мониторы
с разрешением от 640 х 350 до 720 х 480.
Луч монитора обычно пробегает строку за строкой, слева направо и сверху вниз
(горизонтальная и вертикальная развертки),а затем возвращается к началу верхней
строки кадра. Частота, с которой луч пробегает весь экран, называется частотой
кадров или частотой вертикального сканирования, и обычно равна 50-70 Гц.
Частота, с которой выводятся строки, называется частотой строк. Она примерно
равна числу строк в кадре и у подавляющего числа мониторов лежит в пределах
15-40 кГц. Наконец, частота, с которой на экран выводятся точки, т.е. с которой
адаптер может переключать видеосигнал, примерно равна числу пиксел в строке,
умноженному на частоту строк и составляет десятки мегагерц. В то время, пока
электронный луч возвращается к началу следующей строки (обратный ход
горизонтальной развертки) и к вершине кадра (обратный ход вертикальной
(кадровой) развертки),на экран ничего не выводится. В это время центральный
процессор может обновлять информацию в видеобуфере.
Изредка в мониторах используется чересстрочная развертка, используемая в обычных
телевизорах: сперва выводятся все нечетные строки кадра, а затем луч
возвращается на верх экрана и начинает роспись четных строк.
Известно, что каждый цвет можно разложить на сумму трех основных цветов -
красного, зеленого и синего. Различные соотношения интенсивностей основных
цветов дают целую гамму цветов и оттенков. На этом принципе основана работа
цветных мониторов (и телевизоров). Экран цветного кинескопа покрыт фосфором трех
цветов. Участки каждого цвета расположены обычно в виде перемежающихся узких
полосок с шагом около 1/3 мм. Каждый участок возбуждается своим электронным
лучом, однако все три луча движутся синхронно и всегда освещают соседние точки.
При управлении монохромным монитором видеосигнал должен нести информацию об
уровне яркости каждой точки экрана, а при управлении цветным монитором - об
уровнях яркости трех основных цветов, образующих цвет пиксела.
Различия между RGB и композитными мониторами связано с их сопряжением с
адаптером. RGB - мониторы получают сигналы яркости трех основных цветов по
отдельным проводам (красный, зеленый и синий по-английски red, green и blue,
сокращенно RGB). Композитные мониторы получают все три сигнала по одному каналу,
как в обычном телевизоре. Другими словами, сначала три сигнала объединяются в
адаптере в один, а затем уже в мониторе вновь разделяются. Очевидно, что
объединение и разделение сигналов вносит помехи, поэтому композитные мониторы
дают гораздо худшие качества изображения и в настоящее время используются редко.
Различия между аналоговыми мониторами во многом совпадают с различием между
композитными и RGB-мониторами. Так, для управления цветным RGB аналоговым
монитором нужны три канала - по одному на каждый основной цвет. Амплитуда
сигнала в каждом канале, а следовательно и интенсивность основных цветов, может
меняться плавно. Это обеспечивается высококачественной дорогостоящей
электроникой адаптера, однако большие затраты компенсируются возможностью
получать любые цвета любой точки экрана.

Рис.1. Схема подключения CGA-монитора к адаптеру.
(Уровни всех сигналов соответствуют ТТЛ-уровням: “1” - 2,4 В; “0” - 0-0,4 В).
Цифровые мониторы, напротив, обеспечивают вывод лишь ограниченного числа цветов.
Они позволяют включать/выключать по одному каналу только один уровень яркости.
Управление несколькими уровнями интенсивности приходится разделять по разным
проводам, как цвета в RGB -мониторах. Так, цифровой монитор Color Grafics
Monitor фирмы IBM, чаще называемый просто CGA-монитором, получает информацию о
цвете точки по четырем линиям. Три из них включают/выключают основные цвета
(рис.1),а сигнал по четвертому увеличивает яркость сразу всех цветов.
Такая система управления называется RGBI, буква I обозначает интенсивность и
позволяет отображать различные пикселы в одном из 16 возможных цветов. В таблице
1 показана зависимость цвета пиксела от кодовой комбинации на RGBI - линиях.
Еще один представитель цифровых мониторов фирмы IBM - усовершенствованный
цветной монитор EGD (Enhanged Graphics Display), называемый обычно EGA -
монитором. Он допускает вывод 64-х цветов, и для этого принимает сигнал по шести
каналам, обозначаемых буквами rgbRGB. Линии r,g,b управляют 50-процентным
уровнем интенсивности каждого из основных цветов.
До последнего времени использование аналоговых мониторов было затруднительным
из-за отсутствия относительно дешевых адаптеров, обеспечивающих формирование
аналоговых, а не цифровых сигналов управления цветом. Ситуация существенно
изменилась в 1987г.,когда фирма IBM начала выпуск адаптера VGA (Video Graphics
Array) и предназначенных для работы с ним аналоговых мониторов. VGA поддерживает
одновременную работу с любыми 256 цветами из палитры, состоящей из 262144
цветов. И для этого необходимо только три линии связи с монитором - R,G и B.
Цветовая палитра, воспроизведенная аналоговым монитором, практически
безгранична. Следует отметить, что VGA является универсальным адаптером, так как
его программный интерфейс совместим с программным интерфейсом
усовершенствованного графического адаптера EGA. Совместимость означает, что
большинство программ, написанных для EGA, без изменений пойдут и на VGA.
В настоящее время различные фирмы выпускают несколько сотен видов адаптеров.
Такое разнообразие адаптеров натолкнуло разработчиков японской фирмы NEC на
создание универсального монитора, который мог бы работать под управлением
широкого класса адаптеров. Этот монитор получил название “мультисинк”. Он
способен автоматически синхронизироваться с различными адаптерами, меняя для
этого в широких пределах частоту кадров, строк и видеосигналов. Кроме того, этот
монитор можно переключать из цифрового режима работы в аналоговый и обратно. В
результате своей универсальности мониторы “мультисинк” обладают еще одним важным
достоинством: они резко удешевляют нестандартные подсистемы видео. Дело в том,
что разработка и подготовка производства адаптеров требует намного меньших
затрат, чем налаживание производства мониторов. Теперь изготовители адаптеров
могут рассчитывать на “мультисинки”.
Мониторы одного класса, обладающие одинаковыми принципиальными характеристиками,
различаются конструкцией. Среди наиболее важных параметров назовем размер
экрана, его форму, цвет фосфора монохромных мониторов. Некоторые характеристики
понятны без пояснений (вес, дизайн, расположение ручек управления и др.) и мы не
станем их обсуждать.
Монохромные мониторы выпускаются с кинескопом, покрытым зеленым, желтым и белым
фосфором. Желтые мониторы предпочтительны для работы в светлом помещении, а
зеленые - в затемненном.
Белые монохромные мониторы появились сравнительно недавно. Они особо хороши для
ввода и редактирования текстов в настольных издательских системах и вообще при
имитации работы с бумагой. По-английски их так и называют: paper-white, т.е.
белые как бумага.
Экраны различных мониторов имеют размеры от 22 до 61 см по диагонали (9 - 24
дюйма). Для большинства работ оптимальный размер экрана равен 30 - 35 см (12 -
14 дюймов). При этом получается достаточно четкое изображение и буквы мало
утомляют глаза.
У подавляющего числа мониторов горизонтальная сторона экрана относится к
вертикальной впропорции 4:3. Иногда встречаются мониторы с портретной
ориентацией (вертикальной) стороны и еще реже - квадратные. Мониторы с
портретной ориентацией используются в основном в настольных издательских
системах, где позволяют имитировать целую страницу текста.
Отражение от экрана постоянных источников света, особенно осветительных ламп,
мешает работе и портит зрение. Чтобы ослабить такие блики, экраны мониторов либо
изготавливают из матового стекла, либо наносят на него матовое покрытие.
Персональный компьютер обладает огромными возможностями наглядного представления
информации. Данные и различные объекты можно показать в цвете и движении. Умело
пользуясь этими возможностями компьютера, вы сможете создавать и оживлять
графические объекты, манипулировать цветом.
Но прежде всего Вы должны разобраться в аппаратных средствах.
Возможности визуального представления информации на персональном компьютере
определяются типом монитора и видеоадаптера, к которому он подсоединен. Обычно
стараются подобрать монитор, на котором полностью можно использовать возможности
видеоадаптера.
Видеоадаптер - это, как правило, отдельная плата, на которой расположены
микросхемы оперативной памяти самого адаптера (видеобуфер),контроллер дисплея и
микросхемы с программным обеспечением.
Адаптеры могут работать в одном из алфавитно-цифровых (текстовых) или
графических режимов. В алфавитно-цифровом режиме экран дисплея рассматривается
как текстовая страница с определенным количеством строк текста и знакомест
(символов) в строке. Обычно экранная страница содержит 25 строк по 80 знакомест
в строке, хотя возможны режимы 80*43 и 40*25. Каждому знакоместу на экране
соответствуют две смежные однобайтные ячейки памяти в видеобуфере адаптера.
Так, например, нулевому знакоместу в нулевой строке (строки и знакоместа в
экранной странице отсчитываются от нуля) соответствуют нулевая и первая ячейки
видеобуфера, а 79-тому знакоместу 24-й строки - соответственно 3998 и 3999
ячейки. Номер ячейки видеобуфера и позиция символа на экранной странице связаны
следующим выражением:
n=2*(80*k + b), (1) где n - номер ячейки видеобуфера;
k=0,1,2,..,24 - номер символьной строки на экране: b=0,1,2,..,79 - номер
знакоместа в строке;
2 - количество ячеек памяти, отводимых в видеобуфере для описания одного
символа;
80 - количество знакомест в строке.
Используя выражение (1), легко подсчитать объем памяти, необходимый для хранения
в видеобуфере одной символьной страницы с форматом 80*25 :
N=n max +2 =2*(80*24 +79)+2 = 4000 байт.
Для того, чтобы вывести какой-либо символ на экран, центральный процессор ПЭВМ
долен записать, как уже отмечалось, в видеобуфер двухбайтное слово. Первый байт
того слова содержит код символа и всегда записывается в четную ячейку
видеобуфера, второй байт - код атрибутов символа и записывается в ячейку с
нечетным номером.
Код символа - это целое число от 0 до 255. Каждому символу соответствует свой
код. Например, латинской букве “A” соответствует код “65”,а символу “?” - код
“63” и т.д. Причем первые 128 кодов (от “0” до “127”),в соответствии с
американским стандартным кодом для обмена информации ASCII (American Standart
Code for Information Interchange) отводится под строго определенный набор
символов. Остальные 128 кодов(от “128” до “255”) пользователь может отводить под
любые другие символы (обычно это символы национального алфавита, символы
псевдографики и др.).
Байт атрибутов символа содержит информацию о цвете символа, цвете фона, на
который должен накладываться символ и как должен отображаться символ - с
мерцанием или без. Структура байта атрибутов символа для адаптера CGA-монитора
представлена на рис.2.

Рис.2. Структура байта атрибутов.
Назначение 7-го бита байта атрибутов может программно измениться. Пользователь
может определить этот бит как бит интенсивности цветов фона (аналогично биту
3,определяющему интенсивность цветов символа),или же как бит, задающий мерцание
символа.
Итак, Вы уже знаете, что в буфере хранится информация, которая много о чем
говорит адаптеру - какие символы и в каких позициях экранной страницы они должны
выводиться, какой цвет каждого символа и на каком фоне должен отображаться этот
символ и др.
Как же адаптер преобразует эту информацию в видеосигналы, т.е. в сигналы,
единственно понятные монитору?
Вы уже знаете, что мельчайшим элементом изображения на экране монитора является
пиксел (picture element). Наименьшим же элементом экранной страницы является
знакоместо, в котором может одновременно отображаться только один символ.
Большинство видеоадаптеров ПЭВМ определяют знакоместо как матрицу из 8 пикселов
по вертикали (8 телевизионных строк) и такого же количества пикселов по
горизонтали. В этом случае между форматом символьной страницы на экране монитора
и его разрешением справедливы следующие соотношения :
N=V/8; M=H/8, (2)
где N и M - максимальное количество символьных строк и символов в строке
соответственно; V и H - разрешение монитора по вертикали и горизонтали
соответственно.
(Определите текстовый формат для монитора с разрешением 640*200 пиксел) Любой
символ может быть отображен в знакоместе путем активизации тех или иных пикселов
матрицы. Так, например, для отображения буквы “A” должны быть активизированы 4-й
и 5-й пикселы в 1-й строке матрицы,3-й и 6-й - во второй строке,2 и 7 - в
3,4,6,7 и 8-й строках, а в 5-й строке необходимо активизировать 2,3,4,5,6 и 7-й
пик-сел.(Проверьте это, нарисовав матрицу из 8-ми строк и 8-ми столбцов и
закрасив указанные элементы матрицы).
Состояние элементов матрицы для любых символов легко кодировать двоичным кодом и
хранить в памяти адаптера, если условиться, что состояние элементов (пикселов)
каждой отдельной строки матрицы хранится в отдельной байте, причем в
старшем(седьмом) бите каждого байта хранится состояние 1-го пиксела, в шестом
бите - состояние 2-го пиксела и т.д.до нулевого бита, который характеризует
состояние 8-го пиксела матричной строки(пикселы и строки в матрице символа
отсчитываются с левого верхнего угла матрицы вправо и вниз соот-ветственно).
Таким образом,каждый символ может быть описан восемью байтами. Первый байт
хранит состояние восьми пикселов первой строки матрицы,второй байт - состояние
пикселов второй строки и т.д. Ак-тивность того или иного пиксела задается
установкой соответствую-щего ему разряда в байте строки. Для рассмотренного
примера с бук-вой “A” последовательность байт будет следующей:
0 0 0 1 1 0 0 0 - байт 1-й строки символа
0 0 1 0 0 1 0 0 - байт 2-й строки символа
0 1 0 0 0 0 1 0 - байт 3-й строки символа
0 1 0 0 0 0 1 0 - байт 4-й строки символа
0 1 1 1 1 1 1 0 -- 5-й --
0 1 0 0 0 0 1 0 -- 6-й --
0 1 0 0 0 0 1 0 -- 7-й --
0 1 0 0 0 0 1 0 -- 8-й --
Такие восьмибайтные массивы, описывающие различные символы, хранятся в
специальной памяти видеоадаптера, называемой знакогенератором. А однобайтные
ASCII-коды символов (эти коды загружаются микропроцессором в видеобуфер)
являются указателями на ячейку памяти в знакогенераторе, в которой хранится байт
первой строки матрицы данного символа. Адрес этой ячейки вычисляется умножением
кода символа на 8,т.е. на длину массива матрицы символа. Например, байт первой
строки матрицы символа, код которого, скажем, “55”,будет хранится в 55*8=440-й
ячейке памяти знакогенератора.
Теперь самое время вспомнить, какую роль играют синхроимпульсы. Вспомнили?
Совершенно правильно! Они обеспечивают управление генераторами строчной и
кадровой разверток монитора, т.е. задают координаты электронного луча на экране
ЭЛТ. А т.к. синхроимпульсы вырабатываются адаптером, то он всегда знает в какой
точке экрана в данный момент находится электронный луч. Но адаптер знает и
другое, а именно - как распределены знакоместана экране и с какими ячейками
памяти видеобуфера эти знакоместа связаны. Поэтому, когда электронный луч после
обратного хода по кадру возвращается в начало кадра, то адаптер обращается к
первым двум ячейкам видеобуфера и считывает код символа, который должен
отображаться в самом первом знакоместе страницы, и его атрибуты. Код символа
поступает в знакогенератор и обеспечивает выборку байта первой строки матрицы
данного символа. Следует отметить, что байты строк матрицы выводятся с
знакогенератора побитно. Сначала выводится старший (седьмой) бит байта, затем
шестой и т.д. Частота, с которой выводятся биты, соответствует частоте вывода
точек на экран. Эта частота примерно равна числу пиксел в строке
(640),умноженному на частоту строк (15,75кГц) и составляет десятки мегагерц.
Таким образом, моменты вывода бит байта строки совпадают с моментами прохождения
электронным лучом соответствующих пиксел на экране. После вывода последнего
(нулевого)бита байта строки матрицы электронный луч переместится в начало
следующего знакоместа. Адаптер считывает из видеобуфера код и атрибуты символа,
который должен отображаться во втором знакоместе и процесс повторяется. После
прохода электронным лучом первой телевизионной строки (не путайте телевизионную
и символьную строки - последняя состоит из восьми телевизионных),на экран будут
выведены первые строки матриц первых 80 символов. Во второй телевизионной строке
будут выведены вторые строки матриц первых 80-и символов и т.д. После прохода
электронным лучом восьмой телевизионной строки первая символьная строка будет
выведена на экран полностью и адаптер перейдет к выводу второй символьной строки
аналогичным образом. А после вывода последней символьной строки электронный луч
возвращается в левый верхний угол экрана (на начало кадра) и повторяется вывод
первой символьной строки, затем второй и т.д. Обновление информации в
видеобуфере осуществляется центральным процессором во время обратных ходов
электронного луча по кадру и строкам. Адаптеримеет доступ к видеобуферу только
во время прямого хода луча. Таким образом исключается возможность одновременного
доступа к видеобуферу процессора и адаптера. Следует отметить, что такое
разделение времени доступа к видеобуферу должно осуществляться программным
путем, а не аппаратно.
И последнее, что нам необходимо рассмотреть - это формирование цветов символа и
фона. Этот процесс хорошо иллюстрирует рисунок 3. Здесь можно обойтись и без
излишних комментариев, отметим только, что выводимые из знакогенератора сигналы
обеспечивают вывод на RGBI-ли-нии монитора значения 3-0 разрядов кода атрибутов,
когда текущий пиксел активен, и 7-4-й разряды - когда пиксел пассивный.
Особенностью работы видеоадаптера в графическом режиме является то, что в этом
режиме адресуется каждый пиксел экрана. Так, например, при работе адаптера в
четырехцветном графическом режиме с разрешением 320*200 пиксел в видеобуфере
каждый пиксел описывается двумя битами. Поэтому для адресации поля в 320*200
пиксел потребуется память видеобуфера обьемом 16 тысяч байт. В каждом байте
описывается четыре соседние (по строке) пиксела. Между номерами ячеек памяти в
видеобуфере и точками на экране наблюдаются следующие зависимости : первый
четыре пиксела первой телевизионной строки описываются в первом байте
видеобуфера, вторые 4 пиксела - во втором байте и т.д. Адаптер постоянно следит
за координатами электронного луча и синхронно с его движением считывает
соответствующие ячейки видеобуфера. Считанный байт имеет следующую структуру :
Следует отметить, что пользователь может программным путем изменить
(переназначить) указанные комбинации С1 С0 цвета на следующие:
зеленый --> голубой
красный --> сиреневый
коричневый --> белый.
Т.е. в альтернативном варианте, например, для комбинации C1=”0”,
а C0=”1” цвет пиксела будет не зеленый, а голубой.
Цвет фона может быть выбран любым из 16 цветов, указанных в таблице 1. Этот цвет
назначается пользователем программным путеми хранится в специальном регистре
видеоадаптера - регистре выбора цвета.
Как программировать видеоадаптер и управлять выводом информации на экран
монитора Вы узнаете на следующем занятии. А в заключение отметим, что
рассмотренный принцип работы характерен для цветного графического адаптера -
CGA. Этот адаптер был разработан фирмой IBM еще в 1981 г. и широко используется
до настоящего времени. Правда, появившийся в 1985г. усовершенствованный
графический адаптер EGA, существенно потеcнил CGA, а появление в 1987г. адаптера
VGA, позволило обеспечить персональные ЭВМ еще более мощными видео средствами.