DSP(TMS320C6713)入门之旅四、edma的理解和使用.docVIP

DSP(TMS320C6713)入门之旅四、edma的理解和使用.doc

  1. 1、本文档共20页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
DSP(TMS320C6713)入门之旅四、edma的理解和使用

EDMA的全称是:Enhanced Direct Memory Access(增强型dma),增强型直接内存存取(EDMA)是数字信号处理器(DSP)中用于快速数据交换的重要技术,具有独立于CPU的后台批量数据传输的能力,能够满足实时图像处理中高速数据传输的要求。以TI公司的TMS320C6713型DSP为例,介绍EDMA控制器的特点。结合实例给出EDMA在数据实时传输中的具体控制和实现方法。实验结果表明,通过灵活控制EDMA不仅能够提高数据的传输效率,而且能够充分发挥:DSP的高速性能。也就是在我们一般的dma的基础上做了一下加工以完成特定的功能。比如我们dma传送数据一般是连续的一片数据块,但是我们想间隔着传送就不行了。还有就是增强型的dma可以实现二维的传送和一个事件可以发起两次传送,这样就可以很好的服务我们的数据传送要求! ??? 如图EDMA结构图: HYPERLINK /wp-content/uploads/2010/11/edmacontrol.jpg HYPERLINK /wp-content/uploads/2010/11/edmacontrol.jpg ? 可以看到我们配置自己的edma之后,就等待传送事件的到来,当传送事件到来的时候edma的控制器就接受到一个触发信号,就进入传送过程。传送的规则定义在edma的每一个通道的参数设置里面,我们可以通过控制传送的参数来达到我们要传送的数据的控制的目的!传送参数表如图: ???????? 第一个双字就是控制edma传送的规则,比如:一维单元同步,一维帧同步,二维等等。这些控制属性得在这个域里面对其进行说明。第二个双字就是告诉edma要传送数据的源地址,第三个双字的帧的数目和单元的数目,第四个双字就是告诉edma要传送数据的目的地址。第五个双字告诉edma下一次触发时地址的偏移量的量。第六个双字就是当前的单元传送完成之后的单元数目的重载值和是否edma是否需要要链接到下一个edma(注意:这儿是通道链接) ?????? 我们先来理解几个概念: ?????? 事件链接:实质就是想一个事件触发之后引起两次edma的搬移,当然这两次搬移不是同一个edma通道,如果是同一个edma通道,相当于同样的数据搬移两次,这样不仅没有意义,还会占用内部总线带宽,印象片内数据的流动的速度。那么TI设计的是将一个事件先链接到第一个通道,然后将第一个通道的完成中断事件链接到第二个edma通道。相当于当一个事件触发之后,就触发第一个edma通道搬移数据,当第一个通道完成之后就发出一个事件触发第二个通道搬移数据,最后可以产生一个中断通知CPU。这样一般用视频的FIFO同步。注:大家可能会用疑问,不是是要同时搬移两块吗,怎么不是同时的呢?大家可以想想DSP内部一般就只有一条数据总线供edma使用。那么在同一时刻只用一个数占用总线,如果我们有两个设备驱动总线数据,那么数据就不对了。所以edma事件同步就是先让第一个通道搬移完成触发第二个通道搬移。 ????? 通道链接:实质就是由于edma搬移的数据块就只有那么大,那么当想搬移很多很多的时候怎么办呢?当然可以在完成中断中重新设置edma参数,这样当事件到来时,就可以重新开始搬移了。其实也可以用edma的通道链接这个属性,当这个通道的参数设置的完成时,通过链接到自己或者别人这样就不用重新设置来达到事件到来时搬移数据的目的。通道链接的时候一般下一个通道的事件触发器是同一个,这样就不会丢失事件。这种属性一般应用于大量数据从一个固定地址到另一个固定地址!还要就是一个提高处理速度的乒乓结构的数据的搬移。 ???? 乒乓结构:在做一些设计的时候,一般要考虑两种因素:速度和面积。速度当然是指我们要求的处理数据的速度,面积就是存储数据的要用的内存大小(成本问题)。在这两者之间权衡我们的算法。在这儿讲的乒乓结构就是用面积换取速度的一种做法!我们用两块内存和两个edma通道(相互链接,同一个事件触发),第一块取名为乒,第二块取名为乓。当一个事件到来的时候触发我们的乒通道搬移数据到乒的内存块,等待一系列事件完之后,乒通道完成就连接到乓通道。这时就是产生一个中断告诉cpu第一个块数据已经准备好在乒内存块了,让其进行数据算法处理。与此同时乓通道也在搬移数据到乓内存块,完成之后通知cpu,链接到乒通道······这样形成一个循环。就好像生活中打乒乓一样!如图: ?????? 四种数据搬移方式: ?????? 一维单元同步搬移(1D-to-1D): 设置一个edma通道为一维数据单元同步搬移时,当一个事件到来触发时一次edma搬移数据的大小就是一个单元。那么edma数据块搬移完成之后总体大小为:ESIZE*FRMCNT*ELERLD,当下一个事件到来时,下一个源地址和

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档