Разработка устройств на основе цифровых сигнальных процессоров фирмы Analog Devices с использованием Visual DSP++ - Олег Вальпа
Шрифт:
Интервал:
Закладка:
Таблица 4.2е Регистры управления программируемыми флагами
Разряд Исходное состояние Назначение Регистр управления программируемыми флагами PFTYPE, адрес памяти данных=0x3FE6 15 0 Не используется 14…12 1 Циклы ожидания байтовой памяти данных BDMA от 0 до 7 11 1 Разрешение выборки портов ввода-вывода сигналом -CMS: 0 — запрещено, 1 — разрешено 10 0 Разрешение выборки байтовой памяти данных BDMA сигналом -CMS: 0 — запрещено, 1 — разрешено 9 1 Разрешение выборки памяти данных сигналом -CMS: 0 — запрещено, 1 — разрешено 8 1 Разрешение выборки памяти программ сигналом -CMS: 0 — запрещено, 1 — разрешено 7…0 0 Режим работы программируемых выводов флагов PF7…PF0: 0 — выход, 1 — вход Регистр управления программируемыми флагами PFDATA, адрес памяти данных=0x3FE5 15…8 X Не используются 7…0 X Данные программируемых выводов флагов PF7…PF0 (чтение/запись)Таблица 4.2ж Регистры управления портом байтовой памяти BDMA
Разряд Исходное состояние Назначение Регистр-счетчик слов BWCOUNT, адрес памяти данных=0x3FE4 15, 14 0 Не используются 14…0 0x20/0 Значение счетчика (когда MMAP=0 и BMODE=0 значение счетчика = 0x20, когда MMAP=1 или BMODE=1 значение счетчика = 0) Регистр управления BDMACR, адрес памяти данных = 0x3FE3 15…8 0 Номер страницы BDMA от 0 до 0xFFFF 7…4 0 Не используются 3 1 Режим работы процессора при выполнении циклов BDMA: 0 — работа, 1 — останов 2 0 Направление передачи данных: 0 — чтение из BDMA, 1 — запись в BDMA 1, 0 0 Тип данных: 00 — память программ 24 разрядов, 01 — память данных 16 разрядов, 10 — память данных 8 старших разрядов, 11 — память данных 8 младших разрядов Регистр внешнего адреса BEAD, адрес памяти данных = 0x3FE2 15, 14 0 Не используются 13…0 0 Значение внешнего адреса на шине процессора, при обмене через BDMA (от 0 до 0x3FFF) Регистр внутреннего адреса BIAD, адрес памяти данных = 0x3FE1 15, 14 0 Не используются 13…0 0 Значение внутреннего адреса памяти процессора при обмене через BDMA (от 0 до 0x3FFF)Таблица 4.2з Регистр управления IDMACR
Разряд Исходное состояние Назначение 15 0 Не используется 14 0 Указатель типа памяти: 0 = память программ РМ, 1 = память данных DM 13...0 0 Значение начального адреса памяти процессора при обмене через IDMA (от 0 до 0x3FFF)X — произвольное состояние после сброса.
Условные обозначения регистров в таблицах соответствуют их названиям на программно-логической модели, изображенной на рис. 4.1.
Все перечисленные выше регистры позволяют осуществлять полный контроль и управление над процессором со стороны программы.
Глава 5. Система прерываний
В этой главе описывается система прерываний процессора, позволяющая процессору оперативно реагировать на различные события.
Диспетчер прерываний позволяет процессору реагировать на одиннадцать возможных прерываний и сброс. Все векторы прерываний процессора ADSP-2181 представлены в табл. 5.1.
Таблица 5.1 Векторы прерываний сигнального процессора ADSP-2181
Приоритет Источник прерывания Адрес (HEX) Высший приоритет 0 Сброс (или выход из режима пониженной мощности при установке 12-го разряда регистра S1ABUF=1) 0000 1 Снижение потребляемой мощности (немаскируемое прерывание) 002C 2 IRQ2 0004 3 IRQL1 0008 4 IRQL0 000C 5 SPORT0 Передатчик 0010 6 SPORT0 Приемник 0014 7 IRQE 0018 8 BDMA прерывание 001C 9 SPORT1 Передатчик или IRQ1 0020 10 SPORT1 Приемник или IRQ0 0024 11 Низший приоритет Таймер 0028Прерывания в процессоре имеют различную приоритетность, от 0 до 11. При возникновении любого из прерываний, процессор выполняет переход на подпрограмму обработки соответствующего прерывания, адрес которой заложен в векторе данного прерывания. Адреса векторов прерываний расположены в самом начале программной памяти процессора через четыре 24-разрядных слова команды, что позволяет производить простую обработку или выход из прерывания на месте, без перехода на подпрограмму обработчика прерывания. В противном случае может быть выполнен безусловный переход на подпрограмму обработчика прерывания командой jump.
Процессор ADSP-2181 имеет четыре вывода для поддержки внешних прерываний: IRQ2, IRQL0, IRQL1 и IRQE. Кроме того, благодаря возможности SPORT1 быть переконфигурированным на выводы флагов FLAG_IN, FLAG_OUT и прерываний IRQ0, IRQ1, процессор может иметь еще два входа внешних прерываний вместо внутренних прерываний SPORT1. В результате, в общей сложности процессор может иметь шесть внешних прерываний.
Помимо внешних прерываний, процессор имеет и внутренние источники прерываний. Источниками внутренних прерываний являются таймер, байтовый порт BDMA, два последовательных порта SPORT1 и SPORT2, программное прерывание сброса и прерывание, вызываемое снижением напряжения питания.
Все прерывания, кроме немаскируемого и сброса, можно запретить с помощью регистра IMASK (см. табл.1). Кроме того, можно программно сгенерировать или сбросить некоторые прерывания с помощью регистра IFC.
Процессор реагирует на уровень сигналов на выводах прерываний IRQL0 и IRQL1. Прерывание IRQE возникает по фронту изменения сигнала на этом выводе. Чувствительность процессора к сигналам IRQ0, IRQ1 и IRQ2 определяется программно, с помощью регистра ICNTL.