什么是DMA:
DMA即直接存储器访问,DMA 传输将数据从一个地址空间复制到另外一个地址空间。当CPU 初始化这个传输动作,传输动作本身是由 DMA 控制器来实行和完成。
DMA的优点:
DMA 传输方式无需 CPU 直接控制传输,也没有中断处理方式那样保留现场和恢复现场的过程,通过硬件为 RAM 与 I/O 设备开辟一条直接传送数据的通路,能使 CPU 的效率大为提高
STM32 的 DMA特性:
1.每个通道都直接连接专用的硬件 DMA 请求,每个通道都同样支持软件触发。这些功能通过软件来配置。
2.在七个请求间的优先权可以通过软件编程设置(共有四级:很高、高、中等和低),假如在相等优先权时由硬件决定(请求 0 优先于请求 1,依此类推) 。
3.独立的源和目标数据区的传输宽度(字节、半字、全字),模拟打包和拆包的过程。源和目标地址必须按数据传输宽度对齐。
4.支持循环的缓冲器管理
5.每个通道都有 3 个事件标志(DMA 半传输DMA 传输完成和 DMA 传输出错),这 3 个事件标志逻辑或成为一个单独的中断请求。
6.存储器和存储器间的传输
7. 外设和存储器,存储器和外设的传输
8. 闪存、SRAM、外设的 SRAM、APB1 APB2 和 AHB 外设均可作为访问的源和目标。
9. 可编程的数据传输数目:最大为 65536
DMA控制器的组成
对数据传送过程中进行控制的硬件称为DMA控制器(DMA接口)。当I/O设备需要进行数据传送时,通过DMA控制器向CPU提出DMA传送请求,CPU响应之后让出系统总线,由DMA控制器接管总线进行数据传送。
1.接受外设发出的DMA请求,并向CPU发出总线请求。
2.CPU响应总线请求,发出总线响应信号,接管
STM32 DMA
最新推荐文章于 2023-08-06 17:54:51 发布