
- •Цифровые сигнальные процессоры
- •Содержание
- •1. Архитектура adsp-2181
- •1.1. Описание выводов процессора
- •1.2. Структурная схема adsp-2181
- •Генераторы адресов данных dag1 и dag2, регистр команд instruction register и программный конвейер program sequencer.
- •1.3. Память программ
- •1.4. Память данных
- •1.5. Функциональная схема alu
- •1.6. Функциональная схема мас
- •1.7. Функциональная схема shifter
- •Значения выходного кода сдвигателя при различных значениях
- •1.8. Функциональная схема программного конвейера
- •1.9. Система прерываний
- •1.9.3. Конфигурирование прерываний.
- •1.10. Регистры состояния и стек состояния
- •1.11. Передача данных
- •1.11.1. Генераторы адресов
- •1.11.2. Узел обмена данными
- •1.12. Последовательные порты
- •1.12.1. Общие сведения
- •1.12.2. Программирование sport
- •Функциональное назначение конфигурационных регистров
- •1.12.3. Пример конфигурирования последовательных портов
- •{Программа инициализации sport0, sport1}
- •1.12.4. Сжатие данных
- •1.12.5. Автобуферизация
- •1.12.6. Пример программирования автобуферизации
- •1.12.7. Многоканальность
- •1.13. Таймер
- •1.14. Системный интерфейс
- •1.14.1. Сигналы синхронизации
- •Состояние регистров процессора после сброса и перезагрузки
- •Состояние регистров bdma после сброса и перезагрузки
- •1.14.2. Внешние прерывания
- •1.14.3. Флажковые биты
- •1.14.4. Режим энергосбережения
- •1.15. Контроллер прямого доступа к байтовой памяти (bdma)
- •1.15.1. Общие сведения
- •1.15.2. Регистры управления bdma
- •1.15.3. Функционирование bdma
- •1.15.4. Загрузка программ с помощью bdma
- •1.16. Порт idma
- •1.16.1. Сигналы idma
- •1.16.2. Функционирование idma
- •1.16.3. Загрузка программ с помощью idma
- •1.17. Система команд
- •1.17.1. Общие сведения
- •1.17.2. Методы адресации
- •1.17.3. Условные обозначения
- •1.17.4. Команды пересылки данных
- •1.17.5. Команды alu
- •Б) вычитание X-y/вычитание X-y с заемом
- •1.17.6. Команды мас
- •1.17.7. Команды shifter
- •Допустимые регистры xop и условия cond см. П. 1.17.7.А.
- •Допустимые регистры xop и условия cond см. П. 1.17.7.А.
- •Допустимые регистры xop и условия cond см. П. 1.17.7.А.
- •Допустимые регистры xop и условия cond см. П. 1.17.7.А.
- •Допустимые регистры xop см. П. 1.17.7.А.
- •Допустимые регистры xop см. П. 1.17.7.А.
- •1.17.8. Команды управления потоком программы
- •Допустимые условия cond:
- •Допустимые условия cond см. П. 1.17.8.А.
- •1.17.9. Многофункциональные команды
- •1.17.10. Прочие команды
- •1.18. Инструментальные средства разработки программного обеспечения
- •1.18.1. Инструментальные средства для dos
- •1.18.2. Инструментальные средства для windows
- •1.18.3. Создание проекта в VisualDsp
- •1.18.4. Загрузка программы в ez-kit Lite
- •1.19. Примеры программирования в среде VisualDsp
- •1.19.1. Формирование эхо-сигнала
- •Architecture(adsp-2181) // определение типа процессора
- •1.19.2. Эмуляция интерфейса rs-232
- •1.19.3. Эмуляция интерфейса rs-232 (смешанный вариант)
- •Architecture(adsp-2181) // определение типа процессора
- •2. Архитектура системы на основе adsp-2181
- •2.1. Структурная схема вычислительной (управляющей)
- •2.2. Цепи синхронизации и запуска процессора
1.2. Структурная схема adsp-2181
Структурную схему процессора можно условно разделить на две части: базовую (общую для всех процессоров ADSP-21хх, рис 1.2.) и периферийную (характерную, в основном, для процессора ADSP-2181, рис. 1.3).
Р
ис.
1.2 показывает, что к базовой части
процессора отнесены:
внутренние шины PMA BUS, DMA BUS, PMD BUS DMD BUS, I BUS, R BUS;
узел обмена данными BUS EXCH(ANGE);
вычислительные устройства ALU (арифметико-логическое устройство), MAC (Multiplier/ACcumulator - умножитель/аккумулятор) и SHIFTER (устройство сдвига);
Генераторы адресов данных dag1 и dag2, регистр команд instruction register и программный конвейер program sequencer.
Внутренние шины обеспечивают пересылку команд из ПП, а также данных из памяти данных в вычислительные устройства и обратно. К ним относятся: шина адреса ПП PMA BUS (Program Memory Address Bus), шина адреса ПД DMA BUS (Data Memory Address Bus), шина данных ПП PMD BUS (Program Memory Data Bus), шина данных ПД DMD BUS (Data Memory Data Bus), шина команд I BUS (Instruction Bus) и шина результатов вычислений R BUS (Result Bus).
Можно говорить о наличии у процессора четырех магистралей: ПП PMA, PMD BUS, ПД DMA, DMD BUS, команд I BUS и результатов вычислений R BUS. Наличие множества внутренних магистралей позволяет распараллеливать процесс пересылок команд и данных, в частности, можно совместить во времени вычисление и считывание данных из памяти программ и памяти данных (см. п. 1.17.9). Это позволяет существенно повысить производительность процессора. Магистрали ПП и ПД соединены между собой с помощью узла обмена данными BUS EXCH (см. п. 1.5).
Ширина адресных шин (PMA, DMA) – 14 бит, что обеспечивает доступ к 16К ячейкам памяти. Ширина шины данных ПП (PMD, I) – 24 бита по числу бит команды процессора. Все оставшиеся шины (DMD, R) имеют ширину 16 бит, что позволяет обмениваться 16-битными данными за один цикл доступа к ПД.
Все вычислительные устройства имеют входные регистры (INP REGS), над содержимым которых они выполняют арифметические операции или операции сдвига. В ALU и MAC к таким регистрам относятся Х- и Y- регистры (см. пп. 1.5, 1.6), а в SHIFTER – S-регистр. Х- и S-регистры подключаются к DMD, а Y-регистры – к PMD, что позволяет одновременно считывать данные из памяти данных в Х-регистры, а из памяти программ – в Y-регистры вычислительных устройств.
Результаты арифметических операций и операций сдвига сохраняются в выходных регистрах (OUT REGS) вычислительных устройств, которые связаны с DMD и шиной результатов R. Шина DMD используется для обмена данными с ПД. Шина результатов позволяет использовать результат операции одного вычислительного устройства в качестве операнда в другом вычислительном устройстве без потери времени на сохранение результата операции в ПД.
DAG1 и DAG2 используются для реализации косвенной и косвенной автоинкрементной/автодекрементной адресации данных (см. п. 1.11), поскольку среди прочих содержат по четыре регистра указателей.
П
рограммный
конвейер формирует адреса инструкций
для ПП. Он управляет регистром инструкций,
который содержит исполняемую в данный
момент команду. Команды загружаются в
регистр инструкций в течение одного
цикла, а исполняются в течение следующего,
одновременно с загрузкой следующей
инструкции.
Рис. 1.3 показывает, что к периферийной части процессора отнесены:
мультиплексор шины адреса MUX1;
мультиплексор шины данных MUX2;
память программ – PROGRAM SRAM;
память данных – DATA SRAM;
байтовый КПДП – BDMA (Byte DMA Controller);
внутренний КПДП – IDMA PORT (Internal DMA PORT);
последовательные синхронные порты SERIAL PORT0, 1;
таймер – TIMER;
узел управления энергосбережением процессора – PDCL (Power Down Control Logic);
программируемые входы/выходы – PROG(rammable). I/O;
выходы флагов – FLAGS;
входы запросов прерываний – INTERRUPTS.
Периферийная и базовая части процессора соединяется внутренними шинами I, PMA, DMA, PMD, DMD. На рис. 1.3 их выходы изображены слева. Справа и снизу изображены внешние входы/выходы, которыми процессор соединяется с внешним миром. Для выдачи адреса на внешнюю шину адреса EXTERNAL ADDRESS BUS используется мультиплексор шины адреса MUX1. Если идет обращение к внешнему адресному пространству ПП, то на внешнюю шину адреса попадает код адреса с PMA. Если идет обращение к внешнему адресному пространству ПД, то на внешнюю шину адреса попадает код адреса с DMA. Выводы внешней шины адреса имеют обозначения ADDR[13:0] (см. п. 1.1).
Для взаимодействия с внешней шиной данных (ввод команд или ввод/вывод данных) EXTERNAL DATA BUS используется мультиплексор шины данных MUX2. Если идет обращение к внешнему адресному пространству ПП, то код команды с внешней шины данных попадает на PMD. Если идет обращение к внешнему адресному пространству ПД, то внешняя шина данных соединяется с DMD. Выводы внешней шины данных имеют обозначения DATA[23:0] (см. п. 1.1).
ПП (см. п. 1.3) используется для хранения программы и данных. Это ОЗУ статического типа (SRAM – Static RAM), поэтому во время сброса процессора обычно осуществляется загрузка программы (см. пп. 1.15.4, 1.16.3).
ПД (см. п. 1.4) используется для хранения данных. В ее адресном пространстве располагаются также некоторые регистры специального назначения (РСН, см. пп. П1.1-П1.16).
Байтовый КПДП (см. п. 1.15) используется для взаимодействия с БП процессора (ввод программ, ввод/вывод данных). БП подключается к внешней магистрали процессора (внешние шины адреса и данных) с использованием селектирующего сигнала BMS# (см. п. 1.1). В частности, байтовая память может использоваться для хранения программы, которая во время сброса процессора загружается во внутреннюю ПП. Записать данные в БП или считать их оттуда прямо из программы (без использования байтового КПДП) невозможно, поскольку только байтовый КПДП формирует сигнал BMS#.
Внутренний КПДП (см. п. 1.16) используется для связи с внешним миром, например, для ввода программы во внутреннюю ПП при сбросе процессора, а также для ввода и вывода данных. Имеет собственную магистраль (см. п. 1.1), в которую входят: шина адреса/данных IAD[15:0] и шина управления IRD#, IWR#, IS#, IAL, IACK#. Поскольку шина адреса данных 16-битная, возможен обмен двухбайтными словами.
Последовательные синхронные порты (см. п. 1.12) используются для связи с внешним миром, например, для связи с другим процессором или любым другим последовательным синхронным портом. Связь осуществляется с использованием пяти выводов. По одному из них данные принимаются в регистр REC REG, по другому данные выдаются из регистра TRN REG, оставшиеся выводы используются для формирования управляющих сигналов. На рис. 1.3 условно не показан узел уплотнения данных COMPANDING CIRCUITRY, который связан с последовательными портами.
Таймер (см. п. 1.13) используется для формирования промежутков времени заданной длительности. Задание длительности, запуск и останов таймера осуществляется программно. Таймер формирует внутренние запросы на прерывание.
Узел управления энергосбережением процессора (см. п. 1.14.4) осуществляет поддержку входного сигнала PWD# и команд процессора IDLE, IDLE(n) (см. п. 1.17.8.з). Один из выходных сигналов узла PWDACK (см. п. 1.1) отражает состояние процессора (обычное или сохранения энергии).
Программируемые входы/выходы (см. п. 1.14.3) используется для связи с внешним миром. Каждая из этих линий может быть запрограммирована на ввод или вывод. Имеют обозначения PF7:0 (см. п. 1.1).
Выходы флагов (см. п. 1.14.3) используется для связи с внешним миром, например для вывода управляющих сигналов или сигналов состояния. Имеют обозначения FL2:0 (см. п. 1.1).
Входы запросов прерываний (см. п. 1.9) служат для ввода внешних сигналов запроса прерываний с различными свойствами IRQ2#, IRQL0#, IRQL1#, IRQE# (см. п. 1.1).