数据搬运工DMA

Posted 濑の哀哭

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据搬运工DMA相关的知识,希望对你有一定的参考价值。

DMA的概念

DMA,全称为:Direct Memory Access,即直接存储器访问。DMA 传输方式无需 CPU 直接控制传输,也没有中断处理方式那样保留现场和恢复现场的过程,通过硬件为 RAM 与 I/O 设备开辟一条直接传送数据的通路,能使 CPU 的效率大为提高。

STM32F4-DMA功能框图分析

  1. 外设通道
  2. 数据流仲裁
  3. 数据FIFO
  4. 存储器端口
  5. 外设端口
外设通道

DMA外设通道

STM32F4xx 系列资源丰富,具有两个 DMA 控制器,同时外设繁多,为实现正常传输,DMA需要通道选择控制。每个 DMA控制器具有 8个数据流,每个数据流对应 8个外设请求。

外设通道选择要解决的主要问题是决定哪一个外设作为该数据流的源地址或者目标地址。

注:
DMA控制器会通过 DMA数据流 x 配置寄存器 DMA_SxCR的 CHSEL[2:0]位选择对应的通道作为该数据流的目标外设。

数据流仲裁

一个 DMA控制器对应 8个数据流,数据流包含要传输数据的源地址、目标地址、数据长度等等信息。如果我们需要同时使用同一个 DMA 控制器(DMA1 或 DMA2)多个外设请求时,那必然需要同时使用多个数据流,那究竟哪一个数据流具有优先传输的权利呢?这就需要仲裁器来管理判断了

以上是关于数据搬运工DMA的主要内容,如果未能解决你的问题,请参考以下文章

嵌入式软件设计(DMA数据搬运)

DMA实现采样数据的直接搬运存储

STM32之DMA

关于HAL库中用DMA方式使用串口的问题,串口中断用开吗

STM32HAL库DMA和串口接收不定长字符串

STM32HAL库DMA和串口接收不定长字符串