200 likes | 369 Views
高速 DSP 原理、应用及实践. 自动化测试与控制研究所 许永辉 2011.3.2. Part4 : EDMA. 1. EDMA 数据传输. 在 没有 CPU 参与 的情况下完成片内存储器、片内外设或是外部器件之间的数据转移 DSP 用于快速数据交换的重要技术; 具有独立于 CPU 的后台批量数据传输能力; 能够满足实时图像处理中高速数据传输的要求。. 2. EDMA 概述. 64 个通道 通道间的优先级可设置 支持不同结构数据传输的链接 允许读 / 写任何可寻址存储空间的数据移动操作(包括 L2 SRAM 、外设及外部存储器). 3.
E N D
高速DSP原理、应用及实践 自动化测试与控制研究所 许永辉 2011.3.2
1 EDMA数据传输 在没有CPU参与的情况下完成片内存储器、片内外设或是外部器件之间的数据转移 • DSP用于快速数据交换的重要技术; • 具有独立于CPU的后台批量数据传输能力; • 能够满足实时图像处理中高速数据传输的要求。
2 EDMA概述 • 64个通道 • 通道间的优先级可设置 • 支持不同结构数据传输的链接 • 允许读/写任何可寻址存储空间的数据移动操作(包括L2 SRAM、外设及外部存储器)
3 EDMA控制器结构 • 事件和中断处理寄存器:捕获EDMA事件,事件是触发一个EDMA通道传输的同步信号 • 事件编码器:当多个事件同时发生时,解决优先级问题 • 参数RAM:存放与事件相关的传输参数,决定数据搬运方式 • 地址产生器
4 EDMA术语 • 数据单元(element)传输,单个数据单元从源地址向目的地址传输 • 帧(frame),一组数据单元组成一帧,一帧中的数据单元,可以使相邻连续存放的,也可以使间隔存放的 • 阵列(array),一组连续的数据单元组成一个阵列,阵列中的数据不允许间隔存放。 • 块(block),多帧数据或者多个阵列组成一个数据块。 • 一维(1D)传输,多个数据帧组成一个一维的传输块。 • 二维(2D)传输,多个数据块组成一个一维的传输块。
5 EDMA控制寄存器 • EDMA控制器中的64个通道中的每一个通道都有一个特定的事件与之同步,这些事件触发与相应通道有关的数据传输 • 执行事件处理的控制寄存器控制对事件的不同处理 • 基本上控制寄存器的每一位对应一个事件的控制 • 由于是64个通道,一般都是一个低位寄存器和一个高位寄存器的结构
6 EDMA参数RAM • EDMA控制器基于RAM结构,参数RAM为2KB,可以存放85组传输控制参数,其内同包括: • 64个EDMA通道对应的入口传输参数,每组6个字; • 21个用于链接的传输参数组,每组6个字; • 8字节个字节的空余作为高速暂存区域。 • 多组传输参数还可以彼此连接起来,实现复杂传输。 • 一旦事件发生器捕捉到某个事件,控制寄存器将从参数RAM的64组入口参数中读取事件对应的控制参数,送往地址发生器,发起传输。
7 OPT选项传输参数
9 EDMA传输分类:1D传输
10 EDMA传输分类:2D传输
11 EDMA传输启动 • CPU启动EDMA • CPU可以1到ESR相应的位触发一个DMA通道事件。 • CPU初始化的DMA传输为非同步数据传输,对于CPU初始化的EDMA传输,这些事件使能位不需要在EER中设置,这是因为CPU写入ESR是作为实时事件处理的。 • 事件触发EDMA • 一旦事件编码器捕获到一个触发事件并在ER寄存器中锁存,将执行所请求的访问。 • 触发EDMA的同步事件可以源于外设、外部硬件中断或某个EDMA传输完成。事件和通道是固定的,每个EDMA通道都有与它相关的事件。
12 EDMA传输参数的链接
13 EDMA中断的产生 • EDMA 控制器负责向CPU产生完成中断 • EDMA只向CPU产生一个中断(EDMA_INT),代表有64个通道 • 编程设置 1、设置OPT寄存器的TCINT位为1 2、设置OPT寄存器的TCC(传输完成代码)位为n 3、设置CIER(EDMA的中断使能寄存器)的CIEn位为1
14 传输完成代码 注意:TCC和通道号之间没有任何直接关系,这就允许多个通道具有相同的传输完成代码,从而使CPU可以执行相同的中断服务程序。也就是说,相同的通道可以根据执行的传输设定多个传输代码。
15 EDMA操作实例 下面的实例是EDMA在视频图像处理中的一个典型应用。视频端口0设定为捕获模式,捕获视频大小288×352。视频端口设定为两行数据触发一次EDMA事件,每帧图像触发144次EDMA事件,每帧图像结束触发一个EDMA中断,通知CPU处理图像。由于视频图像是连续的,还需要用到EDMA的链接。
16 QDMA传输 QDMA(快速DMA)是C64x中新增加的一个功能。EDMA控制器能够接收来自CPU的QDMA请求,执行快速、高效的数据传输。QDMA传输非常适合于需要快速数据传输的应用场合,比如在紧耦合循环算法中的数据存取。 QDMA几乎支持EDMA所有的传输模式,而且QDMA递交传输请求的速度远快于EDMA。在实际应用中,EDMA适合完成与外设之间固定周期的数据传输。如果需要CPU直接搬移一块数据,则更适合采用QDMA。
17 QDMA寄存器
18 QDMA操作实例