您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > EDMA3原理以及应用
摘要:增强型直接内存访问EDMA是DSP中一种高效的数据传输模块,能够不依赖CPU进行数据的搬移,是在高速接口的使用中,十分重要的设备。与之前的EDMA模块相比,EDMA3在传输的同步方式、地址跳变、触发方式上都变得更为灵活。在TI的新型DSP中,外设根据数据传输是否依赖EDMA3而分成了2种。AIF是一种高速接口模块,用于基带模块与射频模块间数据的传输。该接口需要EDMA3为其提供待传输的数据及搬移已接收的数据。本文介绍了TIDSP中的新一代EDMA3模块的结构及参数配置,并结合多核心DSPTMS320C6474中的高速AIF接口,给出了一种EDMA3的配置方式,为高速接口模块的使用,打下基础。关键词:DSP;EDMA3;TMS320C6474;AIF0引言TMS320C6474是TI推出的推出的一款高性能多核心DSP,基于65nm工艺,在单一的裸片上集成了3个1GHz的C64x+内核,实现了3GHz的原始DSP性能。显著降低了成本和功耗,并节省板级空间,使设计人员不必在电路板上集成多个数字信号处理器就能完成诸如同时执行多通道处理任务或同时执行多软件应用等高强度、高性能任务。在TMS320C6474DSP中,C64x+核心、EDMA3及片上外设是通过2种交换网络互连的。交换网络使主从器件间能够进行低延时的多路数据传输。通过交换网络,CPU能够向VCP2发送数据而不影响RAC与DDR2内存控制器间的数据传输。当对系统中的从设备进行访问时,交换网络能够对多个主设备进行仲裁。片上外设可以分为两类:主设备及从设备。主设备是指能够不使用EDMA3就能在系统中进行读写操作的设备;从设备指必须使用EDMA3才能进行数据传输的设备。AIF接口(AntennaInterface)是TMS320C6474中的一种高速接口,是一种从设备,用于基带模块与射频模块间天线数据的传输,在使用OBSAI协议时,单条链路速率最高可达4x即3.072Gbps。本文将对EDMA3的结构及参数配置进行详细介绍,并给出一种当AIF待发射数据及已接受到的数据连续存放在DDR2时,EDMA3的配置方式。文中提到的EDMA3是TI的新型数据传输模块,普遍适用于TI的DSP。1EDMA3的结构及参数配置1.1EDMA3概述增强的直接存储器访问EDMA3控制器是TIDSPTMS320C6474中的一个高效数据传输引擎,其结构适合数据的高速传输。直接存储器访问DMA是一种重要的数据访问方式,可以在没有CPU参与的情况下,由DMA控制器完成DSP存储空间的数据转移,应用包括:适用于软件触发的页面传输(例如:在片外存储空间SDRAM与片内存储空间DSPL2SRAM间进行传输);适用于事件触发的外设,例如串口及UTOPIA接口;对多变的数据结构进行子帧的提取及排列;减轻CPU在数据传输方面的负担。EDMA控制器主要包括通道控制器EDMA3channelcontroller(EDMA3CC)和传输控制器EDMA3transfercontroller(s)(EDMA3TC)两个主要部分。通道控制器EDMA3CC是用户控制EDMA控制器的接口,是EDMA中用户编程的一部分。EDMA3CC包括参数RAMParameterRAM(PaRAM),通道控制寄存器及中断控制寄存器。传输控制器EDMA3TC负责数据的搬移并分别向源地址和目的地址发出读/写命令,源地址和目的地址是在EDMA3CC中设定的,下文将着重介绍EDMA3CC。1.2通道控制器EDMA3channelcontroller(EDMA3CC)1.2.1EDMA3CC概述通道控制器EDMA3CC是EDMA3控制器与用户之间的接口。主要用于对收到的请求或事件按优先级进行排序并向EDMA3TC提交传输请求(TR)。EDMA3CC提供了在三个维度上完全正交的传输方式、独立的源变址和目的变址、支持链同步传输方式允许单一事件进行多次传输。EDMA3CC支持两种传输方式:A同步传输指单次事件进行一个维度上的传输;AB同步传输指单次事件进行两个维度上的传输。EDMA3CC支持两种通道:64个DirectMemoryAccess(DMA)channels通道支持事件同步、手动同步(CPU通过置位事件寄存器来触发)及链同步(一次传输结束后触发另外一个传输);8个QuickDMA(QDMA)channels在修改PaRAM入口后自动触发。上述每一个通道(DMA/QDMA)均与一个给定的事件队列及一PaRAM集关联。DMA通道拥有比QDMA更高的优先级。一共有256个PaRAM参数集用来定义通道的传输,每个参数集都可以用于任意一个DMA/QDMA通道,或者LINK设置。除此之外,EDMA3CC还含有2个传输控制/事件队列,每个队列含有16个事件入口。2个事件队列间的优先级是用户可编程的。EDMA3CC允许地址增量/FIFO地址传输模式,增强了传输的灵活性;LINK机制使PaRAM集能够进行自动更新;链方式能够使单一事件执行多个传输;可以在传输完成或出错时产生中断。EDMA3CC的主要模块有:PaRAM、EDMA3事件及中断处理寄存器、传输完成检测模块、事件队列及存储器保护寄存器。1.2.2EDMA3的传输类型EDMA3的传输是在3个维度上定义的:1.Array(A):一次传输中的一维指ACNT个连续字节。2.Frame(B):一次传输中的二维指BCNT个含有ACNT个字节的阵列array。每个在二维传输中的array是通过SRCBIDX/DSTBIDX来分隔的。3.Block(C):一次传输中的三维指CCNT个含有BCNT个阵列的帧,每个阵列array含有ACNT个字节。在三维上进行的传输是通过SRCCIDX/DSTCIDX与前次传输进行分隔的。在这三种维度上,EDMA3只支持两种同步方式的传输:A同步传输和AB同步传输,而EDMA3并不直接支持ABC同步传输,但可以通过将多个AB同步传输通过链方式来间接支持。A同步传输方式相对AB同步传输方式简单,下面着重分析AB同步传输方式。在一个AB同步的传输中,EDMA3同步事件会在2个维度上即一帧对传输进行初始化。即每个事件所提交的传输请求会要求传输一帧的数据,即BCNT个array,每个array含有ACNT个连续字节,因此一次传输BCNTxACNT个字节。因此,在AB同步传输的PaRAM时,进行传输的次数为CCNT次,即该参数表对应的事件数为CCNT个。阵列array间通过SRCBIDX及DSTBIDX两个参数进行分隔,如下图所示,阵列N的起始地址等于阵列N-1的起始地址加上SRCBIDX/DSTBIDX。帧间通过SRCCIDX及DSTCIDX参数进行分隔。对于一个AB同步传输,一个传输请求TR被提交后,地址的更新是通过对帧头阵列的地址加SRCCIDX/DSTCIDX来实现的。1.2.3参数RAMParameterRAM(PaRAM)DMA及QDMA通道传输内容(源/目的地址、数量、索引值等)是由EDMA3CC中被称为PaRAM的传输参数表(PaRAMtable)控制的。传输参数表划分成多个PaRAM集。共有256个PaRAM集,每个PaRAM可用于DMA、QDMA通道及LINK设置。PaRAM的各字段含义如下:OPT字段主要负责EDMA3传输的传输方式(AB同步/A同步)、传输完成模式(正常/提前)、链接触发方式(中间每次/最后一次/全部)、中断产生方式(中间每次/最后一次/全部)及PaRAM是否进行更新及LINK。针对在AIF传输中EDMA的应用,OPT字段应设置为AB同步传输方式,正常传输完成模式,仅在最后一次传输完成时产生中断,对PaRAM进行更新及LINK。SRCBIDX/DSTBIDX用于指示在一帧中,数据源/目的的阵列array间隔的字节数。SRCCIDX/DSTCIDX用于指示在块传输中,数据源/目的的帧间地址变化的字节数。SRCBIDX/DSTBIDX、SRCBIDX/DSTBIDX使用二进制补码,使地址值索引值可正可负,即EDMA传输时,数据源/目的的地址可以减小。在使用AIF模块时,无论是发送还是接收,传输的数据均是连续存放的,因此有SRCBIDX=DSTBIDX=ACNT;SRCCIDX=DSTCIDX=ACNT*BCNT。EDMA3CC提供了LINK机制,使得一个完整的PaRAM集能够从其他PaRAM集中重载。当完成传输时,现有的PaRAM集会从该参数集中指向的用于LINK的PaRAM集中重载所有参数信息。在当前的PaRAM集的传输事件参数耗尽时,就会进行LINK操作。EDMA3CC提交了PaRAM集中定义的所有传输请求时,一个事件参数就耗尽了。由于AIF的传输特性,EDMA3要进行连续不断的传输操作,因此,EDMA3的LINK要设置为自LINK方式,即当耗尽当前PaRAM集时,从另一PaRAM集向当前PaRAM集重载所有信息,而这个PaRAM集的所有参数设置与当前PaRAM集的原始参数完全相同。在AB同步传输时,PaRAM集会在每帧传输完成后更新源地址及目的地址,并将CCNT减1。当CCNT=1时,说明该PaRAM集即将耗尽,如果之前在OPT选择了进行更新及LINK,则EDMA3CC将会把LinkAddress处的PaRAM集的所有信息复制到当前的PaRAM集处,进行后续传输,被链接的PaRAM集保持不变。1.2.4DMA传输的触发方式有三种方式可以触发在DMA通道上的传输:1.Event-triggeredtransferrequest事件触发传输请求:外设、系统、外部事件产生的传输请求。2.Manually-triggeredtransferrequest手动触发传输请求:CPU向相应的事件置位寄存器(ESR/ESRH)中写1来触发传输。3.Chain-triggeredtransferrequest链触发传输请求:另一传输完成时触发的传输。外设或引脚产生事件时,事件寄存器中相应位将置1(ER.En=1)。如果事件使能寄存器(EER)相应位被使能(EER.En=1),那么EDMA3CC将会按优先级处理该事件并将其排队。当该事件到达队列头时,EDMA3CC会向EDMA3TC提交传输请求。如果与该事件相关联的PaRAM集有效,一个传输请求包将提交给EDMA3TC,且ER中的Enbit被清除。此时,EDMA3CC能接收新的事件。如果与该事件相关联的PaRAM集无效,则不会提交传输请求,相应的ER中的Enbit被清除同时在事件丢失寄存器中的相应位会被置位(EMR.En=1)。64个DMA通道中的一些通道是与硬件事件绑定的,因此允许来自外设或外部器件的事件来触发传输。当DMA通道接收到事件时,会请求进行数据传输。传输的数据量则与通道的参数配置ACNT、BCNT、CCNT及同步方式有关。事件与通道的关系是固定的,每个DMA通道有指定的事件与之关联。若一个通道不存在与之关联的事件或该事件未使用,则该通道可以使用手动触发方式或链接触发方式,或者作为QDMA通道来使用。AIF的EDMA数据传输是事件触发的,FSYNC产生定时事件,控制待发送/接收数据的搬移。2AIF模块中EDMA3的配置TMS320C6474上的天线接口AntennaInterface(AIF)主要用于在蜂窝通信系统中射频子系统与基带子系统间基带天线数据的传输。AIF含有高速串并-并串转换器SerDes,能兼容CPRI及OBSAI两种协议。AIF相当于一个buffer使系统不会遗漏任何天线数据。AIF中每条链路buffer的实体大小为2KB,但可以循环寻址至4MB大小的空间。通过地址翻转使得对2KBbuffer的线性访问能达到4MB,能够简化大规模数据传输时EDMA3的配置。Buffer中的数据结构跟数据类型DL/UL有关,但无论哪种数据类型,Inbound/OutboundRAM在2KB大小空间内都能存放最多16个AxC,每AxC32chips的数据。Inbound/Outbound并不是指上行及下行。通过In
本文标题:EDMA3原理以及应用
链接地址:https://www.777doc.com/doc-2911157 .html