- •Цифровые сигнальные процессоры
- •Содержание
- •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.9. Система прерываний
1.9.1. Общие сведения
Контроллер прерываний (INTERRUPT CONTROLLER, см. рис. 1.9) обслуживает запросы на прерывания процессора. Одним из этапов обслуживания является передача управления на соответствующий вектор прерывания. Все вектора прерывания перечислены (в порядке понижения приоритета) в табл. 1.8.
Таблица 1.8
Источники прерываний и адреса векторов прерываний
Источник прерывания |
Адрес вектора прерывания |
Тип прерывания |
RESET# |
0х0000 (наивысший приоритет) |
Внешний |
Powerdown (немаскируемое) |
0х002С |
Внешний |
IRQ2# |
0х0004 |
Внешний |
IRQL1# (чувствительное к уровню) |
0х0008 |
Внешний |
IRQL0# (чувствительное к уровню) |
0х000С |
Внешний |
SPORT0 Передача |
0х0010 |
Внутренний |
SPORT0 Прием |
0х0014 |
Внутренний |
IRQE# (чувствительное к фронту) |
0х0018 |
Внешний |
Byte DMA |
0х001С |
Внутренний |
SPORT1 Передача / IRQ1# |
0х0020 |
Внутр/внеш |
SPORT1 Прием / IRQ0# |
0х0024 |
Внутр/внеш |
Таймер |
0х0028 (наинизший приоритет) |
Внутренний |
Эффективные стек и программный конвейер позволяют обслуживать незамаскированные запросы на прерывания без дополнительной задержки (за исключением задержки синхронизации) даже, когда прерываются циклы DO UNTIL. Вложение прерываний позволяет запросу с более высоким приоритетом прерывать обработчик прерывания с более низким приоритетом также без дополнительной задержки.
Для сохранения контекста прерываемой задачи можно использовать выбор вторичных регистров ALU, MAC и SHIFTER (см. пп. 1.5…1.7). Такое переключение выполняется за один машинный цикл.
1.9.2. Последовательность обслуживания прерывания.
Запрос на прерывание запоминается контроллером прерываний на время выполнения текущей команды. Далее проверяется соответствующий разряд регистра масок IMASK (см. п. 1.9.3).
Если прерывание не замаскировано, то программный конвейер загружает содержимое программного счетчика (который содержит адрес следующей команды) в стек РС. Это позволяет продолжить работу прерванной программы после выполнения обработчика прерывания.
Программный конвейер также загружает содержимое регистров ASTAT (см. п. 1.10), MSTAT (см. п. 1.10) и IMASK в стек состояния (STATUS STACK, см. рис. 1.9). Упомянутые регистры загружаются в стек состояния в том порядке, в котором они перечислены. Если бит разрешения вложенных прерываний в ICNTL (см. п. 1.9.3) установлен, то регистр IMASK загружается новым значением.
Далее процессор выполняет команду NOP и одновременно читает из памяти программ первую команду обработчика прерывания. После возврата из обработчика (с помощью команды RTI) стеки РС и статуса считываются и продолжается выполнение прерванной программы.
