Главная страница

Учебное пособие по дисциплине АПЭВМ Курейчик КП, Минск 2006. Учебное пособие по дисциплине "апэвм" Минск 2006 содержание введение


Скачать 4.42 Mb.
НазваниеУчебное пособие по дисциплине "апэвм" Минск 2006 содержание введение
АнкорУчебное пособие по дисциплине АПЭВМ Курейчик КП, Минск 2006.pdf
Дата06.05.2017
Размер4.42 Mb.
Формат файлаpdf
Имя файлаУчебное пособие по дисциплине АПЭВМ Курейчик КП, Минск 2006.pdf
ТипУчебное пособие
#7166
КатегорияИнформатика. Вычислительная техника
страница6 из 6
1   2   3   4   5   6
ЗВУКОВАЯ СИСТЕМА
ЗВУКОВЫЕ КАРТЫ
Современные звуковые карты являются специальными платами расширения, работающими на шине PCI. Современная звуковая карта должна иметь 16 бит стерео цифро-аналоговый и аналого-цифровой преобразователи, обеспечивать запись и воспроизведение стереозвука "CD качества" (44100 Гц частота преобразования)в режиме полного “дуплекса” (возможность одновременной записи и воспроизведения без каких-то либо ограничений) и иметь синтезатор
MIDI основанный на Wave-Table принципе. Желательно иметь возможность аппаратного микширования нескольких звуковых потоков, осуществлять аппаратное ускорение при построении геометрической акустической модели
(для обеспечения трехмерного позиционирования звука).
ПОРТЫ SOUND BLASTER
Родоначальницей массового проникновения звуковых карт в персональные компьютеры является фирма Creative Labs.
Sound Blaster 2.0 использует так называемый “базовый порт”, обычно 220h. Все остальные порты отсчитываются от базового, который может быть изменен программно.
В дальнейшем знак “(w)” обозначает доступность для записи, “(r)” - для чтения.
2x0h (w) порт данных CMS Music Voice 1-6 2x1h (w) регистры CMS Music Voice 1-6 2x2h (w) порт данных CMS Music Voice 7-12 2x3h (w) регистры CMS Music Voice 7-12 2x8h (r) статус FM-синтезатора
2x8h (w) регистр адреса FM-синтезатора
2x9h (w) порт данных FM-синтезатора
FM-синтезатор также доступен через порты 388h и 389h - для совместимости с синтезаторами AdLib.
2x6h (w) сброс DSP
2xAh (r) чтение данных из DSP
2xCh (r) статус порта записи в DSP
2xCh (w) порт данных и команд DSP
2xEh (r) статус доступности DSP
Sound Blaster Pro использует 24 порта, начиная с базового
2x0h (r) статус левого FM-канала
2x0h (w) левый регистр FM-синтезатора
2x1h (w) порт данных левого FM-канала
2x2h (r) статус правого FM-канала
2x2h (w) правый регистр FM-синтезатора
63

2x3h (w) порт данных правого FM-канала
2x4h (w) регистр микшера
2x5h (r/w) порт данных микшера
2x8h (r) статус FM-синтезатора
2x8h (w) регистр FM-синтезатора
2x9h (w) порт данных FM-синтезатора
2x6h (w) - 2xEh (r) аналогично Sound Blaster 2.0 2x0+10h (r) - 2x0+13h (w) работа с CD-ROM (устарело).
ПРЕРЫВАНИЯ SOUND BLASTER
Sound Blaster использует аппаратное прерывание IRQ2,3,5,7 или 9.
Эти прерывания используются для выполнения команд:
10h Direct mode 8-bit DAC (single-byte data transfer)
14h DMA mode 8-bit DAC
16h DMA mode 2-bit ADPCM DAC
17h DMA mode 2-bit ADPCM DAC with Reference byte
20h Direct mode 8-bit ADC (single-byte data transfer)
24h DMA mode 8-bit ADC
30h MIDI Read (polling mode)
31h MIDI Read (interrupt mode)
34h MIDI UART mode (polling mode)
35h MIDI UART mode (interrupt mode)
38h MIDI Write (polling mode)
40h Set Time Constant
74h DMA mode 4-bit ADPCM DAC
75h DMA mode 4-bit ADPCM DAC with Reference byte
76h DMA mode 2.6-bit ADPCM DAC
77h DMA mode 2.6-bit ADPCM DAC with Reference byte
80h Set Silence Mode Data length
91h High-Speed DMA mode 8-bit DAC
92h High-Speed DMA mode 8-bit ADC
D1h Turn on Speaker
D3h Turn off Speaker
D8h Get Speaker Status
00h = off
FFh = on
D0h Halt DMA in progress
D4h Continue DMA
E1h Get DSP Version low-byte = Major
High-byte = Minor
DSP
DSP (Digital Signal Processor - обработчик цифровых сигналов) может использоваться в двух режимах - непосредственное программирование и DMA.
64

Первый способ проще для программирования, но он требует программной установки всех необходимых задержек, а также ограничивает формат проигрываемого звука 8-мибитным PCM (Pulse Code Modulation - импульсная кодовая модуляция) без сжатия. DMA-режим позволяет также работать со сжатым звуком.
Перед началом работы DSP нужно проинициализировать.
1.
Запись байта = 1 в порт сброса DSP
2.
Задержка не менее 3 микросекунд
3.
Запись байта = 0 в порт сброса DSP
4.
Ожидание установленного бита 7 в порту статуса доступности DSP
(2xEh)
5.
Чтение байта из порта данных DSP (2xAh)
6.
Если прочитано 0AАh, DSP готов, иначе - пункт 4.
DSP требует около 100 микросекунд для инициализации. Если после 100 повторов не получено значение 0AАh, звуковая карта не работает (или ее нет вообще).
Запись производится:
Чтение статуса буфера записи (порт 2xCh)
Если бит 7 установлен, повтор шага 1
Запись в порт данных (2xCh)
Чтение производится:
Чтение порта доступности данных DSP (2xEh)
Если бит 7 установлен в 0, повтор шага 1
Чтение байта из порта 2xAh
Обработка прерываний
В режиме DMA DSP предоставляет прерывания для выполнения операций цифроаналогового преобразования (вывод звука), аналого-цифрового (для ввода звука) и MIDI. Для выполнения этих операций требуется перехват прерывания. Т.е. чтение из порта DSP (2xAh) выполняется обработчиком прерывания. Вызов прерывания осуществляется путем чтения порта доступности DSP (2xEh) без проверки результата чтения. Обработчик прерывания должен послать сигнал EOI (записать 20h в порт 20h - как и любой другой обработчик аппаратного прерывания).
Работа с DSP в непосредственном режиме
Запись байта 10h в порт команд DSP (2xCh)
Запись одного байта некомпрессированного звука (PCM 8bit) в порт записи
(2xCh)
Осуществление необходимой задержки
Повторить с шага 1
До начала этой операции нужно проинициализировать звуковую карту.
Работа с DSP в режиме DMA
Установить обработчики прерываний
Запрограммировать частоту дискретизации передаваемых звуковых данных:
отключить колонки (запись байта 0D1h в порт команд (2xCh) команда “Установить время” (40h) в тот же порт
65
записать значение дискретизации в тот же порт (оно находится по формуле 256
- (1 000 000 / частота). Для 8 кГц это 131
Запрограммировать контроллер DMA на прием блока данных
Выбор канала 1 (запись байта 5 в регистр маски DMA (порт 0Ah)
Запись 0 в порт 0Ch
Установить DMA для ЦАП (45h) или АЦП (49h) записью в порт 0Bh
Послать адрес блока данных записью младшего, затем старшего байта адреса в порт 02h
Запись номера физической страницы в порт 83h
Запись младшего, затем старшего байта числа (байт в блоке данных - 1) в порт
03h
Включить канал 1 (запись байта 01h в регистр маски - порт 0Ah)
Программирование DSP для приема/выдачи данных
Команда “DMA-режим 8-битного ЦАП” - 14h в порт 2xCh
Запись младшего, затем старшего байта длины блока данных в порт команд
(2xCh)
Вызов прерывания
Сохранить регистры (если нужно)
Запросить прерывание (чтение из порта 2xEh), только один раз (!)
Если это был последний блок данных - на шаг f)
Запрограммировать DMA (см. шаг 3) на новый блок данных
Запрограммировать DSP (см. шаг 4)
Послать сигнал EOI
Восстановить регистры
Вызвать IRET
Восстановить обработчик прерывания
66
1   2   3   4   5   6


написать администратору сайта