1、第十四讲 DMA/EDMA,BIT / TI,1,直接存储器访问 DMA/EDMA,第十四讲 DMA/EDMA,BIT / TI,2,内容简介,DMAEDMA特点、机制如何运用,第十四讲 DMA/EDMA,BIT / TI,3,概述直接存储器访问,From: To: 外部存储器 片内数据存储器 片内数据存储器 片内程序存储器外部存储器,传输的实现: CPU DMA,第十四讲 DMA/EDMA,BIT / TI,4,概述直接存储器访问,为了建立任何一种方式的传输,我们需要:,第十四讲 DMA/EDMA,BIT / TI,5,概述 C6000 DMA,第十四讲 DMA/EDMA,BIT / TI,
2、6,概述 C6000 DMA特点,后台操作,吞吐率高 四个通道,一个辅助通道 单通道分割(split-channel)操作 支持多帧(frame)传输方式 多种地址产生方式 32位地址范围,支持8-/16-/32-bit字长 传输支持自动初始化 可以设定同步事件控制传输过程,第十四讲 DMA/EDMA,BIT / TI,7,概述控制寄存器,DMA通道0/1/2/3: 源地址寄存器(32-bit) 目的地址寄存器(32-bit) 主控寄存器 副控寄存器 传输计数寄存器(16-bit/16-bit) DMA全局地址寄存器A/B/C/D DMA全局计数重装载寄存器A/B DMA全局索引寄存器A/B
3、DMA辅助控制,第十四讲 DMA/EDMA,BIT / TI,8,传输启动,程序启动 向主控制寄存器START域写入00b,停止当前通道 设定源地址 设定目的地址 设定传输个数 设置其他的有关模式,向START域写入01b,启动传输 自动初始化方式启动 多次传输,只需设置一次,第十四讲 DMA/EDMA,BIT / TI,9,传输例子(参数),我们需要知道那些参数?,第十四讲 DMA/EDMA,BIT / TI,10,传输例子(参数),源地址: A_D_SRC 目的地址: DMEM_DST 传输计数值: 200h 源地址的方向: Inc/Dec/None 目的地址的方向: Inc/Dec/No
4、ne 中断CPU: Yes/No 同步: Yes/No 同步事件 A/D(RDY) 利用: INT4/5/6/7,第十四讲 DMA/EDMA,BIT / TI,11,传输同步,读同步 写同步 帧同步,第十四讲 DMA/EDMA,BIT / TI,12,传输地址产生,32-bit 地址寄存器 地址的基本调整 递增/递减/固定不变 索引值调整 16-bit 索引值 帧索引和数据单元索引,第十四讲 DMA/EDMA,BIT / TI,13,传输几种用法,一帧传输个数65536 多帧模式传输的数据最多可达65536*65536*4=16GB 利用帧索引代替重载地址 例子:每帧从固定的外部地址移动10
5、bytes,在目的处彼此相距一个字节排列 设置 SRC DIR=00b(源固定) DST DIR=11b(目的用索引调整) ELEMENT INDEX=10b(以步幅2递增) FRAME INDEX= -(92)= -18 =FFEEh,第十四讲 DMA/EDMA,BIT / TI,14,传输几种用法,数据整序,第十四讲 DMA/EDMA,BIT / TI,15,传输分裂通道&辅助通道,分裂通道模式 使得一个通道可以提供双向的数据流传输 收发利用同一个计数器 需要利用DMA global address register作为分裂地址控制 辅助通道 HPI主机口专用,第十四讲 DMA/EDMA,
6、BIT / TI,16,后处理状态与中断,第十四讲 DMA/EDMA,BIT / TI,17,EDMA概述,扩展的直接存储器访问,是C6211/C6711的独有特征 EDMA控制器基于RAM结构 增强之处 提供了16个通道 由事件触发相应通道的传输 通道优先级设置更加灵活 可以实现数据传输的链接 独特的快速DMA(QDMA),第十四讲 DMA/EDMA,BIT / TI,18,EDMA 框图,第十四讲 DMA/EDMA,BIT / TI,19,EDMA 传输类型,数据单元(element)的传输 帧(frame)的传输 阵列(array)的传输 块(block)的传输 2-维(2-D)的传输
7、非2-维(non 2-D)的传输,第十四讲 DMA/EDMA,BIT / TI,20,EDMA 结构,16组通道传输参数 69组重加载参数 空闲区,第十四讲 DMA/EDMA,BIT / TI,21,EDMA 事件控制,16个通道,每个通道都有一个事件与之关联,由这些事件触发相应通道的传输 由有关的控制寄存器完成对事件的不同处理 ER/EER/ECR/ESR/PQSR/CIPR/CIER/CCER 事件编码器,第十四讲 DMA/EDMA,BIT / TI,22,EDMA 参数RAM,参数RAM(Parameter RAM,PaRAM)的容量为2K byte,其中存放EDMA的传输参数,以控制不
8、同的传输行为。另外,参数入口还可以被彼此链接起来,以实现某些复杂数据流的处理,第十四讲 DMA/EDMA,BIT / TI,23,EDMA 传输链,类似于DMA中的自动初始化 更灵活,参数可变 便于实现某些复杂的数据传输的应用要求 传输链 多种参数的EDMA传输过程相连接 链的长度没有限制 在传输链中,一次传输的结束会导致自动从参数RAM中装载下一次事件应用的传输参数,第十四讲 DMA/EDMA,BIT / TI,24,EDMA 传输链参数重加载,16-bit的链接地址和LINK位控制链接 链中的参数都是对应同一个事件触发的传输过程 参数一般互不相同,第十四讲 DMA/EDMA,BIT / T
9、I,25,EDMA 中断,通道传输结束可以产生中断EDMA_INT 16个通道,一个中断 谁来触发EDMA_INT 该通道需要使能TINT 设置传输结束代码(TCC ,transfer complete code) 控制器根据TCC值设置CIPR对应的位 看CIER中对应的位是否已经被使能 TCC的值与通道编号不需要一一对应 多个EDMA通道允许具有相同的TCC值 拥有同一个中断服务程序,第十四讲 DMA/EDMA,BIT / TI,26,EDMA 通道连接,多个EDMA通道的传输过程相互链接 某一个外设/外部器件产生的事件,将多个EDMA通道传输链接起来 利用四个特殊的传输结束代码TCC=8
10、/9/10/11,实现通道(事件)连接 只有通道811支持这种链接 第一个通道结束会产生所选通道的触发事件 设置: 第一个通道的TCINT必须设为1 设置TCC和CCER,通道链接使能寄存器,第十四讲 DMA/EDMA,BIT / TI,27,EDMA QDMA,QDMA是C6211/C6711中搬移数据的最有效率的一种手段之一 由两组(2*5)存储器映射的寄存器来进行控制 第二组是第一组的“伪映射”(pseudo-mapping) 第一组接受用户的设置 第二组进行实际的申请递交 不支持被事件链接,但是仍然支持通道的完成中断,以及产生EDMA链接事件 QDMA5个周期(or 1个周期) QDMA36个周期,第十四讲 DMA/EDMA,BIT / TI,28,实验,题目: 使用channel0,实现数组间元素数据的传输 要求: 数据的初始化在main函数完成 DMA数据传输子函数是线性汇编程序 具体参见实验计划书,