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

2024-01-24 17:07:33 浏览数 (2)

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

那么,DMA究竟有多快呢?

实践出真知

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

优化方向就是DMA。

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

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

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

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

这就是DMA的强大之处!

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

0 人点赞