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

    文章

    1882

    浏览量

    64573
  • dma
    dma
    +关注

    关注

    3

    文章

    561

    浏览量

    100560
收藏 人收藏

    评论

    相关推荐

    雅特力AT32F402/F405 DMA使用指南

    DMA简介DMA控制器的作用不仅在增强系统性能并减少处理器的中断生成,而且还针对32位MCU应用程序专门优化设计。DMA控制器为存储器到存储器,存储器到外设和外设到存储器的传输提供了7个通道。每个
    的头像 发表于 11-20 01:03 230次阅读
    雅特力AT32F402/F405 <b class='flag-5'>DMA</b>使用指南

    DMA是什么?详细介绍

    DMA(Direct Memory Access)是一种允许某些硬件子系统直接访问系统内存的技术,而无需中央处理单元(CPU)的介入。这种技术可以显著提高数据传输速率,减轻CPU的负担,并提高整体
    的头像 发表于 11-11 10:49 4917次阅读

    使用TMS320C6000增强型DMA的应用

    电子发烧友网站提供《使用TMS320C6000增强型DMA的应用.pdf》资料免费下载
    发表于 10-23 09:48 0次下载
    使用TMS320C6000增强型<b class='flag-5'>DMA</b>的应用

    DMA与C64x的框架组件结合使用

    电子发烧友网站提供《将DMA与C64x的框架组件结合使用.pdf》资料免费下载
    发表于 10-16 10:29 0次下载
    将<b class='flag-5'>DMA</b>与C64x的框架组件结合使用

    用于ADC的DMA乒乓

    电子发烧友网站提供《用于ADC的DMA乒乓.pdf》资料免费下载
    发表于 09-07 11:27 1次下载
    用于ADC的<b class='flag-5'>DMA</b>乒乓

    经验分享 | DMA助力实时控制

    直接存储器访问(DMA,DirectMemoryAccess)的优点·提高系统效率:通过绕过CPU,DMA显著减少了数据传输对CPU资源的占用,使得CPU能够专注于其他计算任务,提升了系统整体
    的头像 发表于 07-18 08:18 795次阅读
    经验分享 | <b class='flag-5'>DMA</b>助力实时控制

    RL78系列MCU DMA在UART中的使用

    对于RL78系列的MCU,为了提高运行效率,减少CPU的占用,建议UART数据收发使用DMA功能。DMA(Direct Memory Access)是RL78 MCU内置的一个控制器,能在支持DMA外围硬件的SFR和内部RAM之
    的头像 发表于 07-17 14:24 633次阅读
    RL78系列MCU <b class='flag-5'>DMA</b>在UART中的使用

    共模电感选型依据究竟有哪些

    电子发烧友网站提供《共模电感选型依据究竟有哪些.docx》资料免费下载
    发表于 05-06 10:26 1次下载

    Linux DMA子系统驱动开发

    Streaming DMA在访问内存地址时经过cache,是non-coherence设备,通常采用streaming mapping的API进行内存申请,在单次DMA传输时进行map,在传输完成后进行unmap;
    发表于 04-07 14:38 881次阅读
    Linux <b class='flag-5'>DMA</b>子系统驱动开发

    请问DMA控制器可以减轻CPU负担吗?

    直接存储器访问 ( DMA )控制器,可以在内存和/或外设之间传输数据,而不需要 CPU 参与每次传输。合理利用 DMA 控制器,可以减轻CPU的负担。
    的头像 发表于 03-28 09:41 709次阅读
    请问<b class='flag-5'>DMA</b>控制器可以减轻CPU负担吗?

    Xilinx高性能PCIe DMA控制器IP,8个DMA通道

    基于PCI Express Integrated Block,Multi-Channel PCIe QDMA Subsystem实现了使用DMA地址队列的独立多通道、高性能Continous或
    的头像 发表于 02-22 11:11 1442次阅读
    Xilinx高性能PCIe <b class='flag-5'>DMA</b>控制器IP,8个<b class='flag-5'>DMA</b>通道

    雅特力AT32F423 DMA使用指南

    DMA简介DMA控制器的作用不仅在增强系统性能并减少处理器的中断生成,而且还针对32位MCU应用程序专门优化设计。DMA控制器为存储器到存储器,存储器到外设和外设到存储器的传输提供了7个通道。每个
    的头像 发表于 02-22 08:13 703次阅读
    雅特力AT32F423 <b class='flag-5'>DMA</b>使用指南

    STM32U5系列TIMER+DMA+DAC应用演示

    有人使用STM32U575芯片的DAC功能。他希望使用TIMER事件触发DMA,并通过DMA传输内存数据到DAC输出寄存器,进而产生相应的DAC输出波形。可他不知如何配置DMA并实现期望的DAC输出,在ST公司提供的HAL库里也
    的头像 发表于 01-24 09:10 1805次阅读
    STM32U5系列TIMER+<b class='flag-5'>DMA</b>+DAC应用演示

    dma和串口直接发送的区别

    DMA(Direct Memory Access)和串口直接发送是两种不同的数据传输方式,它们在实现上有着明显的区别和优劣势。本文将详细介绍DMA和串口直接发送的原理、优缺点以及适用场景。 首先
    的头像 发表于 01-07 17:43 2884次阅读

    dma和通道技术的区别

    DMA(Direct Memory Access)和通道技术是计算机系统中用来优化数据传输和处理的重要技术。尽管它们都与数据传输相关,但它们在实现方法、特点和应用场景等方面存在一些重要的区别
    的头像 发表于 01-04 14:31 2580次阅读