DW_axi_dmac控制器(概述)

DW_axi_dmac控制器(概述)

        DW_axi_dmac遵循AMBA2.0标准和AMBA AXI协议2.0标准。DW_axi_dmac逻辑的外部信号主要包括:

  1. AHB信号(我的理解:主要是作为从设备接口部分,供AHB总线上的其他主设备来访问自身控制寄存器)
  2. 主设备接口信号(我的理解:DMA作为AHB总线主设备,访问内存和其他AHB总线上的从设备)
  3. 硬件握手信号(我的理解:带外信号部分,用于和QSPI的DMA接口逻辑进行流控)
  4. 中断信号
  5. 调试信号
  6. 时钟和复位信号

 基本特征

  1. 独立的核心、从设备接口和主设备接口时钟,即分为三个时钟域。
  2. 从设备接口时钟关闭:当调试接口信号slvif_busy无效为低时,表示从设备接口处于空闲状态,CPU可以关闭从设备接口时钟;在访问从设备接口之前,CPU可以重新启动时钟。
  3. DMA接口逻辑关闭时(例如QSPI),主设备接口时钟可以独立关闭。
  4. 可以配置8个通道,每个通道是一个源和目的对。
  5. 每个通道只能单方向的数据传输。
  6. 支持两个主设备接口:两个主设备接口可以在多层结构上实现;因为允许外围接口(例如内存或QSPI)在不同的AXI上进行互连,因此可以提高总线带宽;不同的AMBA层次结构允许采用不同的ACLK时钟。
  7. 数据传输有四种:内存到内存,内存到QSPI,QSPI到内存,QSPI到QSPI。
  8. 主设备接口遵循AMBA 3 AXI和AMBA 4 AXI标准。
  9. 从设备接口用于对DMA控制器进行编程,即控制寄存器访问,遵循AHB标准:该逻辑仅仅支持AHB从设备接口;AHB从设备接口仅仅支持SINGLE传输。
  10. AXI主设备的数据总线最大宽度为512位,可编程配置。
  11. AXI主设备接口的大小端模式可以静态配置或者动态配置,可编程配置。
  12. 也可以通过信号(dmac_endian_format_mstif_m)动态配置大小端模式。
  13. 针对主设备接口上链接访问,可以通过编程独立控制大小端模式。
  14. 编程可选择ID寄存器。
  15. 通道锁支持。主设备总线接口在不同的传输层级上使用内部通道仲裁的锁机制。
  16. DMAC状态输出:空闲/忙标记位
  17. DMA占有功能
  18. 在DMA传输层,有专门的输出信号管脚用于标记最后写传输。
  19. DMA传输具有分层:DMA传输分为transaction, block和完整的DMA传输三个层次。

通道缓冲

  1.  每个通道有一个FIFO缓冲
  2.  FIFO缓冲长度可以编程配置
  3. 为了满足FIFO宽度,数据可以自动被打包/解包处理。

通道控制

  1.  对每个通道进行传输类型编程:内存到内存,内存到QSPI,QSPI到内存,QSPI到QSPI。
  2. 支持单个或多个DMA操作。
  3. 每个通道可以对DMA操作的长度进行编程。
  4. 每个通道可以对最大AMBA突发传输长度进行编程。
  5. 通道关闭不会造成数据丢失。
  6. 支持通道挂起和恢复。
  7. 通道优先级可编程。
  8. 针对不同传输层级,主设备总线接口可以使用内部通道仲裁器的锁机制。
  9. 可编程多块传输,通过链接目录,连续地址,自动加载和影子寄存器等方式。
  10. 链接目录可动态扩展(我理解,链接目录是DMA描述链表)
  11. 多块传输类型的源地址/目的地址,可独立配置。
  12. 每个通道的源地址/目的地址都有一个多状态机。
  13. 数据访问和LLI访问具有各自独立状态机。
  14. 每个DMA块可以对控制信号进行编程,例如缓存和保护。
  15. 可编程传输块长度。
  16. 错误状态寄存器,用于调试。

流控

在DMA传输层次上,可编程实现流控:

  1. 如果块传输长度在DMA初始化之前就已知,DMA控制就在DMA块传输层次上进行流控;
  2. 如果如果块传输长度在DMA初始化QSPI之前还是未知的,对于未定义的DMA块传输,源或目的来进行流控。

握手接口

  1.  对于非内存类外设(这里说的好像是QSPI),可编程软硬件握手接口。
  2. 最大支持16个硬件握手接口。
  3. 对每个握手接口独立的启用和关闭。
  4. 可对外设和通道的映射进行编程;在多对一的映射时,只能有一个外设被激活。
  5. 通过控制寄存器,软件可以控制握手模式。

中断输出

  1.  支持混合和独立中断输出。
  2. 中断触发源包括:DMA传输完成、块传输完成、单个或多个操作完成、出错、通道挂起或者关闭。
  3. 支持中断使能和屏蔽。

总线接口

  1. 主设备接口遵循AMBA 3 AXI和AMBA 4 AXI协议;从设备接口遵循AHB、AXI4-Lite和APB 3协议。
  2. 主设备接口的数据总线宽度最大512位,可配置。
  3. 主设备接口上允许存在未完成的操作。
  4. 对主设备接口上每个通道进行未完成操作数量限制。
  5. AXI传输宽度可配置。
  6. 针对同一个主设备接口上不同的通道,允许乱序操作。一个专用通道的操作通常初始化为顺序操作。
  7. 主设备接口支持递增和固定地址数据传输。
  8. 源地址和目的地址必须和传输宽度对齐。
  9. 从设备接口数据宽度为32/64位,编程可配。
  10. 从设备接口传输的宽度必须和数据宽度一样。

猜你喜欢

转载自blog.csdn.net/lsshao/article/details/120057629