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

    文章

    16320

    浏览量

    177792
  • 寄存器
    +关注

    关注

    31

    文章

    5334

    浏览量

    120219
  • cpu
    cpu
    +关注

    关注

    68

    文章

    10853

    浏览量

    211544
收藏 人收藏

    评论

    相关推荐

    浅析DMA控制器与FSMC控制器

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

    一文读懂DMA控制器

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

    基于DMA控制器的UART串行通信设计

    针对大数据量的串口间通信,在常规的UART串行数据通信的基础,结合Cortex-M3微控制器DMA控制器的作用,实现DMA
    发表于 04-20 10:54 46次下载
    基于<b class='flag-5'>DMA</b><b class='flag-5'>控制器</b>的UART串行通信设计

    DMA控制器功能及特点

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

    如何用C语言对DMA控制器编程

    详细地分析了PC/AT机系统的DMA(直接存储存取)控制器结构及其传输方式,并给出了C语言编程实例。
    发表于 12-06 16:12 5399次阅读
    如何用C语言对<b class='flag-5'>DMA</b><b class='flag-5'>控制器</b>编程

    Crossbar的多通道DMA控制器设计

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

    dma控制器芯片8257资料介绍

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

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

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

    dma控制器由什么组成

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

    基于SystemC的可配置多通道DMA控制器的设计

    基于前面对DMA控制器工作流程的详细分析。运用SystemC 语言,建立DMA控制器的Cye le-Accurat级参考模型。
    发表于 12-07 16:21 2753次阅读
    基于SystemC的可配置多通道<b class='flag-5'>DMA</b><b class='flag-5'>控制器</b>的设计

    dma控制器的组成

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

    DMA控制器原理详解

    数据流程图:CPU经历了三个步骤,先将内存中指定位置的数据取到数据缓存中,然后在将数据缓存中的内容写入到内存中,总共用了三步来完成内存两天不同地址
    发表于 12-08 16:51 6次下载
    <b class='flag-5'>DMA</b><b class='flag-5'>控制器</b>原理详解

    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>板开源项目

    【微控制器基础】——CPU内核与整体配置(

    【微控制器基础】——CPU内核与整体配置(
    的头像 发表于 10-17 17:19 1025次阅读
    【微<b class='flag-5'>控制器</b>基础】——<b class='flag-5'>CPU</b>内核与整体配置(<b class='flag-5'>上</b>)

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

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