DMA传输原理详解

DMA-(Data Memory Access) 作用

        直接存储器存取(DMA)用来提供在外设和存储器之间或者存储器和存储器之间的高速数据传 输。无须CPU干预,数据可以通过DMA快速地移动,这就节省了CPU的资源来做其他操作。两个DMA控制器有12个通道(DMA1有7个通道,DMA2有5个通道),每个通道专门用来管理来自 于一个或多个外设对存储器访问的请求。还有一个仲裁器来协调各个DMA请求的优先权

DMA 处理

如果外设要想通过DMA来传输数据,必须先给DMA控制器发送DMA请求,DMA控制器根据通道的优先权处理请求。DMA收到请求信 号之后,控制器会给外设一个应答信号,当外设应答后且DMA控制器收到应答信号之后,就会 启动DMA的传输,直到传输完毕。

DMA基本参数

第一个参数是起始地址,该参数指向需要转运的第一个数据的地址和负责接收数据的地址。

第二个参数是数据宽度,该参数指定一次转运多少位的数据

第三个参数是地址是否自增,它指定一次数据转运完成后下一次转运需不需要将地址移动到下一个位置,具体移动步长由数据宽度决定。(一般寄存器方不需要地址自增,而存储器方需要

触发方式

DMA有软件触发和硬件触发两种触发方式,M2M=1时,DMA选择软件触发,M2M=0时,DMA选择硬件触发

一般存储器到存储器之间的数据转运选择软件触发。

硬件触发源可以选择ADC、串口、定时器等,使用这些模块时就选择硬件触发。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值