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

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

3天内不再提示

ZNEO CPU 上的 DMA 控制器特性分析

电子设计 来源:eeweb 作者: Zilog 2021-06-21 17:28 次阅读

本应用笔记介绍了 ZNEO CPU 中的 DMA 控制器及其突出的特性,例如 DMA 和 CPU 带宽共享控制以及四个独立的 DMA 通道。本文档还描述了 DMA 模式,以及它的软件实现和应用程序的测试/演示。

特征

ZNEO CPU 突出的直接内存访问特性是:

  • 四个独立的 DMA 通道
  • 支持内存到内存、内存到外设、外设到内存以及外设到外设的数据传输。
  • 在直接或链表模式下运行
  • 字节、字或四元数据传输长度
  • DMA 和 CPU 带宽共享控制
  • 高达 64K 传输(64 kByte、64 kWord 或 64 kQual)
  • 外部 DMA 请求和 DMA 确认信号

ZNEO DMA 用于减轻处理器执行重复性任务的负担。它将数据从一个内存地址传输到另一个内存地址,或从一个外设传输到另一个外设。这些任务需要由 DMA 控制器生成的读和/或写周期。每个 DMA 传输至少需要 2 个系统时钟周期来执行。图 1 显示了 Z16F MCU 的 DMA 控制器框图,该控制器基于 ZNEO 架构。

poYBAGDQW4aAPqhYAADixmnv8cc862.png

图 1 DMA 框图

DMA 模式

直接模式仅使用 DMA 中的寄存器进行操作。软件直接写入这些寄存器以设置和启用 DMA。通过直接设置 DMAxCTL0 寄存器中的相应位进入直接模式。下图显示了 DMA 寄存器以及它们如何指向内存中分配的缓冲区。

链表模式

链表模式需要软件为每个缓冲区分配缓冲区和设置描述符列表。完成此操作后,软件将使用第一个描述符的地址写入 DMAxLAR。然后 DMA 将第一个描述符读入 DMA 控制和地址寄存器,LAR 数据除外。它执行由 DMA 中的描述符数据指定的传输。传输完成后,DMA 读入列表中的下一个描述符并继续执行传输。

软件实施

此参考设计使用 ZNEO Z16F2800100ZCOG 开发套件。它利用 ZNEO CPU 的 DMA 控制器,特别是 DMA 的通道 0,用于演示目的。该应用程序还使用 UART0 提供菜单驱动的控制台,允许用户测试 DMA 控制器的不同操作模式。此外,ADCTimer2 和 UART1 等外设用于支持 DMA 演示。有关外设初始化的说明,请参见附录 A。

CPU带宽选择

在任何 DMA 初始化之前,确保 CPU 总线设置为分配所需/所需的带宽以供 DMA 使用。如果未设置,将使用重置值;也就是说,每三个 CPU 操作允许 DMA 传输一次。在本应用笔记中,不同的带宽选择用于为 CPUCTL 的不同值提供示例。下表列出了用于每种传输类型的 CPU 带宽。相同的 CPU 带宽将用于直接模式和链表模式。

结果

直接模式在 DMA0CTL 的 IEOB 和 EOF 位设置为 1 且未设置水印值的情况下进行测试。也就是说,只有在当前缓冲区的末尾才会产生中断。链表模式使用与直接模式相同的设置进行测试,DMA0CTL 的 HALT 位设置为 1。

编辑:hfy

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

    关注

    112

    文章

    15223

    浏览量

    171186
  • 寄存器
    +关注

    关注

    30

    文章

    5028

    浏览量

    117719
  • cpu
    cpu
    +关注

    关注

    68

    文章

    10442

    浏览量

    206549
收藏 人收藏

    评论

    相关推荐

    STM32 DMA控制器使用

    或者存储之间的高速数据传输。当 CPU 初始化这个传输动作,传输动作本身是由 DMA 控制器 来实行和完成。STM32就有一个DMA
    发表于 01-13 14:02

    DMA控制器介绍

    本帖最后由 yyeee312 于 2015-11-12 15:17 编辑 DMA控制器是一种在系统内部转移数据的独特外设,可以将其视为一种能够通过一组专用总线将内部和外部存储与每个具有
    发表于 11-04 22:50

    DMA的主要特性有哪些

    DMA简介直接存储存取(DMA)用来提供在外设和存储之间或者存储和存储之间的高速数据传输
    发表于 07-28 09:21

    stm32的dma控制器有多少个通道

    stm32的dma控制器有多少个通道,DMA简介直接存储存取(DMA)用来提供在外设和存储
    发表于 08-05 07:29

    浅析DMA控制器与FSMC控制器

    直接存储存取DMACPU太忙了,那DMA你来帮我吧,这样很多事情CPU就不用停下来去管了。在DMA模式下,CPU只须向
    发表于 12-09 06:00

    一文读懂DMA控制器

    DMA控制器的主要特性有哪些?DMA控制器通道的配置过程该怎样去完成呢?
    发表于 12-13 06:12

    怎样使用DMA控制器来实现串口通信呢

    本文在前两篇USART串口通信的基础,使用DMA控制器来实现串口通信文章目录一、DMA1.DMA简介2.DMA主要
    发表于 02-22 07:00

    DMA控制器功能及特点

    DMA 控制器在外设与主存之间直接传送数据期间,完全代替 CPU 进行工作。
    发表于 09-19 16:11 6次下载
    <b class='flag-5'>DMA</b><b class='flag-5'>控制器</b>功能及特点

    Crossbar的多通道DMA控制器设计

    为了具体介绍本多通道 DMA 控制器的设计方案,下面首先对基于 Crossbar 的多通道 DMA 控制器的工作原理进行详细分析,接着具体说
    发表于 12-07 09:37 4665次阅读
    Crossbar的多通道<b class='flag-5'>DMA</b><b class='flag-5'>控制器</b>设计

    dma控制器芯片8257资料介绍

    DMA既可以指内存和外设直接存取数据这种内存访问的计算机技术,又可以指实现该技术的硬件模块(对于通用计算机PC而言,DMA控制逻辑由CPUDMA
    发表于 12-07 10:23 1.6w次阅读
    <b class='flag-5'>dma</b><b class='flag-5'>控制器</b>芯片8257资料介绍

    基于AXI总线的DMA控制器的设计

    一般而言,DMA控制器的功能与结构是由本单位特定的系统结构决定的。但是作为IP而言,DMA控制器又要有其一般性。DMA是指外部设备直接对计算
    发表于 12-07 15:48 5951次阅读
    基于AXI总线的<b class='flag-5'>DMA</b><b class='flag-5'>控制器</b>的设计

    dma控制器由什么组成

    DMA既可以指内存和外设直接存取数据这种内存访问的计算机技术,又可以指实现该技术的硬件模块(对于通用计算机PC而言,DMA控制逻辑由CPUDMA
    发表于 12-07 16:08 5191次阅读
    <b class='flag-5'>dma</b><b class='flag-5'>控制器</b>由什么组成

    dma控制器的组成

    一个DMA控制器,实际上是采用DMA方式的外围设备与系统总线之间的接口电路,这个接口电路是在中断接口的基础上再加DMA机构组成。习惯上将DMA
    的头像 发表于 04-01 16:08 1w次阅读

    Z20X电脑的ZNEO CPU板开源项目

    电子发烧友网站提供《Z20X电脑的ZNEO CPU板开源项目.zip》资料免费下载
    发表于 08-01 09:35 2次下载
    Z20X电脑的<b class='flag-5'>ZNEO</b> <b class='flag-5'>CPU</b>板开源项目

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

    直接存储器访问 ( DMA )控制器,可以在内存和/或外设之间传输数据,而不需要 CPU 参与每次传输。合理利用 DMA 控制器,可以减轻
    的头像 发表于 03-28 09:41 151次阅读
    请问<b class='flag-5'>DMA</b><b class='flag-5'>控制器</b>可以减轻<b class='flag-5'>CPU</b>负担吗?