DMA控制器-PL330 第1章 介绍
DMAC是一种兼容高级微控制器总线架构(AMBA)的PrimeCell外围设备,由ARM开发、测试和许可。DMAC提供了一个AXI接口来执行DMA传输,以及两个控制其操作的APB接口。DMAC采用TrustZone®安全技术,其中一个APB接口在安全状态下运行,另一个在非安全状态下操作。有关TrustZone技术的更多信息,请参阅。DMAC包括一个小指令集,它提供了一种灵活的方法来指定DMA操作。
·
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接口。
- AXI总线主机:
-
注:
- AXI 表示 Advanced eXtensible Interface(高级可扩展接口),它是由 Arm 定义的接口协议,包含在“高级微控制器总线架构 AMBA”标准中。相关基础知识AXI简介。
- APB表示Advanced Peripheral Bus(高级外围总线),它是由 Arm 定义的接口协议,包含在“高级微控制器总线架构 AMBA”标准中。相关基础知识APB协议规范,官方协议AMBA® APB Protocol Specification。
1.1.1 DMAC的特性
DMAC提供如下特性:
- 为DMA传输编程提供灵活性的指令集
- 执行DMA传输的单独AXI主机接口
- 双APB从机接口,可指定为安全和非安全,用于访问DMAC中的寄存器
- 支持TrustZone技术,参考资料:简述ARM TrustZone
- 支持多种传输类型:
- 内存到内存
- 内存到外设
- 外设到内存
- 分散聚集(scatter-gather)
- 可配置的RTL,使DMAC能够针对应用程序进行优化
- 每个DMA通道的可编程安全状态
- 使用中断输出信号通知各种DMA事件的发生。
1.1.2 DMAC的配置特性
在设计中实现DMAC时,可以配置:
- AXI数据宽度
- AXI读事务的活跃数目
- AXI写事务的活跃数目
- DMA通道同时可用的活跃数目
- 内部数据缓存深度
- 指令缓存中的行数以及一行包含多少字
- 读指令队列深度
- 写指令队列深度
- 外设请求接口数目
- 中断输出信号数目
注:有关如何配置这些功能和可以分配的值的信息,请参阅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传输:传输单个字节、半字或字的动作。
更多推荐



所有评论(0)