STM32 DMA介绍

DMA功能简介

DMA:Direct Memory Access,直接存储器存取,是一种大大减少CPU工作量的数据存取方式,被广泛的使用。
在硬件系统中,主要由CPU(内核)、外设、内存(SRAM)、总线等结构组成,数据经常在内存和与外设之间转移,或从外设A转移到外设B。例如:在CPU需要处理由ADC外设采集回来的数据时,CPU首先要把数据从ADC外设的寄存器读取到内存中,然后进行运算处理,这是一般的处理方法。
在转移数据的过程中会占用CPU十分宝贵的资源,我们希望CPU更多的被用在数据运算或者响应中断之中,而数据转移的工作交由其他部件完成。DMA正是为CPU分担数据转移的工作。因为DMA的存在CPU才被解放出来,它可以在DMA数据转移的过程中同时进行数据运算、响应中断,大大提高效率。

DMA工作分析

在这里插入图片描述

在上图中,可以清晰的看到STM32内核、存储器、外设及DMA的连接。
所有这些硬件结构最终都通过各种各样的线连接到总线矩阵之中,硬件结构之间的数据转移都经过总线矩阵的协调,使各个外设都能够和谐的使用总线来传输数据。例如,在不使用DMA的情况下,内核通过DCode经过总线协调,使用AHB把外设ADC的采集的数据读取到内核,然后内核DCode再通过总线矩阵协调,把数据存放到内存SRAM中。
使用了DMA之后,DMA正好可以取代这样的工作,由DMA控制器的DMA总线和总线矩阵协调,使用AHB把外设ADC采集的数据经由DMA通道存放到内存SRAM。在这个数据传输的过程中,不需要内核的全程参与,所以内核可以同时进行数据运算。而且,DMA方式是点到点的数据转移,而不使用DMA方式还要以内核作为中转站,显然DMA传输方式的效率更高。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值