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

Руководство пользователя по сигнальным процессорам Sharc

.pdf
Скачиваний:
128
Добавлен:
01.05.2014
Размер:
9.49 Mб
Скачать

DMA 6

TRAN

Передача (1) или прием (0) (1=считывание из ADSP 2106x, 0=запись в

 

ADSP 2106x.). При установке в 1 этот бит определяет направление

 

передачи данных из внутренней памяти во внешнюю (когда

 

EXTERN=1, установка TRAN=1 определяет чтение из внешней памяти,

 

а TRAN=0 определяет запись во внешнюю память).

PS

PS двухразрядное поле состояния, которое отображает состояние

 

буфера упаковки.

 

PS

Состояние

 

00

Упаковка выполнена

 

01

1 й этап всех режимов упаковки или распаковки

 

10

2 й этап режимов упаковки или распаковки 16→48 бит

 

11

или 32→48 бит

 

зарезервирован

DTYPE Определяет тип передаваемых данных; эта информация используется внутренней памятью для определения разрядности слова. Когда DTYPE=1, биты IMDW не учитываются и выполняется 48 разрядная (3 столбца) передача в память. При DTYPE=0 разрядность слова данных определяется битами IMDW в регистре SYSCON. Слово данных может быть 32 или 40 разрядным.

PMODE PMODE – двухразрядное число, определяющее режим упаковки для буфера EPBx. При обращении хост процессора к буферам EPBx бит HPM регистра SYSCON должен быть установлен так, чтобы соответствовать разрядности внешней шины, определяемой PMODE.

PMODE Режим упаковки

00 Нет упаковки/распаковки

01Упаковка 16 разрядных данных внешней шины в/из 32 разрядные данные внутренней шины

10Упаковка 16 разрядных данных внешней шины в/из 48 разрядные данные внутренней шины

11Упаковка 32 разрядных данных внешней шины в/из 32 разрядные данные внутренней шины

MSWF Определяет порядок упаковки слов для режимов упаковки 16→32 разряда и 16→48. MSWF игнорируется при упаковке 32→48 разрядов. Когда MSWF=1, выполняется упаковка «MSW первое» (старшее 16 разрядное слово первое). Когда MSWF=0, выполняется упаковка «LSW (младшее слово) первое».

181

6 DMA

INTIO

Используется, когда DEN=0, чтобы разрешить генерацию прерывания

 

DMA при приеме или передаче одного слова. Генерация прерываний в

 

этом случае полезна для выполнения управляемых прерыванием

 

передач одиночных слов, осуществляемых ядром процессора ADSP

 

2106x. Установка INTIO=1 вызывает генерацию прерывания в случае,

 

когда входной буфер EPBx «не пустой» (для TRAN=0) или когда

 

выходной буфер «не полный» (для TRAN=1).

FLSH

Повторно инициализирует состояние канала DMA, сбрасывая биты

 

состояния FS и PS в ноль. Буфер FIFO внешнего порта и счетчик

 

запросов DMA очищаются, любое состояние DMA приводится в

 

исходное. Любое частично упакованное слово данных также

 

очищается. Вся операция сброса имеет время срабатывания два цикла.

 

FLSH – это бит управления безопасной очисткой, который не

 

фиксируется и всегда считывается как 0.

 

Бит FLSH должен использоваться для очистки канала DMA, только

 

когда канал не активен. Использование бита FLSH, когда канал

 

активен, может привести к неожиданным результатам. Чтобы

 

определить, активен канал или нет, может использоваться регистр

 

DMASTAT (для определенного канала DMA бит состояния канал

 

активен в DMASTAT будет установлен, если разрешен DMA и

 

текущая последовательность DMA не завершена).

 

Бит FLSH должен устанавливаться в 1 только в тот момент времени,

 

когда бит DEN обнуляется или уже равен нулю. Не устанавливайте

 

бит FLSH в 1 во время записи, которая устанавливает DEN в 1.

FS

FS – двухразрядное поле состояния, которое указывает наличие

 

данных в буфере FIFO EPBx. При передаче данных из ADSP 2106x

 

эти биты свидетельствуют о наличии свободного места в буфере, а при

 

передаче данных в ADSP 2106x биты состояния свидетельствуют о

 

наличии новых данных в буфере.

FS Состояние

00 пустой

01 не определено

10частично заполненный

11полный

MASTER Разрешает DMA в режиме ведущего. Биты MASTER, HSHAKE и EXTERN используются в комбинации, которая описана ниже.

182

DMA 6

HSHAKE Разрешает DMA в режиме с квитированием. Биты MASTER, HSHAKE и EXTERN используются в комбинации, которая описана ниже.

EXTERN Определяет передачу по DMA из внешней памяти к внешнему устройству. В этом режиме HSHAKE должен быть равен 1, а MASTER равен 0.

Биты MASTER, HSHAKE и EXTERN конфигурируют режим DMA следующим образом:

M

H

E Режим DMA

0

0

0 Режим ведомого. Запрос DMA генерируется, как только приемный

 

 

буфер не пустой или передающий буфер не полный1.

00 1 Зарезервирован

0

1

0 Режим с квитированием. Для ADSP 21060 и ADSP 21062

 

 

 

применяются только буферы EPB1, EPB2, каналы 7 и 8. Для ADSP

 

 

21061 применяются только буферы EPB0, EPB1, каналы 6 и 7. Запрос

 

 

DMA генерируется, когда выставлен сигнал на линии

.

 

 

Передача происходит, когда выставлен

.1

 

0

1

1 Внешний режим с квитированием. Для ADSP 21060 и ADSP 21062

 

 

применяются только буферы EPB1, EPB2, каналы 7 и 8. Для ADSP

 

 

21061 применяются только буферы EPB0, EPB1, каналы 6 и 7.

 

 

 

Идентичен режиму с квитированием, только данные передаются между

 

 

внешней памятью и внешними устройствами.

 

 

1

0

0 Режим ведущего. Контроллер DMA будет делать попытку передачи

 

 

данных всякий раз, как только приемный буфер не пустой или

 

 

 

передающий буфер не полный и содержимое счетчика DMA не ноль1

 

 

 

 

.

 

 

Для ADSP 21060 и ADSP 21062 сигнал

должен удерживаться

высоким (неактивен), если 7 канал в режиме ведущего, сигнал должен удерживаться высоким (неактивен), если 8 канал в

режиме ведущего. В ADSP 21061 должен удерживаться высоким (неактивен), если 7 канал в режиме ведущего.

10 1 Зарезервирован

1 1 0 Пошаговый режим ведущего. Для ADSP 21060 и ADSP 21062 применяются только буферы EPB1, EPB2, каналы 7 и 8. Для ADSP 2161 применяются только буферы EPB0, EPB1, каналы 6 и 7. В этом режиме выполняется пошаговое управление передачей данных с

помощью сигнала – запрос DMA генерируется, когда

183

6 DMA

выставляется. Запросы работают так же, как в режиме с квитированием. Передача данных по шине происходит, когда выставлены и . Вывод адреса выполняется, как в стандартном режиме ведущего. Не требуется никаких внешних логических схем, чтобы объединять по «ИЛИ» пары и ,

что позволяет осуществлять обращение к буферу с нулевыми состояниями ожидания и без состояний простоя. Для управления пошаговым режимом ведущего используются состояния ожидания и сигнал подтверждения (АСК); см. раздел 5.4.4 в главе 5 Память.

11 1 Зарезервирован

Если данные будут считываться из ADSP 2106x (т. е. TRAN=1), буфер EPBx будет заполнен данными, как только бит DEN будет установлен в 1.

6.2.2. Управление режимами DMA последовательных портов

Два последовательных порта ADSP 2106x (SPORT0 и SPORT1) могут использовать режим DMA при выполнении приема и передачи данных. 0 3 каналы DMA назначены последовательным портам. Каналы 1 и 3 для SPORT1 совместно используются с буферами 0 и 1 линк портов в ADSP 21060 и ADSP 21062 (см. табл. 6.4). Направление передачи по DMA через SPORT определяется аппаратно – через приемные каналы данные посылаются во внутреннюю память, а через передающие каналы – из внутренней памяти.

Канал DMA

Буфер данных

Описание

0 канал DMA

RX0

Прием через последовательный порт 0

1 канал DMA

RX1 (или LBUF0)

Прием через последовательный порт 1

 

 

(или буфер 0 линк портов)1

2 канал DMA

TX0

Передача через последовательный порт 0

3 канал DMA

TX1 (или LBUF1)

Передача через последовательный порт 1

 

 

(или буфер 1 линк портов)1

В ADSP 21061 нет совместно используемых каналов.

Таблица 6.4. Каналы DMA последовательного порта

Между буферами RX/TX и памятью передача осуществляется с помощью 32 разрядных слов. При передаче и приеме 16 разрядных слов через последовательный порт они могут передаваться в память (из памяти) попарно с использованием упаковки SPORT (см. «Упаковка и распаковка данных» в разделе «Форматы слов данных» в главе Последовательные порты).

184

DMA 6

Передачи по DMA через последовательный порт должны настраиваться в регистрах параметров для 0 3 каналов DMA. Биты разрешения DMA через последовательный порт находятся в регистрах управления передачей и приемом STCTL0, STCTL1, SRCTL0 и SRCTL1. Эти регистры полностью описаны в главе Последовательные порты. Биты управления приведены в табл. 6.5.

Бит

Функция

SDEN

Разрешает DMA через последовательный порт

SCHEN

Разрешает цепочку операций DMA через последовательный порт

D2DMA

Разрешает 2 D DMA (только для приема; находится в регистре SRCTLx)

 

(2 D DMA нет в ADSP 21061)

Таблица 6.5. Биты управления регистров STCTLx/SRCTLx для DMA через последовательный порт

Бит D2DMA переводит контроллер DMA в режим 2 D DMA. Это режим доступен только в ADSP 21060 и ADSP 21062 и не доступен в ADSP 21061. Для стандартных операций этот бит должен быть обнулен.

Каждый последовательный порт имеет прерывание передачи по DMA и прерывание приема по DMA. Когда DMA через последовательный порт запрещен, то прерывание ТХ генерируется, если буфер ТХ не полный, а прерывание RX – если буфер RX не пустой.

Имя прерывания

Прерывание

 

SPR0I

0

канал DMA прием через SPORT0

ВЫСШИЙ ПРИОРИТЕТ

SPR1I

1

канал DMA прием через SPORT1

 

SPT0I

2

канал DMA передача через SPORT0

 

SPT1I

3

канал DMA передача через SPORT1

НИЗШИЙ ПРИОРИТЕТ

Таблица 6.6. Прерывания при передаче по DMA через SPORT

6.2.3. Управление режимами DMA линк-портов

Шесть линк портов ADSP 21060 и ADSP 21062 могут также использовать режим DMA при выполнении передачи и приема данных. 4 и 5 каналы DMA назначены для буферов 2 и 3 линк портов, соответственно. Другие буферы линк портов используют каналы DMA совместно с последовательными портами и внешним портом (заметим, что в этом пункте рассматриваются только ADSP 21060 и ADSP 21062, так как ADSP 21061 не имеет линк портов).

Операции DMA через линк порт настраиваются в регистрах параметров DMA для каждого канала. Список этих регистров приведен в табл. 6.2. Разрядность слов, передаваемых по DMA через линк порты, 32 или 48 бит.

185

6 DMA

Канал DMA

Буфер данных

Описание

1 канал DMA

RX1(или LBUF0) Прием через последовательный порт 1

 

 

(или буфер 0 линк портов)

3 канал DMA

TX1(или LBUF1) Передача через последовательный порт 1

 

 

(или буфер 1 линк портов)

4 канал DMA

LBUF2

Буфер 2 линк портов

5 канал DMA

LBUF3

Буфер 3 линк портов

6 канал DMA

EPB0 (или LBUF4) Буфер 0 FIFO внешнего порта

 

 

(или буфер 4 линк портов)

7 канал DMA

EPB1(или LBUF5) Буфер 1 FIFO внешнего порта

 

 

(или буфер 5 линк портов)

Таблица 6.7. Каналы DMA линк-портов

Биты управления и разрешения DMA через буферы линк портов находятся в регистре LCTL. Эти биты показаны в табл. 6.8 (1=разрешен, 0=запрещен). Регистр LCOM содержит бит L2DDMA; этот бит переводит контроллер DMA в режим 2 D DMA линк порта. Для стандартных операций этот бит должен быть обнулен.

Бит

Имя

Описание

0 3

*

Управление буфером 0 линк портов

4 7

*

Управление буфером 1 линк портов

8 11

*

Управление буфером 2 линк портов

12 15

*

Управление буфером 3 линк портов

16 19

*

Управление буфером 4 линк портов

20 23

*

Управление буфером 5 линк портов

24

LEXT0

Расширенный размер слова**

25

LEXT1

Расширенный размер слова**

26

LEXT2

Расширенный размер слова**

27

LEXT3

Расширенный размер слова**

28

LEXT4

Расширенный размер слова**

29

LEXT5

Расширенный размер слова**

30 31

 

Зарезервированы

Таблица 6.8. Биты управления DMA через линк-порт в регистре LCTL

* Каждая группа из четырех бит содержит следующие биты управления для каждого буфера линк портов (х=0,1,2,3,4,5):

Бит

Имя

Описание

0+4х

LxEN

Активизирование LBUFx

1+4х

LxDEN

Разрешение DMA через LBUFx

2+4х

LxCHEN

Разрешение цепочки операций DMA через LBUFx

3+4х

LxTRAN

Направление пересылки через LBUFx: 1=передача, 0=прием

** Расширенный размер слова: 1=передача 48 разрядных данных через линк порт, 0=передача 32 разрядных данных через линк порт

186

DMA 6

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

Имя прерывания

Прерывание

 

SPR1I

1

канал DMA – SPORT1 Rx (или буфер 0 линк портов)

SPT1I

3

канал DMA – SPORT1 Tx (или буфер 1 линк портов)

LP2I

4

канал DMA – буфер 2 линк портов

LP3I

5

канал DMA – буфер 3

линк портов

EP0I

6

канал DMA – буфер 0

внешнего порта (или буфер 4 линк портов)

EP1I

7

канал DMA – буфер 1

внешнего порта (или буфер 5 линк портов)

Таблица 6.9. Прерывания при передаче по DMA через буферы линк-портов

6.2.4. Выбор порта для совместно используемых каналов DMA

1 и 3 каналы DMA совместно используются последовательным портом 1 и буферами 0 и 1 линк портов. 6 и 7 каналы DMA совместно используются и буферами 0 и 1 внешнего порта и буферами 4 и 5 линк портов (заметим, что в этом разделе рассматриваются только ADSP 21060 и ADSP 21062, так как ADSP 21061 не имеет совместно используемых каналов DMA).

канал DMA

Буфер данных

Описание

1RX1 (или LBUF0) Прием через SPORT1 (или буфер 0 линк портов)

3TX1(или LBUF1) Передача через SPORT1 (или буфер 1 линк портов)

6EPB0(или LBUF4) Буфер 0 внешнего порта (или буфер 4 линк портов)

7EPB1(или LBUF5) Буфер 1 внешнего порта (или буфер 5 линк портов)

Канал 1 назначается буферу приема SPORT1 или буферу 0 линк портов в соответствии со следующими правилами:

Если установлен бит, разрешающий прием по DMA через SPORT1 (SDEN=1), то канал 1 назначен SPORT1.

Если установлен бит, разрешающий DMA через буфер 0 линк портов (L0DEN=1), тогда канал 1 назначен этому буферу.

Если установлены оба бита, то канал 1 назначен SPORT1.

Если ни один бит не установлен, тогда сигналы прерываний от двух буферов объединяются по «ИЛИ».

Канал 3 назначается буферу передачи SPORT1 или буферу 1 линк портов таким же образом.

Канал 6 назначается буферу 0 внешнего порта или буферу 4 линк портов в соответствии со следующими правилами:

187

6 DMA

Если в регистре управления DMAC6 установлен бит, разрешающий DMA через внешний порт (DEN=1), то канал 6 назначен EPB0.

Если установлен бит, разрешающий DMA через буфер 4 линк портов (L4DEN=1), тогда канал 6 назначен буферу линк портов.

Если установлены оба бита, то канал 6 назначен EPB0.

Если ни один бит не установлен, тогда сигналы прерываний от двух буферов объединяются по «ИЛИ».

Канал 7 назначается буферу 1 внешнего порта или буферу 5 линк портов таким же образом.

6.2.5. Регистр состояния каналов DMA (DMASTAT)

Контроллер DMA ADSP 2106x содержит 32 разрядный регистр состояния DMASTAT (только для чтения). Его описание дано в табл. 6.10. Биты 0 9 DMASTAT указывают, какой из каналов DMA активен, бит 0 соответствует каналу 0 и т. д. Биты 10 19 указывают состояние цепочки операций DMA для каждого канала (Заметим, что биты 4, 5, 8, 9, 14, 15, 18 и 19 не действительны в ADSP 21061).

Бит Описание

0Состояние 0 канала DMA1

1Состояние 1 канала DMA1

2Состояние 2 канала DMA1

3Состояние 3 канала DMA1

4Состояние 4 канала DMA1,3

5Состояние 5 канала DMA1,3

6Состояние 6 канала DMA1

7Состояние 7 канала DMA1

8Состояние 8 канала DMA1,3

9Состояние 9 канала DMA1,3

10Состояние цепочки операций 0 канала DMA2

11Состояние цепочки операций 1 канала DMA2

12Состояние цепочки операций 2 канала DMA2

13Состояние цепочки операций 3 канала DMA2

14Состояние цепочки операций 4 канала DMA2,3

15Состояние цепочки операций 5 канала DMA2,3

16Состояние цепочки операций 6 канала DMA2

17Состояние цепочки операций 7 канала DMA2

18Состояние цепочки операций 8 канала DMA2,3

19Состояние цепочки операций 9 канала DMA2,3 20 31 Зарезервированы

Таблица 6.10. Регистр DMASTAT

1. Состояние канала: 1(активен)=передача данных или ожидание передачи текущего блока, нет передачи ТСВ. 0 (неактивен)=DMA запрещен, передача выполнена или идет передача ТСВ.

188

DMA 6

2.Состояние цепочки операций канала: 1=передача ТСВ или ожидание передачи ТСВ. 0=запрещена цепочка операций или нет передачи ТСВ.

3.Нет в ADSP&21061.

Замечание 1: Состояние ведущего ADSP 2106x не может измениться во время DMA через внешний порт, пока передача через внешний порт не выполнится полностью (т. е. буферы ЕРВх станут пустыми).

Замечание 2: В режиме «вставка цепочки» (DEN=0, CHEN=1) бит состояние цепочки операций канала никогда не установится в 1. Поэтому сначала проверьте бит состояния канала для определения готовности канала к тому, чтобы ваша программа могла перезаписать указатель цепочки (регистр СРх).

Бит состояния канал активен будет установлен для определенного канала, если DMA разрешен и текущая последовательность DMA еще не выполнена. Бит состояние цепочки операций установлен тогда, когда канал выполняет цепочку операций в настоящее время или выполнение цепочки отложено. Существует задержка в один цикл между изменением внутреннего состояния и его обновлением в регистре DMASTAT.

В качестве альтернативы управляемому прерываниями DMA может быть использован опрос DMASTAT, чтобы определить, когда одиночная последовательность DMA выполнена:

1.Чтение DMASTAT.

2.Если оба бита состояния канала нулевые, то последовательность DMA выполнена.

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

6.3. Работа контроллера DMA

В следующих разделах рассматривается работа контроллера DMA и описывается, как происходит передача по DMA. В ADSP 2106x операции контроллера DMA осуществляются по внутренней шине ввода вывода (I/O). Последовательные порты, линк порты и внешний порт соединяются с внутренней памятью через шину данных ввода вывода (IOD), контроллер DMA генерирует адреса внутренней памяти для шины адреса ввода вывода (IOA).

Контроллер DMA имеет десять каналов DMA, которые используются последовательными портами, линк портами и внешним портом. Канал DMA состоит из набора регистров параметров, которые определяют буфер данных во

189

6 DMA

внутренней памяти, плюс аппаратные средства, которые требуются порту ввода вывода, чтобы запросить обслуживание DMA.

Для того чтобы передать данные, контроллер DMA принимает внутренний сигнал запроса от портов I/O и посылает назад внутренний сигнал предоставления, когда запрос обслужен. Контроллер DMA содержит логическую схему определения приоритета, чтобы определить, какой канал может управлять шиной в данном цикле. Передача по DMA никогда не конфликтует с обращением ядра процессора к внутренней памяти, так как внутренняя память имеет раздельные порты для обращений ядра процессора и порта I/O.

Каждый канал DMA внешнего порта имеет регистр управления/состояния, в котором задается режим работы канала, а также находится информация о состоянии канала. Все регистры параметров и управления DMA доступны для внешних устройств. Это позволяет хост процессору или другому ADSP 2106x настраивать канал DMA и инициализировать передачу без участия локального ADSP 2106x. Локальные ADSP 2106x могут настраивать канал DMA сами путем записи в свои регистры параметров и управления DMA.

Каналы DMA внешнего порта и линк портов могут одновременно принимать и передавать данные из внутренней памяти. Однако каналы DMA последовательного порта однонаправлены, они работают либо на прием, либо на передачу.

6.3.1. Регистры параметров каналов DMA

Работа канала DMA похожа на работу генератора адреса данных (DAG). Каждый канал имеет набор регистров параметров, включающих индексный регистр (IIx) и регистр модификации (IMx), которые используются для задания буфера данных во внутренней памяти. Индексный регистр должен инициализироваться начальным адресом буфера данных. Адрес в индексном регистре выводится на шину адреса ввода вывода (IOA) и используется при обращении к внутренней памяти в каждом цикле DMA. (цикл DMA определяется как цикл тактовой синхронизации, в котором выполняется DMA).

Все адреса в 17 разрядных индексных регистрах смещаются на 0х0002 0000 относительно первой внутренней ячейки памяти перед тем, как они используются контроллером DMA. Передачи по DMA не могут осуществляться в адресное пространство коротких слов, поскольку индексные регистры 17 разрядные. Однако 16 разрядное слово данных может передаваться внутри 32 разрядного слова, с использованием возможности упаковки каналов DMA внешнего порта и последовательных портов.

190