直接内存访问(Direct Memory Access,DMA):在计算机体系结构中,DMA 是一种数据传输方式,允许外部设备直接访问计算机的内存,而无需通过中央处理单元(CPU)的干预。这有助于提高数据传输速度和系统效率。
那么,DMA究竟有多快呢?
实践出真知
恰好,最近有个多通道数据采集的项目,受限于通道数多、分辨率高,而系统带宽有限,为了尽可能充分利用有限带宽,就得想办法优化时序,把时间都留给数据采集和传输。
优化方向就是DMA。
硬件链路是ADC通过SPI接口将数据发送给STM32单片机,单片机再将数据发送到上位机。
咱们的目标就是优化SPI这边,先看普通采集模式。
下图是普通采集模式,SPI每传输1个字节后,就有一段时间的空闲,这段时间就白白浪费了。

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

问题来了,为什么上图中的波形,有这么大的震荡呢?
答案可以参考我的原创书籍《硬件设计指南》

如果看到这里,请点赞、收藏、分享三连!
限时免费扫码进群,交流更多行业技术

审核编辑 黄宇
-
数据传输
+关注
关注
9文章
2076浏览量
67173 -
dma
+关注
关注
3文章
577浏览量
105356
发布评论请先 登录
利用DMA如何降低MCU功耗?
哪些场景适合使用DMA?
基于E203的DMA ip的使用
AG32:dma在cpld中的使用
STM32F405RGT6 ADC2+TIM4触发+DMA(DMA2_Stream2_CH1)+DMA中断会死机,怎么解决?
FPGA利用DMA IP核实现ADC数据采集
NVMe IP高速传输却不依赖XDMA设计之五:DMA 控制单元设计
基于APM32F411 DMA_ADC Handler模式分析及解决
一文详解AXI DMA技术
CKS32F107xx系列的DMA控制器简介
ZYNQ基础---AXI DMA使用

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