Обработка аналоговых сигналов процессором ADSP-2189M
В начале программы в секции памяти программ заполняется таблица векторов прерываний, которая связывает вектор с именем программы и подпрограммы прерывания (листинг 3).
Сброс процессора вызывает выполнение программы с нулевого адреса. Программа в листинге 3 определяет безусловный переход с нулевого стартового адреса к основной программе main. Сигнал прерывания приемника последовательного порта SPORT0 вызывает выполнение подпрограммы обработки прерывания fir_start. Команда rti означает окончание подпрограммы обработки прерывания. Поэтому сигналы остальных источников прерываний никаких действий в программе не вызывают. Каждый вектор занимает в таблице 4 адреса. Векторы, не использумые программой main, заполняются четырьмя командами rti. Листинг 4 содержит объявление двух циклических буферов в памяти ОЗУ процессора ADSP-2189M с помощью константы taps. Один из них находится в памяти данных dm и содержит 15 последних отсчетов аналогового сигнала в массиве data_buffer, заполняемого с частотой дискретизации FS по ходу выполнения программы. Другой буфер располагается в области программ pm для хранения коэффициентов фильтра в массиве coefficient. Коэффициенты фильтра считываются из файла только при компоновке программы. Эти значения могут изменяться при повторном проходе компоновщика (linker) без дополнительной трансляции ассемблером.
В листинге 5 приведен пример основной программы main и подпрограммы обработки прерываний fir_start. В модуле main программы определяются переменные циклических буферов с помощью регистров I (указатель), L (длина), M (модификатор). Каждое прерывание вызывает перемещение указателя I на один шаг (М = 1) в каждом буфере. С помощью цикла clear все элементы буфера обнуляются. В управляющие регистры заносятся числа, определяющие параметры и режим работы последовательного порта SPORT0. В подпрограмме fir_start заполняется буфер цифровых отсчетов аналогового сигнала с использованием регистра приемника rx0, рассчитывается выходной сигнал КИХ-фильтра N-го порядка и выводится на ЦАП кодека через выходной регистр порта tx0.
После проведения процессором инициализации в начале программы схема на рис. 20 выполняет циклическую обработку прерываний с периодом дискретизации TS в следующем порядке: - преобразование входного напряжения в 16-разрядный двоичный код; - передача последовательным кодом двух слов по 16 бит АЦП каждого канала с синхронизацией сигналами кодека SCLK и SDOFS; - формирование последовательным портом SPORT0 сигнала прерывания после приема двух слов от кодека; - передача контроллером прерывания вектора прерывания 0х0014 (в соответствии с табл. 3) в процессор; - временное прекращение основной программы main и переход на подпрограмму обработки прерывания, имя которой fir_start указано в таблице векторов (листинг 3); - выполнение подпрограммы обработки прерывания fir_start, которая начинается чтением регистра приемника с новым отсчетом АЦП (si=rx0) и завершается командой вывода выходного сигнала КИХ-фильтра на ЦАП (tx0 = mrl); - возвращение в прерванную программу main; - прием последовательным кодом за 32 такта сигнала синхронизации SCLK двух 16-разрядных слов в регистр кодека, одно из которых было рассчитано в подпрограмме fir_start; - преобразование цифрового двоичного кода в пропорциональный выходной аналоговый сигнал ЦАП одного канала (моно) или двух каналов (стерео). Временные диаграммы цифровой фильтрации входного аналогового сигнала приведены на рис. 19. Графики не отражают действительных задержек, вносимых отдельными блоками устройства цифровой обработки. Они характеризуют последовательность преобразований и поясняют синхронизацию подпрограммы обработки прерываний сигналами кодека и последовательного порта процессора. Время задержки сигнала tЗС определяет минимальную временную задержку прохождения аналогового сигнала от входа АЦП до выхода ЦАП, вносимую кодеком и подпрограммой fir_start. Задержка tЗС не связана с частотными свойствами КИХ-фильтра и проявляется даже в том случае, когда выходной сигнал ЦАП повторяет входной сигнал АЦП. Фазовая задержка сигнала определяется типом фильтра и его порядком.
Рис. 19. Временные диаграммы цифровой обработки аналогового сигнала кодека Литература:
1. Корнеев В.В., Киселев А.В. Современные микропроцессоры. – М.: Нолидж, 1998. 2. Солонина А.И. , Улахович Д.А., Яковлев Л.А. Цифровые процессоры обработки сигналов фирмы Motorola. – СПб.: БХВ-Петербург, 2000. 3. Сергиенко А.Б. Цифровая обработка сигналов. – СПб.: Питер, 2002. 4. Рудаков П.И. Обработка сигналов и изображений. MATLAB 5.x. – М.: ДИАЛОГ-МИФИ, 2000. 5. Степанов А.В., Матвеев С.А. Методы компьютерной обработки сигналов радиосвязи. – М.: СОЛОН-Пресс, 2003. 6. ADSP-2189M EZ-KIT Lite Evaluation System Manual. –Analog Devices Inc, Norwood, 2002. 7. Микропроцессорные системы./ Под ред. Д.В. Пузанкова. – СПб.: Политехника, 2002.
[d1]
Популярное: Организация как механизм и форма жизни коллектива: Организация не сможет достичь поставленных целей без соответствующей внутренней... Почему люди поддаются рекламе?: Только не надо искать ответы в качестве или количестве рекламы... Модели организации как закрытой, открытой, частично открытой системы: Закрытая система имеет жесткие фиксированные границы, ее действия относительно независимы... ©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (665)
|
Почему 1285321 студент выбрали МегаОбучалку... Система поиска информации Мобильная версия сайта Удобная навигация Нет шокирующей рекламы |