PL330 DMAC笔记(3) - 外设请求接口,事件和中断,Abort

本文详细介绍了DMA控制器(DMAC)如何通过外设请求接口与外设进行通信,包括传输请求类型、握手机制、长度管理和异常处理。外设通过drtype请求单次或burst传输,而DMAC使用datype确认传输完成。DMAC支持多个外设请求接口,每个接口可通过ID映射到不同的DMA通道。此外,还讨论了事件、中断、flush请求以及abort处理流程,强调了中断和事件在DMA操作中的重要角色。

外设请求接口

上图展示了外设请求接口,由一个外设请求总线和一个DMAC确认总线组成,其中:

dr表示外设请求中线,da表示DMAC确认总线

两条总线都使用valid/ready握手机制(AXI协议所描述)。对于握手机制详细信息,请查看AMBA AXI Protocol v1.0 Specification

外设使用 drtype[1:0]:

  • 请求单次传输
  • 请求burst传输
  • 确认一个flush请求

DMAC使用datype[1:0]:

  • 当它完成了请求的单次传输后发起信号
  • 当它完成了请求的burst传输后发起信号
  • 发起一个flush请求

(关于burst,参考https://www.pianshen.com/article/2653254175/)

drlast让外设能够在最后一个DMA传输开始时通知DMAC

如果DMAC被配置为支持多个外设请求接口,每个接口要分配一个唯一的ID号_<x>.

映射到一个DMA channel

DMAC支持分配一个外设请求接口到任意的DMA channel。当一个DMA channel执行DMAWFP时,其中的peripheral[4:0]字段指定了这个channel所关联的外设。

握手规则

DMAC使用DMA握手规则(当一个DMA channel线程处于active状态,即非Stopped状态时)如下表所示:

 

外设长度管理

外设请求接口能够让一个外设控制一个DMA周期所包含的数据量,不需要让DMAC感知它包含多少数据传输数。外设通过:

drtype[1:0]选择是单次传输还是burst传输

drlast用来通知DMAC最后一次传输开始

DMAC长度管理

如果使用外设请求接口并且DMAC在控制一个DMA周期所包含的数据量,那么必须使用DMALDP<S|B>和DMASTP<S|B>指令。使用这些指令会让DMAC能够更新datype[1:0]来通知外设它完成了最后的DMA传输

外设请求接口时序图

Burst请求

T1

DMAC检测到了一个burst传输请求

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

亦枫Leonlew

希望这篇文章能帮到你

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值