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




审核编辑:刘清

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

    关注

    39

    文章

    7714

    浏览量

    170797
  • RGB
    RGB
    +关注

    关注

    4

    文章

    820

    浏览量

    61493
  • 计时器
    +关注

    关注

    1

    文章

    434

    浏览量

    34862
  • PWM波
    +关注

    关注

    0

    文章

    101

    浏览量

    17623
  • DMA控制器
    +关注

    关注

    1

    文章

    43

    浏览量

    12879

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

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

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    基于AXI DMA IP核的DDR数据存储与PS端读取

    添加Zynq Processing System IP核,配置DDR控制器和时钟。7000系列的Zynq可以参考正点原子DMA回环测试设置。
    的头像 发表于 11-24 09:25 2621次阅读
    基于AXI <b class='flag-5'>DMA</b> IP核的DDR数据存储与PS端读取

    哪些场景适合使用DMA

    DMA(直接内存访问)控制器允许外设和内存之间或内存和内存之间直接传输数据,而无需CPU的参与。这可以大大减轻
    发表于 11-12 07:13

    AT32F421C8T7微控制器现货库存

    )。USART:2 个接口,支持 LIN、IrDA 和 ISO7816 协议,适用于串行通信。红外发射:1 个,支持红外遥控应用。DMA 控制器1 个 5 通道 DMA
    发表于 11-05 09:40

    RVMCU课堂「18」: 手把手教你玩转RVSTAR—DMA数据传输篇

    拖延,反而可以去处理其他的工作。DMA对于高效能嵌入式系统算法和网络传输是很重要的。 在实现DMA传输时,是由DMA控制器直接掌管总线,因此
    发表于 10-30 08:29

    蜂鸟内核中DMA的硬件实现——寄存配置

    DMA,Direct Memory Access,直接内存访问,是一种不经过CPU而直接从内存存取数据的数据交换模式。在DMA模式下,CPU只需要向
    发表于 10-24 08:46

    M483SIDAE SD控制器,无法使用DMA读取从SDHC获取正确的数据,怎么解决?

    1、至于M483SIDAE SD控制器,我们无法使用DMA读取从SDHC获取正确的数据 对于SD接口,我们只使用SD0,所以我们连接SD0_DAT0~3和SD0_CMD,SD0_CLK到SD插槽,但
    发表于 08-28 06:21

    NVMe IP高速传输却不依赖XDMA设计之五:DMA 控制单元设计

    DMA 控制单元负责控制 DMA 传输事务, 该单元承担了 DMA 事务到 NVMe 事务的转换任务, 使用户对数据传输事务的
    的头像 发表于 07-02 19:47 1884次阅读
    NVMe IP高速传输却不依赖XDMA设计之五:<b class='flag-5'>DMA</b> <b class='flag-5'>控制</b>单元设计

    第十五章 DMA

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

    车载整机控制器 工程机械主机控制器#硕博电子#国产控制器

    控制器
    长沙硕博电子科技股份有限公司
    发布于 :2025年05月26日 09:09:02

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

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

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

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

    CKS32F107xx系列的DMA控制器简介

    直接存储存取(DMA)用来提供在外设和存储之间或者存储和存储之间的高速数据传输。无须CPU
    的头像 发表于 02-18 17:24 1269次阅读
    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