Аппаратные интерфейсы ПК. Энциклопедия

Гук Михаил Юрьевич

Глава 8

Специализированные интерфейсы периферийных устройств

 

 

В этой главе описываются интерфейсы периферийных устройств, от самых необходимых (клавиатура, дисплей, мышь, принтер) до мультимедийных (видео- и аудиоустройства) и развлекательных (джойстик и его «родственники»).

 

8.1. Интерфейс клавиатуры

 

Традиционная клавиатура PC представляет собой унифицированное устройство ввода со стандартным разъемом и последовательным интерфейсом связи с системной платой. В настоящее время используются так называемые расширенные (enhanced) клавиатуры AT или PS/2, имеющие более 100 клавиш. Они вытеснили первые 84-клавишные клавиатуры AT и тем более клавиатуры XT. По электрическому интерфейсу клавиатуры XT и AT совпадают, за исключением того, что двунаправленный интерфейс позволяет клавиатуре AT принимать команды от системной платы. Однако по логическому интерфейсу они несовместимы (клавиатура AT иногда имеет переключатель режима XT/AT). Клавиатура PS/2 отличается от AT только исполнением разъема, при необходимости можно использовать переходник.

Клавиатуры имеют внутренний микроконтроллер, способный определить факты нажатия и отпускания клавиш, при этом можно нажимать очередную клавишу, даже удерживая несколько ранее нажатых. При нажатии клавиши клавиатура передает идентифицирующий ее скан-код. При удержании клавиши в нажатом положении через некоторое время клавиатура начинает автоповтор передачи скан-кода нажатия этой клавиши. Задержка автоповтора (typematic delay) и скорость автоповтора (typematic rate) для клавиатур AT программируются. Расширенная клавиатура позволяет выбирать 1 из 3 наборов скан-кодов.

С распространением шины USB появились клавиатуры и с этим интерфейсом; они имеют и встроенный хаб, например для подключения мыши USB. Клавиатура USB питается от шины. Для клавиатуры USB требуется специальная поддержка со стороны BIOS; она имеется в современных системных платах.

 

8.1.1. Интерфейс клавиатуры AT и PS/2

Для подключения клавиатуры предназначен последовательный синхронный двунаправленный интерфейс, состоящий из двух обязательных сигналов KB-Data и KB-Clock. Обе линии на системной плате подтягиваются резисторами к шине +5 В. На обеих сторонах интерфейса выходные сигналы низкого уровня формируются выходами элементов с открытым коллектором (стоком), а состояние линий может быть прочитано через входные линии контроллеров. Вид разъемов (со стороны задней панели) и назначение контактов приведены на рис. 8.1. Конструктивно возможны два варианта разъема — обычная 5-контактная розетка DIN (клавиатура AT) или малогабаритная розетка mini-DIN (PS/2). На этот же разъем через плавкий предохранитель поступает напряжение питания клавиатуры +5 В.

Рис. 8.1. Разъемы (вид со стороны контактов) подключения клавиатур: а — AT и б — PS/2

ВНИМАНИЕ

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

Процессор общается с клавиатурой через контроллер интерфейса клавиатуры — микроконтроллер 8042 или программно-совместимый с ним, установленный на системной плате. Для обмена информацией в основном используется порт 60h, из которого принимаются скан-коды. О необходимости чтения скан-кода контроллер сигнализирует процессору через аппаратное прерывание IRQ1, сигнал которого вырабатывается по каждому событию клавиатуры (нажатию и отпусканию клавиши). Задание параметров автоповтора, выбор таблиц скан-кодов, управление светодиодными индикаторами, а также управление режимом сканирования матрицы клавиш и запуск диагностического теста осуществляется командами, посылаемыми в этот же порт. Контроллер транслирует команды в посылки, направляемые к клавиатуре.

Работу двунаправленного интерфейса иллюстрирует рис. 8.2, а, где серым цветом помечены сигналы, формируемые контроллером, а черным — клавиатурой. В исходном состоянии обе линии «отпущены» выходными формирователями в состояние с высоким уровнем. Клавиатура может начать передачу данных в произвольный момент, когда интерфейс находится в покое. Клавиатура формирует стартовый бит (низкий уровень) на линии KB-Data и первый импульс KB-Clock, что является сигналом контроллеру о необходимости начала приема. После подъема KB-Clock она выводит 0-й бит данных на линию KB-Data, а затем и следующий импульс KB-Clock. Контроллер должен «защелкивать» принятый бит данных по спаду KB-Clock. Так передаются все 8 бит данных и бит паритета, дополняющий число единичных бит до нечетного. После синхроимпульса бита паритета контроллер клавиатуры должен сформировать импульс KB-Clock, подтверждающий прием байта (Ack). Если весь байт с битом паритета не будет получен контроллером за 2 мс, контроллер прекращает прием данного байта и фиксирует ошибку тайм-аута.

Рис. 8.2. Временные диаграммы интерфейса клавиатуры: а — прием посылки от клавиатуры, б — передача команды в клавиатуру

Обратная передача — вывод команды контроллера в клавиатуру — происходит несколько сложнее (рис. 8.2, б). Из состояния покоя контроллер устанавливает низкий уровень KB-Clock на 250 мкс и формирует старт-бит (низкий уровень) — это сигнал клавиатуре на прием команды. На него клавиатура должна ответить серией из 11 импульсов KB-Clock. По спаду очередного синхроимпульса контроллер выставляет очередной бит данных, а клавиатура его «защелкивает» по фронту формируемого ею же синхроимпульса. После бита паритета (9-й импульс) и единичного стоп-бита (10-й) на 11-м импульсе клавиатура формирует нулевой бит подтверждения (Ack). После этого контроллер формирует импульс KB-Clock (60 мкс), который является запросом на прием ответа клавиатуры. Контроллер ожидает окончания ответа на этот запрос не долее 20 мс и, если ответ не придет за это время, сформирует ошибку тайм-аута. Ошибка будет также в случае, если клавиатура не введет первый синхроимпульс за 15 мс от начала запроса или контроллер не примет данные, включая стоп-бит, за 2 мс с момента появления синхроимпульса бита 0.

На системной плате PC/XT контроллера 8042 не было, а интерфейс клавиатуры (однонаправленный) был реализован аппаратной логикой — регистром сдвига, параллельный выход которого подключается к входам порта А системного интерфейса 18255. По приему байта от клавиатуры вырабатывается аппаратное прерывание IRQ1, обработчик которого может прочитать принятый байт из порта 60h. С помощью бит 7 и 6 порта 61h возможны программная блокировка и сброс клавиатуры соответственно. Сброс клавиатуры XT осуществляется обнулением линии KB-Clock.

 

8.1.2. Контроллер интерфейса клавиатуры и мыши 8042/8242

Программируемый микроконтроллер клавиатуры i8042, KBC (keyboard controller), является посредником между клавиатурой, подключенной к нему по вышеописанному последовательному интерфейсу, и центральным процессором, с которым он связан через параллельный интерфейс. В микроконтроллере постоянно исполняется внутренняя микропрограмма, реагирующая на сигналы интерфейса клавиатуры и команды, поступающие от процессора. Эта микропрограмма (KBC BIOS) хранится во внутреннем масочном ПЗУ контроллера; внешне она недоступна, и контроллер можно рассматривать как устройство с заданными свойствами. Поскольку логика работы контроллера реализована программой, его реакция на команды процессора и сигналы интерфейса относительно медленная — время отклика измеряется десятками микросекунд. Помимо управления клавиатурой через программно-управляемые и программно-читаемые линии внешних портов контроллера формируются сигналы управления вентилем Gate A20, аппаратного системного сброса, а также считываются сигналы от конфигурационных джамперов системной платы. Контроллер 18242, кроме интерфейса клавиатуры, поддерживает аналогичный интерфейс дополнительного устройства — PS/2-Mouse. При инициализации (по аппаратному сбросу) контроллер установится в режим PS/2 или AT, в зависимости от состояния определенного вывода микросхемы. В режиме AT контроллер не выполняет функции интерфейса мыши и игнорирует все команды, относящиеся к мыши. Режим выбирается соответствующей настройкой BIOS Setup.

Связь контроллера с центральным процессором обеспечивается через 8-битную шину данных. Контроллер выбирается сигналом CS# от дешифратора адреса, срабатывающего по адресам 0060h и 0064h; внутренние регистры контроллера выбираются линией SA2 системной шины адреса. Чтение и запись выполняется по сигналам IORD# и IOWR#, генерируемых при выполнении процессором инструкций IN и OUT. Таким образом, контроллер располагается в пространстве ввода-вывода CPU по адресам 60h (регистр данных) и 64h (регистр состояния и команд), назначение регистров приведено в табл. 8.1. Из регистра данных считываются данные, принимаемые по интерфейсам от клавиатуры и мыши, а также данные, возвращаемые контроллером в ответ на адресованные ему команды. Запись в регистр данных используется для подачи команд и данных, адресованных к клавиатуре и мыши, а также данных для команд, адресованных контроллеру. В регистр команд записываются команды, адресованные контроллеру. Режим работы контроллера (разрешение работы интерфейсов клавиатуры и мыши и прерываний от них, трансляция скан-кодов и другие параметры) задается командным байтом, посылаемым в контроллер по специальной команде. Перед любой записью в контроллер необходимо убедиться в его готовности. Признаком готовности/занятости контроллера является значение бита 1 регистра состояния (порт 064h).

Таблица 8.1. Назначение регистров контроллера клавиатуры

Порт, R/W Назначение
060 RW Порт данных 8042
064 R Регистр состояния 8042 (R/O): бит 7 — ошибка четности при последнем обмене с клавиатурой; бит 6 — тайм-аут приемника/общий тайм-аут¹; бит 5 — тайм-аут передатчика/выходной буфер интерфейса мыши полон (Mouse_OBF)¹; бит 4: 0 — клавиатура на замке; бит 3:1 — последняя запись была командой, 0 — данными; бит 2: системный флаг, устанавливается в 0 по включении питания, в 1 — программно (что означает состояние завершения системного сброса Reset OK); бит 1: 1 — входной буфер интерфейса клавиатуры полон, 0 — готовность к приему команды/данных; бит 0: 1— выходной буфер интерфейса клавиатуры полон (OBF)
064 W Регистр команд 8042

¹Второе назначение бита относится к контроллеру i8242B, имеющему дополнительный интерфейс для подключения PS/2-Mouse.

Контроллер имеет два внешних порта, с помощью которых и реализуются последовательные интерфейсы, а также управление вентилем GateA20, сигналом сброса процессора и чтением сигналов от джамперов системной платы и ключа блокировки клавиатуры. Эти порты не имеют непосредственного отображения в пространстве адресов ввода-вывода PC; доступ к ним осуществляется через команды контроллера. Кроме этих портов контроллер имеет два специальных входа T0 и T1, которые могут считываться его микропрограммой и использоваться в качестве источников его внутренних прерываний (это не прерывания CPU). Каждая из двунаправленных интерфейсных линий KB-Data, KB-Clock, MS-Data и MS-Clock реализуется битом порта вывода и битом ввода. В режиме PS/2 для чтения линий KB-Clock и MS-Clock используются входы T0 и T1, в режиме AT вход T1 используется для линии KB-Data.

Порт ввода P1 доступен по команде C0h; в режиме PS/2 имеет следующее назначение бит:

♦ бит 7 — ключ блокировки клавиатуры (Keylock): 0 — клавиатура заблокирована;

♦ бит 6 — перемычка установки видеорежима: 0 — цветной (Color), 1 — монохромный (Mono);

♦ бит 5 — системная перемычка: 0 —замкнута;

♦ бит 4 — перемычка задания объема ОЗУ: 0 — 256 Кбайт, 1 — 512 Кбайт и более;

♦ биты 3, 2 — не используются;

♦ бит 1 — линия MS-Data;

♦ бит 0 — линия KB-Data.

В современных ПК используются только биты 0, 1 и 7; в режиме AT биты 0 и 1 не используются.

Порт вывода (P2), доступный для записи и чтения по командам D1h и D0h соответственно, имеет следующее назначение бит:

♦ бит 7 — линия KB-Data;

♦ бит 6 — линия KB-Clk;

♦ бит 5 — запрос прерывания от дополнительного интерфейса (IRQ12), в режиме AT не используется;

♦ бит 4 — запрос прерывания от клавиатуры (IRQ1);

♦ бит 3 — линия MS-Clk, в режиме AT не используется;

♦ бит 2 — линия MS-Data, в режиме AT не используется;

♦ бит 1 — вентиль линии адреса A20 (Gate A20, см. п. 12.3): 0 — A20 обнулен, 1 — управляется выводом процессора;

♦ бит 0 — альтернативный сброс процессора (сигнала INIT, без формирования общего сигнала сброса).

Приняв посылку от клавиатуры, контроллер выполняет внутреннюю трансляцию скан-кода (если это не запрещено командным байтом) и устанавливает в регистре состояния OBF=1, что приводит к генерации запроса прерывания IRQ1 (если это не запрещено командным байтом). В ответ на это хост должен считать данные (транслированный скан-код, префиксы и т.п.) из порта данных (60h). Трансляция обеспечивает программную совместимость клавиатур XT и AT (см. ниже) по чтению скан-кодов из порта 60h. При получении посылки от мыши контроллер не выполняет никаких преобразований и устанавливает в регистре состояния Mouse_OВF=1, что приводит к генерации запроса прерывания IRQ12 (если это не запрещено командным байтом). По этому сигналу данные от мыши должны быть считаны хостом из того же порта 60h. To же самое происходит и при программной записи байта в выходной буфер клавиатуры (код D2h) или мыши (код D3h), с установкой соответствующих битов состояния и генерацией запросов IRQ1 или IRQ12.

После получения команды, по которой контроллер должен возвращать данные, он устанавливает в регистре состояния OBF=1, что приводит к генерации запроса прерывания IRQ1 (если это не запрещено командным байтом). После этого данные должны быть считаны из порта данных (по адресу 60h). Если команда возвращает несколько байтов данных, прерывание генерируется для каждого байта.

Взаимодействие с контроллером осуществляется подачей команд — записью в регистр команд (по адресу 064h). Перед посылкой команды необходимо убедиться в готовности контроллера к ее приему — бит 1 порта 64h должен иметь нулевое значение. Подробно команды контроллера описаны в литературе [2, 8]. Контроллеры клавиатуры различаются версиями встроенного ПО, поэтому замена контроллера другим, с отличающейся версией ПО (KBC BIOS), может оказаться проблематичной — микросхема BIOS системной платы должна знать особенности контроллера клавиатуры.

 

8.1.3. Системная поддержка и программный интерфейс

Клавиатура имеет системную поддержку на уровне BIOS — обработку фактов нажатия и отпускания клавиш и обеспечение сервисов ввода символов с клавиатуры, а также управления ее параметрами (задержка и частота автоповтора) и индикаторами. Коды, принятые от клавиатуры ее контроллером, считываются и обрабатываются обработчиком аппаратного прерывания IRQ1 (вектор 09h). Результат обработки помещается в клавиатурный буфер, из которого по программному прерыванию Int 16h этот результат для дальнейшей обработки может быть извлечен значительно позже. Нажатие «системной» комбинации Ctrl+Alt+Del, клавиши PrintScreen (SysRq) и некоторых других к записи в клавиатурный буфер не приводит, а вызывает специальные процедуры. Прикладной программе, для которой требуется нестандартное использование клавиатуры (например, в качестве музыкальной), придется самой заниматься обработкой аппаратного прерывания IRQ1, перехватывая вектор Int 09h. Перехват этого вектора требуется и для вызова каких-либо функций резидентных программ по «горячим» клавишам.

При начальном тестировании процедура POST инициализирует клавиатуру (и ее контроллер) и запускает диагностический тест. Во время этого теста клавиатура мигнет всеми индикаторами, после чего может остаться включенным только индикатор NumLock (зависит от установки в BIOS Setup). В случае обнаружения ошибки клавиатуры на консоль выводится сообщение с возможным указанием скан-кода залипшей клавиши и обычно предлагается нажать клавишу F1 для продолжения. То же самое произойдет, если тест не обнаружит клавиатуру (например, из-за вывалившегося разъема или перегоревшего предохранителя), но в этом случае нажатия клавиши F1 будет уже недостаточно. Ошибку диагностики даст и подключение к компьютеру AT клавиатуры от XT, обратное «скрещивание» тоже неработоспособно. Чтобы начальная загрузка не останавливалась по ошибке (отсутствию) клавиатуры (POST будет дожидаться получения кода клавиши F1), тестирование клавиатуры может быть отменено настройкой CMOS Setup.

Для обслуживания клавиатуры используются ячейки ОЗУ из области данных BIOS (BIOS Data Area):

♦ 0:0417, 0:418 — флаги клавиатуры;

♦ 0:0419 — аккумулятор кода Alt-набора;

♦ 0:041A — указатель головы буфера (Buffer Head), 2 байта (модифицируется при помещении символа в буфер);

♦ 0:041C — указатель хвоста буфера (Buffer Tail), 2 байта (модифицируется при извлечении символа из буфера);

♦ 0:041E-0:042D — область кольцевого буфера (16 слов).

 

8.2. Интерфейсы мыши

 

Мышь является устройством, предназначенным для ввода координат и подачи команд. Интерфейс мыши применим для любого физического воплощения устройства (мышь, трекбол). По интерфейсу с компьютером различают три основных вида мышей: Bus Mouse, Serial Mouse и PS/2-Mouse. Появились мыши с интерфейсом USB, но они пока не получили широкого распространения (как и клавиатура USB, к порту которой удобно подключить мышь USB).

С интерфейсами Serial Mouse и PS/2-Mouse иногда возникают недоразумения. Хотя оба они последовательные, но имеют существенные принципиальные различия в уровнях сигналов, способе синхронизации, частоте и формате посылок.

♦ Интерфейс PS/2 использует однополярный сигнал с уровнями ТТЛ, питание мыши — однополярное с напряжением +5 В относительно шины GND. Интерфейс RS-232C, применяемый в Serial Mouse, использует двуполярный сигнал (см. п. 2.1) с уровнями срабатывания +3 В и -3 В, и для него требуется двуполярное (относительно шины GND) питание мыши.

♦ Интерфейс PS/2 использует две раздельные сигнальные линии, одну для передачи данных, другую — для сигналов синхронизации. Serial Mouse использует асинхронный способ передачи данных всего по одной линии.

Даже не рассматривая частоты и форматы посылок, становится ясно, что прямой совместимости между этими интерфейсами быть не может. Тем не менее выпускаются и продаются переходники (пассивные!), позволяющие выбирать способ подключения мыши. Эти переходники предназначены только для универсальных мышей, у которых встроенный контроллер по напряжению питания способен распознать, к какому интерфейсу его подключили, и установить соответствующий тип своего выходного интерфейса. Универсальные мыши не особо распространены, поэтому часто приходится слышать о неудачных попытках применения таких переходников к обычной мыши Serial Mouse или PS/2-Mouse.

Дополнительную путаницу вносят мыши для компьютера Macintosh, которые имеют разъем, с виду напоминающий разъем PS/2. Однако при ближайшем рассмотрении и неудачной попытке включения его в PC становится ясно, что разъемы эти разные, да и интерфейс совершенно иной.

 

8.2.1. Последовательные мыши — MS Mouse и PC Mouse

Serial Mouse — мышь с последовательным интерфейсом, подключаемая через 9- или 25-контактный разъем СОМ-порта (табл. 8.2). Эта мышь имеет встроенный микроконтроллер, который обрабатывает сигналы от координатных датчиков и кнопок. Каждое событие — перемещение мыши или нажатие- отпускание кнопки кодируется двоичной посылкой по интерфейсу RS-232C. Для передачи информации применяется асинхронная передача, а двуполярное питание, требуемое по протоколу RS-232, обеспечивается от управляющих линий интерфейса. Недостатком Serial Mouse является то, что она занимает СОМ-порт и требует монопольного владения его штатной линии прерывания (IRQ4 для COM1 и IRQ3 для COM2). Конечно, то, что для использования мыши порту COM1 требуется именно прерывание IRQ4, является недостатком не самой мыши, а ее программного драйвера, но для пользователя, не увлекающегося написанием «мышиных» драйверов, важен только факт этого ограничения. Две основные разновидности — MS Mouse (Microsoft Mouse) и PC Mouse (Mouse Systems Mouse) — требуют разных драйверов, многие мыши имеют переключатель MS/PC. Эти два типа «мышей» при одинаковой скорости 1200 бит/с, одном стоп-бите и отсутствии контроля паритета используют различные форматы посылок.

♦ MS Mouse: 1 бит данных, трехбайтный пакет (в «классическом» варианте), положительным значениям соответствует перемещение по координате X вправо, а по координате Y вниз. Для трехкнопочных мышей добавляется четвертый байт, передаваемый только при изменении состояния средней кнопки. Для 3D-мыши четвертый байт имеет иное назначение.

♦ PC Mouse: 8 бит данных, пятибайтный пакет, положительным значениям соответствует перемещение по координате X вправо, а по координате Y вверх.

Таблица 8.2. Разъемы Serial Mouse

Сигнал Контакт DB9 Контакт DB25 Цепь COM-порта
Data 2 3 RxD
GND 5 7 GND
+V(питание) 7,(4) 4, (20) RTS, (DTR)
-V (питание) 3 2 TxD

Из рассмотрения данных форматов становятся понятными беспорядочные перемещения указателя мыши на экране при несоответствии драйвера типу мыши. Несовместимость может проявляться и более неприятным образом: к примеру, ОС Windows 95 при загрузке (и установке) вообще не воспринимает мышь, работающую в режиме PC Mouse (ей «не нравится» идентификатор, сообщаемый мышью при инициализации). При загруженной ОС переключение режима приводит «только» к непредсказуемым прыжкам указателя мыши и ложным срабатываниям кнопок.

Системная поддержка последовательной мыши осуществляется только на уровне ОС (сервисы вызываются через Int 33h), драйвер мыши — загружаемый или встроенный в ОС. BIOS мышь не поддерживает, даже если и пользуется ею для навигации в BIOS Setup. Еще раз подчеркнем, что для работы мыши обязательно требуется линия аппаратного прерывания — IRQ4 или IRQ3 для последовательных мышей на портах COM1 или COM2 соответственно.

 

8.2.2. Мышь PS/2

PS/2-Mouse — мышь, появившаяся с компьютерами PS/2. Ее интерфейс и разъем 6-pin mini-DIN аналогичен клавиатурному (см. рис. 8.1) и, как правило, реализуется тем же контроллером клавиатуры 8242 (см. п. 8.1.2). Адаптер и разъем PS/2-Mouse устанавливаются на многих современных системных платах (рис. 8.3). Контроллер мыши PS/2 может быть также на карте расширения (ISA) и занимать дополнительные адреса в пространстве ввода-вывода. С мышью PS/2 связь двусторонняя: процессор может посылать контроллеру 8242 специальные команды, но, в отличие от интерфейса клавиатуры, перед записью в порт 60h каждого «мышиного» байта (и команды, и ее параметра) в порт 64h должен записываться код D4h.

Рис. 8.3. Разъем PS/2-Mouse

Мышь может работать в одном из двух режимов. В потоковом режиме (stream mode) мышь посылает данные по любому изменению состояния; в режиме опроса (remote mode) мышь передает данные только по запросу процессора. Есть еще диагностический режим (wrap mode), в котором мышь возвращает эхом данные, посылаемые ей контроллером. По приему пакета от мыши контроллер устанавливает флаг Mouse_OBF и вырабатывает прерывание IRQ12, если оно не запрещено командным байтом 8242.

Устройства-указатели с интерфейсом PS/2 (мышь PS/2) имеют поддержку BIOS, обеспечивающую настройку параметров мыши (посылку вышеперечисленных команд). Собственно драйвер мыши (обработчик прерывания по вектору 74h от запроса IRQ12), обрабатывающий ее информационные посылки, входит лишь в состав ОС или загружается отдельно. Поддержка мыши вызывается через BIOS Int 15h с кодами функций C200-C209h.

 

8.2.3. Мышь Bus Mouse

Bus Mouse (шинная мышь) — вариант, применявшийся в первых мышах. Здесь мышь содержит только датчики и кнопки, а обработка их сигналов производится на специализированной плате адаптера (обычно ISA). Кабель 9- проводный, разъем специальный (рис. 8.4), хотя на первый взгляд и напоминающий разъем PS/2-Mouse. Главный недостаток такой системы заключается в том, что адаптер занимает слот системной шины, адреса ввода- вывода и линию запроса прерывания. Иногда встречались мультипортовые карты ISA (COM-, LPT- и GAME-порты), на которых установлен и адаптер Bus Mouse. Поскольку компания Microsoft одна из первых выпустила такую мышь, снабдив ее своим логотипом, с понятием Bus Mouse иногда отождествляют и MS-Mouse, хотя последние могут иметь любой из трех видов интерфейсов.

Рис. 8.4. Разъем Bus Mouse

 

8.3. Интерфейсы принтеров и плоттеров

 

Современные принтеры, печатающие графические изображения (в том числе и текст в графическом режиме) с высоким разрешением, требуют высокоскоростной передачи данных по внешнему интерфейсу. Большинство принтеров имеют традиционный параллельный интерфейс Centronics или более производительный IEEE 1284, что позволяет достигать скоростей передачи 0,15-2 Мбайт/с, в зависимости от производительности компьютера и выбранного режима передачи (см. ниже). Эти же интерфейсы используются и в плоттерах.

Для подключения принтера с параллельным интерфейсом используется LPT-порт в различных модификациях, от традиционного SPP-порта до теперь уже стандартного и эффективного IEEE 1284 (см. п. 1.3).

Поначалу все принтеры с параллельным интерфейсом обязательно поддерживали протокол Centronics, а более «продвинутые» вдобавок могли работать и в режиме ECP, поддерживая согласование режимов по IEEE 1284. Их инсталляционные программы старались установить драйверы «продвинутых» режимов, если того позволяла ОС и возможности LPT-порта. Теперь ситуация изменилась, и появились принтеры с параллельным интерфейсом, не поддерживающие Centronics. При инсталляции они требуют подключения по «двунаправленному интерфейсу» IEEE 1284 (обычно режим ECP), и через LPT-порт в режиме SPP они работать отказываются. С такими принтерами в среде MS DOS без специальных драйверов работать невозможно.

В некоторых принтерах используется последовательный интерфейс RS-232C, RS-422 или «токовая петля», но здесь теоретический предел скорости около 11 Кбайт/с (115 Кбит/с), а практически она едва достигает 1 Кбайт/с (9600 бит/с). Эти принтеры можно подключать к СОМ-порту непосредственно или через адаптер — преобразователь уровня сигналов.

В последнее время стали чаще применять шину USB, однако этот переход не так уж безоблачен: шина USB поддерживается не всеми ОС. Старые приложения (ведь не всегда есть необходимость и возможность перехода на новые), работающие с принтером через функции BIOS Int 17h или непосредственно с регистрами LPT-порта, например для приглашения к подаче бланков, не могут работать с принтером USB даже в среде ОС, поддерживающих USB в полном объеме. Что касается скорости передачи данных, то у USB 1.0 со скоростью 12 Мбит/с скорость передачи данных отнюдь не достигает 1,5 Мбайт/с (12:8) хотя бы из-за накладных расходов шины. В USB 2.0, которая сейчас выходит на рынок, пиковая скорость может достигать 50 Кбайт/с (скорость в шине — 480 Мбит/с), что для принтера пока что более чем достаточно. Однако для этого и принтер, и компьютер должны поддерживать USB 2.0, и между ними не должно быть старых (USB 1.0) хабов.

Принтеры могут иметь интерфейс SCSI (редкий вариант), а также подключаться не к компьютеру, а к локальной сети по интерфейсу Ethernet (10 или 100 Мбит/с). Такое подключение удобно для принтеров коллективного пользования, и при грамотно построенной сети оно не доставляет забот пользователям. Шина Fire Wire для принтеров применяется пока очень сдержанно.

 

8.3.1. Параллельные интерфейсы — Centronics, IEEE 1284, ИРПР

Параллельный интерфейс Centronics ориентирован на передачу потока байт данных к принтеру и прием сигналов состояния принтера. Этот интерфейс поддерживается всеми LPT-портами компьютеров. Его отечественным аналогом является интерфейс ИРПР-М. Понятие «Centronics» относится как к набору сигналов и протоколу взаимодействия, так и к 36-контактному разъему на принтерах. Назначение сигналов интерфейса приведено в табл. 8.3, а временные диаграммы обмена с принтером показаны на рис. 8.5.

Таблица 8.3. Сигналы интерфейса Centronics

Сигнал I/O¹ Контакт Назначение
Strobe# I 1 Строб данных. Данные фиксируются по низкому уровню сигнала
Data [0:7] I 2-9 Линии данных. Data 0 (контакт 2) — младший бит
Ack# O 10 Acknowledge — импульс подтверждения приема байта (запрос на прием следующего). Может использоваться для формирования запроса прерывания
Busy O 11 Занято. Прием данных возможен только при низком уровне сигнала
PaperEnd O 12 Высокий уровень сигнализирует о конце бумаги
Select O 13 Сигнализирует о включении принтера (обычно в принтере соединяется резистором с цепью + 5 В)
Auto LF# I 14 Автоматический перевод строки. При низком уровне принтер, получив символ CR (Carriage Return — возврат каретки), автоматически выполняет и функцию LF (Line Feed — перевод строки)
Error# O 32 Ошибка: конец бумаги, состояние OFF-Line или внутренняя ошибка принтера
Init# I 31 Инициализация: сброс в режим параметров умолчания, возврат к началу строки и страницы
Select In# I 36 Выбор принтера (низким уровнем). При высоком уровне принтер не воспринимает остальные сигналы интерфейса
GND - 19-30, 33 Общий провод интерфейса

¹ I/O задает направление (вход или выход) применительно к принтеру.

Рис. 8.5. Передача данных по протоколу Centronics

Передача данных начинается с проверки готовности принтера — состояния линии Busy. Строб данных может быть коротким — доли микросекунды, и порт заканчивает его формирование, не обращая внимания на сигнал Busy. Во время строба данные должны быть действительными. Подтверждением приема байта (символа) является сигнал Ack#, который вырабатывается после приема строба через неопределенное время (за это время принтер может выполнять какую-либо длительную операцию, например прогон бумаги). Импульс Ack# является запросом принтера на прием следующего байта, его задействуют для формирования сигнала прерывания от порта принтера. Если прерывания не используются, то сигнал Ack# игнорируется и весь обмен управляется парой сигналов Strobe# и Busy. Свое состояние принтер может сообщить порту по линиям Select, Error#, PaperEnd — по ним можно определить, включен ли принтер, исправен ли он и есть ли бумага. Формированием импульса на линии Init# принтер можно проинициализировать (при этом он очистит и весь свой буфер данных). Режимом автоматического перевода строки, как правило, не пользуются, и сигнал AutoLF# имеет высокий уровень. Сигнал SelectIn# позволяет логически отключать принтер от интерфейса.

Через параллельный порт (LPT) протокол Centronics может быть реализован чисто программно, используя стандартный режим порта (SPP), достигая скорости передачи до 150 Кбайт/с при полной загрузке процессора. Благодаря «продвинутым» режимам порта протокол может быть реализован и аппаратно (Fast Centronics), при этом скорость до 2 Мбайт/с достигается при меньшей загрузке процессора.

Большинство современных принтеров с параллельным интерфейсом поддерживают и стандарт IEEE 1284, в котором оптимальным режимом передачи является ECP (см. п. 1.3.4).

Для подключения принтера требуется кабель Centronics, пригодный для любых режимов параллельного интерфейса. Простейший вариант кабеля — 18-проводный с неперевитыми проводами — может использоваться для работы в режиме SPP. При длине более 2 м желательно, чтобы хотя бы линии Strobe# и Busy были перевиты с отдельными общими проводами. Для скоростных режимов (Fast Centronics, ECP) такой кабель может оказаться непригодным — возможны нерегулярные ошибки передачи, возникающие лишь при определенных последовательностях передаваемых кодов. Встречаются кабели Centronics, у которых отсутствует связь контакта 17 разъема PC с контактом 36 разъема принтера. При попытке подключения таким кабелем принтера, работающего в стандарте 1284, появится сообщение о необходимости применения «двунаправленного кабеля». Принтер не может сообщить системе о поддержке расширенных режимов, на что рассчитывает драйвер принтера. Другое проявление отсутствующей связи — «зависание» принтера по окончании печати задания из Windows. Эту связь можно организовать подпайкой дополнительного провода или же просто заменить кабель.

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

Идеальным вариантом являются кабели, в которых все сигнальные линии перевиты с общими проводами и заключены в общий экран — то, что требует IEEE 1248. Такие кабели гарантированно работают на скоростях до 2 Мбайт/с при длине до 10 м.

В табл. 8.4 приводится распайка кабеля подключения принтера с разъемом X1 типа А (DB25-P) со стороны PC и X2 типа В (Centronics-36) или типа С (миниатюрный) со стороны принтера. Использование общих проводов (GND) зависит от качества кабеля (см. выше). В простейшем случае (18-проводный кабель) все сигналы GND объединяются в один провод. Качественные кабели требуют отдельного обратного провода для каждой сигнальной линии, однако в разъемах типа А и В для этого недостаточно контактов (в табл. 8.4 в скобках указаны номера контактов разъема PC типа А, которым соответствуют обратные провода). В разъеме типа С обратный провод (GND) имеется для каждой сигнальной цепи; сигнальным контактам 1-17 этого разъема соответствуют контакты GND 19–35.

Таблица 8.4. Кабель подключения принтера

X1, разъем PC типа А Сигнал X2, разъем PRN типа В X2, разъем PRN типа С
1 Strobe# 1 15
2 Data0 2 6
3 Data1 3 7
4 Data2 4 8
5 Data3 5 9
6 Data4 6 10
7 Data5 7 11
8 Data6 8 12
9 Data7 9 13
10 Ack# 10 3
11 Busy 11 1
12 PaperEnd 12 5
13 Select 13 2
14 Auto LF# 14 17
15 Error# 32 4
16 Init# 31 14
17 Select In# 36 16
18 GND(1) 19 33
19 GND(2 3) 20 21 24 25
20 GND(4 5) 22 23 26 27
21 GND(6 7) 24 25 28 29
22 GND(8 9) 26 27 30 31
23 GND(11 15) 29 19 22
24 GND(10 12 13) 28 20 21 23
25 GND(14 16 17) 30 32 34 35

Ряд отечественных (и стран бывшего СЭВ) принтеров имеет интерфейс ИРПР (IFSP в документации на принтеры ROBOTRON). Он является близким родственником интерфейса Centronics, а отличия перечислены ниже.

♦ Линии данных инвертированы.

♦ Протокол квитирования несколько иной.

♦ Ко всем входным линиям (на принтере) подключены пары согласующих резисторов: 220 Ом к питанию +5 В и 330 Ом к общему проводу. Это позволяет использовать длинные кабели, но перегружает большинство интерфейсных адаптеров PC.

♦ Сигналы ошибки и конца бумаги отсутствуют.

Интерфейс ИРПР может быть программно реализован через обычный LPT-порт, но для устранения перегрузки выходных линий согласующие резисторы из принтера желательно удалить. Порт, перегруженный по выходу, может преподносить всякого рода сюрпризы (естественно, неприятные и трудно диагностируемые).

 

8.3.2. Последовательные интерфейсы

Из последовательных интерфейсов в принтерах чаще всего используется RS-232C для подключения к СОМ-порту. Встречаются принтеры с последовательными интерфейсами «токовая петля» или RS-422, которые подключаются к СОМ-порту через специальные переходники. Принтеры работают всегда по асинхронному протоколу передачи и, как правило, позволяют настраивать конфигурацию последовательного интерфейса. Задается частота передачи, формат посылки (число информационных, старт- и стоп-битов, контроль паритета) и протокол управления потоком: программный XON/XOFF или аппаратный RTS/CTS. Подключение принтеров и плоттеров к СОМ-порту требует применения кабеля, соответствующего выбранному протоколу, схемы кабелей приведены на рис. 8.6 и 8.7. Аппаратный протокол предпочтительнее — стандартный драйвер СОМ-порта пользуется именно им. Естественно, параметры интерфейса принтера должны соответствовать параметрам, заданным для задействованного СОМ-порта. Порт конфигурируется, например, DOS-командой MODE. Заметим, что при печати средствами DOS (командами COPY или PRINT) прерывания от порта не используются.

Рис. 8.6. Кабель подключения принтера с протоколом RTS-CTS

Рис. 8.7. Кабель подключения принтера по протоколу XON/XOFF

Если принтер имеет интерфейс «токовая петля», то для него потребуется преобразователь сигналов, простейшая схема которого приведена на рис. 8.8. Здесь принтер подключается по токовой петле к СОМ-порту с аппаратным управлением потоком. Для получения двуполярного сигнала, требуемого для входных сигналов СОМ-порта, применяется питание от интерфейса.

Рис. 8.8. Подключение принтера с интерфейсом «токовая петля 20 мА» к СОМ-порту

 

8.3.3. Системная поддержка принтера

Вывод на принтер через порт LPT в стандартном режиме (SPP) по интерфейсу Centronics имеет поддержку на уровне BIOS. Поддержка всех других режимов работы порта (Fast Centronics, ECP) осуществляется только дополнительными драйверами или средствами ОС. Сервисы BIOS Int 17h обеспечивают инициализацию, вывод байта данных и опрос состояния принтера. Перехват прерывания Int 17h является удобным способом внедрения собственных драйверов принтера. Потребность в них может возникать при подключении к порту принтера с интерфейсом ИРПР или необходимости перекодировки символов.

Печать содержимого экрана (Print Screen) поддерживается прерыванием BIOS Int 05h. Обработчик этого прерывания посимвольно выводит содержимое видеопамяти (в текстовом режиме) на порт LPT1. Обработчик пользуется ячейкой 0050:0000 для отражения своего текущего состояния: 00 — неактивен, 01 — выполняется печать, FF — во время последнего вызова произошла ошибка ввода-вывода. Прерывание Int 05h вызывается обработчиком аппаратного прерывания от клавиатуры (Int 09h), когда обнаруживается нажатие клавиши PrintScreen (PrtSc).

 

8.4. Интерфейсы графических адаптеров

 

Для подключения дисплея (монитора) к графическому адаптеру компьютера используются специализированные/интерфейсы, по которым передается информация о мгновенном значении яркости базисных цветов (RGB) и сигналы строчной и кадровой синхронизации. Способ передачи уже прошел первый виток спирали развития: от дискретного интерфейса первых адаптеров (MDA, CGA, EGA) через аналоговый интерфейс VGA снова возвращаются к цифровому способу (DVI, P&D, DFP). Интерфейсы мониторов в большинстве своем стандартизованы организацией VESA (www.vesa.org).

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

Многие графические адаптеры имеют внутренний разъем VFC или VAFC — это параллельная шина для обмена пиксельной информацией с дополнительными картами видеообработки.

К системе (процессору и памяти) графический адаптер подключается через какую-либо шину расширения (AGP, PCI, ISA), их интерфейсы описаны в главе 6.

 

8.4.1. Дискретный интерфейс RGB TTL

Дискретный интерфейс с уровнями ТТЛ — RGB TTL применялся в мониторах для графических адаптеров MDA, HGC (Hercules), CGA и EGA. Для этого интерфейса требуется разъем DB-9 (розетка на адаптере), назначение контактов приведено в табл. 8.5. В монохромных мониторах используются лишь два сигнала — Video (включить/выключить луч) и Intens (повышенная яркость). В цветных мониторах класса CD (ColorDisplay) для адаптеров CGA используется по одному сигналу для включения каждого луча и общий сигнал повышенной яркости. Таким образом можно было задать 16 цветов. В улучшенном цветном дисплее ECD (Enhanced Color Display) для адаптера EGA требуются два сигнала на каждый базисный цвет: RED, GREEN, BLUE и Red, Green, Blue — соответственно старшие и младшие биты базисных цветов. Таким образом можно задавать 64 цвета.

Таблица 8.5. Дискретный интерфейс монитора (RGB TTL)

Контакт Монитор
Mono Color Enhanced Color/Mono
1 GND GND GND
2 GND GND Red
3 RED RED
4 GREEN GREEN
5 BLUE BLUE
6 Intens. Intensiv. Green/Intens.
7 Video Резерв Blue/Video
8 +H.Sync. +H.Sync. +H.Sync.
9 –V.Sync. +V.Sync. –(+)V.Sync.

Строчная и кадровая синхронизация монитора осуществляется сигналами H.Sync и V.Sync. Монохромные адаптеры MDA и HGC, работающие с высоким разрешением (720×350 пикселов), используют высокую частоту развертки. Адаптер CGA работает с низкими частотами (параметры синхронизации близки к телевизионным). Адаптеры и мониторы EGA могут работать с любыми из этих частот. Для облегчения переключения режимов генератора развертки монитора задействуют сигнал V.Sync: полярность импульсов определяет диапазон частот развертки текущего видеорежима.

 

8.4.2. Аналоговые интерфейсы RGB

Интерфейс RGB Analog с аналоговой передачей сигналов яркости базисных цветов позволяет передавать формально неограниченное число оттенков. Сигналы базисных цветов в современных адаптерах формируются 8-разрядными ЦАП, что позволяет выводить 16,7 миллионов цветов (True Color). Для уменьшения перекрестных помех эти сигналы передаются по витым парам, с собственными обратными линиями (Return). Для согласования с кабелем в мониторе каждая сигнальная пара нагружается резистором. Черному цвету соответствует нулевой потенциал на линиях всех цветов, полной яркости каждого цвета соответствует уровень +0,7 В (не все графические адаптеры обеспечивают полную амплитуду сигнала). Сигналы управления, состояния и синхронизации передаются сигналами ТТЛ. Временные диаграммы интерфейса RGB (они применимы и к интерфейсу RGB TTL) иллюстрирует рис. 8.9. Сигналы R, G, В здесь показаны условно — изображены интервалы, во время которых сигналы отображаются засветкой точек экрана (видимая часть изображения — в областях пересечения отображения по кадру и по строке, в остальное время луч принудительно гасится). На рисунке показаны основные временные параметры сигналов. Стандарт VESA DMT (Discrete Monitor Timing, 1994–1998 гг.) задает дискретный ряд вариантов параметров для различных режимов разрешения. Несколько более поздний стандарт VESA GTF (Generalized Timing Formula Standard) задает формулы для определения всех параметров синхронизации, исходными данными для расчета являются следующие:

♦ формат экрана в пикселах (например, 800×600);

♦ необходимость дополнительного видимого обрамления (overscan borders);

♦ тип развертки — построчная (non-interlaced) или чересстрочная (interlaced);

♦ одна из заданных частот: кадров, строк или пикселов.

Рис. 8.9. Временные диаграммы интерфейса RGB: a — общая картина, б — строчная развертка, в — кадровая развертка

Поскольку стандартов много, один и тот же набор этих параметров разными графическими картами и их драйверами может использовать несколько отличающиеся временные параметры сигнала. Эти вариации приходится компенсировать настройками монитора (размер и смещение по вертикали и горизонтали). Примеры параметров синхронизации для построчной развертки приведены в табл. 8.6. Обратим внимание, что для строчной развертки параметры синхронизации задаются в микросекундах, а для кадровой — в числе строк за это время.

Таблица 8.6. Параметры синхронизации

Режим VESA Частота кадров, Гц Частота строк, кГц Частота пикселов, МГц Строчная развертка, мкс Кадровая развертка, строк
Fv Fh Fp A b с d e f g h
640×480 VGA (60Hz) 59.9 31.5 25.2 3.8 1.9 25.4 0.6 2 33 480 10
640×480 VGA (72Hz) 72.8 37.9 31.5 1.3 3.8 20.3 1.0 3 28 480 9
640×480 VGA (85Hz) 85.0 43.3 35.9 1.6 2.2 17.8 1.6 3 25 480 1
800×600 SVGA (60Hz) 60.3 37.9 40.0 3.2 2.2 20.0 1.0 4 23 600 1
800×600 SVGA (85Hz) 85.1 53.7 56.3 1.1 2.7 14.2 0.6 3 27 600 1
1024×768 XGA (60Hz) 60.0 48.4 64.8 2.1 2.5 15.8 0.4 6 29 768 3
1024×768 XGA (85Hz) 85.0 68.7 94.8 1.0 2.2 10.8 0.5 3 36 768 1
1152×864 (85Hz) 85.0 77.5
1280×1024 SXGA (60Hz) 60.0 64.0 107.6 1.0 2.3 11.9 0.4 3 38 1024 1
1280×1024 SXGA (75Hz) 75.0 79.9 135
1280×1024 SXGA (85Hz) 85.0 91.1
1600×1024 (60Hz) 60.0 63.6
1600×1024 (85Hz) 85.0 91.4
1600×1200 (85Hz) 85.0 106.3
1920×1200 (60Hz) 60.0 74.5
1920×1200 (85Hz) 85.0 107.1
2048×1536 (75Hz) 75.0 120.2
2304×1440 (80Hz) 80.0 120.6

Впервые аналоговый интерфейс был применен на адаптере PGA фирмы IBM, где для него использовался 9-контактный разъем DB-9S (табл. 8.7). В дальнейшем, начиная с адаптеров VGA, стали применять малогабаритный 15-контактный разъем с таким же внешним размером (табл. 8.8). По назначению сигналов эти интерфейсы в основном совпадают, существуют даже переходные кабели с 15- на 9-контактные разъемы (табл. 8.9). В адаптере PGA используется совмещенная синхронизация (Composite Sync) сигналом (H+V)Sync.; этот режим поддерживают и многие современные мониторы.

Таблица 8.7. Аналоговый интерфейс монитора PGA (разъем DB-9S)

Контакт Сигнал
1 Red
2 Green
3 Blue
4 (H+V)Sync
5 Mode Control
6 Red Return
7 Green Return
8 Blue Return
9 GND

Таблица 8.8. Аналоговый интерфейс монитора VGA(RGB Analog)

Контакт DB-15 Видеоадаптер МCGA/VGA/SVGA/XGA Монитор
Mono Color
1 Red - Red
2 Green Video Green
3 Blue - Blue
4 ID2 - -
5 GND/DDC Return¹ SelfTest/DDC Return SelfTest/DDC Return
6 Red Return Key Red Return
7 Green Return Video Return Green Return
8 Blue Return - Blue Return
9 Ключ (нет контакта)¹
10 GND (Sync Return) GND (Sync Return) GND (Sync Return)
11 ID0 - GND
12 ID1/SDA¹ -/SDA¹ GND/SDA¹
13 H.Sync/(H+V)Sync² H.Sync/(H+V)Sync² H.Sync/(H+V)Sync²
14 V.Sync V.Sync V.Sync
15 ID3/SCL¹ ID3/SCL¹ ID3/SCL¹

¹ Сигналы DDC Return, SDA и SCL задействуются только при поддержке DDC. При этом контакт 9 может использоваться для питания логики DDC (+5 В).

² Сигнал (H+V)Sync используется при совмещенной синхронизации (Composite Sync).

Таблица 8.9. Переходник 9-15 аналогового интерфейса монитора

Контакт DB9 Сигнал Контакт DB15
1 Red 1
2 Green 2
3 Blue 3
4 H.Sync 13
5 V.Sync 14
6 Red Return 6
7 Green Return 7
8 Blue Return 8
9 GND 10, 11

Несмотря (в прямом смысле) на наличие ключа — D-образного кожуха, 15-контактные разъемы ухитряются вставлять в перевернутом положении, при этом один из контактов среднего ряда подгибается, а потом и ломается (штырьки этих разъемов тоньше и слабее, чем у 9-контактных). Естественно, монитор, подключенный таким образом, работать не будет.

В компьютерах Macintosh монитор, совместимый по параметрам с VGA, имеет разъем DB-15P (такой же, как и у Game-порта PC). Назначение его выводов приведено в табл. 8.10.

Таблица 8.10. Разъем VGA Macintosh

Контакт Сигнал
1 Red Return
2 Red
3 Comp.Sync
4 ID0
5 Green
6 Green Return
7 ID1
8 He используется
9 Blue
10 ID2
11 Sync.GND
12 V.Sync
13 Blue Return
14 H.SyncGND
15 H.Sync

Кроме передачи изображения, по интерфейсу передают информацию, необходимую для автоматизации согласования параметров и режимов монитора и компьютера. «Интересы» компьютера представляет дисплейный адаптер, к которому и подключается монитор. С его помощью обеспечиваются идентификация монитора, необходимая для поддержки PnP, и управление энергопотреблением монитора.

Для простейшей идентификации в интерфейс ввели четыре логических сигнала ID0-ID3, по которым адаптер мог определить тип подключенного монитора IBM. Со стороны монитора эти линии либо подключались к шине GND, либо оставлялись неподключенными. Однако из этой системы идентификации использовали лишь сигнал ID1, по которому определяют факт подключения монохромного монитора. Монохромный монитор может быть опознан адаптером и иначе — по отсутствию нагрузки на линиях Red и Blue.

Параллельную идентификацию мониторов заменила последовательная по каналу цифрового интерфейса VESA DDC (Display Data Channel). Этот канал построен на интерфейсах I²C (DDC2B) или ACCESS.Bus (DDC2AB), которые требуют всего два ТТЛ-сигнала SCL и SDA. Интерфейс DDC1 является однонаправленным — монитор посылает адаптеру блок своих параметров по линии SDA (контакт 12), которые синхронизируются сигналом V.Sync (контакт 14). На время приема блока параметров адаптер может повысить частоту V.Sync до 25 кГц (генератор кадровой развертки по такой высокой частоте синхронизироваться не будет). Интерфейс DDC2 является двунаправленным; для синхронизации используется выделенный сигнал SCL (контакт 15). Интерфейс DDC2AB отличается тем, что допускает подключение ПУ, не требующих высокой скорости обмена, к компьютеру по последовательной шине ACCESS.Bus (см. п. 11.1.2).

Блок параметров расширенной идентификации дисплея EDID (Extended Display Identification) имеет одну и ту же структуру для любой реализации DDC (табл. 8.11).

Таблица 8.11. Блок расширенной идентификации EDID

Смещение, байт Длина, байт Назначение
0 8 Заголовок (индикатор начала потока EDID)
8 10 Идентификатор изделия (назначается производителем)
18 2 Версия EDID
20 15 Основные параметры и возможности дисплея
35 19 Установленные параметры синхронизации
54 72 Дескрипторы параметров синхронизации (байты 4-18)
126 1 Флаг расширения
127 1 Контрольная сумма

Для управления энергопотреблением монитора в соответствии со стандартом VESA DPMS (Display Power Management Signaling) используются сигналы кадровой и строчной синхронизации V.Sync и H.Sync (табл. 8.12).

Таблица 8.12. Управление энергопотреблением монитора (VESA DPMS)

Режим H.Sync V.Sync
On Активен Активен
Standby Неактивен Активен
Suspend Активен Неактивен
Off Неактивен Неактивен

Разъемы, применяемые в современных адаптерах и мониторах SVGA, не предназначены для передачи высокочастотных сигналов. Пределом для них является примерно 150 МГц, что для высокого разрешения и высокой частоты регенерации недостаточно. Поэтому на больших профессиональных мониторах с высокими разрешением и частотами синхронизации и на соответствующих адаптерах имеются BNC-разъемы для соединения с помощью коаксиальных кабелей. Мониторы с коаксиальными входами могут быть подключены и к адаптерам с разъемом DB-15, для чего выпускаются специальные переходные кабели. У этих кабелей может быть 3–5 75-омных коаксиальных разъемов BNC:

♦ 3 разъема — сигналы базисных цветов, смешанная синхронизация (composite sync) передается в канале зеленого цвета;

♦ 4 разъема — смешанная синхронизация передается по отдельному кабелю;

♦ 5 разъемов — вертикальная и горизонтальная синхронизация передается по раздельным кабелям.

С помощью коаксиальных кабелей возможно удаление монитора от компьютера на расстояние до 10–15 м при хорошем изображении.

Для расширения частотного диапазона (и учитывая тенденцию к использованию последовательных шин USB и Fire Wire) для подключения ПУ к системному блоку компьютера VESA в 1995 г. предложила новый тип разъема EVC (Enhanced Video Connector). В 1998 г. была принята новая редакция, и разъем переименован в P&D-A (Plug&Display-Analog) с небольшими изменениями, касающимися резервных контактов и цепей питания зарядного устройства. Кроме обычного аналогового интерфейса RGB и канала DDC2, разъем P&D-A (EVC) имеет контакты для видеовхода, входные и выходные стереоаудиосигналы, шины USB и Fire Wire, а также линии питания постоянного тока для зарядки аккумуляторов портативных ПК. Разъем имеет две секции: высокочастотную для присоединения четырех коаксиальных кабелей и низкочастотную на 30 контактов (рис. 8.10, табл. 8.13). Контакты высокочастотной секции, хотя и не являются коаксиальными, позволяют передавать сигналы с частотами до 2 ГГц. Контактом экранов является крестообразная перегородка. При использовании 75-омных коаксиальных кабелей на частоте 500 МГц гарантируется уровень отражений и перекрестных помех не выше 2%. Высокочастотная секция — контакты C1-С4 и C5 (экран) — требуется для передачи цветовых сигналов R, G, В и синхросигнала пикселов PX Clock. Синхросигнал пикселов «интересен» матричным дисплеям (с их цифровой природой), его использование позволяет уменьшить погрешности передачи видеоинформации. Частота этого сигнала равна либо частоте сканирования пикселов, либо ее половине (на высокой частоте нужна двойная синхронизация, по фронту и спаду, что уравнивает требования к полосе пропускания для линий цветовых данных и линии синхронизации пикселов).

Рис. 8.10. Разъем EVC и P&D (розетка)

Таблица 8.13. Разъем P&D-A (EVC)

Контакт Цепь Контакт Цепь Контакт Цепь
1 Audio Output, Right 11 Charging power input, + 21 Audio input, left
2 Audio Output, Left 12 Charging power input, - 22 Audio input, right
3 Audio Output, Return 13 Video input, Y или composite in 23 Audio input, return
4 Sync Return 14 Video input, return 24 Stereo sync (TTL)
5 Horizontal Sync (TTL) 15 Video input, С in 25 DDC return
6 Vertical Sync (TTL) 16 USB Data + 26 DDC Data (SDA)
7 Резерв 17 USB Data - 27 DDC Clock (SCL)
8 Резерв 18 USB/1394 common mode shield 28 +5 В
9 1394 TPA- 19 1394 VG 29 1394 TPB+
10 1394 TPA+ 20 1394 VP 30 1394 TPB-
C1 R (аналог.)     C3 PX Clock
C2 G (аналог.) C5 GND (для R, G, B) C4 В (аналог.)

Разъем поделен на компактные зоны для каждой группы сигналов, правда, шины USB и 1394 используют общий контакт для экрана. Назначение контактов видеовхода (S-Video или композитный, PAL или NTSC) может программироваться по каналу DDC2.

Стандарт определяет три уровня реализации: базовый, мультимедийный и полный. Базовый включает только видеосигналы и DDC, в мультимедийном должны быть аудиосигналы. При использовании коннектора в полном объеме монитор превращается в коммутационный центр, который соединяется с компьютером одним кабелем, а все остальные ПУ (включая клавиатуру, мышь, принтер) подключаются к монитору. Разъем может использоваться для подключения портативного ПК к док-станции. EVC собирает сигналы от разных подсистем — графической, видео, аудио, последовательных шин и питания. Этот общий разъем, устанавливаемый на корпусе системного блока, может соединяться с разными платами внутренними кабелями через промежуточные разъемы. Этот разъем не следует путать с похожим по виду и названию разъемом P&D-A/D, описанным в следующем пункте. Разъемы EVC на компьютерах встречаются нечасто, и это объясняется не только их довольно высокой ценой. Устанавливать EVC на графическую карту неудобно (она «обрастет» лишними интерфейсными шлейфами), а интегрированные системные платы редко имеют графические адаптеры с выдающимися параметрами, для которых он нужен.

 

8.4.4. Цифровые интерфейсы P&D, DVI и DFP

Повсеместный переход на цифровые технологии коснулся и видеомониторов. Традиционный аналоговый канал передачи видеосигналов стал узким местом видеосистемы. По пути от ЦАП к входам видеоусилителей монитора сигнал проходит через пару разъемов и кабель. Несогласованность элементов, вызывающая отражения сигналов («звон») и неравномерности частотных характеристик, приводит к искажению формы сигналов цветов, что становится особо заметным на режимах с высоким разрешением и высокой частотой регенерации. Повысить качество изображения можно, перенеся устройства ЦАП в монитор, прямо на плату видеоусилителей, и подав на них цифровые сигналы базисных цветов. Плоские дисплеи (матрицы TFT) строятся на основе цифровых технологий, и им приходится входные аналоговые сигналы преобразовывать обратно в цифровую форму. Все эти причины привели к необходимости разработки цифрового интерфейса для передачи информации в монитор. От этого интерфейса требуется огромная пропускная способность: к примеру, при частоте пикселов 150 МГц и кодировании каждого пиксела 24-битным числом (True Color) требуется пропускная способность 3,6 Гбит/с (450 Мбайт/с).

Для подключения плоских дисплеев был разработан специальный интерфейс Panel-Link, в 1996 г. его спецификация (FPDI-2) была утверждена VESA. Схема интерфейса приведена на рис. 8.11. Цифровой интерфейс имеет 3 канала передачи данных (Data[0:3]) и канал синхронизации Clock. В каналах используется дифференциальная передача сигналов с минимизацией переходов — так называемый протокол T.M.D.S. (Transition Minimized Differential Signaling). Каждый канал данных образован кодером, расположенным на видеокарте, линией связи и декодером, расположенным в дисплее. На вход кодера каждого канала поступают 8 бит кода яркости базисного цвета текущего пиксела. Кроме того, на вход кодера канала 0 поступают сигналы строчной и кадровой синхронизации, а на остальные каналы — дополнительные управляющие сигналы CTL[0:3], по паре на каждый канал. Кодеры преобразуют данные в последовательный код, для минимизации переключений 8 входных бит кодируются 10-битным символом, передаваемым по каналу последовательно. В зависимости от входного сигнала разрешения данных DE кодеры передают либо данные цветовых каналов, либо синхросигналы и управляющие биты. На приемной стороне сигналы декодируются и восстанавливаются в том же виде, в котором они поступали на входы кодеров. Частота пикселов может достигать 165 МГц, интерфейс обеспечивает максимальное разрешение 1280×1024 (24 бита на пиксел).

Рис. 8.11. Схема цифрового интерфейса

Физические линии реализованы экранированными витыми парами. Передатчики являются дифференциальными коммутируемыми источниками тока (12 мА), входы дифференциальных приемников подтянуты нагрузочными резисторами 50 Ом к уровню питания +3,3 В, амплитуда сигнала 500 мВ. Выбранный метод кодирования пригоден и для передачи по оптоволоконному кабелю (сигнал не имеет постоянной составляющей), но пока спецификация определяет только электрический интерфейс.

Вышеописанный протокол используется в интерфейсах P&D, DVI и DFP, из которых наибольшее распространение получили DVI (как самый мощный и универсальный) и DFP (как самый дешевый специализированный). Разъемы этих интерфейсов можно встретить на многих графических адаптерах с двумя выходами. Почти не прижившийся дорогой P&D можно рассматривать как комбинацию усеченного EVC с усеченным DVI. Благодаря использованию стандартизованных сигналов (T.M.D.S.) при несовпадении разъема монитора и графической карты возможно применение пассивных переходников-адаптеров.

В интерфейсе VP&D (VESA Plug-and-Display, 1997 г.), он же P&D, используется такой же разъем, как в EVC (см. рис. 8.10). Здесь нет цепей аналоговых аудиосигналов и видеовхода, а контакты, требовавшиеся для них, теперь назначены на цифровые каналы передачи сигналов. Интерфейс существует в двух вариантах: комбинированном и чисто цифровом. На комбинированный разъем P&D-A/D (табл. 8.14) выведены и аналоговые сигналы (RGB и синхронизация), что обеспечивает возможность подключения как цифрового, так и традиционного аналогового монитора. В чисто цифровом варианте P&D контактов аналоговых сигналов нет; монитор с аналоговым входом (с разъемом EVC или P&D-A) с ним работать не может (конструкция разъема и не позволит его подключить). Точно так же не удастся подключить и монитор с чисто цифровым входом P&D к выходу P&D-A (EVC).

Таблица 8.14. Разъем P&D-A/D

Контакт Цепь Контакт Цепь Контакт Цепь
1 Data 2+ 11 Data 1+ 21 Data 0-
2 Data 2- 12 Data 1- 22 Data 0+
3 Экран 2 13 Экран 1 23 Экран 0
4 Sync Rtn 14 Clock+ 24 Stereo Sync TTL
5 H.Sync TTL 15 Clock- 25 DDC Return
6 V.Sync TTL 16 USB Data+ 26 DDC Data
7 Экран Clock 17 USB Data- 27 DDC Clock
8 CHRG+ 18 1394 Экран/CHRG- 28 +5V
9 1394 TPA- 19 1394 VG 29 1394 TPB+, CLOCK+
10 1394 TPA+ 20 1394 VP 30 1394 TPB-, CLOCK-
C1 R (аналог.)     C3 PX Clock
C2 G (аналог.) C5 GND (для R, G, B) C4 В (аналог.)

Интерфейс плоских дисплеев DFP (Digital Flat Panel, 1999 г., www.dfp-group.org) использует дешевый разъем типа MDR (mini-D ribbon) с ленточными контактами (рис. 8.12), на который выведены лишь 3 пары сигналов для цифровых каналов данных, пара для цифрового канала синхронизации, питание (+5В), канал DDC2 (табл. 8.15) и сигнал обнаружения «горячего» подключения (HPD). Частота пикселов может достигать 85 МГц (для плоских панелей не требуется слишком высокая частота развертки). Интерфейс пригоден (пока?) для режимов вплоть до 1280×1024 (24 бита на пиксел).

Рис. 8.12. Разъем плоского дисплея DFP

Таблица 8.15. Разъем DFP

Контакт Цепь Контакт Цепь
1 TX1+ 11 TX2+
2 TX1- 12 TX2-
3 SHLD1 13 SHLD2
4 SHLDC 14 SHLD0
5 TXC+ 15 TX0+
6 TXC- 16 TX0-
7 GND 17 NC
8 +5V 18 HPD
9 NC 19 DDC_DAT
10 NC 20 DDC_CLK

Интерфейс DVI (Digital Visual Interface) разработан группой DDWG (Digital Display Working Group — рабочая группа по цифровым дисплеям, www.ddwg.org) в 1999 г. и предназначен для подключения дисплеев любого типа (ЭЛТ и матричных) к компьютеру, причем возможны два варианта коннекторов и интерфейса: чисто цифровой и цифровой с традиционными аналоговыми сигналами. Во втором случае к разъему DVI через пассивный переходник может быть подключен монитор с обычным аналоговым VGA-интерфейсом.

Минимальный вариант цифрового интерфейса содержит канал синхронизации и три канала данных (Data0-2). В таком варианте интерфейс почти ничем не отличается от аналогового — меняется только местоположение ЦАП и применяется цифровой способ доставки данных. При этом гамма-коррекция возлагается на дисплей. Однако интерфейс предусматривает способ повышения пропускной способности за счет более эффективного использования времени. Дело в том, что традиционные ЭЛТ-мониторы имеют довольно значительное время обратного хода луча по строке и кадру, в течение которого пикселы на экран, естественно, не выводятся, — в это время интерфейс простаивает. Для матричных дисплеев этих пауз не требуется, поэтому тот же объем информации о пикселах может передаваться за большее время — практически за весь период кадра. Следовательно, можно либо снижать тактовую частоту передачи пикселов (не меняя разрешения и частоты развертки), либо с той же (предельно достижимой) частотой передачи увеличить разрешение или (и) частоту развертки. Спецификация DVI предполагает, что возможность передачи данных в течение всего периода кадра может появиться и у цифровых дисплеев, построенных на обычных ЭЛТ, за счет внутренней буферизации. При наличии буферизации экрана в дисплее можно пойти и дальше — вместо непрерывной регенерации экрана, которой озабочены традиционные видеоадаптеры, передавать данные только при изменениях изображения, но это пока лишь возможные перспективы. В полном варианте добавляются еще 3 цифровых канала (Data3-5), информационная нагрузка должна распределяться поровну между парами каналов. Таким образом, четные пикселы будут передаваться по каналам 0 (R), (G) и 2 (В), а нечетные — соответственно по 3, и 5, и интерфейс позволит передавать пикселы с частотой до 330 МГц (165×2). Предусматривается и иное использование дополнительных каналов: когда 8 бит на кодирование базисного цвета покажется недостаточным (!), каналы 3, и 5 могут дополнить (как младшие биты) данные каналов 0, 1 и 2 (старшие).

Кроме сигналов T.M.D.S. в интерфейс DVI входят сигналы интерфейса VESA DDC2: DDC Data и DDC Clock, а также линия питания +5 В, по которой от видеокарты питаются цепи DDC, позволяя обмениваться конфигурационной информацией даже с выключенным монитором. Конфигурационная информация позволяет системе определить возможности монитора и должным образом сконфигурировать имеющиеся каналы данных, согласуя возможности и видеокарты, и дисплея. Имеется также сигнал HPD (Hot Plug Detect), с помощью которого система может следить за подключением/отключением дисплея. «Горячее» подключение обеспечивается также и механическими особенностями разъемов, поддерживающих требуемую последовательность соединения/рассоединения разных групп контактов. Таким образом, дисплеи с DVI обеспечивают все необходимые функции для реализации принципов PnP. Интерфейс и дисплеи с DVI должны обеспечивать стандартные (VESA) графические режимы, начиная от 640×480/60 Гц (частота пикселов 22,175 МГц). Его предел — 2048×1536 пикселов (частота 330 МГц). Интерфейс поддерживает сигнализацию управления энергопотреблением (DPMS).

Вид коннекторов DVI приведен на рис. 8.13, расположение сигнальных контактов дано в табл. 8.16.

Рис. 8.13. Коннекторы DVI (розетки): а — только цифровой, б — цифровой с аналоговым

Таблица 8.16. Коннектор DVI

Контакт Цепь Контакт Цепь Контакт Цепь
1 Data2- 9 Data1- 17 Data0-
2 Data2+ 10 Data1+ 18 Data0+
3 Экран 2/4 11 Экран 1/3 19 Экран 0/5
4 Data4- 12 Data3- 20 Data5-
5 Data4+ 13 Data3+ 21 Data5+
6 DDC Clock 14 +5 В 22 Экран Clock
7 DDC Data 15 GND (для +5 В, HSync и VSync) 23 Clock+
8 VSync (ТТЛ) 16 HPD 24 Clock-
C1 R (аналог.)     C3 B (аналог.)
C2 G (аналог.) C5 GND (для R, G, B) C4 HSync (ТТЛ)

 

8.4.5. Внутренние цифровые интерфейсы

Для расширения возможностей дисплейного адаптера, главным образом, в сторону обработки видеоизображений, многие графические адаптеры имеют внутренний интерфейс для передачи пиксельной информации синхронно с регенерацией экрана. Этот интерфейс используется для связи графического адаптера с видеооверлейными платами (видеобластерами), декодерами MPEG. Разъем графического адаптера связывается с таким же разъемом видеоплаты плоским кабелем-шлейфом.

На адаптерах VGA присутствовал краевой 26-контактный разъем VGA Auxiliary Video Connector с шагом ламелей 0,1". Впоследствии был стандартизован VESA Feature Connector (VFC) (табл. 8.17), у которого назначение сигналов практически сохранилось, но используется двухрядный штырьковый разъем. Этот разъем графического адаптера VGA и SVGA позволяет получать поток байт данных сканируемых пикселов при работе адаптера в режиме до 640×480 пикселов×256 цветов. Нормально интерфейс работает на вывод и синхронизируется от генератора графического адаптера. Однако, установив низкий уровень сигнала Data Enable, видеоплата может заставить графическую карту принимать пикселы; сигнал Sync Enable переключает графический адаптер на прием сигналов строчной и кадровой синхронизации; сигнал PCLK Enable переключает графический адаптер на работу от внешнего сигнала синхронизации пикселов.

Таблица 8.17. Разъем VFC

Сигнал Контакт Контакт Сигнал
GND 2 1 Data 0
GND 4 3 Data 1
GND 6 5 Data 2
Data enable 8 7 Data 3
Sync. enable 10 9 Data 4
PCLK enable 12 11 Data 5
(Vcc) 14 13 Data 6
GND 16 15 Data 7
GND 18 17 PCLK
GND 20 19 BLANK
GND 22 21 HSYNC
(Vcc) 24 23 VSYNC
(GND) 26 25 GND

Для режимов до 1024×768 с глубиной цвета High Color и True Color предназначен разъем VAFC — VESA Advanced Feature Connector (табл. 8.18) — двухрядный, с шагом 0,05" и расстоянием между рядами 0,1". Он имеет разрядность 16/32 бит и при максимальной частоте точек 37,5 МГц обеспечивает скорость потока данных 150 Мбайт/с. 16-битная версия VAFC использует первые 56 контактов, а 32-битная — все 80-контактов разъема. Допустимая длина шлейфа — 7". В этом интерфейсе сигналы GRDY и VRDY означают готовность (способность генерировать данные пикселов) графического адаптера и видеосистемы соответственно, а направлением передачи данных управляет сигнал EVID#.

Таблица 8.18. Разъем VAFC

Контакт Сигнал Назначение Контакт Сигнал Назначение
1 RSRV0 Резерв 41 GND Ground
2 RSRV1 Резерв 42 GND Ground
3 GENCLK Genclock input 43 GND Ground
4 OFFSET0 Pixel offset 2 44 GND Ground
5 OFFSET1 Pixel offset 1 45 GND Ground
6 FSTAT FIFO buffer status 46 GND Ground
7 VRDY Video ready 47 GND Ground
8 GRDY Graphics ready 48 GND Ground
9 BLANK# Blanking 49 GND Ground
10 VSYNC Vertical sync 50 GND Ground
11 HSYNC Horizontal sync 51 GND Ground
12 EGEN# Enable genclock 52 GND Ground
13 VCLK Graphics data clock 53 GND Ground
14 RSRV2 Резерв 54 GND Ground
15 DCLK (PCLK) Video data (Pixel) clock 55 GND Ground
16 EVIDEO# Video data direction control 56 GND Ground
17 P0 Video data 0 57 P1 Video data 1
18 GND Ground 58 P2 Video data 2
19 P3 Video data 3 59 GND Ground
20 Р4 Video data 4 60 P5 Video data 5
21 GND Ground 61 P6 Video data 6
22 Р7 Video data 7 62 GND Ground
23 Р8 Video data 8 63 P9 Video data 9
24 GND Ground 64 P10 Video data 10
25 Р11 Video data 11 65 GND Ground
26 Р12 Video data 12 66 P13 Video data 13
27 GND Ground 67 P14 Video data 14
28 Р15 Video data 15 68 GND Ground
29 Р16 Video data 16 69 P17 Video data 17
30 GND Ground 70 P18 Video data 18
31 Р19 Video data 19 71 GND Ground
32 Р20 Video data 20 72 P21 Video data 21
33 GND Ground 73 P22 Video data 22
34 Р23 Video data 23 74 GND Ground
35 Р24 Video data 24 75 P25 Video data 25
36 GND Ground 76 P26 Video data 26
37 Р27 Video data 27 77 GND Ground
38 P28 Video data 28 78 P29 Video data 29
39 GND Ground 79 P30 Video data 30
40 P31 Video data 31 80 GND Ground

Кроме этих стандартов существует и специальная внутренняя 32-битная шина для обмена данными между мультимедийными устройствами — VESA Media Channel (VM Channel). Эта шина (канал), в отличие от вышерассмотренных двухточечных интерфейсов, ориентирована на широковещательную передачу данных между несколькими абонентами.

 

8.4.6. Видеоинтерфейсы

В традиционной технике цветного телевизионного вещания видеосигнал непосредственно несет информацию о мгновенном значении яркости (в нем присутствуют и синхроимпульсы отрицательной полярности), а цветовая информация передается в модулированном виде на дополнительных частотах. Таким образом обеспечивается совместимость черно-белого приемника, игнорирующего цветовую информацию, с цветным передающим каналом. Однако способ кодирования цветовой информации и частоты разверток в системах PAL, SECAM и NTSC различны. В видеотехнике используют различные низкочастотные интерфейсы (радиочастотный тракт здесь не рассматривается).

В интерфейсе Composite Video полный стандартный видеосигнал с размахом около 1,5 В передается по коаксиальному кабелю (75 Ом). Для соединения используются коаксиальные разъемы RCA («колокольчики»). Данный интерфейс характерен для бытовых видеомагнитофонов, аналоговых телекамер, телевизоров. В ПК этот интерфейс используется как дополнительный выходной интерфейс графической карты и как входной интерфейс в устройствах захвата видеосигнала.

Интерфейс S-Video (Separate Video) использует раздельные сигнальные линии: Y для канала яркости и синхронизации (luminance+sync, обычный черно-белый видеосигнал) и С для сигнала цветности. По линии С передается поднесущая частота, модулированная цветоразностными сигналами (burst signal). Сигнал Y имеет размах 1 В, сигнал С в стандарте NTSC имеет размах 0,286 В, в PAL/SECAM — 0,3 В. Обе линии должны нагружаться терминатором 75 Ом. Стандартный 4-контактный разъем S-Video типа mini-DIN (рис. 8.14, а) используется как интерфейс высококачественных видеосистем, его синонимами являются названия S-VHS и Y/C. Этот интерфейс в ПК тоже может использоваться в качестве входного и дополнительного выходного; он обеспечивает более высокое качество передачи видеоизображений. Иногда задействуют и 7-контактные разъемы mini-DIN, у них внешние 4 контакта имеют то же назначение, а 3 внутренних контакта используются для разных целей (там может быть и композитный сигнал). Выход S-Video легко преобразовать в сигнал для композитного входа (рис. 8.14, б); эта схема не обеспечивает должного согласования импедансов, но обеспечивает приемлемое качество изображения. Обратное преобразование этой схемой выполняется гораздо хуже, поскольку на яркостный сигнал будет воздействовать помеха в виде сигнала цветности.

Рис. 8.14. Интерфейс S-Video: a — разъем, б — преобразование в композитный сигнал

Наивысшее качество передачи обеспечивает профессиональный (студийный) интерфейс YUV (professional video), использующий три сигнальные линии: здесь цветоразностные сигналы U и V передаются в немодулированном виде.

 

8.5. Интерфейсы аудиоустройств

 

Звуковая карта имеет набор разъемов для подключения внешних аудиосигналов, аналоговых и цифровых, а также интерфейс MIDI для связи с электронными музыкальными инструментами. Аудиоданные в цифровом виде могут передаваться также и по универсальным шинам USB и Fire Wire (см. п. 4.2).

 

8.5.1. Аналоговые интерфейсы

Аналоговые интерфейсы позволяют подключать стандартную бытовую аппаратуру, микрофон, аналоговой выход CD-ROM. На большинстве карт массового потребления для аналоговых сигналов применяют малогабаритные разъемы — «мини-джеки» (jack) диаметром 3,5 мм, моно и стерео. Эти разъемы универсальны (используются на бытовой аппаратуре), но имеют весьма низкое качество контактов — они являются источником шумов (шорохов и тресков), а также иногда просто теряют контакт. Их полноразмерные 6-миллиметровые «родственники», характерные для профессиональной аппаратуры, имеют весьма высокое качество, но из-за крупных габаритов на звуковых картах не используются. На некоторых высококачественных картах сигналы линейного входа и выхода выводятся на пары разъемов RCA, которые обеспечивают очень хороший контакт, особенно в позолоченном варианте. В просторечии такие разъемы, часто используемые на бытовых видеомагнитофонах, называют «колокольчиками» или «тюльпанами».

Раскладка цепей на мини-джеках унифицирована: левый канал — на центральном контакте, экран (земля) на внешнем цилиндре, правый канал — на промежуточном цилиндре. Если стереоджек включить в моногнездо и наоборот, сигнал пойдет только по левому каналу. Все соединения в стереосистемах осуществляются «прямыми» кабелями (контакты разъемов соединяются «один в один»). Для подключения центрального и низкочастотного каналов в 6-колоночной системе единого подхода нет — может потребоваться перекрестный кабель. Неправильное подключение будет заметно по «писку» низкочастотной колонки (сабвуфера) и «бубнению» центральной колонки.

Подключение к звуковой карте устройств через внешние разъемы проблем обычно не вызывает — они унифицированы, и достаточно знать назначение разъемов, маркированных на задней панели.

♦ Line In — линейный вход от магнитофона, тюнера, проигрывателя, синтезатора и т. п. Чувствительность порядка 0,1–0,3 В.

♦ Line Out — линейный выход сигнала на внешний усилитель или магнитофон, уровень сигнала порядка 0,1–0,3 В.

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

♦ Mic In — микрофонный вход, чувствительность 3-10 мВ. Этот вход обычно монофонический, но иногда используется трехконтактное гнездо (как в стерео), у которого дополнительный контакт (на месте правого канала) выделен для подачи питания на электретный микрофон.

Подключение внутренних устройств к аналоговым входам может доставить больше забот. Для этого используются четырехштырьковые разъемы, различающиеся как шагом межу выводами, так и их назначением. Для подключения CD-ROM часто ставят рядом два, а то и три разъема с параллельно соединенными сигнальными контактами, но и это может не помочь, если кабель имеет другое расположение сигналов. Спасти может перестановка контактов на разъеме кабеля, для чего иголкой нажимают на фиксирующий выступ контакта. После этого контакт можно вытянуть в сторону кабеля и переставить в другое гнездо. Вид и варианты расположения сигнальных контактов аудиовходов приведены на рис. 8.15. Для полноты картины добавим, что разъем может иметь ключ с противоположной стороны (по ошибке сборщика кабеля или по внутреннему стандарту его производителя). Задача подключения все-таки не безнадежна, поскольку требует правильной расстановки только двух сигнальных контактов, а контакты общего провода выделяются тем, что на плате соединяются с шиной, а на кабеле — с экраном. Положение левого и правого каналов аудио-CD в большинстве случаев не так уж и важно.

Рис. 8.15. Разъемы подключения аудиосигналов

 

8.5.2. Цифровые интерфейсы

S/PDIF (Sony/Philips Digital Interface Format) — цифровой последовательный интерфейс (и форматы данных) для передачи аудиосигналов между блоками бытовой цифровой аудиоаппаратуры (DAT, CD-ROM и т.п.). Этот интерфейс является упрощенным вариантом студийного интерфейса AES/EBU (Audio Engineers Society/European Broadcast Union). Интерфейс AES/EBU использует симметричный двухпроводный экранированный кабель с импедансом 110 Ом, разъемы XLR, уровень сигнала — 3-10 В, длина кабеля — до 12 м.

Интерфейс S/PDIF использует коаксиальный кабель 15 Ом, разъемы RCA или BNC, уровень сигнала — 0,5–1 В, длина кабеля — до 2 м. В звуковых картах внутренние разъемы S/PDIF проще — это просто пара штырьков (как у джамперов) на плате с соответствующей ответной частью на кабеле. Такие же упрощенные разъемы применяются и на новых приводах CD-ROM, имеющих выход S/PDIF. «Штатная» схема передатчика S/PDIF содержит разделительный импульсный трансформатор (1:1), благодаря которому соединяемые устройства гальванически развязываются. Встречаются и упрощенные варианты, без разделительного трансформатора. При стыковке устройств с нестандартными интерфейсами возможны проблемы, связанные с несоответствием уровней сигналов. При этом сигнал может быть неустойчивым (звук будет прерываться) или не приниматься совсем. Эти проблемы могут быть решены подручными средствами — установкой дополнительных формирователей сигнала.

Кроме электрической версии существует и оптическая версии интерфейса S/PDIF — Toslink, стандарт EIAJ СР-1201 — с инфракрасными излучателями (660 нм). Применение оптики позволяет обеспечить полную гальваническую развязку устройств, что необходимо для снижения уровня наводок. Для пластикового волокна (POF) длина кабеля не более 1,5 м, для стеклянного волокна — 3 м. В Сети предлагается ряд схем преобразования интерфейсов, одна из которых приведена на рис. 8.16. Здесь первый инвертор посредством обратной связи выведен на линейный участок передаточной характеристики, благодаря чему малый входной сигнал вызывает его переключение. В схеме предлагается микросхема HCT74U04 (6 инверторов); вместо светодиода можно использовать и фирменный трансивер Toslink, его следует подключать без балластного резистора (220 Ом) прямо к выходу инвертора (резистор находится в трансивере).

Рис. 8.16. Схема преобразователя электрического интерфейса S/PDIF в оптический (Toslink)

По интерфейсу S/PDIF информация передается в последовательном коде покадрово, с обеспечением синхронизации и контролем достоверности передачи (кодами Рида-Соломона). В кадре имеется признак формата данных — PCM или не PCM, что позволяет по данному интерфейсу передавать и упакованные цифровые данные (например, MPEG для АС-3). Имеется также бит защиты от копирования, признак предыскажений и некоторые другие служебные данные. В режиме PCM выборки каждого канала могут иметь разрядность 16, 20 или 24 бит, частота выборок определяет частоту цифрового сигнала. Приемник S/PDIF сам определяет частоту выборок по принимаемому сигналу, наиболее употребимые частоты — 32, 44,1 и 48 кГц.

Кроме этих интерфейсов в студийной аппаратуре применяют интерфейсы ADAT и TDIF, которые имеются только на дорогих профессиональных звуковых картах. Для обмена данными с приводами DVD применяется цифровой последовательный интерфейс I2S.

 

8.5.3. Интерфейс MIDI

Цифровой интерфейс музыкальных инструментов MIDI (Musical Instrument Digital Interface) является последовательным асинхронным интерфейсом с частотой передачи 31,25 Кбит/с. Этот интерфейс, разработанный в 1983 году, стал фактическим стандартом для сопряжения компьютеров, синтезаторов, записывающих и воспроизводящих устройств, микшеров, устройств специальных эффектов и другой электромузыкальной техники. В настоящее время интерфейс MIDI имеют и дорогие синтезаторы, и дешевые музыкальные клавиатуры, которые могут использоваться в качестве устройств ввода компьютера. По интерфейсу MIDI устройства обмениваются между собой сообщениями, кратко описанными в книге [1]. На одном интерфейсе может быть организовано до 16 логических каналов, каждый из которых может управлять своим инструментом.

В физическом интерфейсе применяется токовая петля 5 мА (возможно до 10 мА) с гальванической (оптронной) развязкой входной цепи. Логическому нулю соответствует наличие тока, логической единице (и покою) — отсутствие тока (в «классической» токовой петле телекоммуникаций все наоборот).

Интерфейс определяет три типа портов: MIDI–In, MIDI-Out и MIDI-Thru.

Входной порт MIDI–In представляет собой вход интерфейса «токовая петля», гальванически развязанного от приемника оптроном с быстродействием не хуже 2 мкс. Устройство отслеживает информационный поток на этом входе и реагирует на адресованные ему команды и данные.

Выходной порт MIDI-Out представляет собой выход источника тока, гальванически связанного со схемой устройства. Ограничительные резисторы предохраняют выходные цепи от повреждения при замыкании на землю или источник 5 В. На выход подается информационный поток от данного устройства. При специальной настройке устройства в этом потоке может содержаться и транслированный входной поток, но это нетипично.

Транзитный порт MIDI-Thru служит только для ретрансляции входного потока, по электрическим свойствам он аналогичен выходному. Его наличие не является обязательным для всех устройств.

В качестве разъемов применяются 5-контактные разъемы DIN, распространенные в бытовой звуковой аппаратуре, схема соединительного кабеля приведена на рис. 8.17.

Рис. 8.17. Соединительные кабели MIDI

Внешний порт MIDI (с сигналами ТТЛ) обычно выводится на неиспользуемые контакты (12 и 15) разъема игрового адаптера (DB-15S). При этом для подключения стандартных устройств MIDI требуется переходной адаптер, реализующий интерфейс «токовая петля» (на разъеме карты интерфейс ТТЛ). Переходной адаптер обычно встраивается в специальный кабель, вариант схемы которого приведен на рис. 8.18. Некоторые модели PC имеют встроенные адаптеры и стандартные 5-штырьковые разъемы MIDI.

Рис. 8.18. Вариант схемы кабеля-адаптера MIDI

Программно порт MIDI обычно совместим с UART MPU-401. MPU-401 фирмы Roland — первая карта расширения для PC с интерфейсом MIDI, получившая широкое распространение. MPU расшифровывается как MIDI Processing Unit — устройство обработки сообщений MIDI. Этот контроллер кроме асинхронного последовательного порта (UART), реализующего физический интерфейс MIDI, имел развитые аппаратные средства для использования PC в качестве секвенсора. Контроллер MPU-401 поддерживал простой режим работы — UART mode, в котором использовался только двунаправленный асинхронный порт; в современных звуковых картах совместимость с MPU-401 поддерживается только в этом режиме.

В пространстве ввода-вывода MPU-401 занимает два смежных адреса MPU (обычно 330h) и MPU+1.

♦ Порт DATA (адрес MPU+0) — запись и считывание байт, передаваемых и принимаемых по интерфейсу MIDI. В интеллектуальном режиме через этот же порт считываются и вспомогательные данные от MPU (не относящиеся к потоку MIDI).

♦ Порт STATUS/COMMAND (адрес MPU+1) — чтение состояния/запись команд (запись — только для интеллектуального режима). В байте состояния определены следующие биты:

 • бит 7 — DSR (Data Set Ready) — готовность (DSR=0) принятых данных для чтения (бит устанавливается в единицу, когда все принятые байты считаны из регистра данных);

 • бит 6 — DRR (Data Read Ready) — готовность (DRR=0) UART к записи в регистр данных или команд (условие готовности к записи не возникнет, если приемник имеет непрочитанный байт данных).

По включении питания «настоящая» карта MPU-401 устанавливается в интеллектуальный режим, из которого в режим UART ее можно перевести командой с кодом 3Fh. Программный сброс MPU-401 (опять-таки в интеллектуальный режим) осуществляется командой RESET (код FFh), на эту команду MPU ответит подтверждением ACK (FEh). Байт подтверждения извлекается из регистра данных, до его прихода следующую команду MPU не воспримет. На команду с кодом 3Fh MPU подтверждением не отвечает (некоторые эмуляторы отвечают и на эту команду).

Ввод данных может осуществляться по программному опросу бита DSR или по прерываниям. Аппаратные прерывания от MPU в режиме UART вырабатываются по приему байта. Обработчик прерывания должен считать все поступившие байты, проверив перед выходом, что DSR=1 (иначе возможны потери принятых байт).

Вывод данных разрешается битом DRR, прерывания по готовности вывода не вырабатываются.

Совместимость с MPU-401, имеющаяся у большинства современных звуковых карт с интерфейсом MIDI, означает наличие приемопередатчика, программно совместимого с MPU-401 в режиме UART; функции интеллектуального режима обычно не поддерживаются.

На некоторых системных платах применяются БИС контроллеров интерфейсов, в которых режим UART, используемый для СОМ-порта, конфигурированием через BIOS SETUP может быть переведен в режим MIDI-порта.

Для подключения к компьютеру большого числа устройств MIDI можно использовать шину USB. Для этого, например, фирма Roland выпускает 64-канальный процессорный блок S-MPU64, который кроме шины USB имеет 4 входных и 4 выходных порта MIDI. Программное обеспечение допускает объединение до 4 блоков на одной шине USB, что увеличивает число каналов до 256.

 

8.5.4. Интерфейс дочерней карты

Ряд моделей звуковых карт имеют внутренний интерфейсный разъем подключения дочерней карты с MIDI-синтезатором (Daughterboard Connector). На разъем (табл. 8.19) с основной карты выводится сигнал MIDI-порта (ТТЛ, как и на разъем джойстика) и сигнал аппаратного сброса синтезатора, а с дочерней карты принимается стереофонический аналоговый сигнал, который поступает в микшер основной карты. В шинах питания аналоговая земля (AG) отделена от цифровой (DG). Дополнительно может использоваться и вход MIDI (тоже ТТЛ). Разъем может обозначаться и как WT (Wavetable) Connector, Waveblaster Connector.

Таблица 8.19. Назначение контактов разъема подключения дочерней карты

Контакт Цепь Контакт Цепь
1 DG 2  
3 DG 4 MIDI_Out#
5 DG 6 +5 В
7 DG 8 MIDI_In# (необязательный)
9 DG 10 +5 В
11 DG 12  
13   14 +5 В
15 AG 16  
17 AG 18 +12 В
19 AG 20 Audio (R)
21 AG 22 –12 В
23 AG 24 Audio (L)
25 AG 26 Reset#

Подключение дочерней карты эквивалентно подключению внешнего синтезатора к MIDI-выходу звуковой карты. Если на звуковой карте отсутствует разъем подключения дочерней карты, то дочернюю карту можно подключить и к внешнему разъему джойстика/MIDI и аналоговым входам звуковой карты. Конечно, на дочернюю карту нужно подать питание, а также сигнал аппаратного сброса.

 

8.6. Интерфейс игровых устройств — Game-порт

Игровые устройства — джойстик, руль и педали автомобиля или иные — вырабатывают некоторые аналоговые и дискретные сигналы, которые можно ввести в компьютер. С самых первых моделей IBM PC был введен и фактически стандартизован интерфейс игрового адаптера — Game port, к которому можно подключить до двух джойстиков или иных устройств. Суммарно на порте доступно 4 координатных датчика (X1, X2, Y1 и Y2), изменяющих сопротивление, и 4 дискретных входа для кнопок управления. Назначение координатных датчиков зависит от игры и конструкции манипулятора. Для авиасимуляторов X1 может соответствовать перемещению рукоятки вверх-вниз, Y1 — влево-вправо, X2 — нажатие левой и правой педалей, Y2 — рукоятка сектора газа. Для автомобильных рулей X1 — руль, Y1 — газ, X2 — тормоз (газ и тормоз могут быть совмещены в координате Y1). Кроме игровых целей порт может применяться и для подключения «серьезных» датчиков.

Современные игровые устройства имеют свой интеллект (микроконтроллер) и подключаются к компьютеру цифровым интерфейсом — по шине USB или через СОМ-порт. Их функциональные возможности богаче, они позволяют устанавливать и двустороннюю связь с игроком (вводить механические воздействия).

Адаптер Game-порта имеет в пространстве ввода-вывода один регистр с адресом 201h, биты которого при чтении отображают состояние кнопок и компараторов аналоговых сигналов. Ввод дискретных сигналов от кнопок пояснений не требует. Упрощенная схема одного канала аналогового ввода приведена на рис. 8.19. В начале преобразования конденсатор разряжается через ключ, после чего начинается его заряд, скорость которого определяется величиной сопротивления датчика (чем больше сопротивление, тем медленнее заряд). Напряжение на конденсаторе контролируется компаратором, который срабатывает по достижении определенного уровня. Выходы компараторов всех четырех каналов преобразования, как и дискретные входы, собираются в регистр (см. ниже), который может быть программно считан. Преобразование выполняется чисто программно и начинается по выводу любого байта в регистр адаптера (201h), при этом биты 0–3 устанавливаются в единицу. Далее программа циклически выполняет чтение регистра адаптера и измеряет время до возврата в нулевое состояние бит 0–3, соответствующих четырем аналоговым каналам. Если аналоговый вход закорочен на шину GND или цепь измеряемого сопротивления разорвана, соответствующий бит не обнулится. Поэтому в программе преобразования должен быть предусмотрен тайм-аут. Для измеряемых сопротивлений в диапазоне 0-100 кОм время определяется по формуле

T(мкс)=24,2+11×R(кОм).

Точность и линейность преобразования невысока, преобразование выполняется не быстро (до 1,12 мс) и сильно загружает процессор. Однако в отличие от «настоящих» аналого-цифровых преобразователей, этот достается даром — игровой адаптер входит в состав практически всех комбинированных плат последовательных и параллельных портов и звуковых карт.

Рис. 8.19. Канал аналогового ввода

Порт имеет разъем-розетку DB-15S. Назначение выводов и соответствие сигналов битам регистра приведено в табл. 8.20. Резисторы подключаются к шине питания +5 В, кнопки — к шине GND (рис. 8.20). Замыканию кнопок соответствуют нули в битах 5–7. Аналоговые каналы можно использовать для дискретного ввода, если их входы подключить к кнопкам, замыкающим их на шину GND, и к резисторам, «подтягивающим» их к уровню + 5 В. Два джойстика (А и В) подключаются через Y-образный переходник-разветвитель. На звуковых картах через разъем «Game» вместе с джойстиками могут подключаться и внешние MIDI-устройства, используя специальный кабель-адаптер, обеспечивающий гальваническую развязку входного сигнала и ограничение выходного тока (см. рис. 8.18). Для интерфейса MIDI используются контакты 12 и 15, ранее предназначавшиеся для шин GND и +5V. Такое назначение делает безопасным подключение адаптера MIDI к «чистому» игровому порту и обычного джойстика к игровому порту с сигналами MIDI.

Таблица 8.20. Интерфейс игрового адаптера и MIDI

Бит Назначение Контакт
7 Джойстик В кнопка #2 14
6 Джойстик В кнопка #1 10
5 Джойстик А кнопка #2 7
4 Джойстик А кнопка #1 2
3 Джойстик В Y-координата (Y2) 13
2 Джойстик В X-координата (X2) 11
1 Джойстик А Y-координата (Y1) 6
0 Джойстик А X-координата (X1) 3
- GND 4, 5, (12)
- +5 В 1, 8, 9, (15)
- MIDI In (Rx) — вход (на звуковой карте) 15
- MIDI Out (Tx) — выход (на звуковой карте) 12

Рис. 8.20. Подключение датчиков к игровому адаптеру

Системную поддержку джойстика обеспечивает сервис BIOS Int 15h при AH=84h. При вызове в DX задается код подфункции:

♦ DX=0 — опрос кнопок, возвращает в AL[7:4] состояние кнопок (соответствует битам порта 201h);

♦ DX=1 — чтение координат X, Y джойстика А (в регистры АХ, BX) и В (в СХ, DX).

При ошибочном задании кода в DX устанавливается CF=1. Стандартный джойстик поддерживается и ОС Windows.