Если устройства графического ввода (сканеры, видеограбберы, цифровые
фотоаппараты) пока еще относительно редки (хотя, по мере развития цифровой
фотографии, положение быстро меняется), то устройствами графического вывода
снабжается каждый современный настольный и переносной компьютер. Многие
встраиваемые приложения также имеют хотя бы небольшие, но дисплеи, чаще
всего жидкокристаллические.
Два основных практически применяемых типа дисплейных устройств — это электронно-лучевые
трубки, используемые в кинескопах телевизоров и мониторах настольных
компьютеров, и уже упоминавшиеся жидкокристаллические
дисплеи. Устройства других типов — матрицы светодиодов и газоразрядные
("плазменные") панели пока что дороги в производстве, либо не
всегда приемлемы по качеству, поэтому — во всяком случае, на момент написания
этой книги — еще не находят массового применения.
Принцип действия ЭЛТ широко известен. Изображение в этих устройствах формируется
катодным лучом — пучком электронов, испускаемых отрицательно заряженным
электродом. Вспомогательные электроды и электромагниты фокусируют луч,
а два набора управляемых электромагнитов — катушки горизонтальной и вертикальной
Рис. 9.24. Электронно-лучевая трубка
Для формирования цветного изображения используются три фокусируемых
со смещением катодных луча и маски, обеспечивающие попадание каждого из
лучей на участки предназначенного для него цветного люминофора.
Чтобы изображение занимало весь экран, луч (или тройка лучей) проводится
по сложной траектории, которая приведена на рис. 9.25. Генерация этой
траектории достигается простой подачей пилообразного напряжения на катушки
развертки. При этом частота "пилы" горизонтальной развертки
называется частотой строчной развертки, а вертикальной, соответственно,
частотой кадровой развертки. Соотношение кадровой и строчной частот равно
количеству строк в кадре (несколько строк приходится на кадровый гасящий
импульс, поэтому видимых строк на экране чуть меньше, чем следует из соотношения
частот).
Рис. 9.25. Развертка ЭЛТ
Катушки развертки не могут мгновенно изменить направление магнитного поля, поэтому и обратный ход луча как по вертикали, так и по горизонтали происходит не мгновенно. Чтобы луч на обратном ходе не был виден устройство управления ЭЛТ должно генерировать кадровый (для вертикально обратного хода) и строчный гасящие импульсы (рис. 9.26).
Рис. 9.26. Строка развертки ЭЛТ
Вертикальное разрешение изображения соответствует количеству видимых
строк на экране. Горизонтальное разрешение определяется двумя факторами:
частотой, с которой схемы управления ЭЛТ способны модулировать луч и,
у цветных мониторов, разрешением маски кинескопа. Второй параметр указывают
в паспортных данных кинескопов под названием размер
точки (dot pilch). У большинства мониторов первый параметр обычно
более или менее соответствует второму. Электронно-лучевые трубки громоздки,
создают сильные электромагнитные помехи и сами чувствительны к ним и,
наконец, имеют высокое энергопотребление, но они во много раз дешевле
всех альтернативных способов генерации изображений высокого качества и
высокого разрешения.
Жидкокристаллические экраны основаны на способности некоторых органических
соединений — жидких кристаллов — менять свою прозрачность и другие оптические
свойства под воздействием электрического поля. Жидкокристаллический экран
представляет собой две стеклянные или прозрачные пластиковые пластины
(обкладки), на которые нанесены полупрозрачные металлические электроды.
Пространство между пластинами заполнено жидким кристаллом. За пластинами
находится подложка — у черно-белых дисплеев зеркальная или черная, у цветных
дисплеев — цветная. Для повышения контрастности изображения подложка нередко
подсвечивается.
Подавая напряжение на электроды, контроллер ЖКД
может избирательно делать прозрачными те или иные участки экрана и, таким
образом, формировать различные изображения. Изменяя напряжение, можно
в определенных пределах управлять яркостью, или, скорее, контрастностью
изображения. В современных дисплеях высокого разрешения используется более
сложный способ формирования цветного изображения, чем просто разноцветная
подложка: в таких дисплеях используется жидкий кристалл, поворачивающий
плоскость поляризации проходящего через него света. Этот угол зависит
от напряжения на электродах и от частоты световой волны. Снабдив обкладки
экрана поляризационными фильтрами, можно управлять цветом участка экрана.
Формы электродов ЖКД отличаются большим разнообразием. Нередко применяются
прямоугольные матрицы точек, позволяющие создавать произвольные растровые
изображения. Однако многие приложения — часы, калькуляторы, простые дисплеи
— не требуют произвольных изображений, поэтому часто изготавливают пластины
с электродами сложной формы, соответствующей элементам цифр и букв и/или
различным пиктограммам.
ЖКД низкого разрешения дешевы, компактны, имеют низкое энергопотребление
и находят широкое применение в самых разнообразных устройствах — сотовых
и стационарных телефонах, калькуляторах, часах, измерительных и бытовых
приборах. Однако высококачественные цветные ЖКД большой площади представляют
собой весьма дорогостоящие устройства, цена которых составляет более половины
цены современных портативных компьютеров.
Подача напряжения на каждую пару электродов ЖКД отдельным контроллером
недопустимо дорога. К счастью, пара электродов представляет собой конденсатор,
который способен некоторое время без вмешательства извне сохранять электрический
заряд и, следовательно, изображение. Наличие у пиксела электрической емкости
позволяет свести поддержание изображения на жидкокристаллической матрице
к аналогу развертки ЭЛТ — периодическому сканированию электродов с подачей
на них напряжения, соответствующего яркости элемента изображения (рис.
9.27).
При изменении изображения емкость элементов матрицы скорее вредна — быстрая
перезарядка элемента требует больших токов, поэтому многие ЖКД, в том
числе и дисплеи старых переносных компьютеров, обладают высокой инерционностью
изображения. В современных высококачественных дисплеях каждый пиксел экрана
снабжается собственной усилительной схемой, способной быстро перезарядить
электроды. Такие экраны называются активной матрицей. Широкое распространение
получили активные матрицы с усилителями, реализованными на основе TFT
(Thin Film Transistor— тонкопленочный транзистор), нанесенных на обкладки
экрана.
Несмотря на коренное различие физических способов формирования изображения
в электронно-лучевых трубках и жидкокристаллических панелях, функции контроллера
этих устройств весьма похожи и сводятся к передаче значений яркости элементов
изображения с частотой, соответствующей частоте развертки дисплея. Контроллер,
предназначенный для работы с ЭЛТ, должен уметь также делать в потоке данных
паузы, соответствующие строчным и кадровым гасящим импульсам и должен
быть несколько сложнее. Однако общая структура графически контроллеров
для дисплеев различных типов удивительно похожа.
Рис. 9.27. Схема формирования изображения на жидкокристаллическом дисплее
Типичный графический контроллер (рис. 9.28) состоит из:
Структура видеобуфера определяется цветовой глубиной дисплея. У черно-белых дисплеев обычно один бит соответствует одному пикселу, а один бант видеобуфера — восьми последовательным пикселам изображения. У черно-белых с градацией яркости ("черно-бело-серых") и цветных дисплеев видеобуфер должен иметь по несколько битов на пиксел.
Рис. 9.28. Схема графического контроллера
Это достигается двумя способами. Первый состоит в организации
битовых плоскостей, когда в видеобуфере последовательно хранятся
сначала младшие биты значений пикселов, затем — вторые и т. д. (рис. 9.29).
При этом восемь последовательных пикселов описываются несколькими байтами,
размещенными в разных частях видеобуфера. Эта, немного странная на первый
взгляд, логика кодирования изображения удобна тем, что облегчает перенос
программного обеспечения, предназначенного для работы с черно-белыми дисплеями,
на цветные дисплеи.
Второй подход, чаще применяемый при больших цветовых глубинах, состоит
в кодировании одного пиксела одним или несколькими последовательными байтами
видеобуфера. Графические контроллеры современных персональных компьютеров
имеют цветовую глубину 24 или 32 бита, что соответствует трем или четырем
байтам на пиксел. Этого хватает, чтобы (с учетом Диапазона яркости современных
дисплеев) представить любой цвет, который человеческий глаз способен отличить
на дисплее от другого.
Контроллеры с такой цветовой глубиной обычно предоставляют по одному байту
для кодирования каждой из трех цветовых составляющих цветного изображения.
Устройства с меньшими цветовыми глубинами часто реализуют более сложную
схему кодирования цвета, называемую отображением
цветов (color mapping). Значение пиксела при этом представляет
собой индекс в специальной таблице, палитре. Элементы палитры — это значения
компонентов пиксела.
Рис. 9.29. Битовые плоскости
Большинство контроллеров включают в себя также более или менее сложную
логику управления содержимым видеобуфера со стороны центрального процессора.
Простейшим случаем такого управления является отображение видеобуфера
на адресное пространство системной шины. Это, привлекательное во многих
отношениях, решение не всегда применимо, например, если адресное пространство
процессора слишком мало или плотно занято, либо устройство не подключается
непосредственно ни к системной, ни к периферийной шине (например, контроллеры
жидкокристаллических дисплеев, предназначенных для использования во встраиваемых
приложениях, используют для общения с микропроцессором шину PC или нестандартные
протоколы последовательных портов).
При простой нехватке адресного пространства нередко видеобуфер отображают
на адресное пространство не целиком, а частями, банками. При этом контроллер
должен иметь специальный регистр — селектор банка.
Более радикальное решение, применимое даже при подключении через последовательный
порт, состоит в том, чтобы предоставить процессору два регистра — адрес
в видеопамяти и регистр данных, соответствующий ячейке видеопамяти по
этому адресу. Это решение можно считать вырожденным случаем банков видеопамяти,
когда банк имеет размер один байт. При этом требуется всего два регистра
в адресном пространстве ввода-вывода (этот метод редко применяется с видеобуферами
объемом более 64 Кбайт), и доступ к видеобуферу замедляется минимум вдвое.
При использовании последовательных шин и портов адрес и данные передаются
последовательно. Многие графические контроллеры с такой организацией предоставляют
различные способы доступа с автоинкрементом, позволяющие передать в буфер
последовательность байтов без явного доступа к регистру адреса.
Контроллеры с битовыми плоскостями часто предоставляют групповые операции
над байтами, кодирующими биты смежных пикселов.
Контроллеры, применяемые в современных персональных компьютерах и рабочих
станциях, содержат более или менее сложные видеопроцессоры, способные
без участия ЦПУ рисовать в видеобуфере различные графические примитивы,
начиная от прямых линий и окружностей, и заканчивая проекциями и/или фотореалистичными
изображениями трехмерных объектов, описываемых языком OpenGL.
Видеоконтроллеры представляют собой довольно сложные устройства. Подробные
описания современных видеоконтроллеров можно найти во многих доступных
книгах, например в [Гук 2000]. В документе [www.microchip.com
PICMicrol описывается встроенный контроллер жидкокристаллического дисплея
микроконтроллера PIC.