0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

请问DMA控制器可以减轻CPU负担吗?

得捷电子DigiKey ? 来源:得捷电子DigiKey ? 2024-03-28 09:41 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

浅谈直接存储器访问 ( DMA ) 控制器的结构与工作原理

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

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

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

c6e003e2-ec3b-11ee-a297-92fbcf53809c.png

图 1STM32F4系列DMA控制器(图片来源于STMicroelectronics*)*

为每个路径分配单独的 FIFO,如图1中间所示,允许针对每个外设接口的特性调整 FIFO 特性。例如,FIFO 的阈值级别(请求传输的深度)可以单独设置为 FIFO 大小的?,?或?。这允许低速通道等待,直到FIFO 几乎满了才进行传输,以最小化开销。更快的通道会更早地启动传输,可能只有一半大小,以避免FIFO 溢出。

我们来通过一个实例,来看看DMA怎么工作的。

实例:使用STM32 来控制 NeoPixels LED

硬件部分采用STM32 开发板,与 NeoPixelLED、灯带、矩阵等相连接。

c6f9e3fc-ec3b-11ee-a297-92fbcf53809c.png

RGB NeoPixels 实际上是 WS2812 智能控制 LED。下面是WS2812 LED 的3字节数据协议的结构,分别代表绿红蓝三个信息。

c711d2dc-ec3b-11ee-a297-92fbcf53809c.png

图 2 WS2812 LED 的3字节数据协议的结构

使用计时器来PWM控制波形,然后配置DMA使CPU高效并且易于实施。

c71ba8a2-ec3b-11ee-a297-92fbcf53809c.png

图 3 WS2812 LED 的0和1位的计时图

在软件中,配置 DMA,选择了“TIM2_CH3/UP”,将方向改为“内存到外设”。同时,将优先级改为“非常高”,最后保存.ioc 文件,以生成项目代码。

c73451f4-ec3b-11ee-a297-92fbcf53809c.png




审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 存储器
    +关注

    关注

    38

    文章

    7654

    浏览量

    167879
  • RGB
    RGB
    +关注

    关注

    4

    文章

    808

    浏览量

    60084
  • 计时器
    +关注

    关注

    1

    文章

    432

    浏览量

    33871
  • PWM波
    +关注

    关注

    0

    文章

    100

    浏览量

    17393
  • DMA控制器
    +关注

    关注

    1

    文章

    43

    浏览量

    12683

原文标题:DMA 控制器可以减轻CPU负担 前提是配置得当!

文章出处:【微信号:得捷电子DigiKey,微信公众号:得捷电子DigiKey】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    第十五章 DMA

    本章介绍DMA(直接存储存取),其可在不占用CPU的情况下搬数据,支持多种传输方向,含控制器、通道等配置及相关实验代码。
    的头像 发表于 06-14 16:32 ?695次阅读
    第十五章 <b class='flag-5'>DMA</b>

    工程机械控制器厂家 控制器国产替代 #国产控制器#控制器厂家#控制器品牌

    控制器
    长沙硕博电子科技股份有限公司
    发布于 :2025年04月29日 14:15:05

    工程机械控制器如何选型?控制器选型指南 #控制器 #车载控制器 #整车控制器 #控制器选型

    控制器
    长沙硕博电子科技股份有限公司
    发布于 :2025年03月14日 10:54:24

    CKS32F107xx系列的DMA控制器简介

    直接存储存取(DMA)用来提供在外设和存储之间或者存储和存储之间的高速数据传输。无须CPU
    的头像 发表于 02-18 17:24 ?947次阅读
    CKS32F107xx系列的<b class='flag-5'>DMA</b><b class='flag-5'>控制器</b>简介

    TMS320F/C24x DSP控制器CPU和指令集参考指南

    电子发烧友网站提供《TMS320F/C24x DSP控制器CPU和指令集参考指南.pdf》资料免费下载
    发表于 12-30 16:47 ?2次下载
    TMS320F/C24x DSP<b class='flag-5'>控制器</b><b class='flag-5'>CPU</b>和指令集参考指南

    TMS320DM643x DMP增强型DMA(EDMA)控制器用户指南

    电子发烧友网站提供《TMS320DM643x DMP增强型DMA(EDMA)控制器用户指南.pdf》资料免费下载
    发表于 12-16 10:25 ?0次下载
    TMS320DM643x DMP增强型<b class='flag-5'>DMA</b>(EDMA)<b class='flag-5'>控制器</b>用户指南

    请问使用DAC1282时可以用什么控制器与其通信呢?

    请问使用DAC1282时可以用什么控制器与其通信呢?因为我看像DSP28335之类的控制器的SPI都是16位字长的,而DAC1282是24位的。
    发表于 12-13 07:10

    雅特力AT32F402/F405 DMA使用指南

    DMA简介DMA控制器的作用不仅在增强系统性能并减少处理的中断生成,而且还针对32位MCU应用程序专门优化设计。DMA
    的头像 发表于 11-20 01:03 ?1056次阅读
    雅特力AT32F402/F405 <b class='flag-5'>DMA</b>使用指南

    DMA是什么?详细介绍

    DMA(Direct Memory Access)是一种允许某些硬件子系统直接访问系统内存的技术,而无需中央处理单元(CPU)的介入。这种技术可以显著提高数据传输速率,减轻
    的头像 发表于 11-11 10:49 ?1.9w次阅读

    控制器取掉霍尔线可以

    控制器取掉霍尔线可以吗?这个问题涉及到电动车控制器的工作原理和霍尔传感的作用。 电动车控制器是电动车的核心部件,它负责
    的头像 发表于 10-15 10:14 ?1886次阅读

    什么是LCD控制器?爱普生LCD控制器的作用和功能、概述和产品列表

    什么是LCD控制器LCD控制器的作用和功能LCD控制器(液晶显示控制器)是连接到主机CPU控制
    的头像 发表于 10-09 11:10 ?1230次阅读
    什么是LCD<b class='flag-5'>控制器</b>?爱普生LCD<b class='flag-5'>控制器</b>的作用和功能、概述和产品列表

    国产控制器厂家 整车控制器 以太网控制器 CAN控制器 国产化替代

    控制器
    长沙硕博电子科技股份有限公司
    发布于 :2024年09月03日 09:15:51

    车载智能控制器 工程机械控制器 CAN总线控制器 硕博电子 #控制器 #can总线 #国产化替代

    控制器总线
    长沙硕博电子科技股份有限公司
    发布于 :2024年08月29日 10:43:57

    DMA控制器的主要功能有哪些

    DMA(Direct Memory Access)控制器是一种在系统内部转移数据的独特外设,其主要功能是实现内存与外设之间的直接数据传输,而无需CPU的频繁干预。这种数据传输方式显著提高了数据传输的效率和速度,
    的头像 发表于 08-20 10:41 ?3172次阅读

    简述DMA控制器的工作过程

    DMA(Direct Memory Access)控制器的工作过程是一个复杂但高效的硬件执行过程,它实现了内存与外设之间直接的数据传输,显著减轻CPU
    的头像 发表于 08-20 10:35 ?2534次阅读