Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Выч.маш.сист.и сети2 Учебное пособие.doc
Скачиваний:
45
Добавлен:
24.09.2019
Размер:
2.12 Mб
Скачать

8.2. Программирование звуковых плат.

Основным элементом программного обеспечения ЗП естественно считать ее драйвер, при установке которого определяется конкретный номер аппаратного прерывания и базовый адрес портов ввода / вывода, которые должны принадлежать интервалу 220 - 250h. Контроллер ЗП программируется через семь основных портов:

  • 2x4h - порт индекса миксера ('х' - второй разряд базового адреса);

  • 2x5h - порт данных чтения и записи данных;

  • 2х6h - порт инициализации ЗП;

  • 2хAh - порт чтения данных;

  • 2хCh - порт записи команд и данных (7-й бит - состояние буфера записи);

  • 2хEh - порт состояния буфера чтения (бит 7) и подтверждения прерывания восьми разрядных ЗП;

  • 2хFh - порт подтверждения прерывания шестнадцати разрядных ЗП.

Работа с ЗП начинается с ее инициализации по следующему алгоритму:

  • записывается 1 в порт инициализации;

  • задержка 3 микросекунды;

  • записывается 0 в порт инициализации;

  • читается порт состояния буфера пока бит 7 равен 1;

  • опрашивается порт данных чтения до появления кода AAh.

Если в течение 100 мкс требуемый код не поступил, то либо ЗП отсутствует, либо неверен базовый адрес.

Запись в контроллер ЗП требует предварительной проверки состояния порта записи: бит 7 должен стать равным 1. При выполнении этого условия информация пересылается в порт записи.

Чтение информации из контроллера ЗП через порт чтения данных предваряется проверкой бита 7 порта состояния буфера чтения: он должен стать равным 0.

Воспроизведение и ввод звуковой информации может осуществляться одним из двух методов:

  • прямым программированием ЦАП или АЦП;

  • программированием КПДП для управления информационными потоками в ЦАП или из АЦП.

Команды прямого программирования контроллера ЗП: 10h - вывести байт данных на ЦАП без КПДП; D1h - включить воспроизведение звука; D3h - выключить воспроизведение звука; 20h - получить байт данных из АЦП. Скорость обмена данных в этом режиме определяется скоростью поступления команд и скоростью их обработки в аппаратуре ЗП.

Метод использования КПДП для управления ЦАП и АЦП позволяет оперировать с шестнадцатиразрядными данными и основан на использовании команд, приведенных в табл.8.1. Система команд позволяет использовать адаптивную импульсно-кодовую модуляцию (АИКМ), основанную на передаче разности смежных выборок. АИКМ позволяет уменьшить длину выборки и сжать информацию.

Табл.8.1.

Код команды

Содержание команды

14h

Включение вывода байта на ЦАП.

24h

Включение записи байта с АЦП.

74h

Включение вывода на ЦАП 4-х бит АДКМ.

75h

Включение вывода на ЦАП 4-х бит АДКМ с байтом ссылки.

76h

Включение вывода на ЦАП 2.6 бит АДКМ.

77h

Включение вывода на ЦАП 2.6 бит АДКМ с байтом ссылки.

16h

Включение вывода на ЦАП 2-х бит АДКМ.

17h

Включение вывода на ЦАП 2-х бит АДКМ с байтом ссылки.

1Ch

Включение вывода байта на ЦАП с авто инициализацией и частотой выборки до 23 кГц.

90h

Включение вывода байта на ЦАП с авто инициализацией и частотой выборки до 44 кГц.

48h

Установка длины блока на пересылку командами 91h и 99h.

91h

Включение вывода на ЦАП стерео.

99h

Включение записи с АЦП стерео.

D0h

Остановить 8-ми битный режим.

D4h

Возобновить 8-ми битный режим.

D5h

Остановить 16-ти битный режим.

D6h

Возобновить 16-ти битный режим.

D9h

Выход из авто инициализационного 8-ми битного режима после окончания текущего блока.

DAh

Выход из автоинициализационного 16-ти битного режима после окончания текущего блока.

E1h

Получить номер версии ЗП.

40h

Установка частоты выборки.

КПДП управляет пересылками данных без использования процессора. Длинна элемента данных определяется номером КПДП: КПДП-1 с данными размером 1 байт, КПДП-2 с данными размером 2 байта. Максимальный объем пересылаемой информации равен 64 Кбайтам.