DigiKey得捷电子

文章数:1739 被阅读:2367721

推荐内容
厂商技术中心
账号入驻

DMA 控制器可以减轻CPU负担 前提是配置得当!

最新更新时间:2024-03-27
    阅读数:
Q
A
&
问: 浅谈直接存储器访问 ( DMA ) 控制器的结构与工作原理

直接存储器访问 ( DMA )控制器,可以在内存和/或外设之间传输数据,而不需要 CPU 参与每次传输。合理利用 DMA 控制器,可以减轻CPU的负担。

先进的 DMA 控制器,如 STMicroelectronics STM32F4 系列中包含的控制器,可以通过灵活的数据流分配和传输管理功能进一步减轻 CPU 的负担。

如图左侧所示,来自8个不同的通道 DMA 请求,并到仲裁器上,从而建立优先级(编号较低的输入通道,具有较高的优先级)。然后激活最高优先级的传输,传输到图中右侧的两个 AHB 主设备(存储器端口和外设接口),提高了外设到存储器传输的效率。这可能是 DMA 在基于 CPU 的设计中最常见的情况。

图 1 STM32F4 系列 DMA 控制器 ( 图片来源于 STMicroelectronics *)*
为每个路径分配单独的 FIFO,如图1中间所示,允许针对每个外设接口的特性调整 FIFO 特性。例如,FIFO 的阈值级别(请求传输的深度)可以单独设置为 FIFO 大小的 ¼ ½ ¾ 。这允许低速通道等待,直到FIFO 几乎满了才进行传输,以最小化开销。更快的通道会更早地启动传输,可能只有一半大小,以避免FIFO 溢出。
我们来通过一个实例,来看看DMA怎么工作的。
硬件部分采用 STM32 开发板 ,与 NeoPixel LED 灯带 矩阵 等相连接。
RGB NeoPixels 实际上是 WS2812 智能控制 LED。下面是WS2812 LED 的3字节数据协议的结构,分别代表绿红蓝三个信息。
图 2 WS2812 LED 的3字节数据协议的结构
使用计时器来PWM控制波形,然后配置DMA使CPU高效并且易于实施。
图 3 WS2812 LED 的0和1位的计时图
在软件中,配置 DMA,选择了“TIM2_CH3/UP”,将方向改为“内存到外设”。同时,将优先级改为“非常高”,最后保存.ioc 文件,以生成项目代码。



最后,如果你喜欢这篇文章,快分享给更多的小伙伴吧 ! 切记点个赞哦 !


提示 点击菜单设计支持:工程师锦囊,获取更多工程师小贴士

点击下方“阅读原文”查看更多


让我知道你 在看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: TI培训

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2026 EEWORLD.com.cn, Inc. All rights reserved