Якщо реалізувати схему для шини PCI з харчуванням +5 В Ключ буде перебувати на місці контактів 50 і 51 (при живленні +3,3 В ключ розташовується на місці контактів 12 і 13).
-х розрядна шина PCI має два ряди по 62 контакту, які розташовуються на відстані 1,27 мм один від одного.
7. Розробка та опис програми. Особливості введення/виведення
В
В
В якості основної програми використовується програма, надана розробниками фірми Analog Devices, Inc. (Проект ви можете знайти в додатку і на сайті Analog Devices analog.com <../AppData/Local/Temp/AppData/Local/Temp/Temp1_allbest-r-00749956.zip/analog.com> ). Програма перевірена на тест-драйві фірмового програмного забезпечення VISUALDSP + + TM. На малюнку 13 показані вхідні сигнали, що подаються на вхід кодека - речові сигнали подаються по лівому каналу, уявні, відповідно, по правому. Сигнал Inputreal - вхідний речовинний сигнал, показаний на малюнку в двох різних масштабах, Inputimag - вхідний уявний сигнал, для реальних сигналів рівний нулю. Результати виконання програми повинні видати результати, представлені на малюнку 14 . На малюнку 15 зображені вихідні сигнали: Refft - вихідний речовинний сигнал, Inputreal - вихідний уявний сигнал. Зауважте, що модель вихідного сигналу на кожному відліку - це модуль комплексного числа, представленого в кожен момент часу вихідними сигналами. br/>
В
Після того, як ми переконалися в працездатності програми обробки можна приступити до розробки реалізації алгоритму багатопроцесорної схеми. В якості зв'язку між процесорами будуть виступати переривання 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.