谷动谷力

标题: 嵌入式基础知识-DMA浅析 [打印本页]

作者: 鸣涧    时间: 2023-9-4 09:06
标题: 嵌入式基础知识-DMA浅析
嵌入式基础知识-DMA浅析


本篇来介绍DMA的一些基础知识。


1 DMA简介

DMA(Direct Memory Access),中文名为直接内存访问,它是一些计算机总线架构提供的功能,能使数据从附加设备(如磁盘驱动器)直接发送到计算机主板的内存上。对应嵌入式处理器来说,DMA可以提供外设和存储器之间,或存储器与存储器之间的高速数据传输,无须CPU干预,节省了CPU的资源。


1.1 DMA传输的4种情况

DMA涉及的数据传输分为四种情况:


它们本质上是一样的,都是从内存的某一区域传输到内存的另一区域,外设的数据寄存器本质上就是内存的一个存储单元。


1.2 典型的DMA结构

典型的DMA控制器的结构示意图如下:



DMA控制器内部包含4中寄存器/计数器:


DMA控制器需要连接包括:


DMA控制器可以像CPU那样获得总线的控制权,因此可以完成外设与存储器之间的数据高速交换。


如下图,当外设需要与存储器之间进行DMA传输时由DMA控制器提出总线请求,从CPU获得总线授权后,由DMA控制器控制数据的传输。



2 STM32中的DMA

2.1 STM32的DMA资源概述

STM32F103内部有2 个DMA控制器:

每个通道专门用来管理来自于一个或多个外设对存储器访问的请求。


此外,每个DMA还有一个仲裁器来协调各个请求的优先权。


STM32F103中的DMA有以下一些特性:


2.2 STM32的DMA框图


STM32F103的DMA框图如下:


3 总结


本篇介绍了DMA的一些基础知识,包括DMA传输的4种情况、典型的DMA结构以及STM32的DMA相关基础介绍。






欢迎光临 谷动谷力 (http://bbs.sunsili.com/) Powered by Discuz! X3.2