Английскому слову inter (интерфейс, от англ. inter — между и — лицо) довольно трудно найти русский эквивалент. В это понятие входят и вид передаваемых сигналов (цифровые или аналоговые), и способ передачи (бит за битом последовательно или несколько битов параллельно), и назначение и порядок использования различных сигналов управления обменом, и уровни напряжения или тока, соответствующие тем или иным значениям сигналов, и, наконец, конструкция и назначение контактов разъемов и схемы соединительных кабелей. В большинстве случаев все эти требования стандартизованы, что позволяет легко соединять с компьютером устройства различного назначения, заменять их более совершенными, а при необходимости и разрабатывать их самостоятельно. В данное статье рассказывается об интерфейсе принтера, коммуникационных и игровом интерфейсах и о том, как все это работает.
На задней стенке системного блока любого компьютера имеется довольно много разъемов. Кроме разъема питания, все это — интерфейсные разъемы, предназначенные для связи компьютера с клавиатурой, монитором, принтером, манипулятором "мышь" и другими внешними устройствами.
Мы не будем рассматривать здесь так называемый системный интерфейс, согласно которому к системной плате компьютера подключают различные контроллеры и другие дополнительные платы, а также интерфейсы монитора и клавиатуры, используемые только по прямому назначению и не вызывающие проблем. Не будем касаться и интерфейсов локальных компьютерных сетей, поскольку они не входят в стандартную конфигурацию компьютера, а в силу своей сложности заслуживают отдельного рассмотрения. Остановимся лишь на интерфейсе принтера, коммуникационных интерфейсах и так называемом "игровом" интерфейсе, предназначенном для подключения джойстика.
Именно с ними чаще всего приходится иметь дело пользователю. Эти интерфейсы часто называют портами, хотя, строго говоря, это неверно, так как "порт" — это всего лишь ячейка в адресном пространстве ввода/вывода процессора. Каждый интерфейс использует для ввода/вывода данных и управления несколько таких ячеек.
Программные средства обслуживания интерфейса принтера и коммуникационных интерфейсов заложены в базовую систему ввода/вывода (BIOS) компьютера IBM PC, так что пользоваться ими может любая системная или прикладная программа. Во всех языках программирования предусмотрены специальные операторы и функции для вывода данных на принтер и обмена данными с различными устройствами через коммуникационные порты. В большинстве случаев они реализуются с использованием функций BIOS.
Портам принтера в BIOS присвоено название LPT. В компьютере может быть одновременно три таких порта, хотя чаще всего имеется только LPT1 (его еще называют PRN), а чтобы воспользоваться остальными, необходимо установить дополнительные платы. Разъем порта LPT1 представляет собой 25-гнездную розетку DB-25F. BIOS может обслуживать до четырех коммуникационных портов (СОМ1— COM4)
в современных моделях компьютеров может и более в зависимости от версии BIOSа, причем первый из них имеет еще и альтернативное название AUX. Обычно в компьютере установлены только СОМ1 и COM2. Как правило, разъем СОМ1
и COM2 имеет 9 штырьков (DB-9M), в копьютерах старых марок имеет COM2 - 25 (DB-25М). Для игрового интерфейса в BIOS предусмотрены две функции. Розетка игрового порта имеет 15 гнезд (DB-15F) и обычно установлена рядом с розеткой LPT1.
Параллельный интерфейс для вывода данных на принтер разработан фирмой Centronics Data Computer Corporation. Отечественный аналог этого интерфейса называется ИРПР-М. Иногда встречающийся интерфейс ИРПР несовместим с Centronics. Распределение сигнальных линий Centronics на разъеме компьютера дано в табл.1, а описание сигналов приведено ниже.
Таблица 1.
Контакт |
Сигнал |
Активный уровень |
Направление |
1 |
STROBE |
Низкий |
Компьютер -> принтер |
2 |
DATA 1 |
Высокий |
Компьютер -> принтер |
3 |
DATA 2 |
Высокий |
Компьютер -> принтер |
4 |
DATA 3 |
Высокий |
Компьютер -> принтер |
5 |
DATA 4 |
Высокий |
Компьютер -> принтер |
6 |
DATA 5 |
Высокий |
Компьютер -> принтер |
7 |
DATA 6 |
Высокий |
Компьютер -> принтер |
8 |
DATA 7 |
Высокий |
Компьютер -> принтер |
9 |
DATA 8 |
Высокий |
Компьютер -> принтер |
10 |
ACK |
Низкий |
Компьютер <- принтер |
11 |
BUSY |
Высокий |
Компьютер <- принтер |
12 |
PE |
Высокий |
Компьютер <- принтер |
13 |
SLCT |
Высокий |
Компьютер <- принтер |
14 |
AUTOFD |
Низкий |
Компьютер -> принтер |
15 |
ERROR |
Низкий |
Компьютер <- принтер |
16 |
INIT |
Низкий |
Компьютер -> принтер |
17 |
SLCT IN GROUND |
Низкий |
Компьютер -> принтер |
18-25 |
|
Общий провод |
STROBE (строб, СТР) — синхронизирующий сигнал записи данных в принтер. Его низкий уровень означает, что на линиях DATA 1—DATA 8 установлена достоверная комбинация сигналов. Длительность импульса STROBE — не менее 0,5 мкс.
DATA 1—DATA 8 (данные 1-данные 8, Д1— Д8) — линии передачи разрядов данных. DATA 1 соответствует младшему разряду байта, a DATA 8 — старшему. Высокий уровень сигнала означает передачу логической 1, низкий уровень — логического 0.
АСК (Acknowledge, ACKNLG, подтверждение, ПТВ) — импульс длительностью около 12 мкс вырабатывается после приема каждого байта данных.
BUSY (занято, 3АН) — сигнал, высокий уровень которого означает неготовность принтера принимать данные, низкий — готовность. Принтер устанавливает высокий уровень сигнала BUSY в следующих случаях:
- во время обработки каждого принятого байта;
- при заполнении буфера;
- в автономном (OFF-LINE) режиме;
- в состоянии сбоя.
РЕ (Paper Empty, конец бумаги, КБМ) — сигнал, высокий уровень которого показывает, что в принтере нет бумаги.
SLCT (Select, Select Out, готовность приемника, ГП) — сигнал, высокий уровень которого означает, что принтер включен и находится в активном режиме (ON-LJNE).
AUTOFD (Autofeed_XT, АПС) — сигнал, при низком уровне которого компьютер может заканчивать каждую строку только командой "Возврат каретки" (код 0DH), а бумага будет переводиться на одну строку вперед автоматически. При высоком уровне сигнала компьютер должен заканчивать каждую строку сочетанием команд "Возврат каретки" и "Перевод строки" (коды QDH и ОАН).
ERROR (ошибка, ОШ) — сигнал, уровень которого становится низким в следующих случаях:
- переполнен буфер печати;
- принтер в автономном (OFF-LINE) режиме;
- в принтере нет бумаги;
- принтер неисправен.
INIT (lnput_Prime, сброс, СБР) — аппаратный сброс. Низким уровнем этого сигнала принтер принудительно устанавливается в начальное состояние, аналогичное состоянию после включения питания. Буфер печати очищается. Длительность сигнала не менее 50 мкс.
SLCTJN (выбор) — сигнал, при высоком уровне которого работу принтера разрешают командой DC1 (символ с кодом 11Н), а запрещают командой DC3 (символ с кодом 13Н). При низком уровне сигнала работа принтера разрешена независимо от этих команд. Напряжения сигналов на линиях рассматриваемого интерфейса соответствуют стандартным уровням ТТЛ.
Передача байта начинается с проверки компьютером уровня сигнала BUSY (рис. 1). Убедившись, что уровень низкий, компьютер выводит байт на линии DATA 1— DATA 8 и выдает сигнал STROBE. По этому сигналу принтер читает данные и на время их обработки устанавливает высокий уровень сигнала BUSY. После окончания обработки принтер выдает сигнал АСК и снимает сигнал BUSY, что означает готовность к приему следующего байта.
Если компьютер, передав очередной байт, длительное время (несколько секунд) не получает сигнала АСК, он может считать, что при передаче произошел сбой и повторить ее. Когда сигнал BUSY постоянно имеет высокий уровень, для выяснения причины отказа следует проанализировать сигналы РЕ и ERROR (они обычно дублируются светодиодами на панели принтера, так что их состояние легко оценить визуально).
Рис.1.
Следует иметь в виду, что в некоторых принтерах сигнал РЕ формируется логическим путем и свидетельствует не только о наличии или отсутствии бумаги, но и о правильности выполнения операций по ее заправке. Если в такой принтер заправить бумагу вручную, не пользуясь процедурой автоматической заправки, то печатать он не будет. В подобном случае необходимо повторить заправку, придерживаясь инструкции.
Принтер не принимает данные и не печатает их, когда он находится в режиме OFF-UNE, что буквально означает "отключен от линии". На интерфейсе при этом установлены сигналы BUSY и ERROR и сброшен сигнал SLCT-IN. Для перевода принтера в активное состояние (ON-LINE) достаточно нажать соответствующую кнопку на его панели или установить низ-кий логический уровень на входе SLCTJN. Если на этом входе присутствует высокий уровень, перевести принтер в состояние ON-LINE можно командой DC1. Команда DC3 переводит принтер в состояние OFF-LINE.
Соединять компьютер с принтером следует, по возможности, кабелем заводского изготовления, поставляемым вместе с принтером или приобретенным отдельно. При необходимости можно изготовить нужный кабель самостоятельно. Так как на принтерах устанавливаются интерфейсные разъемы, как правило, не идентичные по числу и размещению контактов разъему компьютера, на рис. 2-5 приведены схемы кабелей для подключения различных принтеров, как старых, так и современных бывших у автора в распоряжении.
Рис.2.
Кабель изготавливают из витых пар проводов (каждый сигнальный свивают со своим "обратным" проводом) или плоской ленты (сигнальные провода чередуют с "обратными"). "Обратные" провода разных цепей объединять не рекомендуется. Как со стороны компьютера, так и со стороны принтера каждый из них должен быть соединен с заземленным контактом разъема, ближайшим к контакту соответствующего сигнала (на схемах, кроме рис.2, "обратные" провода не показаны). Длина кабеля должна быть не более 1,8 м.
Следует помнить, что соединять и разъединять принтер и компьютер можно только в случае, если оба устройства отключены от сети. Несоблюдение этого требования может привести (и приводит, если не сразу, то впоследствии и в самый неподходящий момент) к их повреждению.
Иногда принтер, нормально печатающий данные, выводимые одними программами, отказывается работать с другими. Чаще всего это связано с неисправностью цепей индикации его состояния. Дело в том, что разные программы проверяют состояние принтера разными способами. Одни используют для этого только сигналы ERROR и BUSY, другие — ERROR и АСК. Встречаются программы, анализирующие все четыре сигнала состояния (АСК, BUSY, РЕ, ERROR). В первую очередь следует проверить кабель на отсутствие обрывов именно этих линий.
Рис.3.
Если кабель исправен, то, скорее всего, повреждены цепи интерфейса в компьютере или принтере. Выходные цепи некоторых интерфейсных сигналов выполнены по схеме с "открытым коллектором", поэтому нет смысла проверять их уровни, отключив от разъема нагрузку.
Так как разъемы на "фирменных" кабелях изготавливают неразборными, для исследования сигналов придется открыть корпус компьютера или принтера, чтобы добраться до контактов разъема, либо изготовить переходник, соединив с помощью коротких проводов гнездовую и штыревую части подобного разъема, и включить его между компьютером и кабелем, или между последним и принтером. Сравнив измеренные уровни сигналов с теми, которые должны быть согласно описанной выше логике работы интерфейса (см. табл. 1), можно быстро обнаружить неисправную цепь.
Чаще всего причина отказа — неисправность буферного элемента, формирующего сигнал. Если в качестве этих элементов применяются микросхемы с малой степенью интеграции (например, К555ЛН3 или ее аналоги), то найти и заменить неисправную микросхему не составит труда даже без принципиальной схемы. Если же отказавший элемент находится внутри специализированной БИС, то исправить положение без замены всего узла, в котором она находится, практически невозможно.
Рис.4.
Однако, если отказавший элемент формирует сигнал, который в процессе нормальной работы не меняет своего уровня (например, сигнал ERROR), то можно рекомендовать разорвать проводник между микросхемой и разъемом и подать на последний необходимый логический уровень (низкий, соединив контакт разъема с общим проводом, или высокий, соединив его через резистор сопротивлением 1...10 кОм с источником напряжения +5В). Конечно, это лишь временное решение, которое позволит принтеру работать до тех пор, пока не произойдет событие, требующее изменения состояния "отрезанного" сигнала.
Если принтер вместо осмысленного текста печатает кажущийся хаотическим набор символов, причиной может быть обрыв одной из линий DATA или неисправность элементов этой цепи. Но чаще всего такая ситуация связана с неправильной установкой программного обеспечения, которое не подало команду включения на принтере нужного набора символов либо не загрузило в него нужный шрифт.
При сочетании принтера устаревшей модели с современным быстродействующим компьютером может возникнуть ситуация, когда отдельные символы текста пропускаются или печатаются дважды. В этом случае можно рекомендовать при печати переключать компьютер в режим с пониженной тактовой частотой (например, выключить режим "Турбо").
Рис.5.
Коммуникационные интерфейсы, применяемые в IBM-совместимых компьютерах, выполняются по стандарту RS-232C, разработанному в 1969 г. американской Ассоциацией электронной промышленности (Electronic Industries Association). Отечественный аналог этого стандарта носит название "Стык С2". Коммуникационные интерфейсы предназначены, в первую очередь, для связи удаленных друг от друга на большое расстояние компьютеров через модемы, но их используют и для других целей, например, для подключения манипулятора "мышь", сканера, графопостроителя. При необходимости сюда можно подключить и принтер, если последний оборудован аналогичным интерфейсом.
При использовании интерфейса RS-232C для непосредственного соединения двух компьютеров часто возникает путаница, связанная с тем, что стандарт описывает сигналы, которыми обменивается "оконечное оборудование данных" (ООД или DTE) с "аппаратурой передачи данных" (АПД или DCE). Под ООД подразумевается компьютер, а под АПД - модем.
Подразумевается, что дальняя связь фактически ведется между двумя модемами, причем сигналы на входах и выходах модемов, подключенных к линии связи, описываются совсем другими стандартами (например, "Стык СГ). Для того чтобы соединить между собой два компьютера через RS-232C без модемов, необходимо тем или иным способом "обмануть" программное обеспечение, заставив его поверить, что связь идет через модемы.
Таблица 2.
Контакт |
Сигнал |
Направление |
DB-9M |
DB-25M |
- |
1 |
PG |
|
3 |
2 |
TxD |
От ООД к АПД |
2 |
3 |
RxD |
От АПД к ООД |
7 |
4 |
RTS |
От ООД к АПД |
8 |
5 |
CTS |
От АПД к ООД |
6 |
6 |
DSR |
От АПД к ООД |
5 |
7 |
SG |
|
1 |
8 |
DCD |
От АПД к ООД |
4 |
20 |
DTR |
От ООД к АПД |
Назначение основных цепей интерфейса RS-232C описано ниже (в скобках указано обозначение, принятое в стандарте на "Стык С2"). Их распределение по контактам разъемов приведено в табл.2, причем указаны номера контактов как для 9, так и 25-контактных разъемов.
- PG (цепь 101) — Protective Ground. Этот вывод соединен с металлическими частями устройства и третьим контактом сетевой вилки.
- SG (цепь 102) — Signal Ground. Общий провод всех сигнальных цепей (гальванически не связан с PG).
- TXD (цепь 103) — Transmitter Data. Данные, передаваемые от ООД к АПД.
- RXD (цепь 104) — Receiver Data. Данные, передаваемые от АПД к ООД.
- RTS (цепь 105) — Request To Send. Этим сигналом ООД требует, чтобы АПД перешла в режим передачи данных в линию связи.
- CTS (цепь 106) — Clear To Send. Сигнал, которым АПД разрешает ООД передавать данные по цепи TXD.
- DSR (цепь 107) — Data Set Ready. Сигнал,которым АПД сообщает ООД о своей готовности к работе.
- DTR (цепь 108.2) — Data Terminal Ready. Этим сигналом ООД сообщает АПД о своей готовности к работе и требует его перехода в ^активное состояние.
- DCD (цепь 109) — Data Carrier Detected. Этим сигналом АПД сообщает ООД, что уровень сигнала, принимаемого из линии связи, находится в допустимых пределах и ООД может принимать и обрабатывать данные, поступающие по линии RXD.
В стандарте специально оговаривается, что состояние цепей DSR и CTS свидетельствует лишь о состоянии АПД и не связано с готовностью или неготовностью абонента, находящегося на другом конце линии связи, передавать или принимать данные. Другие сигналы интерфейса (их несколько десятков) используются лишь в специальных случаях и здесь не рассматриваются.
Логической 1 в цепях RXD и TXD соответствует напряжение от -3 до -12В, а логическому 0 — такое же напряжение положительной полярности (+3...+12В). Иногда эти состояния по аналогии с телеграфной техникой называют соответственно "нажатием" (MARK) и "отжатием" (SPACE). Для остальных цепей включенному состоянию соответствует положительное напряжение, а выключенному -— отрицательное. Сопротивление нагрузки каждой цепи по постоянному току должно быть не менее 3 кОм.
Передача данных по цепям RXD и TXD обычно ведется последовательным асинхронным способом в так называемом старт-стопном режиме, позволяющем отказаться от отдельных цепей для передачи синхронизирующих сигналов. Биты данных объединяются в слова, каждое из которых дополняется служебными битами: стартовым, стоповым и контроля четности. Число информационных бит в слове обычно равно восьми и соответствует байту данных в ОЗУ компьютера.
Рис.6.
В интервалах между передачей слов (байтов) в линии поддерживается уровень логической 1. Передача начинается со стартового бита, всегда имеющего уровень логического 0 (рис. 6). Этот бит служит для запуска приемника, который, обнаружив его, начинает отсчет интервалов времени, отведенных для передачи каждого последующего бита, и в соответствующие моменты фиксирует их значения.
Информационные биты следуют один за другим за стартовым битом. За ними следует бит контроля четности, значение которого при передаче устанавливается таким, чтобы общее число логических 1 в сигнале стало четным или нечетным в зависимости от заданного режима контроля. Подсчитывая число принятых логических 1, приемник может "убедиться" в правильности приема или зафиксировать сбой. Если контроль четности отключен, то контрольный бит не передается.
Передача заканчивается стоповыми битами, первый из которых останавливает работу приемника, и он переходит в режим ожидания следующего стартового бита. Стоповые биты всегда имеют уровень логической 1. Так как этот уровень совпадает с передаваемым в интервалах между словами, число стоповых битов, по существу, задает минимальную величину этих интервалов, необходимую для надежной связи.
Все описанные операции в компьютерах обычно выполняются специальными микросхемами-контроллерами последовательного интерфейса и не требуют участия главного процессора в процедуре передачи и приема. Его задачей остается лишь настройка контроллера на заданный режим обмена, загрузка в него данных, предназначенных для передачи и считывания принятых данных.
Связь через интерфейс RS-232C может вестись не только с разной скоростью, но и с различным числом информационных и стоповых бит в слове, с различными способами контроля четности. Общепринятых норм здесь нет. По этой причине следует очень внимательно относиться ко всем рекомендациям по настройке интерфейса, содержащимся в описаниях конкретных устройств и программных продуктов.
Подключение компьютера к модему обычно проблем не вызывает, так как кабель, предназначенный для этого, просто соединяет одноименные контакты двух разъемов. Заметим, однако, что на концах этого кабеля должны быть разъемы различных типов: к ООД (компьютеру) подключают гнездовую часть разъема, а к АПД (модему) — штыревую. Схема такого кабеля приведена на рис. 7 (здесь и далее в скобках указаны номера контактов 25-контактного разъема).
Рис.7.
Для непосредственного соединения двух компьютеров необходим более сложный кабель, который, как уже говорилось, должен заставить программное обеспечение поверить, что связь ведется через модемы. Такой кабель обычно называют нуль-модемным. Схема простейшего нуль-модемного кабеля для двусторонней связи показана на рис. 8. На обоих его концах установлены гнездовые части разъемов. На каждой из них цепи DTR, DSR и DCD, а также RTS и CTS соединены перемычками.
Цепи TXD и RXD в кабеле перекрещены таким образом, что каждая из них соединяется с противоположной на другом разъеме. Таким образом, включив сигнал DTR, компьютер тут же получает по цепи DSR — сигнал о готовности отсутствующего модема, а по цепи DCD - сигнал о достоверности получаемых по цепи RXD данных. Аналогично, запросив разрешение на передачу сигналом RTS, компьютер сразу получит его по цепи CTS. Данные, передаваемые любым из компьютеров по своей цепи TXD, поступят другому по его цепи RXD.
Рис.8.
Описанный кабель полностью имитирует модем, однако, как и настоящий модем, не позволяет аппаратно контролировать состояние устройства, подключенного к противоположному концу. Все описанное в предыдущем абзаце произойдет, даже если второй конец кабеля вообще никуда не подключен. Более совершенен в этом смысле кабель, схема которого показана на рис.9. В нем, кроме цепей RXD и TXD, перекрещены также цепи RTS с CTS и DTR с DSR.
Правда, назначение сигналов в этом случае не вполне соответствуют стандарту RS-232C. По цепям DTR/DSR компьютеры сообщают один другому о своей готовности к обмену данными. Включая сигнал RTS, компьютер по цепи CTS дает разрешение на передачу абоненту (в стандарте этим сигналом он запрашивал разрешение на передачу для себя). В связи с этим обмениваться данными по такому кабелю смогут далеко не все коммуникационные программы.
Рис.9.
Для достижения универсальности разработчики таких программ часто ограничиваются управлением обменом только с помощью сигналов DTR/DSR, устанавливая RTS/CTS в постоянно включенное состояние. Последнее необходимо потому, что во многих микросхемах-контроллерах последовательного интерфейса сигнал CTS аппаратно запрещает передачу и не может быть заблокирован программой.
Изготавливая кабель для связи через коммуникационный интерфейс, следует иметь в виду, что линии TXD и RXD должны быть выполнены витыми парами. "Обратные" провода из них на каждом разъеме следует соединить с контактом SG. Витые пары можно поместить в экран, который должен иметь сверху изоляционное покрытие. Экран заземляют только с одной стороны, подключив его к контакту PG. Управляющие цепи можно выполнить одиночными проводами. Максимальная длина кабеля зависит от скорости, с которой будет вестись передача. Для скорости 9600Б (бод) она не должна быть более 30 м. Для меньших скоростей допустима значительно большая длина.
Иногда встречается разновидность последовательного интерфейса, называемая ИРПС. Она известна также под названием "токовая петля" (current loop), которое довольно точно отражает ее особенности. Логически этот интерфейс эквивалентен описанному выше RS-232C, хотя управляющие сигналы здесь, как правило, не используются (считается, что все они постоянно находятся во включенном состоянии). Отличия заключаются в электрической реализации цепей связи.
Логическим 1 и 0 соответствуют не уровни напряжения, а значения силы протекающего по линии связи тока. В принципе, это позволяет увеличить дальность связи, так как падение напряжения на сопротивлении проводов в данном случае не имеет значения. Кроме того, в такую линию можно включить последовательно несколько приемников и передатчиков. Дополнительным преимуществом ИРПС является предусмотренная им гальваническая развязка цепей передатчика и приемника от линии связи.
Упрощенная схема связи между передатчиком и приемником данных по интерфейсу ИРПС показана на рис.10. Источник тока физически может находиться как в передатчике, так и в приемнике, что обычно устанавливается перемычками на интерфейсной плате. Выходная цепь передатчика представляет собой электронный ключ, замкнутое состояние которого, а следовательно, протекание тока в линии связи, соответствует передаче логической 1.
Стандартное значение этого тока -20 ±5 или 40 ±10 мА. Падение напряжения на приемнике при этом не должно превышать 1,5В. При разомкнутом ключе ток в линии связи не течет, что соответствует передаче логического 0. Для двусторонней связи требуется еще одна аналогичная петля.
Рис.10.
Распределение цепей ИРПС по контактам разъема стандартом не оговаривается. В адаптерах этого интерфейса разъем часто вообще отсутствует — вместо него устанавливают контактную колодку, где провода зажимают под винты. Проверить исправность канала связи в случае "токовой петли" просто — достаточно включить в нее миллиамперметр.
К игровому интерфейсу компьютера можно подключить два джойстика или четыре "ручки" (paddle) для игр. Если вы не любитель компьютерных игрушек, то этот порт остается без дела. Однако через него при соответствующем программном обеспечении можно вводить в компьютер аналоговые и цифровые сигналы.
Назначение контактов разъема и схема подключения джойстика приведены на рис. 11 (в скобках указаны номера контактов для второго джойстика). К сожалению, в настоящее время производители "железа" немного хитрят — практически на всех мультикартах игровой порт способен обслуживать только один джойстик.
Рис.11.
Для игрового порта в BIOS предусмотрены две функции. Если вызвать прерывание 15Н со значениями АН = 84Н и DX = 0, то в регистре AL будет возвращен байт, значения разрядов D4 - D7 которого соответствуют логическим уровням, поданным на контакты 2, 7, 10 и 14 разъема игрового порта. При вызове этого же прерывания со значениями АН = 84Н и DX = 1 в регистрах АХ, ВХ, СХ и DX будут возвращены числа, пропорциональные сопротивлениям резисторов, подключенных между контактом 1 и соответственно контактами 3, 6, 11 и 13.
Максимальное значение возвращаемого числа равно 511 и соответствует сопротивлению примерно 300 кОм. Дальнейшее увеличение сопротивления приводит к переполнению преобразователя. К сожалению, время преобразования сопротивления в число составляет несколько миллисекунд, а его линейность оставляет желать лучшего.
Тем не менее к игровому порту можно подключать различные резистивные и контактные датчики (температуры, освещенности, перемещения и т. п.). Напряжением +5В, выведенным на контакт 1, можно питать устройства, подключаемые к порту. Общим проводом служит контакт 4.
Рис.12.
У многих импортных разъемов, применяемых в компьютерах, есть отечественные аналоги, которые, однако, отличаются нумерацией контактов рис.12. Это нередко приводит к затруднениям при изготовлении кабелей. Преодолеть их помогут приводимые рисунки, на которых схематически показаны розетки разъемов со стороны установки ответных частей.
А. Карамызов