前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >什么是DMA?DMA究竟有多快!

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

作者头像
工程师看海
发布2024-01-24 17:07:33
2150
发布2024-01-24 17:07:33
举报
文章被收录于专栏:工程师看海工程师看海

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

那么,DMA究竟有多快呢?

实践出真知

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

优化方向就是DMA。

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

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

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

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

这就是DMA的强大之处!

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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2024-01-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 工程师看海 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档