Выбрать главу

В сложных цифровых аудиосистемах часто возникает необходимость в распределении сигнала между несколькими процессорами обработки. На рис. 9.28 показан 16-канальный микшер, в котором использовано два ADSP-21160S.

Поток данных от шестнадцати 24-разрядных АЦП поступает на конвертор FPGA. Он преобразует последовательный поток данных от АЦП в параллельный и направляет его на два внешних порта ADSP-21160. Внешний порт на каждом DSP имеет аппаратную поддержку одновременной передачи данных на оба DSP сразу. Контроллеры прямого доступа к памяти DSP получают эти данные и перемещают их по мере необходимости во внутреннюю память. Аппаратная поддержка и контроллеры прямого доступа к памяти снижают сложность архитектуры конвертера FPGA, потому что в этом случае от FPGA требуется только передача данных на шину. То есть отпадает необходимость в арбитраже шины и генерации адресов.

Сигнальные процессоры выполняют самые различные алгоритмы обработки, например микширование, панорамное звучание, регулировку АЧХ и дополнительную обработку типа реверберации или компрессии/экспандирования динамического диапазона. Выходной поток аудиоданных после такой обработки поступает на 24-разрядный стереоЦАП. Эти задачи могут выполняться одновременно, например, один из DSP отвечает за микширование и эффекты, в то время как другой реализует функции эквалайзера. В другом случае на каждый DSP возлагается задача обработки половины каналов. Выбор оптимального алгоритма определяется сложностью необходимой обработки.

Для этого примера видно, что два процессора ADSP-21160S обладают достаточной вычислительной способностью для выполнения различных алгоритмов по 16 каналам с тактовой частотой 48 кГц одновременно. За 20 нс процессорное ядро каждого DSP способно выполнить 2000 инструкций. Если каждый DSP отвечает за половину каналов (8 каналов), то за это время DSP может выполнить 250 инструкций по каждому каналу.

У процессора ADSP-21160 имеются достаточно примитивные инструкции для реализации трехполосного эквалайзера (низкие, средние и высокие частоты), микшера, эффектов задержки, и компрессии по каждому каналу. Перемещение данных в память не требует затрат вычислительных ресурсов, ввиду отсутствия мультизадачности.

Сигма-дельта АЦП с программируемым цифровым фильтром

Большинство сигма-дельта АЦП имеют собственный внутренний цифровой фильтр. Частота среза этого фильтра (и скорость выходного потока данных АЦП) привязана к частоте задающего генератора. AD7725 представляет собой 16-разрядный сигма-дельта АЦП с программируемым внутренним цифровым фильтром. Блок-схема 9.29 показывает, что максимальная частота дискретизации преобразователя составляет 19,2 МГц.

Следующий за преобразователем перестраиваемый фильтр с конечной импульсной характеристикой выполняет прореживание выходных данных преобразователя с коэффициентом децимации 8, снижая скорость выходного потока данных до 2,4 МГц. Отклик перестраиваемого FIR-фильтра также показан на рис. 9.29. На выходе перестраиваемого фильтра расположен программируемый цифровой фильтр. На диаграмме показан типичный отклик для FIR-фильтра низкой частоты с частотой среза 300 кГц.

Программное управление фильтром позволяет гибко оперировать длиной фильтра и коэффициентом децимации. Фильтр может иметь до 108 коэффициентов, до 5 режимов прореживания и коэффициенты децимации от 2 до 256. При обработке коэффициентов поддерживается точность 24 разряда, а при арифметических операциях — 30 разрядов.

AD7725 содержит процессор постобработки PulseDSP™ компании Systolix, который позволяет запрограммировать характеристики фильтра через параллельный или последовательный интерфейс микропроцессора.

Процессор постобработки имеет полностью программируемое ядро, которое обеспечивает производительность обработки до 130 миллионов операций умножения с накоплением в секунду (MAC). Процесс программирования процессора сводится к редактированию пользователем конфигурационного файла, который содержит все необходимые данные для программирования функций фильтра. Этот файл создан с помощью компилятора FilterWizard, который поставляется Analog Devices. Компилятор AD7725 воспринимает значения коэффициентов фильтра как входные данные и автоматически генерирует необходимый программный код устройства.