КОМПЬЮТЕРНОЕ ЖЕЛЕЗО
HARDWARE FOR PC

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

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

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

347




Рис. 8.18. Вариант схемы кабеля-адаптера MIDI
В пространстве ввода-вывода MPU-401 занимает два смежных адреса MPU (обыч¬но ЗЗОЬ)и MPU+1.

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

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

бит 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 (иначе возможны потери принятых байт).

Hosted by uCoz