news 2026/6/9 23:35:52

小白也能看懂!从底层原理深入理解DMA控制器的内部架构图及其构成,加深对DMA的掌控

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
小白也能看懂!从底层原理深入理解DMA控制器的内部架构图及其构成,加深对DMA的掌控

如果对芯片架构图和DMA不熟悉可以看看下面两篇文章,对本篇文章的理解有所帮助





DMA初学者必看!帮小白从系统CPU层理解DMA原理-CSDN博客认识芯片架构图和总线矩阵以及FIFO的作用-CSDN博客

了解DMA内部的构成

a.DMA控制器在MCU内部是一个AMBA advcanced high-performance bus(AHB) Master。

b.DMA控制器和AHB有三个接口:

  • 一个Slave接口(用于CPU对它进行编程)

  • 两个Master接口,允许将DMA去开启两个AHB总线上两个从设备之间的信号通信。

c.每个DMA都具有8个Streams

  • i.每个Stream都只能单向传输

  • ii.Steam可被配置的模式

    • 从内存到外设

    • 从外设到内存

    • 从内存到内存

DMA功能框图

DMA既然是Master , 又有slave接口不是冲突了吗?

实则不然 , DMA如果想要开始工作 , 就需要CPU对其内部寄存器进行编程 ,如果没有slave接口, 内部寄存器就没办法被设置, 所以需要slave接口让CPU通过AHB总线对寄存器/计算器进行编程

STREAM流&FIFO

假设现在UART有数据要传输到SRAM , 如图所示 , 会进入到一个特定的Stream流 , 通过这个Stream流传输到SRAM里 , 如果SRAM里暂时有数据,那么数据就会暂存到FIFO里,等待接收完毕

如果此时不碰巧 , 又有一个SPI的数据要传输过来, 那么高优先级的数据会先传输 , 低优先级的数据会在FIFO里等待

每一个STREAM流在某一刻只能执行单项传输

每个stream会有八个通道 , 每个通道都能产生DMA的Request , 产生了Request之后 , 它就会去触发Stream的数据流动

在项目布局的时候,不能只管外面的外设具体用哪一个 , 还要管内部的DMA是怎么去触发的,他们的触发关系也是你在设计架构的时候 , 必须去考虑的 , 跟硬件人员沟通的时候, DMA的这条暗线是必须沟通的

系统架构图:

仲裁

假如Stream1 和Stream2 同时过来了

首先判断的规则是通过软件进行

在软件当中 , 会设置DMASXCR寄存器 , 为每一个stream流设置优先级

如果Stream2的优先级比Stream1的优先级高,所以Stream2置起

如果Stream2 和Stream1 的优先级都是very high

这个时候就看硬件了,谁的 Stream的数字小谁就先置起

DMA FIFO的应用

AHB总线一个字的宽度就是32位

当FIFO存放了四个字节刚刚好是32位,那么它会被一起被放到AHB总线上 ,然后运到Memory里 , 这样AHB总线就只被打断了一次 , 并且一个周期内就能传递完成

FIFO一般是存放两个字节的大小

FIFO的作用:

1,减少AHB带宽的占用减少AHB总线的仲裁,让CPU能够在AHB总线上占用更大的带宽不需要和DMA经常竞争总线。(DMA接收数据时可以旁路AHB总线)

2,减少溢出,在需要动态扩展内存时,DMA会暂存数据进入FIFO,给CPU执行动态扩展内存争取时间,防止溢出。

3、DMA多路Stream仲裁时,FIFO可以多路Stream缓冲,极大提高并发性。

Burst介绍:

DMA控制器可以生成单次传输或增量突发传输,传输的节拍数为4、8或16.为了确保数据一致性,构成突发传输的每组传输都是不可分割的:AHB传输被锁定,AHB总线矩阵的仲裁器在突发传输序列期间不会撤销DMA主设备的授权。

作用:

可以通过Brust进行多个寄存器的同时修改,在M2P时同时配置多个定时器

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/10 17:07:22

基于Android的云养殖的服务APP的设计与实现

前言 🌞博主介绍:✌CSDN特邀作者、全栈领域优质创作者、10年IT从业经验、码云/掘金/知乎/B站/华为云/阿里云等平台优质作者、专注于Java、小程序/APP、python、大数据等技术领域和毕业项目实战,以及程序定制化开发、文档编写、答疑辅导等。✌…

作者头像 李华
网站建设 2026/6/10 17:07:28

1.vmware虚拟机安装和配置os

vmware虚拟机安装centos7os vmware虚拟机就相当于一个裸机,然后下载的centos7镜像就是这个裸机的os 如何关机 虚拟机快照 当快照完这个状态,以后搞崩了就可以恢复到这个快照 FinalShell远程连接到Linux敲命令 在vmware界面使用terminal终端太卡&#xff…

作者头像 李华
网站建设 2026/6/10 17:04:27

大脑各组织类型及其电磁特性

大脑的组织构成是神经科学与生物医学工程的基础,其分类需兼顾解剖结构、功能特性(如脑电磁环境、神经刺激),核心可分为神经组织、结缔组织、体液组织三大类,各类组织在电磁参数(电导率、介电常数&#xff0…

作者头像 李华
网站建设 2026/6/10 17:20:49

稳石氢能AEM制氢设备交付台湾用户,卓越性能带动复购订单。

2025年12月10日,稳石氢能向台湾用户交付了AEM制氢系统订单,该订单为台湾用户的复购订单,该用户于2024年11月采购10kW制氢系统,经过一年运行使用,对稳石氢能AEM制氢设备的性能予以了认可,并再次下单复购。风…

作者头像 李华
网站建设 2026/6/9 16:39:05

AI测试、大模型测试(三)AI语音产品测试AI测试边界

目录 一、AI语音产品(如智能音箱)测试整体方案 二、当前AI测试通常不重点关注的方面 三、警惕AI测试中的盲区或误区 四、AI测试中对抗性攻击测试 一、AI语音产品(如智能音箱)测试整体方案 1.1 测试数据集多样性、量级 语音类产品整体关注以下分类下产品的表现&#xff1a…

作者头像 李华
网站建设 2026/6/10 6:34:58

低代码平台是什么?它如何帮助企业降本增效

一、低代码平台:企业数字化转型的 “加速器”在数字化浪潮席卷各行各业的今天,企业对软件系统的需求日益迫切,但传统代码开发模式却陷入了 “高成本、低效率、供需失衡” 的困境。此时,低代码平台应运而生,成为破解企业…

作者头像 李华