Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
378
Добавлен:
21.05.2015
Размер:
7.55 Mб
Скачать
      1. Передача данных

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

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

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

Длина пакета передачи настраивается в битовом поле режима придачи канала (BURSTLEN) в регистре управления (CTRL) по каждому каналу отдельно.

Рис.1 иллюстрирует передачи данных в пакетном режиме.

      1. Блочная передача и режим повтора

Под понятием блочной передачи подразумевается операция выполнения передачи всех требуемых данных, которые измеряются в байтах и задаются размером блока. Размер блока задается в 16-битном регистре счетчика блока передачи (TRFCNT), который позволяет задавать величину блока до 64 Кбайт. Значение ноль – соответствует размеру блока 64 Кбайт.

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

Для увеличения количества передаваемых данных более 64 Кбайт, может быть использован счетчик повторов блочной передачи требуемое количество раз. Общая сумма переданных данных будет равна величине блока умноженной на значение счетчика повторов. Режим повтора включается установкой бита режима повтора (REPEAT) в регистре управления каналом (CTRL). Информация о количестве повторений находится в регистре счетчика повторов (REPCNT). При использовании 8-битного счетчика повторений контроллер DMA может передать 16 Мбайт данных без вмешательства центрального процессора.

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

Рис.1 иллюстрирует блочную передачу в примере передачи посылке данных DMA.

      1. Dma посылка

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

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

Рис.1. Передача данных, блочная передача и DMA посылка

      1. Режимы адресации

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

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

Режимы адресации настраиваются в битовых полях режима адреса источника и получателя (SRCDIR и DESTDIR) по каждому каналу отдельно в регистре управления адресацией (ADDRCTRL).

Примеры различных режимов адресации показаны на следующем рисунке:

Соседние файлы в папке Архитектура ЭВМ