Крупнейшая в мире платформа для поставок недостающих и труднодоступных деталей

Что такое DMA

Опубликованное время: 2022-11-14 14:31:57
DMA, полное название — Direct Memory Access, то есть прямой доступ к памяти.

Что такое DMA?

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


Роль DMA заключается в реализации прямой передачи данных, что устраняет традиционную передачу данных, требующую участия регистров ЦП. В основном это связано с передачей данных в четырех случаях, но они по сути одинаковы, и все они передаются из определенной области памяти в память. Другая область (регистр данных периферийного устройства по сути является единицей хранения памяти).


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

:peripherals to memorymemory to peripheralmemory to memoryperipheral to peripheral Параметры передачи DMA


Для передачи данных основными параметрами, необходимыми для DMA, являются следующие четыре:

1. Исходный адрес data

2. Адрес назначения места передачи данных

3. Какой объем данных передается?

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


передач

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


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


Основные возможности DMA

1. На одном и том же DMA-модуле программным программированием может быть установлен приоритет среди множества запросов (всего существует четыре уровня: очень высокий, высокий, средний и низкий), а при равенстве настроек приоритета он определяется аппаратным обеспечением (запрос 0 имеет приоритет над запросом 1 и т. д.);

2. Ширина передачи (байт, полуслово, полное слово) независимого источника данных и целевой области данных, имитирующая процесс упаковки и распаковки. Исходный и конечный адреса должны быть выровнены по ширине передачи данных;

4. Поддержка кругового управления буфером;

5. Каждый канал имеет 3 флага событий (половинная передача DMA, завершение передачи DMA и ошибка передачи DMA), эти 3 флага событий логически ИЛИ становятся отдельным запросом на прерывание;

5. Передача между памятью и памятью, периферийными устройствами и памятью, а также передача между памятью и периферийным устройством;

6. В качестве источника и цели доступа могут использоваться флэш-память, SRAM, SRAM периферийных устройств, периферийных устройств APB1, APB2 и AHB;

7. Программируемый номер передачи данных: максимальный 65535.


метод передачи DMA

Способ 1: DMA_Mode_Normal, нормальный режим.

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


Способ 2: DMA_Mode_Circular, циклический режим передачи.

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

Рекомендуемые детали