Разделы сайта

Разработка и описание программы. Особенности ввода/вывода

В качестве основной программы используется программа, предоставленная разработчиками фирмы Analog Devices, Inc. (Проект вы можете найти в приложении < /AppData/Local/Temp/AppData/Local/Temp/Temp1_allbest-r-00749956.zip/adsp-2191_complex_rad2_fft> и на сайте Analog Devices www.analog.com < /AppData/Local/Temp/AppData/Local/Temp/Temp1_allbest-r-00749956.zip/www.analog.com>). Программа проверена на тест-драйве фирменного программного обеспечения VISUALDSP++TM. На рисунке 13 показаны входные сигналы, подаваемые на вход кодека - вещественные сигналы подаются по левому каналу, мнимые, соответственно, по правому. Сигнал Inputreal - входной вещественный сигнал, показанный на рисунке в двух различных масштабах, Inputimag - входной мнимый сигнал, для реальных сигналов равный нулю. Результаты выполнения программы должны выдать результаты, представленные на рисунке 14. На рисунке 15 изображены выходные сигналы: Refft - выходной вещественный сигнал, Inputreal - выходной мнимый сигнал. Заметьте, что модель выходного сигнала на каждом отсчёте - это модуль комплексного числа, представленного в каждый момент времени выходными сигналами.

После того, как мы убедились в работоспособности программы обработки можно приступить к разработке реализации алгоритма многопроцессорной схемы. В качестве связи между процессорами будут выступать прерывание DSP-to-DSP Interrupt, и семафоры DSP-DSP Semaphore0 и DSP-DSP Semaphore1. Как видно из алгоритма, сначала происходит инициализация, не отличающаяся от инициализации стандартной программы, затем происходит очистка семафоров, её выполняет процессор P0:

/* Очиска флагов */= 0x0000;(0x34) = ax0;

Поскольку программа будет управляться прерываниями, то нужно их разрешить (эти строки должны присутствовать в обоих процессорах):

/* Инициализация прерывания DSP-to-DSP Interrupt */

AY0=IMASK;=0x0100;= AY0 or AY1;

/* Демаскирование DSP-DSP Interrupt */=AR;

/* Разрешение глобальных прерываний */INT;

Далее процессор P0 может выполнять любую программу, в нашем случае он выполняет команду IDLE, которая заставляет его делать «ничего», а процессор P1 прерывает его работу:

/* Ядро ЦОС P1 */

.=0x0004;(0x34)=ax0;

.

Чтобы процессор P1 слишком рано не прервал работу процессора P0, нужно поставить достаточное число «пустых» операций NOP.

Следующим шагом процессор P1 входит в режим IDLE, а процессор P0, проверив доступ к кодеку:

/* проверка Семафора0 в P0 */ChecK:

ay0 = 0x0001= reg(0x34);= ax0 AND ay0EQ JUMP Get_InData;

JUMP Sema0Check;

.

выполняет набор окна данных, выставляет семафор 0

/* выставление Семафора0 */

.= 0x0001;(0x34) = ax0;

.

генерирует прерывание

.=0x0004;(0x34)=ax0;

.

и начинает обработку данных.

После того, как процессор P0 сгенерирует прерывание, процессор P1 проверяет, с помощью семафоров, что ему делать:

/* проверка Семафора0 в P1 */ChecK:

ay0 = 0x0001= reg(0x34);= ax0 AND ay0NE JUMP Get_InData;

JUMP Sema0Check;

.

очищает семафор0, и начинает обработку данных.

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

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

Передачи данных от AC’97 в память процессора ЦОС выполняется использованием ПДП передач через буферы FIFO процессора ЦОС. Каждое ядро ЦОС имеет четыре буфера FIFO, доступных для передач к/от кодека AC’97. Регистры, которые контролируют ПДП передачи доступны только из процессора ЦОС и определены, как часть пространства регистров ядра.

Несколько слов об архитектуре FIFO данных.

Два FIFO из четырёх являются входными буферами, принимающими данные в процессор. Два других - передающие, посылают данные от процессора ЦОС к кодеку AC’97 или другому процессору ЦОС. Каждый FIFO способен содержать восемь 16-ти разрядных слов. Когда получены слова, или когда есть свободные места в буфере передачи могут генерироваться прерывания.

Перейти на страницу: 1 2 3 4

Интересное из раздела

Исследование и расчет двухполюсников и четырехполюсников
В соответствии с заданием сопротивления ДП, входящих в исследуемый ЧП, имеют следующий вид, Ом: Z1(p) = , (1.1) Z2(p) = , ...

Источник питания охранного устройства
В настоящее время существует множество систем, предназначенных для осуществления охраны и безопасности объектов. С развитием науки и техники у ...

Программируемый генератор сигналов
Современное состояние и перспективы развития многих отраслей техники, в том числе и радиоэлектроники, во многом определяются широким проникновением средств ...