Скачиваний:
117
Добавлен:
15.09.2014
Размер:
2.71 Mб
Скачать

только для интеллектуального режима). В байте состояния определеныследующиебиты:

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

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

По включении питания «настоящая» карта MPU-401 устанавливается в интеллектуальный режим, из которого в режим UART ее можно перевести командой с кодом 3Fh. Программный сброс MPU-401 (опять-таки в интеллектуальный режим) осуществляется командой RESET (код FFh), на эту команду MPU ответит подтверждением АСК (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.

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

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

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

Адаптер Game-порта имеет в пространстве ввода-вывода один регистр с адресом 20 lh, биты которого при чтении отображают состояние кнопок и компараторов аналоговых сигналов. Ввод дискретных сигналов от кнопок пояснений не требует. Упрощенная схема одного канала аналогового ввода приведена на рис. 7.19. В начале преобразования

конденсатор разряжается через ключ, после чего начинается его заряд, скорость которого определяется величиной сопротивления датчика (чем больше сопротивление, тем медленнее заряд). Напряжение на конденсаторе контролируется компаратором, который срабатывает по достижении определенного уровня. Выходы компараторов всех четырех каналов преобразования, как и дискретные входы, собираются в регистр (см. ниже), который может быть программно считан. Преобразование выполняется чисто программно и начинается по выводу любого байта в регистр адаптера (20lh), при этом биты 0-3 устанавливаются в единицу. Далее программа циклически выполняет чтение регистра адаптера и измеряет время до возврата в нулевое состояние бит 0-3, соответствующих четырем аналоговым каналам. Если аналоговый вход закорочен на шину GND или цепь измеряемого сопротивления разорвана, соответствующий бит не обнулится. Поэтому в программе преобразования должен быть предусмотрен тайм-аут. Для измеряемых сопротивлений в диапазоне 0-100 кОм время определяется по формуле Т(мкс)=24,2+1 1хК(кОм).

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

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

Порт имеет разъем-розетку DB15S. Назначение выводов и соответствие сигналов битам регистра приведено в табл. 7.20. Резисторы подключаются к шине питания +5 В, кнопки

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

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

Бит

Назначение

Контакт

 

7

Джойстик В кнопка #2

14

 

6

Джойстик В кнопка #1

10

 

5

Джойстик А кнопка #2

7

 

4

Джойстик А кнопка #1

2

 

3

Джойстик В Y-координата (Y2)

13

 

2

Джойстик В Х-координата (Х2)

11

 

1

Джойстик А Y-координата (Y1)

6

 

0

Джойстик А Х-координата (Х1)

3

 

-

GND

4,5,(12)

 

-

+5 В

1,8,9,(15)

 

-

MIDI In (Rx) — вход (на звуковой карте)

15

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

-

MIDI Out (Tx) — выход (на звуковой карте)

12

адаптеру

 

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

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

20lh);

DX=1 — чтение координат X, Y джойстика А (в регистры АХ, ВХ) и В (в СХ, DX). При ошибочном задании кода в DX устанавливается CF-1. Стандартный джойстик поддерживается и ОС Windows.

Соседние файлы в папке ПУЭВМ