TI DM6437 EDMA3使用总结

本文详细介绍了TI DM6437中的EDMA3控制器,包括其结构、传输类型、PaRAM参数集、触发方式、链接传输、中断管理和在DDR与SRAM间的数据搬运。重点讨论了AB同步模式与A同步模式的效率差异,并提出了DDR与串口间数据搬运的配置方法。此外,还提到了EDMA在数据搬运中如何处理Cache一致性问题。
摘要由CSDN通过智能技术生成

1.概述

EDMA3控制器的基本用处是:独立于CPU批量的进行数据传输。

典型的用法:

a:服务外部内存(比如DDR)

b:服务芯片内的内存(比如:L2 SRAM)

c:服务外设,比如:串口

主要目的:减轻DSP 的数据传输任务。

EDMA3控制器由2个主要模块组成:

EDMA3通道控制器(EDMA3CC),充当EDMA3控制器的用户接口,EDMA3CC包括:参数RAM(PaRAM)通道控制寄存器、中断控制寄存器。EDMA3CC负责软件请求或外设事件的优先级管理,向传输控制器发布传输请求(TRs)。

EDMA3传输控制器(EDMA3TC),依附于EDMA3通道控制器,负责数据传输,EDMA3TC向编程传输的源和目的地址发布读写请求。

2:结构

2.1 EDMA3通道控制器(EDMA3CC)


图2:EDMA3传输控制器方块图


2.3 EDMA的传输类型

EDMA3传输总是以三维来定,这3维定义为:

第1维或阵列(A):一个传输的第1维是由ACNT个连续字节。

第2维或帧(B):一个传输的第2维是由BCNT个ACNT字节的阵列。第2维里的每个阵列传输通过一个索引彼此分开,这个索引使用SRCBIDX和DSTBIDX来配置。

第3维或块(C):一个传输的第3维是由CCNT个帧,每个帧由BCNT个阵列,而每个阵列有ACNT个连续字节。第2维里的每个传输由以一个索引同前一个分开,这个索引使用SRCCIDX或DSTCIDX来配置。

注意,索引的参考点取决于同步类型,一旦收到一个触发/同步事件而引起传输的数据数量由同步类型(在OPT里的SYNCDIM位)来控制,在三个维中,仅支持2个同步类型:A-同步传输和AB-同步传输。 


图3:ACNT, BCNT, 和CCNT 的定义



2.3.1 A同步模式

在A-同步传输中,每个EDMA3同步事件引起ACNT字节的第1维传输,或者说ACNT字节的一个阵列。换句话说,每个事件/TR包仅传递一个阵列的传输信息。这样,为了完整地服务一个PaRAM集,需要BCNT x CCNT个事件。

阵列总是由SRCBIDX和DSTBIDX分开,见图4,阵列N的起始地址等于阵列N-1的起始地址加源和目的的BIDX。

帧总是由SRCCIDX和DSTCIDX来分开,对于A-同步传输,在帧耗尽之后,地址更新是通过把SRCCIDX/DSTCIDX加到这一帧的最后一个阵列的起始地址,如图4,SRCCIDX/DSTCIDX是帧0阵列3与帧1阵列0之间的差。

图4显示了3(CCNT)个帧,每帧4(BCNT)个阵列,每阵列n(ACNT)个字节的A-同步传输。在这个例子里,为了完成一个PaRAM集的传输需要12个同步事件(BCNT x CCNT)。



图4:A同步模式传输(ACNT = n, BCNT = 4, CCNT = 3)

2.3.1 AB同步模式

在AB-同步传输中,每个EDMA3同步事件引起2个维的传输,或者说是一帧的传输。换句话来说就是每个事件/TR包包含有一个整帧(1个帧有BCNT个阵列,每个阵列ACNT字节)的信息。,这样,为了这样,为了完整地服务一个PaRAM集,需要CCNT个事件。

阵列总是由SRCBIDX和DSTBIDX分开,见图5,帧总是由SRCCIDX和DSTCIDX分开。

注意,对AB-同步传输,在帧的TR发布之后,地址更新是通过把SRCCIDX/DSTCIDX加到这一帧的第一个阵列的起始地址。这一点与A-同步是不同的。也就是说,在A-同步传输和AB-同步传输中,SRCCIDX/DSTCIDX的意义是完全不一样的,这一点务必注意。

图5显示了3(CCNT)个帧,每帧4(BCNT)个阵列,每阵列n(ACNT)个字节的AB-同步传输。在这个例子里,为了完成一个PaRAM集的传输需要3(CCNT)个同步事件。


图5:AB同步模式传输(ACNT = n, BCNT = 4, CCNT = 3)

2.4 PaRAM

EDMA3控制器是基于RAM的结构,DMA或QDMA通道的传输上下文(源/目的地址、计数、索引等)用一个参数RAM表来编程,这个RAM在EDMA3CC中,被称之为PaRAM,PaRAM表被分段成多个PaRAM集,每个PaRAM集包括8个4字节的PaRAM集条目(也就是说每个PaRAM集总共32个字节),它包括典型的DMA传输参数,如:源地址、目的地址、传输个数、索引、选项等。

PaRAM结构支持灵活的Ping-Pong、循环缓冲、通道链接和自动加载(linking)。 PaRAM的内容如下:

a:128个参数集。

b:直接映射的64个通道,和能被用作link,或如果不用作DMA通道的话可以作为QDMA集。

c:余下的64通道的可作为link或QDMA集。


图6:PaRAM的参数集对应地址

2.4.1PaRAM参数集

每个PaRAM参数集是8个32bit的字结构,见如图7的描述,每个PaRAM集参数由16bit和32bit的参数构成。 


图7:PaRAM参数集

参数的配置:

OPT:通道选项参数

SRC:数据传输源地址

ACNT:一维数据的维度

BCNT:二维数据的维度

DST:目的地址首地址

DSTBICX:目的地址二维索引

SRCBIDX:源地址二维索引

BCNTRLD和LINK:LINK模式参数设置

DSTCICX和SRCCIDX:源和目的地址三维地址索引

CNNT:三维维度设置

2.4.2 OPT参数配置

 

OPT主要参数配置:

ITCCHEN:一次TC完成链接使能。3维模式AB同步模式必须使能,用来更新三维数据地址。

A同步模式2维3维数据传输必须都使能,用来更新首地址。

TCCHEN: 传输完成链接使能,即最后一个TR完成产链接。

ITCINTEN:一次TC完成产生中断使能,就是每完成一次TC产生一次中断。

TCINTEN:传输完成产生中断,就是最后一次TC完成产生中断。

TCC:传输完成代码,用于告诉EDMAC3CC传输完成的代码,用于chain模式链接下一通道,和中断的产生。

TCCMODE:传输完成代码发送模式,包括 常规模式和提前完成模式,常规模式就是正常的传输完成后发送TCC,提前完成模式就是在EDMA3CC 提交一个TC后即发送TCC认为传输完成,这种模式下,TC可能还在传输数据当chain 或 中断被触发。

FWID: FIFO 的宽度设置,用于SAM或DAM设置为固定地址模式。

STATIC:PaRAM参数的静态设置, 0 代表非静态:当一次TC传输完成后PaRAM 的参数集是否更新或连接,AB模式三维模式设置为非静态,A模式二维和三维模式都设置为非静态。

SYNCDIM:传输的同步模式的设置,A同步模式或 AB同步模式。

DAM:目的地址模式,地址递增模式和固定地址模式。

SAM:源地址模式,地址递增模式和固定地址模式。

2.5 EDMA3 的触发方式:

EDAM3有三种触发方式:事件触发方式,手动触发方式,链接触发方式

事件触发方式通常服务于外设,系统,或者一些产生外部事件的请求,

EDMA与串口之间的数据传送就可以通过事件触发。

手动触发方式:通过CPU向ESR寄存器相应为置位来触发相应的传输。

链接触发方式:是一个传输完成后自动的触发其他传输的触发方式。

QDMA与DAM的主要的不同就是触发方式的不同,QDMA通道在触发字写入的时候自动触发,PaRAM集中的触发字是可以编程指定的。

2.6 Linking 传输

EDMA的通道控制提供了一种连接传输的模式,它其中的所有的参数集中的任何一个参数集都可以被PaRAM MAP中的其他的参数集重载,他主要的应用就是应用在ping-pong buffer,和一些循环传输,不需要CPU中断的传送。Linking 模式的设置为将OPT中的STATIC位置位1,即PaRAM参数设置为非静态模式。

一个传送必须连接到其他的PaRAM,如果是结束这个传送,必须把PaRAM连接到NULL。

2.6 Chain传输

EDMA在一个通道的数据搬运完成后,可以链接到其他通道,继续传送数据,不需要CPU发送命令,时间的响应为DMA事件响应中的三种响应方式的Chain事件响应。

Chain链接模式和Link连接模式是完全不同的模式,Chain模式中没有PaRAM set 的参数的更新,而是一个通道的传输完成直接触发了另一个通道,实现连续的数据的搬运的效果,但是Link模式就是同一个通道上的参数的不断的更新,从而达到连续的数据搬运的效果。

同时在Chain模式中还可以设置两种不同的方式:transfer complection Chaining 就是在这个通道的这次数据搬运结束后链接到其他通道。

intermediate transfer completion chaining 就是在这个通道的这个次数据搬运的一次TR结束后自动链接到这个通道。

两种模式对应OPT中的TCCHEN 和ITCCHEN

2.7传输队列

EDMA有三个

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值