0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

什么是DMA?DMA究竟有多快!

工程师看海 来源:工程师看海 作者:工程师看海 2024-02-22 10:43 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

直接内存访问(Direct Memory Access,DMA):在计算机体系结构中,DMA 是一种数据传输方式,允许外部设备直接访问计算机的内存,而无需通过中央处理单元(CPU)的干预。这有助于提高数据传输速度和系统效率。

那么,DMA究竟有多快呢?

实践出真知

恰好,最近有个多通道数据采集的项目,受限于通道数多、分辨率高,而系统带宽有限,为了尽可能充分利用有限带宽,就得想办法优化时序,把时间都留给数据采集和传输。

优化方向就是DMA。

硬件链路是ADC通过SPI接口将数据发送给STM32单片机,单片机再将数据发送到上位机

咱们的目标就是优化SPI这边,先看普通采集模式。

下图是普通采集模式,SPI每传输1个字节后,就有一段时间的空闲,这段时间就白白浪费了。

64673866-bbe4-11ee-9b10-92fbcf53809c.png

再看下,开启DMA之后的效果。SPI可以连续工作,时钟速率稳定在20MHz,高效工作。

这就是DMA的强大之处!

646b5176-bbe4-11ee-9b10-92fbcf53809c.png

问题来了,为什么上图中的波形,有这么大的震荡呢?

答案可以参考我的原创书籍《硬件设计指南》

6477b4ca-bbe4-11ee-9b10-92fbcf53809c.png

如果看到这里,请点赞、收藏、分享三连!

限时免费扫码进群,交流更多行业技术

647b9bc6-bbe4-11ee-9b10-92fbcf53809c.png

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 数据传输
    +关注

    关注

    9

    文章

    2076

    浏览量

    67173
  • dma
    dma
    +关注

    关注

    3

    文章

    577

    浏览量

    105356
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    基于AXI DMA IP核的DDR数据存储与PS端读取

    添加Zynq Processing System IP核,配置DDR控制器和时钟。7000系列的Zynq可以参考正点原子DMA回环测试设置。
    的头像 发表于 11-24 09:25 2636次阅读
    基于AXI <b class='flag-5'>DMA</b> IP核的DDR数据存储与PS端读取

    利用DMA如何降低MCU功耗?

    利用DMA(直接内存访问)降低MCU功耗的核心在于最小化CPU介入,通过硬件自动完成数据传输任务,使CPU能尽可能长时间处于休眠状态。 CPU休眠时间最大化 DMA接管数据搬运(如外设↔内存、内存
    发表于 11-18 07:34

    哪些场景适合使用DMA

    DMA(直接内存访问)控制器允许外设和内存之间或内存和内存之间直接传输数据,而无需CPU的参与。这可以大大减轻CPU的负担,让CPU去处理其他任务,从而提高系统效率。以下是一些常见的使用DMA的场景
    发表于 11-12 07:13

    基于E203的DMA ip的使用

    1.BD设计 2.AXI DMA寄存器 编写SDK代码,需要根据xilinx的官方例程和dma ip使用手册进行寄存器的配置。 重要寄存器: MM2S S2MM
    发表于 10-22 06:00

    AG32:dma在cpld中的使用

    cpld中实现DMA的逻辑: Mcu为master,cpld为slave,mcu对cpld的交互方式为存取寄存器的方式; mcu中配置好DMA(读取cpld中准备好的数据); cpld中准备好数据后
    发表于 08-12 09:22

    STM32F405RGT6 ADC2+TIM4触发+DMA(DMA2_Stream2_CH1)+DMA中断会死机,怎么解决?

    ADC1+TIM4触发+DMA(DMA2_Stream0_CH0)+DMA中断完全正常更改为ADC2+TIM4触发+DMA(DMA2_Str
    发表于 08-04 07:16

    FPGA利用DMA IP核实现ADC数据采集

    本文介绍如何利用FPGA和DMA技术处理来自AD9280和AD9708 ADC的数据。首先,探讨了这两种ADC的特点及其与FPGA的接口兼容性。接着,详细说明了使用Xilinx VIVADO环境下
    的头像 发表于 07-29 14:12 4645次阅读

    NVMe IP高速传输却不依赖XDMA设计之五:DMA 控制单元设计

    DMA 控制单元负责控制 DMA 传输事务, 该单元承担了 DMA 事务到 NVMe 事务的转换任务, 使用户对数据传输事务的控制更加简单快捷。 DMA 控制功能由
    的头像 发表于 07-02 19:47 1892次阅读
    NVMe IP高速传输却不依赖XDMA设计之五:<b class='flag-5'>DMA</b> 控制单元设计

    基于APM32F411 DMA_ADC Handler模式分析及解决

    最近在编写DMA_ADC例程的过程中出现了一个中断配置的问题,在ADC采集过程中,结合手册进行ADC连续转换模式配置采集,手册上给出需要进行中断配置的信息,但是真实情况不需要进行中断配置也可以进行
    的头像 发表于 06-24 14:30 876次阅读
    基于APM32F411 <b class='flag-5'>DMA</b>_ADC Handler模式分析及解决

    第十五章 DMA

    本章介绍DMA(直接存储器存取),其可在不占用CPU的情况下搬数据,支持多种传输方向,含控制器、通道等配置及相关实验代码。
    的头像 发表于 06-14 16:32 1114次阅读
    第十五章 <b class='flag-5'>DMA</b>

    一文详解AXI DMA技术

    AXI直接数值存取(Drect Memory Access,DMA)IP核在AXI4内存映射和AXI4流IP接口之间提供高带宽的直接内存访问。DMA可以选择分散收集(Scatter Gather
    的头像 发表于 04-03 09:32 2073次阅读
    一文详解AXI <b class='flag-5'>DMA</b>技术

    CKS32F107xx系列的DMA控制器简介

    直接存储器存取(DMA)用来提供在外设和存储器之间或者存储器和存储器之间的高速数据传输。无须CPU干预,数据可以通过DMA快速地移动,这就节省了CPU的资源来做其他操作。两个DMA控制器有12个通道
    的头像 发表于 02-18 17:24 1278次阅读
    CKS32F107xx系列的<b class='flag-5'>DMA</b>控制器简介

    如何使用DMA进行USART不定长度接收

    在上一讲中,我们对USART进行了简单介绍,并讲解了如何在不使用DMA的情况下进行不定长度数据接收,本讲将着重讲解如何使用DMA进行USART不定长度接收。
    的头像 发表于 02-18 17:01 1360次阅读
    如何使用<b class='flag-5'>DMA</b>进行USART不定长度接收

    ZYNQ基础---AXI DMA使用

    前言 在ZYNQ中进行PL-PS数据交互的时候,经常会使用到DMA,其实在前面的ZYNQ学习当中,也有学习过DMA的使用,那就是通过使用自定义的IP,完成HP接口向内存写入和读取数据的方式。同样
    的头像 发表于 01-06 11:13 3584次阅读
    ZYNQ基础---AXI <b class='flag-5'>DMA</b>使用

    EE-116:SHARC简词DMA

    电子发烧友网站提供《EE-116:SHARC简词DMA.pdf》资料免费下载
    发表于 01-05 09:56 0次下载
    EE-116:SHARC简词<b class='flag-5'>DMA</b>