STM32微控制器 | 复习八 | DMA的原理及应用

一、DMA定义

存储器直接访问(DMA),DMA(Direct Memory Access),是指一种高速的数据传输操作,允许在外部设备和存储器之间利用系统总线直接读写数据,既不通过微处理器,也不需要微处理器干预。

DMA用来提供外设与外设之间外设与存储器之间存储器与存储器之间的高速数据传输,无需CPU干预,数据可以通过DMA快速传输,节省CPU的资源。

二、STM32DMA的功能

1、STM32具有7个可配置的独立通道ADC、USART、SPI、I2C、TIM;
2、每个通道都可以硬件请求或者软件触发,这些功能及传输的长度、传输的源地址和目的地址,都可以通过软件设置;
3、7个请求之间的优先权可以通过软件编程设置;
4、每个通道都有3个事件标志,DMA半传输、DMA传输完成、DMA传输出错
5、传输数据的宽度,8位字节、16位半字、32位全字,最大传输数量65536
6、DMA可以在如下区域传输:外设到存储器(I2C或USART获得数据传输到SRAM),SRAM不同区域之间,存储器到外设(将SRAM中预先保存的数据送入DAC产生各种波形),外设到外设(从ADC读取数据后送到TIM1控制其产生不同的PWM占空比);

三、DMA传输的要素和过程

DMA传输的三大要素:

  1. 传输源:DMA控制器从传输源读出数据;
  2. 传输目标:数据传输的目标地址
  3. 触发信号:用于触发一次数据传输的动作,执行一个单位的数据传输。

DMA传输过程的四个步骤:

  1. DMA请求:CPU对DMAC初始化,并向I/O接口发出操作命令,I/O接口提出DMA请求;
  2. DMA响应:DMAC对DMA请求判别优先级及屏蔽,向总线仲裁器提出总线请求。CPU执行完当前总线周期即可释放总线控制权。此时总线仲裁器输出总线应答信号,表示DMA已经响应,通过DMA通知I/O接口开始DMA传输。
  3. DMA传输:DMAC获得总线控制权后,CPU立即挂起或只执行内部操作,由DMAC输出读/写命令,直接控制RAM与I/O接口进行DMA传输。
  4. DMA结束:当完成规定的数据传输操作后,DMAC释放总线控制权,并向I/O接口发出结束信号。
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值