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

发布时间:2024年01月24日

原文来自公众号:工程师看海

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

那么,DMA究竟有多快呢?

实践出真知

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

优化方向就是DMA。

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

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

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

图片

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

这就是DMA的强大之处!

图片

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

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

图片

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

文章来源:https://blog.csdn.net/u013608300/article/details/135830721
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。