DMA---直接存储器访问
一、DMA简介 DMA传输实现高速数据移动过程无需任何CPU操作控制。 DMA控制器是独立于Cortex_M4内核的。 STM32F407共有2个DMA控制器,DMA1只有外设到存储器和存储器到外设的传输模式,DMA2具有外设到存储器、存储器到外设以及存储器到存储器的传输模式。 传输模式: 1》外设到存储器(P--->M):把外设数据寄存器内容转移到指定的内存空间。 2》存储器到外设(M--->P):把特定存储区内容转移到外设的数据寄存器中。 3》存储器到存储器(M--->M):把一个指定的存储区内容拷贝到另一个存储区空间。 二、功能框图 (1)外设通道选择 每个DMA控制器具有8个数据流,每个数据流对应8个外设通道,每个通道对应不同的DMA请求。 外设通道选择要解决的主要问题是决定哪一个外设作为该数据流的源地址或者目标地址。 每个外设请求都占用一个数据流通道,相同外设请求可以占用不同数据流通道。 (2)仲裁器 仲裁器用来管理判断哪个数据流的优先级高。 仲裁器管理数据流方法分为两个阶段:第一阶段数据软件阶段,在配置数据流时可以通过寄存器设定它的优先级别,可以设置为非常高、高、中和低四个级别。第二阶段数据硬件阶段,如果两个或两个以上数据流软件设置优先级一样,则它们优先级取决于数据流编号,编号越低优先级越高,比如数据流2优先级高于数据流3。 (3)FIFO