Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

МПУЭВС. Лекции. Задания / pdf_ПрилПЦиПУ / Приложение _Н_ ПериферМодулиADSP

.pdf
Скачиваний:
29
Добавлен:
11.05.2015
Размер:
461.06 Кб
Скачать

1

Приложение Н Н.1 Периферийные модули сигнального МП

Н.1.1 Модуль прямого доступа и расширение памяти МП

Процессор имеет встроенный контроллер прямого доступа для подключения внешних микросхем памяти, если 32К внутренних ячеек памяти программ и 48К ячеек памяти данных оказывается недостаточным.

Восьмиразрядный порт прямого доступа к памяти BDMA (Byte DMA)

обеспечивает подключение микросхем памяти ПЗУ или ОЗУ с байтовой организацией емкостью до 4 Мбайт (рисунок Н.1). Это адресное пространство играет роль загрузочной области (Boot Memory). Байтовая память имеет организацию 256 страниц по 16КХ8 бит. Для увеличения разрядности шины адреса кроме 14 разрядов А13-А0 программного счетчика в контроллере используются дополнительно 8 линий шины данных D23-D16.

Общее количество адресных сигналов, равное 22, определяет максимальную емкость внешней памяти 222 = 4М, которую можно подключить к порту

BDMA для хранения программ и данных. Контроллер обеспечивает передачу слова за один цикл и поддерживает начальную загрузку процессора при включении напряжения питания. Выходные сигналы процессора /RD и /WR

определяют направление передачи по шине данных. Сигнал /RD

синхронизирует чтение данных из памяти, сигнал /WR синхронизирует запись данных во внешнюю микросхему памяти. В обоих случаях обмен выполняется между встроенной памятью процессора и внешней микросхемой. Сигнал /BMS используется для управления Z-состоянием внешней памяти. Высокий уровень сигнала BMS на выходе процессора переводит микросхему ПЗУ или ОЗУ в высокоомное (Z) состояние для отключения шины данных и шины адреса от соответствующих шин процессора DATA и ADDR. Низкий уровень BMS=0 переводит внешнюю память в активное состояние, в котором контроллер процессора выполняет операции чтения и записи по двунаправленной шине данных, используя поочередно сигналы RD, WR. Обмен с внешней микросхемой памяти

2

контроллер BDMA выполняет в фоновом режиме одновременно с выполнением «секвенсором» основной программы.

Рисунок Н.1 - Подключение внешней памяти

Формат данных, передаваемых и принимаемых по шине DATA,

автоматически определяется типом внутренней памяти. При обращении к памяти программ (РМ) длина слова составляет 24 бита, при выполнении обмена с памятью данных длину слова можно задать программно размером в

16 или 8 бит. 14-разрядный регистр BWCOUNT выполняет функцию счетчика переданных слов. Перед обменом по интерфейсу BDMA в счетчик программно записывается число слов для обмена. Контроллер уменьшает содержимое BWCOUNT на единицу после каждого переданного слова. Обмен данными завершается по условию BWCOUNT = 0. Максимальный размер одного блока данных составляет 214 = 16К слов. При запуске процессора по умолчанию в регистр записывается число 32. Это означает, что для начальной загрузки в процессор будет считано 32 слова из внешней

3

микросхемы ПЗУ, которые используются для настройки контроллера BDMA

на прием оставшейся части программного кода ПЗУ. Затем процессор начинает выполнение программы с адреса 0.

Разрядность программного счетчика (14 бит) позволяет процессору формировать 14 сигналов А13-А0 на шине адреса как для внутренней, так и внешней памяти. Это ограничивает максимальный размер исполняемого кода

PM и данных DM до 214 = 16К слов. Чтобы преодолеть данное ограничение в процессоре используется оверлейный механизм для работы с программами,

размер которых больше 16К слов.

Расширение адресного пространства выполняется с помощью регистров процессора PMOVLAY (Рrogram memory overlay) и DMOVLAY

(Data Memory Overlay). Число, записанное в оверлейные регистры,

используется процессором для выбора одной из нескольких страниц памяти размером по 8К слов памяти программ и 8К слов памяти данных. В

указанные регистры необходимо программно записать одно из значений ряда

0,1,2,4,5,6,7. Страницы оверлея можно менять в ходе выполнения программы,

но процессор может работать в определенный момент времени только с одной страницей. Распределение номеров сегментов оверлея между внутренней и внешней памятью для одного из возможных режимов процессора приведено на рисунке Н.2. Внешняя память программ и данных может использовать только страницы 1 и 2.

Секвенсор и генераторы адреса используют абсолютный адрес текущей выполняемой команды и не контролируют состояние регистров PMOVLAY, DMOVLAY. Неправильное изменение сегментов оверлея в командах безусловного перехода и при вызове процедур может привести к сбою программы. Во время обращения к внешней памяти регистры управляют состоянием разряда А13 шины адреса. Если в регистр PMOVLAY записана единица, то выходной сигнал процессора А13 = 0, при PMOVLAY = 2

адресный сигнал А13 = 1.

4

Рисунок Н.2 - Структура памяти в режиме В = 0

Загрузка оверлейного сегмента происходит под контролем программиста, в то время как распределением и. Оверлейное управление памятью в МП является «принудительным», в отличие от загрузки страниц в процессорах Pentium,, где это выполняет операционная система.

Н.2 Последовательный кодек AD73322

Двухканальный кодек AD73322 с последовательным интерфейсом содержит 16-разрядные ЦАП И АЦП в одной микросхеме (рисунок Н.3) и

предназначен для приложений общего применения, включая обработку речи и телефонию. Каждый канал обеспечивает отношение сигнал/шум 77 дБ во всей полосе речевого сигнала. Усиление каналов АЦП и ЦАП программируется до 38 дБ и 21 дБ соответственно. При частоте внешнего генератора 16,384 МГц кодек формирует сигналы на выходе сигма-дельта АЦП и ЦАП с частотой дискретизации 64 кГц, 32 кГц, 16 кГц и 8 кГц. Одна из четырех перечисленных частот выбирается программно при начальной инициализации AD73322, когда процессор записывает числа в регистры управления A-H для выбора режима работы и установки параметров кодека.

5

Рисунок Н.3 - Кодек AD73322 с последовательным интерфейсом

Последовательный интерфейс позволяет подключить одно или несколько устройств в соответствии с промышленным DSP стандартом, в том числе и сигнальные процессоры семейства ADSP-218х. Схема подключения кодека к процессору и внешнему генератору приведена на рисунке Н.4.

Напряжения аналоговых сигналов Uвх1 и Uвх2, подаваемые на входы VFBP1

и VFBP2 первого и второго каналов микросхемы кодека AD73322,

преобразуются с помощью АЦП1 и АЦП2 в пропорциональные 16-разрядные двоичные числа и передаются последовательным кодом с выхода SDO (Serial Data Output) на вход DR (Data Read) последовательного порта SPORT

сигнального процессора (рисунке Н.5). Промежуток времени, который отводится порту на прием бита, определяется одним периодом сигнала битовой синхронизации SCLK. В начале каждого пакета данных из 16 бит кодек формирует импульс кадровой синхронизации SDOFS (SDO Framing Signal), от которого порт процессора начинает счет поступающих от АЦП бит. Для передачи двух 16-разрядных слов АЦП первого и второго каналов кодеку необходимо сформировать 32 импульса битовой синхронизации SCLK

6

и 2 импульса кадровой синхронизации SDOFS. Время передачи двух слов не должно превышать период дискретизации аналогового сигнала TS.

Одновременно с приемом данных от АЦП процессор передает два 16-

разрядных слова в ЦАП двух каналов кодека. Принятые 32 бита автоматически записываются в регистр RX0 порта SPORT0 или RX1 порта

SPORT1 – в зависимости от того, к какому последовательному интерфейсу подключена микросхема AD73322. Формирование сигнала SСLK показано на рисуноке Н.6. Программируемый делитель частоты внешнего генератора,

подключенного к входу кодека МСLK, может задать один из пяти коэффициентов деления 1, 2, 3, 4 и 5.

Рисунок Н.4- Внешняя синхронизация приемника и передатчика порта

SPORT

Выбор коэффициента деления определяется разрядами (4-6) регистра управления В при формировании внутреннего сигнала DМСLK (табл. Н.1).

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

мируемый делитель частоты микросхемы AD73322 определяет частоту выходного сигнала SСLK с помощью бит (2-3) регистра В (табл.Н.2). Частота

7

дискретизации аналогового сигнала FS определяется битами 0-1 регистра В и

может принимать 4 значения: DMCLK/256, DMCLK/512, DMCLK/1024 и

DMCLK/2048 (таблица Н.3).

Рисунок Н.5. Тактирование сигналов при обмене данными между кодеком и процессором

Рисунок Н.6 -Программное управление сигналом кодека SСLK

После включения питания процессора по умолчанию устанавливается минимальная частота дискретизации FS=DMCLK/2048 = 8 кГц.

8

Таблица Н.1- Установка внутренней частоты DMCLK

 

 

 

Коэффициент

MCD2 (бит6)

MCD1 (бит5)

MCD0 (бит4)

деленияMCLK

 

 

 

 

0

0

0

1 :1

 

 

 

 

0

0

1

1 :2

 

 

 

 

0

1

0

1 :3

 

 

 

 

0

1

1

1 :4

 

 

 

 

1

0

0

1 :5

 

 

 

 

1

0

1

1 :1

 

 

 

 

1

1

0

1 :1

 

 

 

 

1

1

1

1 :1

 

 

 

 

Для передачи двух слов длиной 32 бита в каждом направлении с битовой частотой FSCLK = 2,048 МГц, принятой по умолчанию, необходимо время 15,625 мкс. Это время намного меньше периода дискретизации TS = 125 мкс. Частоты кодека, рассмотренные в примере, соответствуют такому состоянию регистра управления В, при котором во всех его разрядах записаны нули.

Таблица Н.2 - Программная установка частоты сигнала SCLK

SCD1

SCD0

Коэффициент

( бит3)

( бит2)

деления DMCLK

 

 

 

0

0

1 : 8

 

 

 

0

1

1 : 4

 

 

 

1

0

1 : 2

 

 

 

1

1

1 : 1

 

 

 

Обнуление всех управляющих регистров кодека происходит автоматически при поступлении сигнала низкого уровня на вход сброса

RESET. Значения, отличные от, принятых по умолчанию, записываются в программе пользователя при начальной инициализации. Для этого процессору необходимо передать в кодек от 8 до 16 управляющих 16-

разрядных слов в зависимости от выбираемого режима кодека.

9

Таблица Н.3 - Программирование частоты дискретизации FS

DIR1

DIR0

Коэффициент

( бит1)

( бит0)

деления DMCLK

 

 

 

0

0

1 : 2048

 

 

 

0

1

1 : 1024

 

 

 

1

0

1 : 512

 

 

 

1

1

1 : 256

 

 

 

Частота битовой синхронизации и коэффициенты деления выбираются из условия: (количество слов) х (размер слова) х FS < FSCLK . Для схемы подключения кодека, приведенной на рис. 34 (Н.4), необходимо выполнение неравенства 2 х 16 х FS < FSCLK . Если при инициализации кодека в программе записать в регистр управления В управляющее слово в двоичном коде 1000000100001111, то в младших 7 разрядах будут записана следующая информация DIR0 = 1 (бит 0), DIR1 = 1 (бит 1), SCD0 = 1 ( бит 2), SCD1 = 1 (бит 3), MCD0 = 0 (бит 4), MCD1 = 0 (бит 5), MCD2 = 0 (бит 6). По таблицам Н.1, Н.2, Н.3 определяются коэффициенты деления и частота сигналов.

FDMCLK = 16,384 МГц, FSCLK = 16,384 МГц, FS = 16,384/256 = 64 кГц.

Н.3 Последовательный интерфейс процессора

Пример подключения кодека к порту SPORT0. Во время приема и передачи информации последовательным кодом процессор может выполнять программу, не связанную с работой порта по приему и передаче каждого бита. В этом режиме работы предполагается, что процессор должен не пропустить только те моменты времени, когда в регистр передатчика ТХ

порта SPORT нужно записать передаваемое 32-разрядное слово и прочитать из регистра приемника RX принятое 32-разрядное слово. Преобразование параллельного кода в последовательный при передаче и последовательного кода в параллельный при приеме выполняет аппаратно встроенный порт

SPORT. К программно доступным регистрам RX0, TX0 порта SPORT0 и RX1, TX1 порта SPORT1 можно обратиться в любой момент времени. Для чтения

10

принятого 16-разрядного слова RX0 и записи 16-разрядного слова в передатчик TX0 порта SPORT0 достаточно записать две команды

АХ0 = RX0;

TX0 = AY0.

Первая ассемблерная команда записывает в регистр АХ0 число,

принятое последовательным портом из кодека, вторая – записывает в передатчик число из регистра AY0, которое будет передано портом SPORT0 в

кодек. Так как последовательные порты управляются контроллером прерываний, то для обеспечения максимальной производительности процессора указанные ассемблерные команды должны выполняться в подпрограмме обработки прерываний. Использование контроллера прерываний позволяет вводить данные из АЦП в память процессора и выводить из памяти в ЦАП с постоянным шагом во времени TS.

Программирование последовательного порта можно разбить на две части.

Первый программный блок задает режим работы порта и его параметры, выполняется обычно однократно в начале основной программы при инициализации устройств, подключенных к процессору (таблица Н.4). В

некоторых случаях инициализация может проводиться повторно для изменения отдельных параметров.

Вторая часть содержит подпрограмму обработки прерываний,

выполняемую циклически с частотой дискретизации сигналов FS. Кроме выполнения команд ввода-вывода для обмена данными с кодеком она содержит программный код обработки поступающей информации в реальном времени. Например, расчет выходного сигнала цифрового фильтра низкой частоты n-го порядка.

На рисунке Н.7 приведен формат регистра управления 0x3FF6 порта

SPORT0. Состояние разрядов 8 и 9 регистра зависят от схемы подключения кодека к процессору и выбранного источника синхронизации. В схеме на рис. 38 кадровую синхронизацию выполняет выходной сигнал кодека SDOFS,