历史上的今天
今天是:2024年12月06日(星期五)
2021年12月06日 | 正点原子STM32笔记——DMA原理
2021-12-06 来源:eefocus
一、DMA简介
①DMA 全称Direct Memory Access,即直接存储器访问。
正常情况下(没用DMA),将数据从一个空间复制到另一个空间,需要将数据从一个空间读入CPU,然后写到另一个空间里。
②DMA传输将数据从一个地址空间复制到另一个地址空间。当CPU初始化这个传输动作,传输动作本身是由DMA控制器来实现和完成的。这样就大大减轻了CPU的负担。
③DMA传输方式无需CPU直接控制传输,也没有中断处理方式那样保留现场和恢复现场过程,通过硬件为RAM和IO设备开辟一条直接传输数据的通道,使得CPU的效率大大提高。
STM32最多有2个DMA控制器(DMA2仅存在大容量产品中),DMA1有7个通道。DMA2有5个通道。每个通道专门用来管理来自于一个或多个外设对存储器访问的请求。还有一个仲裁起来协调各个DMA请求的优先权。
DMA框图:

图中红色圈出的就是DMA1和DMA2。举个例子,假设传输方向是从外设到存储器,下图是来自APB1和APB2的两个外设的DMA请求。请求通过仲裁器连接到相应的通道,然后可以通过DMA总线访问

二、STM32DMA特性
①每个通道都直接连接专用的硬件DMA请求,都支持软件触发,这些通过软件来配置。
②在七个请求间的优先权可以通过软件编程设置(共有四级:很高、高、中等和低),假如在相等优先权时由硬件决定(请求0优先于请求1,依此类推) 。
③ 独立的源和目标数据区的传输宽度(字节、半字、全字),模拟打包和拆包的过程。源和目标地址必须按数据传输宽度对齐。
④ 支持循环的缓冲器管理
⑤ 每个通道都有3个事件标志(DMA 半传输,DMA传输完成和DMA传输出错),这3个事件标志逻辑或成为一个单独的中断请求。
⑥ 外设和存储器,存储器和外设的传输 ,存储器和存储器间的传输
⑦ 闪存、SRAM、外设的SRAM、APB1 APB2和AHB外设均可作为访问的源和目标。
⑧ 可编程的数据传输数目:最大为65536
三、DMA原理
1、DMA1控制器和DMA2控制器

传输方向:外设到存储器,存储器到外设的 ,存储器到存储器间。
通道选好后,可选的外设也就固定了。如上图,如果选择通道1,则可选的外设就有ADC1、、TIM_CH3、TIM4_CH1。

2、DMA处理
比如,我们设置从存储器到外设,外设假定是UART1_RX,存储器假定是内存中某一基地址比如说一个数组。源地址就是存储器,目标地址就是外设。所以我们就将UART1_RX的地址赋给DMA_CPARx,将数组中基地址赋给DMA_CMARx。如果传输100个数据,则DMA_CNDTRx的值就是100,每传输一个数据,DMA_CNDTRx的值就减1。数据的传输方向就在DMA_CCRx寄存器中的DIR位(位4)设置。而从外设传输到存储器方法是一样的。从存储器到存储器传输就不一样了。

3、仲裁器
DMA1有7个通道,有可能每个通道都有请求,这时候就需要设置优先级,谁的优先级高处理谁。

配置优先级也是在DMA_CCRx寄存器中配置的。

4、DMA通道

DMA传输的数据是可编程的,最大达到65535。存储器数据宽度和外设数据宽度也可以设置,即可以设置读取的数据宽度和写入的数据宽度。当读取的数据宽度和写入的数据宽度相等时,比如说数据宽度都是16位,那么传输数据的时候就一次传输16位。当读取的数据宽度和写入宽度不相等时,可以参考下图:

5、指针增量和循环模式


6、存储器到存储器模式

存储器到存储器传输也是由源地址传到目标地址,而源地址就被送给DMA_CPARx,目标地址就被送给DMA_CMARx。

7、中断

8、通道配置过程

这些就是DMA的一些基础概念和原理。
史海拾趣
|
3. 应用例子: 目前吉时利已经将上面所介绍的设计方法成功应用于其最新的S600DC/RF APT系统中,用于实现过程监控。其关键的性能指标包括: 基于吉时利S600 APT带固态转换开关的直流测试系统以及Anritsu VNA技术,高速的射频测量能力实现了1KHz的 ...… 查看全部问答> |
|
Push- Pull输出就是一般所说的推挽输出,在CMOS电路里面应该较CMOS输出更合适,因为在CMOS里面的push-pull输出能力不可能做得双极那么大。输出能力看IC内部输出极N管P管的面积。和开漏输出相比,push-pull的高低电平由IC的电源低定,不能简单的做 ...… 查看全部问答> |
|
本帖最后由 johnrey 于 2014-12-11 23:49 编辑 写在前面的话。参加过两轮Ti样片活动了,慢慢就不再为活动而申请了,实际上,在申请过程中也学到了很多的知识,虽然说这些知识不一定就马上可以用的上,但是对未知世界的好奇心又驱使我开始了这一轮 ...… 查看全部问答> |






