Олег Вальпа - Разработка устройств на основе цифровых сигнальных процессоров фирмы Analog Devices с использованием Visual DSP++ стр 45.

Шрифт
Фон

Олег Вальпа - Разработка устройств на основе цифровых сигнальных процессоров...

Рис. 24.3

Перед запуском программы создайте с помощью команды меню Register→Custom окно, в котором будут отображаться регистры AX0, RX1, TX1. Кроме того, откройте еще одно с помощью команды меню Register→Program Control для отображения содержимого регистров управления процессора. Изменение содержимого этих регистров можно будет наблюдать в процессе пошагового выполнения программы. Допускается добавление окон для отображения и других регистров, но помните, что избыточная информация загромождает экран и затрудняет изучение программы.

Теперь можно скомпилировать и запустить программу в пошаговом режиме, с помощью клавиш F7 и F11 соответственно. Кроме того, программу можно запустить в непрерывном режиме, используя команду Debug→Run, или клавишу F5, или соответствующую кнопку на панели инструментов. В результате выполнения программы, данные из входного файла Serin.dat должны без изменений переписаться в выходной файл Serout.dat. После окончания работы программы в окне выходной информации появится сообщение: "Error in reading from stream for Sport 1", которое означает, что отладчик достиг конца входного файла при чтении данных.

При выполнении программы в непрерывном режиме допускается устанавливать точки останова в тех местах программы, где необходимо проконтролировать значение каких-либо данных в регистрах или памяти процессора. Для этих целей используются кнопки панели инструментов в виде кисти руки или синих флажков. Для установки точки останова необходимо выделить какую-либо строку программы и нажать кнопку с именем "Toggle Bookmark". Снятие любой точки останова производится повторным нажатием этой же кнопки. Для снятия всех точек останова в программе используется кнопка с именем "All Clear Bookmark". Переход между точками останова вверх или вниз производится с помощью кнопок "Next Bookmark" и "Prevision Bookmark" соответственно.

В исследуемом примере программы, инициализация SPORT1 задает формирование внутреннего кадрового сигнала порта. Программный пакет Visual DSP++ позволяет симулировать внешний кадровый сигнал для порта, с заданными временными параметрами. Для того чтобы задействовать данный механизм, произведите небольшую корректировку программы, изменив настройку кадровой синхронизации для порта SPORT1. Затем установите параметры внешнего прерывания кадровым сигналом с помощью команды главного меню "Setting→Interrupts". В открывшемся окне (рис. 24.4) выберите в качестве источника внешнего прерывания (External Interrupts) кадровый сигнал приемника RFS1 и задайте число циклов Min cycles=0 a Max cycles=10. Нажмите кнопку "Add", а затем "OK". Теперь на панели инструментов найдите и нажмите кнопку "Restart" и выполните программу по шагам, нажимая клавишу F11.

Олег Вальпа - Разработка устройств на основе цифровых сигнальных процессоров...

Рис. 24.4

Выполняя программу в пошаговом режиме, можно наблюдать за изменением всех регистров, а также определять число циклов процессора при выполнении любой строки команд.

В программном пакете Visual DSP++ можно создавать новые проекты. Для этого необходимо закрыть открытый ранее проект с помощью команды Project→Close и выполнить команду Project→New. При этом откроется окно "Save New Project As" для создания нового проекта (рис. 24.5).

Олег Вальпа - Разработка устройств на основе цифровых сигнальных процессоров...

Рис. 24.5

Нажмите в этом окне кнопку создания нового каталога и задайте ему новое имя. Теперь откройте вновь созданный каталог и задайте имя нового проекта. После чего нажмите кнопку "Save" (сохранить). При этом откроется окно свойств проекта "Project Options" (рис. 24.6). Выберите в этом окне в списке "Processor" тип ADSP-2181 и закройте окно с помощью кнопки "OK".

Олег Вальпа - Разработка устройств на основе цифровых сигнальных процессоров...

Рис. 24.6

Далее создайте новый файл программы с помощью команды "File→New" и введите в него текст программы, подобный тому, что приведен ниже:

.section/pm interrupts;

__reset: JUMP start; NOP; NOP; NOP; /*reset vector*/

RTI; NOP; NOP; NOP; /*IRQ2*/

RTI; NOP; NOP; NOP; /*IRQL1*/

RTI; NOP; NOP; NOP; /*IRQL2*/

RTI; NOP; NOP; NOP; /*SPORT0 transmit*/

RTI; NOP; NOP; NOP; /*SPORT0 receive*/

RTI; NOP; NOP; NOP; /*IRQE*/

RTI; NOP; NOP; NOP; /*BDMA*/

RTI; NOP; NOP; NOP; /*SPORT1 transmit*/

RTI; NOP; NOP; NOP; /*SPORT1 receive*/

RTI; NOP; NOP; NOP; /*Timer*/

RTI; NOP; NOP; NOP; /*Power down*/

.section/pm program;

start: nop;

jump start;

Этот текст в дальнейшем можно использовать в качестве шаблона (заготовки) новой программы для сигнального процессора. Сохраните созданный файл с каким-либо допустимым именем и расширением "asm" и выполните команду Project→Add to Project→File(s). Выберите сохраненный файл с программой и нажмите кнопку "Add". Теперь необходимо добавить в каталог с проектом файл Adsp-2189.ldf, который можно взять из рассмотренных ранее каталогов с примерами проектов. Данный файл необходим для определения типа процессора и трансляции программы. После этого программу можно транслировать и запускать на выполнение. При успешной компиляции проекта, в подкаталоге "Debug" проекта должен появиться исполняемый файл с расширением "dxe", который автоматически загружается в отладчик-симулятор при запуске программы.

Для получения файла в рассмотренном нами ранее формате "lda" можно воспользоваться специальной утилитой elf2aexe.exe, входящей в состав Visual DSP++. С целью автоматизации этого процесса предлагаю использовать командный файл, имеющий следующее содержание:

cls

elf2aexe.exe %1.dxe %1

del %1.lda

del %1.sym

ren %1.exe %1.lda

Здесь вначале производится очистка дисплея, затем вызывается утилита elf2aexe.exe с именем преобразовываемого файла в качестве входного параметра. После чего выполняются операции удаления вспомогательных файлов и переименования полученного файла. Данный командный файл можно назвать именем dxe_lda.bat и использовать для его вызова команду: dxe_lda.bat имя_файла.

Полученный таким образом файл с расширением "lda" можно использовать для загрузки в аппаратный эмулятор или тестовую плату через интерфейс IDMA.

Глава 25. Спектральный анализ сигнала в среде Visual DSP++

В этой главе рассматривается программный метод спектрального анализа цифрового сигнала на примере программы, выполняемой в среде разработки Visual DSP++.

Наиболее распространенной и актуальной задачей цифровой обработки сигналов является спектральный анализ сигнала. Полученный в результате анализа спектр сигнала позволяет получить такие важные характеристики сигнала как частоту и амплитуду гармоник, из которых состоит сигнал. Имея эти данные, можно проводить анализ сигнала, на содержание в нем той или иной частоты с определенной амплитудой и длительностью.

Одним из наиболее распространенных и известных методов получения спектра является метод дискретного преобразования Фурье (ДПФ). Этот метод активно применяется в анализаторах спектра, устройствах обработки звука и изображений, распознавания образов и т.п.

ДПФ позволяет преобразовать N комплексных отсчетов сигнала во временной области в N комплексных отсчетов спектра в частотной области. Из многих теоретических источников известно, что во временной области входному сигналу с частотой, равной f, в частотной области соответствует спектр сигнала, отображаемый в диапазоне от -f/2 до f/2, где отрицательные значения составляют мнимую, а положительные значения - действительную часть спектра сигнала. Причем действительная часть спектра обладает четной симметрией, а мнимая часть нечетной. С целью сокращения количества операций и ускорения тем самым расчетов спектра сигнала, обычно ограничиваются вычислением модуля спектра сигнала в области частот от 0 до f/2.

Вычисление N отсчетов спектра сигнала с помощью ДПФ производится с помощью уравнения, приведенного на рис. 25.1. Здесь X(k) являются искомыми отсчетами спектра сигнала, а x(n) - исходными отсчетами сигнала во временной области. N представляет собой количество отсчетов при вычислении ДПФ.

Ваша оценка очень важна

0
Шрифт
Фон

Помогите Вашим друзьям узнать о библиотеке