Сигналами SCK и WS управляет контроллер шины, в роли которого может быть либо передатчик, либо приемник, либо внешнее (по отношению к ним) устройство. Передатчик (и контроллер) на шине всегда один, приемников может быть несколько.
Помимо этих интерфейсов в студийной аппаратуре применяют интерфейсы ADAT и TDIF, которые имеются только на дорогих профессиональных звуковых картах.
«Исторические» модели звуковых карт
Рассмотрим кратко основные «столпы совместимости» — массовые звуковые карты. Заметим, что ими не исчерпывается перечень существующих устройств — есть множество других, среди которых имеются и «элитные» карты, удовлетворяющие потребности самых взыскательных музыкантов.
AdLib
Ad Lib — первая звуковая карта для PC, имеющая только FM-синтезатор на микросхеме YM3812 (0PL2), занимающая адреса 388—389h. Карта Ad Lib Gold имеет стереофонический синтезатор на микросхеме YM262 (0PL3), занимает адреса 388—38В. Аудиокодеков эти карты не имели; регистровая совместимость с Ad Lib поддерживалась (или эмулировалась) многими последующими картами.
MPU-401 UARTmMT-32
Карта MPU-401 фирмы Roland — первая карта расширения для PC с интерфейсом MIDI, получившая широкое распространение. Контроллер MPU (MIDI Processing Unit — устройство обработки сообщений MIDI) помимо асинхронного последовательного порта UART (Universal Asynchronous Receiver Transmitter — универсальный асинхронный приемопередатчик), реализующего физический интерфейс MIDI, имел развитые аппаратные средства для использования PC в качестве секвенсора. Он имел внутренний таймер-счетчик, который маркировал приходящие сообщения по времени. Синхронно с этим таймером мог работать внутренний метроном, подававший звуковые сигналы. Таймер через аппаратные прерывания мог управлять отправкой сообщений MIDI. Ряд моделей имели средства синхронизации с ленточными записывающими устройствами, синхронизации MTC/SMPTE и фильтрации данных. Такая насыщенность аппаратными сервисами была обусловлена низкой производительностью PC на 8086, недостаточной для программной реализации секвенсора.
Звуковые карты PC____________________________________________ 731
Эти довольно навязчивые сервисы, доступные в интеллектуальном режиме (intelligent mode) работы платы, высокопроизводительными компьютерами не использовались (те же функции стало проще реализовать программно и не разбираться с источниками прерываний, приходящих от MPU). Контроллер MPU-401 имел и простой режим работы — UART mode, — в котором применялся только двунаправленный асинхронный порт.
В пространстве ввода-вывода MPU-401 занимает два смежных адреса, MPU (обычно 330h) и MPU+1:
♦ Порт DATA (адрес MPU+O) обеспечивает запись и считывание байтов, переда ваемых и принимаемых по интерфейсу 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 отвечает подтверждением АСК (FEh). Байт подтверждения извлекается из регистра данных, до его прихода следующую команду MPU не воспримет. На команду с кодом 3Fh контроллер MPU подтверждением не отвечает (некоторые эмуляторы отвечают и на эту команду).
Ввод данных может осуществляться по программному опросу бита DSR или по прерываниям. Аппаратные прерывания от MPU UART вырабатываются по приему байта. Обработчик прерывания должен считать все поступившие байты, проверив перед выходом, что DSR = 1 (иначе возможны потери принятых байтов).
Вывод данных разрешается битом DRR, прерывания по готовности вывода не вырабатываются.
Совместимость с MPU-401', имеющаяся у большинства современных звуковых карт с интерфейсом MIDI, означает наличие приемопередатчика, программно совместимого с MPU-401 в режиме UART; функции интеллектуального режима обычно не поддерживаются.
МТ-32 — синтезатор с MIDI-интерфейсом, подключаемый к плате MPU-401, обеспечивает одновременное звучание до 32 нот, имеет встроенный ревербератор и поддерживает 33 звуковых эффекта. Набор инструментов — 128 мелодиче-