- •Цифровые сигнальные процессоры
- •Содержание
- •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.15.3. Функционирование bdma
Перед запуском BDMA необходимо определить значения BEAD, BIAD (см. п. 1.15.2), а также код режима работы BDMA (содержимое регистра BDMA Control Register, см. п. 1.15.2). Запуск производится записью не нулевого значения в регистр BWCOUNT (см. п. 1.15.2).
Далее начинаются пересылки в соответствии с кодом режима работы байтового КПДП. После каждой пересылки значения BEAD и BIAD инкрементируются, а BWCOUNT – декрементируются. Этот процесс продолжается пока BWCOUNT не станет нулевым. Этот момент времени отмечается формированием запроса на прерывание от BDMA (см. п. 1.9.1).
Если прерывание от BDMA не используется, то окончание BDMA пересылок может быть определено по нулевому содержимому BWCOUNT. Если необходимо срочно (аварийно) прервать работу BDMA, то в BWCOUNT необходимо записать единицу.
С помощью кода режима можно организовать пересылку программных кодов и кодов данных в различных форматах. Это поясняется содержимым табл. 1.18.
Таблица 1.18
Форматы BDMA
BTYPE |
Адрес ПП или ПД |
Содержимое ПП или ПД |
Адрес БП |
Содержимое БП |
00 |
РМ(0х0000) |
0xABCDEF |
BM(0x0000) |
0xAB |
|
|
|
BM(0x0001) |
0xCD |
|
|
|
BM(0x0002) |
0xEF |
00 |
PM(0x0001) |
0x123456 |
BM(0x0003) |
0x12 |
|
|
|
BM(0x0004) |
0x34 |
|
|
|
BM(0x0005) |
0x56 |
01 |
DM(0x0000) |
0x9876 |
BM(0x0006) |
0x98 |
|
|
|
BM(0x0007) |
0x76 |
01 |
DM(0x0001) |
0x3456 |
BM(0x0008) |
0x34 |
|
|
|
BM(0x0009) |
0x56 |
10 |
DM(0x0002) |
0x9800 |
BM(0x000A) |
0x98 |
10 |
DM(0x0003) |
0x7600 |
BM(0x000B) |
0x76 |
11 |
DM(0x0004) |
0x0034 |
BM(0x000C) |
0x34 |
11 |
DM(0x0005) |
0x0056 |
BM(0x000D) |
0x56 |
1.15.4. Загрузка программ с помощью bdma
Загрузка программ с помощью BDMA осуществляется, если при старте процессора выдержаны следующие условия: MMAP = 0 и BMODE = 0. При этом автоматически регистры BDMA инициализируются следующим образом:
BWCOUNT = 32 (из БП во внутреннюю ПП будут записываться не более 32-х команд);
BDIR = 0 (пересылка из БП во внутреннюю ПП), BMPAGE = 0 (программа расположена на нулевой странице БП), BEAD = 0 (начиная с нулевого адреса), BIAD = 0 (ПП также записывается с нулевого адреса), BTYPE = 0 (пересылаются трехбайтовые коды операций);
BCR = 1 (на время пересылок работа процессора запрещена);
BMWAIT = 7 (предполагается медленная память).
Пересылаемая программа является загрузчиком исполняемой программы. Если исполняемая программа создавалась с помощью утилиты PROM Splitter, входящей в состав утилит ADSP-2100 Family, то загрузчик подключается автоматически.
После пересылки загрузчика управление передается на нулевой адрес внутренней ПП (на начало загрузчика). Далее загрузчик выполняет всю работу по пересылке исполняемой программы во внутреннюю ПП.
