В качестве основной программы используется программа, предоставленная разработчиками фирмы 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-ти разрядных слов. Когда получены слова, или когда есть свободные места в буфере передачи могут генерироваться прерывания.
Каналы утечки речевой информации и способы их закрытия
Для несанкционированного добывания информации в настоящее
время используется широкий арсенал технических средств, из которых
малогабаритные технические сред ...
Повышение технологичности печатного узла усилителя на ОУ
Целью данного курсового проекта является повышение технологичности
печатного узла усилителя на ОУ за счет применения прогрессивных методов монтажа
SMD-к ...
Проект кабельной линии связи на участке Пермь - Кузино железной дороги
В курсовом проекте приведены технические решения по следующим вопросам:
выбор системы организации кабельной магистрали; организация связи и цепей
автоматики ...