高速 DSP 原理、应用及实践

20

Click here to load reader

description

高速 DSP 原理、应用及实践. 自动化测试与控制研究所 许永辉 2011.3.2. Part4 : EDMA. 1. EDMA 数据传输. 在 没有 CPU 参与 的情况下完成片内存储器、片内外设或是外部器件之间的数据转移 DSP 用于快速数据交换的重要技术; 具有独立于 CPU 的后台批量数据传输能力; 能够满足实时图像处理中高速数据传输的要求。. 2. EDMA 概述. 64 个通道 通道间的优先级可设置 支持不同结构数据传输的链接 允许读 / 写任何可寻址存储空间的数据移动操作(包括 L2 SRAM 、外设及外部存储器). 3. - PowerPoint PPT Presentation

Transcript of 高速 DSP 原理、应用及实践

Page 1: 高速 DSP 原理、应用及实践

高速 DSP原理、应用及实践

自动化测试与控制研究所

许永辉

2011.3.2

Page 2: 高速 DSP 原理、应用及实践

Part4: EDMA

Page 3: 高速 DSP 原理、应用及实践

在没有 CPU参与的情况下完成片内存储器、片内外设或是外部器件之间的数据转移

DSP用于快速数据交换的重要技术;具有独立于 CPU的后台批量数据传输能力;能够满足实时图像处理中高速数据传输的要求。

1

Page 4: 高速 DSP 原理、应用及实践

① 64个通道

② 通道间的优先级可设置

③ 支持不同结构数据传输的链接

④ 允许读 / 写任何可寻址存储空间的数据移动操作

(包括 L2 SRAM、外设及外部存储器)

2

Page 5: 高速 DSP 原理、应用及实践

① 事件和中断处理寄存器:捕获 EDMA事件,事件是触发一个 EDMA通道传输的同步信号

② 事件编码器:当多个事件同时发生时,解决优先级问题

③ 参数 RAM:存放与事件相关的传输参数,决定数据搬运方式

④ 地址产生器

3

Page 6: 高速 DSP 原理、应用及实践

① 数据单元( element)传输,单个数据单元从源地址向目的地址传输

② 帧 (frame),一组数据单元组成一帧,一帧中的数据单元,可以使相邻连续存放的,也可以使间隔存放的

③ 阵列( array),一组连续的数据单元组成一个阵列,阵列中的数据不允许间隔存放。

④ 块( block),多帧数据或者多个阵列组成一个数据块。⑤ 一维( 1D)传输,多个数据帧组成一个一维的传输块。⑥ 二维( 2D)传输,多个数据块组成一个一维的传输块。

4

Page 7: 高速 DSP 原理、应用及实践

① EDMA控制器中的 64个通道中的每一个通道都有一个特定的事件与之同步,这些事件触发与相应通道有关的数据传输

② 执行事件处理的控制寄存器控制对事件的不同处理

③ 基本上控制寄存器的每一位对应一个事件的控制

④ 由于是 64个通道,一般都是一个低位寄存器和一个高位寄存器的结构

5

Page 8: 高速 DSP 原理、应用及实践

① EDMA控制器基于 RAM结构,参数 RAM为 2KB,可以存放 85组传输控制参数,其内同包括:

64个 EDMA通道对应的入口传输参数,每组 6 个字;21个用于链接的传输参数组,每组 6 个字;8 字节个字节的空余作为高速暂存区域。

② 多组传输参数还可以彼此连接起来,实现复杂传输。③ 一旦事件发生器捕捉到某个事件 , 控制寄存器将从参数

RAM的 64组入口参数中读取事件对应的控制参数 , 送往地址发生器 , 发起传输。

6

Page 9: 高速 DSP 原理、应用及实践
Page 10: 高速 DSP 原理、应用及实践

7

Page 11: 高速 DSP 原理、应用及实践

9

Page 12: 高速 DSP 原理、应用及实践

10

Page 13: 高速 DSP 原理、应用及实践

① CPU启动 EDMA CPU可以 1 到 ESR相应的位触发一个 DMA通道事件。 CPU初始化的 DMA传输为非同步数据传输,对于 CPU

初始化的 EDMA传输,这些事件使能位不需要在 EER中设置,这是因为 CPU写入 ESR是作为实时事件处理的。

② 事件触发 EDMA 一旦事件编码器捕获到一个触发事件并在 ER寄存器中

锁存,将执行所请求的访问。 触发 EDMA的同步事件可以源于外设、外部硬件中断或

某个 EDMA传输完成。事件和通道是固定的,每个EDMA通道都有与它相关的事件。

11

Page 14: 高速 DSP 原理、应用及实践

12

Page 15: 高速 DSP 原理、应用及实践

13① EDMA 控制器负责向 CPU产生完成中断② EDMA只向 CPU产生一个中断( EDMA_INT),代表

有 64个通道③ 编程设置

1 、设置 OPT寄存器的 TCINT位为 12 、设置 OPT寄存器的 TCC(传输完成代码 ) 位为 n

3 、设置 CIER( EDMA的中断使能寄存器)的 CIEn位为 1

Page 16: 高速 DSP 原理、应用及实践

14注意: TCC和通道号之间没有任何直接关系,这就允许多

个通道具有相同的传输完成代码,从而使 CPU可以执行相同的中断服务程序。也就是说,相同的通道可以根据执行的传输设定多个传输代码。

Page 17: 高速 DSP 原理、应用及实践

15

下面的实例是 EDMA 在视频图像处理中的一个典型应用。视频端口 0 设定为捕获模式,捕获视频大小288×352 。视频端口设定为两行数据触发一次 EDMA 事件,每帧图像触发 144 次 EDMA 事件,每帧图像结束触发一个 EDMA 中断,通知 CPU 处理图像。由于视频图像是连续的,还需要用到 EDMA 的链接。

Page 18: 高速 DSP 原理、应用及实践

16

QDMA (快速 DMA )是 C64x 中新增加的一个功能。 EDMA 控制器能够接收来自 CPU 的 QDMA 请求,执行快速、高效的数据传输。 QDMA 传输非常适合于需要快速数据传输的应用场合,比如在紧耦合循环算法中的数据存取。

QDMA 几乎支持 EDMA 所有的传输模式,而且 QDMA 递交传输请求的速度远快于 EDMA 。在实际应用中, EDMA 适合完成与外设之间固定周期的数据传输。如果需要 CPU 直接搬移一块数据,则更适合采用 QDMA 。

Page 19: 高速 DSP 原理、应用及实践

17

Page 20: 高速 DSP 原理、应用及实践

18