1 介绍

1.1 关于DMAC

  • DMAC是一种兼容高级微控制器总线架构(AMBA)的PrimeCell外围设备,由ARM开发、测试和许可。

  • DMAC提供了一个AXI接口来执行DMA传输,以及两个控制其操作的APB接口。DMAC采用TrustZone®安全技术,其中一个APB接口在安全状态下运行,另一个在非安全状态下操作。有关TrustZone技术的更多信息,请参阅《ARM体系结构参考手册》

  • DMAC包括一个小指令集,它提供了一种灵活的方法来指定DMA操作。这使其比具有固定功能基于链表项(LLI)的DMA控制器的,能够提供更大的灵活性。为了尽量减少程序内存需求,DMAC使用可变长度指令。

    图 1-1 展示DMAC上可用的接口

    在这里插入图片描述

    图 1-2 展示包含DMAC的示例系统

    在这里插入图片描述

  • 示例系统包含

    • AXI总线主机:
      • 一个DMAC
      • 两个ARM处理器
    • 一个AXI互连和两个AMBA协议桥组件
    • PrimeCell从机:
      • 一个动态内存控制器(DMC)
      • 一个静态内存控制器(SMC)
      • 一个定时器
      • 一个通用输入输出(GPIO)
      • 一个通用异步收发器(UART)
    • AXI互连使每个总线主机能够访问从机。ARM处理器可以通过使用适当的AXI到APB桥接组件访问DMAC的APB接口。
  • 注:

    1. AXI 表示 Advanced eXtensible Interface(高级可扩展接口),它是由 Arm 定义的接口协议,包含在“高级微控制器总线架构 AMBA”标准中。相关基础知识AXI简介
    2. APB表示Advanced Peripheral Bus(高级外围总线),它是由 Arm 定义的接口协议,包含在“高级微控制器总线架构 AMBA”标准中。相关基础知识APB协议规范,官方协议AMBA® APB Protocol Specification

1.1.1 DMAC的特性

DMAC提供如下特性:

  1. 为DMA传输编程提供灵活性的指令集
  2. 执行DMA传输的单独AXI主机接口
  3. 双APB从机接口,可指定为安全和非安全,用于访问DMAC中的寄存器
  4. 支持TrustZone技术,参考资料:简述ARM TrustZone
  5. 支持多种传输类型:
    1. 内存到内存
    2. 内存到外设
    3. 外设到内存
    4. 分散聚集(scatter-gather)
  6. 可配置的RTL,使DMAC能够针对应用程序进行优化
  7. 每个DMA通道的可编程安全状态
  8. 使用中断输出信号通知各种DMA事件的发生。

1.1.2 DMAC的配置特性

在设计中实现DMAC时,可以配置:

  1. AXI数据宽度
  2. AXI读事务的活跃数目
  3. AXI写事务的活跃数目
  4. DMA通道同时可用的活跃数目
  5. 内部数据缓存深度
  6. 指令缓存中的行数以及一行包含多少字
  7. 读指令队列深度
  8. 写指令队列深度
  9. 外设请求接口数目
  10. 中断输出信号数目

注:有关如何配置这些功能和可以分配的值的信息,请参阅AMBA Designer(FD001)PrimeCell DMA控制器(PL330)用户指南补充

1.2 术语

本手册使用以下术语:

  • 可配置:在生成RTL之前,您只能更改DMAC的一个参数。有关配置DMAC的信息,请参阅AMBA Designer(FD001)PrimeCell DMA控制器(PL330)用户指南补充
  • 可编程:生成RTL后可以更改的DMAC参数。有关DMAC编程的信息,请参阅 第3章 编程模型
  • 初始化:DMAC的一个功能,从复位退出时初始化,具体取决于第A.6节 Tie-off 信号状态。请参阅 第2.4节 初始化DMAC
  • DMA通道:DMAC的一个部分,通过执行自身编程的线程来控制DMA周期。您可以配置DMAC包含的通道数量。
  • DMA周期:DMAC必须执行的所有DMA传输,以传输编程数目的数据包。
  • DMA管理器:DMAC的一个部分,通过执行自己的程序线程来管理DMAC的操作。
  • DMA传输:传输单个字节、半字或字的动作。
Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐