Разработка устройств на основе цифровых сигнальных процессоров фирмы Analog Devices с использованием Visual DSP++ — страница 6 из 43

Наконец последний вывод процессора BMODE определяет интерфейс, через который будет производиться загрузка процессора. Если на этот вывод подан нулевой потенциал, загрузка процессора будет производиться через интерфейс BDMA, т.е. из байтовой памяти. В противном случае процедура загрузки будет производиться через интерфейс IDMA. В дальнейшем мы рассмотрим оба варианта загрузки. Для автоматизации процесса загрузки в схеме применен триггер, выполненный на элементах D4.1 и D4.2. В зависимости от источника сброса, триггер переключается в такое состояние, которое обеспечивает установку на выводе BMODE сигнала, необходимого для загрузки через соответствующий интерфейс.

Еще одно внешнее устройство в качестве дополнения схемы приведено на рис. 3.5. Это дополнение схемы не является обязательным и может не распаиваться на основную плату. Но если появится необходимость оснащения рассмотренной выше схемы еще одним последовательным портом типа RS-422, это дополнение поможет в этом.

Рис. 3.5. Внешнее устройство в качестве дополнения схемы процессора

Как видно из рисунка, схема содержит интегрированную микросхему UART D12 с подключенными к ней резонатором BQ2 и вспомогательными конденсаторами C19, C20 для запуска внутреннего генератора. Программирование этой микросхемы производится через сигналы шины данных DD0–DD7. Выходные сигналы микросхемы UART подключены к приемопередатчикам — преобразователям уровней сигналов DA3 и DA4 для организации последовательного порта RS-422. Элементы D5.2 и D5.3 инвертируют выходные сигналы управления UART, обеспечивая отключение приемопередатчиков DA3 и DA4 в момент сброса самого UART или при включении.

Элемент D5.3 инвертирует выходной сигнал запроса прерывания от UART. Резисторы R17–R21 обеспечивают пассивное состояние сигналов при отключенной линии связи. Этот порт позволяет обмениваться информацией со 127 другими устройствами по аналогичному порту на расстоянии до 1200 метров. Все сигналы порта выведены на разъем XRS2.

Вся схема может быть распаяна на небольшой макетной плате или на специально изготовленной плате с разработанной топологией электрических соединений. Для разработки топологии печатной платы необходимо создать файл посадочного места для компонента — процессора, который будет использоваться системой автоматического проектирования САПР. Чертеж корпуса процессора приведен на рис. 3.6.

Рис. 3.6. Корпус процессора

На нем даны все необходимые размеры в двух системах единиц измерения. В скобках приведены размеры в дюймах, а без скобок — в миллиметрах. Ввиду того, что процессор имеет большое количество выводов и мелкий шаг между ними, для изготовления электронных устройств с его применением может потребоваться разработка печатной платы. Однако некоторые умельцы используют другие хитрые приемы для установки таких компонентов на печатной плате. Одним из таких способов является наклейка фрагментов текстолита с контактными площадками по периметру установочного места компонента. После чего выводы компонента припаиваются к контактным площадкам этих фрагментов, и уже после этого тонкими проводниками осуществляется остальной монтаж всего устройства.

Естественно, контактные площадки фрагментов должны совпадать с шагом устанавливаемого компонента. Эти фрагменты можно вырезать, например, с неисправных компьютерных плат или подобрать из наборов, продающихся в специализированных магазинах по электронике.

В следующих главах говорится о внутренней программной модели процессора, а также о средствах и способах программирования сигнального процессора. А приведенная и описанная здесь схема поможет на практике начать освоение сигнальных процессоров.

Глава 4. Программно-логическая модель

В этой главе говорится о внутренней программно-логической модели процессора и его системе прерываний.

Прежде чем начать разрабатывать программы для сигнального процессора, необходимо познакомиться с его программно- логической моделью, системой команд и программными инструментами. Освоение данного материала потребует времени и терпения. Но без хорошего знания этих основ невозможно будет научиться программировать сигнальный процессор.

Итак, начнем с программно-логической модели процессора. Такая модель для ADSP-2181 приведена на рис. 4.1.


Рис. 4.1. Программно-логическая модель ADSP-2181

На ней представлены все регистры процессора с указанием их размерности и условными обозначениями. Несмотря на многочисленность этих регистров, все они систематически распределены по логическим блокам процессора, что позволяет понять их назначение без особого труда.

Главный блок регистров представлен на рисунке слева, в процессорном ядре. В первую очередь это блоки регистров программных генераторов адреса DAG1 и DAG2. Данные блоки регистров включают в себя индексные регистры I, регистры длины буфера L и регистры-модификаторы M.

Все перечисленные регистры имеют размерность 14 бит. Эти регистры позволяют организовывать в памяти процессора циклические и линейные буферы, с автоматическим инкрементом адреса слов в этих буферах и отслеживанием их длины. В каждом из блоков генераторов адресов присутствует по четыре группы таких регистров. Использование этих и других регистров будет рассмотрено позже на конкретных примерах.

Блок программного автомата содержит регистры, отвечающие за автоматические операции процессора. В их число входят:

• программный счетчик с 16-уровневым 14-разрядным стеком PC STACK, для организации вызова подпрограмм и обработки прерываний;

• счетчик циклов CNTR с 4-уровневым 14-разрядным стеком COUNT STACK, для организации вложенных программных циклов;

• псевдорегистр OWRCNTR, для обновления значения счетчика CNTR;

• цикловой компаратор LOOP STACK с 4-уровневым 18-разрядным стеком, для обеспечения выполнения программных циклов без тактов ожидания.

Назначение остальных регистров управления и состояния блока программного автомата процессора, приводится в табл. 4.1. Обращение к этим регистрам из программы производится по их логическим именам, совпадающим с именами, приведенными на рис. 4.1 и в табл. 4.1.


Таблица 4.1а Регистр состояния арифметико-логического устройства ASTAT

РазрядИсходное состояниеНазначение
70Флаг знака ввода в устройство сдвига SHIFTER (SS)
60Флаг переполнения в умножителе-накопителе MAC (MV)
50Флаг частного АЛУ (AQ)
40Флаг знака ввода порта X в АЛУ (AS)
30Флаг переноса бита в АЛУ (АС)
20Флаг переполнения АЛУ (AV)
10Флаг отрицательного результата в АЛУ (AN)
00Флаг нулевого значения в АЛУ (AZ)

Таблица 4.1б Регистр состояния режима процессора MSTAT

РазрядИсходное состояниеНазначение
60Разрешение режима GO
50Разрешение работы таймера
40Результаты умножителя: 0 — дробные, 1 — целые
30Разрешение режима насыщения регистра AR АЛУ
20Разрешение режима фиксации переполнения АЛУ
10Разрешение бит-реверсивной адресации DAG1
00Выбор банка регистров данных: 0 — главный, 1 — теневой

Таблица 4.1в Регистр разрешения прерываний IMASK (0 — запрещено, 1 — разрешено)

РазрядИсходное состояниеНазначение
15…100Не используются
90-IRQ2
80-IRQL1
70-IRQL0
60Передатчик SPORT0
50Приемник SPORT0
40-IRQE
30BDMA
20Передатчик SPORT1 или -IRQ1
10Приемник SPORT0 или -IRQ0
00Таймер

Таблица 4.1г Регистр состояния стека SSTAT

РазрядИсходное состояниеНазначение
70Стек циклов переполнен
61Стек циклов пуст
50Стек состояний переполнен
41Стек состояний пуст
30Стек счетчика переполнен
21Стек счетчика пуст
10Стек счетчика команд переполнен
01Стек счетчика команд пуст

Таблица 4.1д Регистр управления прерываниями ICNTL

РазрядИсходное состояниеНазначение
4XВложенность прерываний: 0 — запрещена, 1 — разрешена
30Не используется
2XЧувствительность -IRQ2: 0 — уровень, 1 — фронт
1XЧувствительность -IRQ1: 0 — уровень, 1 — фронт
0XЧувствительность -IRQ0: 0 — уровень, 1 — фронт

Таблица 4.1е Регистр установки и сброса прерываний IFC (только запись)

Разряд