- •Цифровые сигнальные процессоры
- •Содержание
- •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.13. Таймер
Программируемый интервальный таймер (рис. 1.11) позволяет генерировать запросы на прерывания с периодом кратным длительности машинного цикла. Период запросов может программно задаваться в широком диапазоне значений.
Таймер содержит два 16-битных регистра TCOUNT, TPERIOD и один 8-битный регистр TSCALE. Команда управления расширенным режимом (см. п. 1.17.10.б) может разрешить или запретить работу таймера установкой или сбросом бита 5 регистра MSTAT. Регистр TCOUNT является счетчиком. Если таймер разрешен, то счетчик декрементируется с частотой вплоть до CLKOUT. Когда содержимое счетчика достигает нуля, то формируется запрос на прерывание, а счетчик перегружается из регистра TPERIOD и счет начинается снова.
Регистр TPERIOD (как и TCOUNT) может быть программно загружен любым 16-битным числом (через DMD шину, см. рис. 1.11), которое рассматривается как число без знака. Регистр TSCALE хранит коэффициент деления (уменьшенный на единицу) частоты импульсов декрементирования счетчика. Можно утверждать, что период следования запросов на прерывания Tint определяется формулой:
Tint = (TPERIOD + 1) * (TSCALE + 1) / Fclkout. (1.2)
Форматы регистров TCOUNT, TPERIOD, TSCALE и их адреса приведены в табл. 1.15.
Таблица 1.15
Формат регистров TCOUNT, TPERIOD, TSCALE и их адреса
15 |
14 |
13 |
12 |
11 |
10 |
9 |
8 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
Адрес |
TPERIOD |
0x3FFD |
|||||||||||||||
TCOUNT |
0x3FFC |
|||||||||||||||
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
TSCALE |
0x3FFB |
|||||||
1.14. Системный интерфейс
К системному интерфейсу относится аппаратная часть и программное обеспечение, которые используются для управления процессором. Сигналы управления процессором включают: RESET#, сигналы синхронизации, флаги входов и выходов, запросы на прерывания, запрос на режим энергосбережения.
1.14.1. Сигналы синхронизации
Для синхронизации процессора на его вход CLKIN необходимо подать сигнал от внешнего генератора с ТТЛ уровнями или подключить кварцевый резонатор между CLKIN и XTAL, как это показано на рис. 1.1. Если используется внешний сигнал синхронизации, вход XTAL должен оставаться неподключенным. Нельзя также прерывать внешний сигнал синхронизации или изменять его частоту во время работы процессора.
Внутри процессора сигнал синхронизации удваивается по частоте, что определяет скорость выполнения машинных команд процессора (длительность машинного цикла). Например, при Fclkin = 16.67 МГц частота работы процессора равна 33 МГц (сигнал такой частоты выводится на контакт CLKOUT, см. рис. 1.1), а длительность машинного цикла составляет 33 нс.
Особенности синхронизации процессора предъявляют требования к длительности асинхронных сигналов, например, запросов на прерывания. Запрос на прерывание по уровню должен быть активен не менее длительности машинного цикла, увеличенного на сумму времен предустановки и удержания. Времена предустановки и удержания, а также длительности запроса по фронту приводятся в [3].
Сброс процессора. Активизация сигнала RESET# вызывает останов выполнения программы и аппаратный сброс процессора. При подаче питания на процессор этот сигнал должен всегда формироваться, чтобы корректно провести инициализацию внутренних ресурсов.
Сброс процессора (перезагрузку) можно также произвести программно: установкой BCR бита в регистре управления BDMA (сброс контекста BDMA, см. п. П1.10) или установкой PUCR бита в регистре управления автобуферизацией и экономичным режимом (SPORT1, сброс контекста экономичного режима работы процессора, см. П1.5).
В табл. 1.16 приводится содержимое внутренних регистров процессора после сброса и программной перезагрузки. Подразумевается, что содержимое регистров, не упомянутых в табл. 1.16, не изменяется в процессе сброса процессора. К таким регистрам, например, относятся регистры вычислительных устройств (ALU, MAC и SHIFTER), регистры генераторов адреса DAG1, DAG2, а также ПП и ПД (за исключением регистров управления и состояния, расположенных в ПД).
Таблица 1.16
