Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

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

Поиск

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

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

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

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

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

 

DMA посылка

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

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

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

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

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

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

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

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

Перезагрузка адреса

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

1. - конец каждой передачи;

2. - конец каждой блочной передачи;

3. - конец посылки;

4. - никогда не перезагружать.

Например, перезагрузка адреса после каждой передачи данных может быть использована совместно с 8-битным пакетным режимом для повторяющегося чтения всех четырех результатов преобразования АЦП микропроцессора XMEGA и записи данных в массив. 8-битный пакетный режим гарантирует, что все четыре результата преобразования АЦП будут прочитаны разом и без использования центрального процессора, а указатель на адрес источника перезагрузится в начальное положение (на первый регистр результата АЦП) по завершению придачи данных.

Отметим, что при использовании перезагрузки адреса после передачи пакета и общего количества байтов передачи некратного размеру пакета, передача последнего пакета будет остановлена по передаче последнего байта из общего количества байтов передачи, после чего также произойдет перезагрузка адреса. Например, используя 4-битную пакетную передачу с 17-байтным блоком, перезагрузка будет происходить после 4-го, 8-го, 12-го, 16-го и 17-го байтов.

Настройка перезагрузки адреса для источника и получателя осуществляется в битовых полях SRCRELOAD и DESTRELOAD по каждому каналу отдельно в регистре управления адресом (ADDRCTRL).



Поделиться:


Последнее изменение этой страницы: 2016-12-30; просмотров: 592; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.144.224.30 (0.008 с.)