dmaedma

上传人:今*** 文档编号:106354540 上传时间:2019-10-14 格式:PPT 页数:47 大小:5.93MB
返回 下载 相关 举报
dmaedma_第1页
第1页 / 共47页
dmaedma_第2页
第2页 / 共47页
dmaedma_第3页
第3页 / 共47页
dmaedma_第4页
第4页 / 共47页
dmaedma_第5页
第5页 / 共47页
点击查看更多>>
资源描述

《dmaedma》由会员分享,可在线阅读,更多相关《dmaedma(47页珍藏版)》请在金锄头文库上搜索。

1、第六讲 DMA/EDMA,1,第六讲 直接存储器访问 DMA/EDMA,第六讲 DMA/EDMA,2,DMA EDMA 特点、机制 如何运用,主要内容,DMA概述,DMA(direct memory access) 直接存储器访问,可以在没有CPU参与下完成存储器映射空间中的数据传输,这些数据可以是在片内存储器、片内外设或是外部器件之间,而且是在CPU操作后台进行。具有4个相互独立的可编程传输通道,还有一个辅助通道允许DMA控制器相应主机接口的请求。C620x/670x系列,第六讲 DMA/EDMA,3,第六讲 DMA/EDMA,4,From: To: 外部存储器 片内数据存储器 片内数据存储

2、器 片内程序存储器 外部存储器,传输的实现: CPU DMA,第六讲 DMA/EDMA,5,为了建立任何一种方式的传输,我们需要:,控制器、缓冲、源地址、目的地址、计数器,第六讲 DMA/EDMA,BIT / TI,6,C6000 DMA,第六讲 DMA/EDMA,BIT / TI,7,C6000 DMA特点,后台操作,吞吐率高 四个通道,一个辅助通道 单通道分割(split-channel)操作 支持多帧(frame)传输方式 多种地址产生方式 32位地址范围,支持8-/16-/32-bit字长 传输支持自动初始化 可以设定同步事件控制传输过程,第六讲 DMA/EDMA,BIT / TI,8

3、,控制寄存器,DMA通道0/1/2/3: 源地址寄存器(32-bit) 目的地址寄存器(32-bit) 主控寄存器 副控寄存器 传输计数寄存器(16-bit/16-bit) DMA全局地址寄存器A/B/C/D DMA全局计数重装载寄存器A/B DMA全局索引寄存器A/B DMA辅助控制,第六讲 DMA/EDMA,BIT / TI,9,传输启动,程序启动 向主控制寄存器START域写入00b,停止当前通道 设定源地址 设定目的地址 设定传输个数 设置其他的有关模式,向START域写入01b,启动传输 自动初始化方式启动 多次传输,只需设置一次,第六讲 DMA/EDMA,BIT / TI,10,传

4、输例子(参数),我们需要知道那些参数?,第六讲 DMA/EDMA,BIT / TI,11,传输例子(参数),源地址: A_D_SRC 目的地址: DMEM_DST 传输计数值: 200h 源地址的方向: Inc/Dec/None 目的地址的方向: Inc/Dec/None 中断CPU: Yes/No 同步: Yes/No 同步事件 A/D(RDY) 利用: INT4/5/6/7,第六讲 DMA/EDMA,BIT / TI,12,传输同步,读同步 写同步 帧同步,第六讲 DMA/EDMA,BIT / TI,13,传输地址产生,32-bit 地址寄存器 地址的基本调整 递增/递减/固定不变 索引值

5、调整 16-bit 索引值 帧索引和数据单元索引,第六讲 DMA/EDMA,BIT / TI,14,传输几种用法,一帧传输个数65536 多帧模式传输的数据最多可达65536*65536*4=16GB 利用帧索引代替重载地址 例子:每帧从固定的外部地址移动10 bytes,在目的处彼此相距一个字节排列 设置 SRC DIR=00b(源固定) DST DIR=11b(目的用索引调整) ELEMENT INDEX=10b(以步幅2递增) FRAME INDEX= -(92)= -18 =FFEEh,第六讲 DMA/EDMA,BIT / TI,15,传输几种用法,数据整序,第六讲 DMA/EDMA,

6、BIT / TI,16,传输分裂通道&辅助通道,分裂通道模式 使得一个通道可以提供双向的数据流传输 收发利用同一个计数器 需要利用DMA global address register作为分裂地址控制 辅助通道 HPI主机口专用,第六讲 DMA/EDMA,BIT / TI,17,后处理状态与中断,EDMA概述,EDMA(enhanced direct memory access) 增强的直接存储器访问控制器,处理片内L2高速缓冲存储器和外设之间的所有数据传输,包括Cache服务、非高速缓冲存储器访问、用户编程的数据传输和主机访问。与DMA有不同的结构。 C621x/C671x以及C64x系列所

7、具有,第六讲 DMA/EDMA,BIT / TI,18,第六讲 DMA/EDMA,BIT / TI,19,EDMA概述,EDMA控制器基于RAM结构 增强之处 提供了64个通道 由事件触发相应通道的传输 通道优先级设置更加灵活 可以实现数据传输的链接 独特的快速DMA(QDMA),第六讲 DMA/EDMA,BIT / TI,20,EDMA 框图,第六讲 DMA/EDMA,BIT / TI,21,EDMA 组成部分,事件和中断处理寄存器 事件编码器 参数RAM 地址产生硬件,BIT / TI,22,EDMA 结构框图,第六讲 DMA/EDMA,基本概念,数据单元(element) 帧(frame

8、),一组数据单元组成一帧,数据单元可连续也可间隔存放 阵列(array),一组连续的数据单元组成一个阵列,不允许间隔存放。 块(block),多帧数据或多个阵列的数据组成一个数据块,对于一维传输,一组帧组成一个块,对于二维传输一组阵列组成一个块。 一维(1D)传输,多个数据帧组成一维的传输块。 二维(2D)传输,多个数据阵列组成一个二维传输块,第六讲 DMA/EDMA,BIT / TI,23,传输单元的大小,单元大小由OPT寄存器的ESIZE位段指定,一次传输中可以传输32位的字、16位的半字或8位字节。 传输地址须在单元大小边界上排列对齐,字访问必须对齐于一个字(4的倍数),半字访问须对齐于

9、半字(2的倍数) 当传输一个单元大小为32位的字到一个64位宽的外设或从之接收时,则以最大可能的带宽被传输,第六讲 DMA/EDMA,BIT / TI,24,一维传输,第六讲 DMA/EDMA,25,一个帧内的单元地址可以位于按指定的距离隔开的地址,指定的距离由单元索引(ELEIDX)设定。同时每个帧的第一个单元地址距离前一个帧的指定单元是一个固定的值,由帧索引(FRMIDX)设定,第六讲 DMA/EDMA,BIT / TI,26,单元同步1D传输 (FS0) 每个同步事件传输一个单元,当ELECNT1时重载单元计数并且帧计数减1 在每个单元的传输请求发送后更新参数表中的源和目的地址。 如右图

10、示,每帧4个单元(ELECNT4),总共3帧(帧计数FRMCNT2),第六讲 DMA/EDMA,BIT / TI,27,帧同步1D传输(FS1) 每个同步事件传输一帧,帧索引表示每个帧的起始地址间的区别,单元索引可以用于间隔帧内的单元,帧计数重载不能用于1D帧同步传输。如右图示,二维传输,第六讲 DMA/EDMA,BIT / TI,28,当接收到一个同步事件后一组连续的单元必须被传输,即在一个阵列之间没有间隔和索引,故2D传输不能使用单元索引,一个阵列中单元数组成传输的第一维,一组阵列形成第二维,阵列间可以相互偏移固定的距离。左图即为n+1个阵列和m个单元数的2D帧,第六讲 DMA/EDMA,

11、BIT / TI,29,阵列同步2D传输 (FS0) 每个同步事件传输一个阵列,每个阵列的传输请求被发送后更新其源和目的地址寄存器。阵列索引是块中每个阵列的起始地址的距离。帧计数在每个阵列传输完后减计数1.,第六讲 DMA/EDMA,BIT / TI,30,块同步2D传输 (FS1) 每个同步事件传输一个块,应用阵列索引产生地址和传输逻辑。每个单元突发后更新地址,如果一个单元是某个阵列的最后一个,则地址按照阵列索引修改,即地址更新后索引值被加到到地址中。,第六讲 DMA/EDMA,BIT / TI,31,EDMA 事件控制,64个通道,每个通道都有一个事件与之关联,由这些事件触发相应通道的传输

12、 由有关的控制寄存器完成对事件的不同处理 ER/EER/ECR/ESR/PQSR/CIPR/CIER/CCER 事件编码器,事件控制寄存器,第六讲 DMA/EDMA,BIT / TI,32,启动EDMA,CPU启动/非同步的EDMA:CPU对事件设置寄存器(ESR)写操作来启动一个EDMA传输,当向ESR中的某一位写1时强行触发对应的事件,参数RAM中的传输参数被送入地址发生器完成所需的对EMIF、L2存储器以及外设的读写访问。 事件触发EDMA/同步方式:事件编码器捕获到一个触发事件并锁存在ER寄存器中将导致参数RAM中对应的参数被送入地址发生器中,从而执行相关的传输操作。前提是EER(事件

13、使能寄存器)中相关位置1,第六讲 DMA/EDMA,BIT / TI,33,EDMA的同步,所有的EDMA通道均与特定的同步事件相关联。这些事件可以来源于外设、外部器件中断,或是一个EDMA通道传输完成事件。 如:假设EER的位4被置为1,当EXT_INT4管脚上的外部中断信号会启动EDMA通道4的传输。即每一个事件指定了一个特定的通道。,第六讲 DMA/EDMA,BIT / TI,34,第六讲 DMA/EDMA,BIT / TI,35,第六讲 DMA/EDMA,BIT / TI,36,EDMA 参数RAM,参数RAM(Parameter RAM,PaRAM)的容量为2K byte,其中存放E

14、DMA的传输参数,以控制不同的传输行为。另外,参数入口还可以被彼此链接起来,以实现某些复杂数据流的处理,第六讲 DMA/EDMA,BIT / TI,37,EDMA 传输链,类似于DMA中的自动初始化 更灵活,参数可变 便于实现某些复杂的数据传输的应用要求 传输链 多种参数的EDMA传输过程相连接 链的长度没有限制 在传输链中,一次传输的结束会导致自动从参数RAM中装载下一次事件应用的传输参数,第六讲 DMA/EDMA,BIT / TI,38,EDMA 传输链参数重加载,16-bit的链接地址和LINK位控制链接 链中的参数都是对应同一个事件触发的传输过程 参数一般互不相同,终止EDMA,第六讲

15、 DMA/EDMA,BIT / TI,39,在最后一个传输之后,所有EDMA均可通过连接到一个空参数集而终止。空参数集定义为一个所有参数均被清0的EDMA参数集,第六讲 DMA/EDMA,BIT / TI,40,EDMA 中断,通道传输结束向CPU产生中断EDMA_INT 64个通道,一个中断 谁来触发EDMA_INT 该通道需要使能TCINT 设置传输结束代码(TCC ,transfer complete code) 控制器根据TCC值设置CIPR对应的位 看CIER中对应的位是否已经被使能 TCC的值与通道编号不需要一一对应 多个EDMA通道允许具有相同的TCC值 拥有同一个中断服务程序,

16、第六讲 DMA/EDMA,BIT / TI,41,通道选择参数寄存器,第六讲 DMA/EDMA,BIT / TI,42,请求传输优先级,第六讲 DMA/EDMA,BIT / TI,43,EDMA 通道连接,多个EDMA通道的传输过程相互链接 某一个外设/外部器件产生的事件,将多个EDMA通道传输链接起来 利用四个特殊的传输结束代码TCC=8/9/10/11,实现通道(事件)连接 只有通道811支持这种链接 第一个通道结束会产生所选通道的触发事件 设置: 第一个通道的TCINT必须设为1 设置TCC和CCER,通道链接使能寄存器,链接通道实例,如果为EDMA通道4设定CCER8=1并且TCC=1000,一个EXT_INT4上的外部中断初始化EDMA传输。一旦通道4传输完成,EDMA控制器就会初始化由EDMA通道8指定的下一个传输。因为TCC=1000是EDMA的同步事件。相关的CIPR位8在通道4完成后被设置,并且向CPU产生一个EDMA_I

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号