EDMA在实时图像处理系统中的应用
时间:09-15
来源:互联网
点击:
1 引言
数字图像处理技术在科学研究、工业生产和管理部门中得到越来越多的应用。在目标跟踪、机器人导航、自动驾驶、交通监视等领域中的应用也极大地促进了实时图像处理技术的发展。实时应用要求实时图像处理系统必须具有强大的运算功能。DM642 (TMS320DM642)型处理器是TI最新推出的面向多媒体处理领域的数字信号处理器(DSP).给多媒体设备的实现提供了另一种有效的手段。 DM642建立在C64x DSP核基础上.采用德州仪器公司开发的第二代高性能的先进的超长指令字结构VeloeiTl.2TM,在600MHz的时钟频率下.DM642每秒可以进行24亿次16位的乘累加或48亿次的8位的乘累加。这样强大的运算能力使得DM642可以进行实时多视频图像处理。它的增强型直接内存存取 (EDMA)对DSP图像处理系统是非常重要的,它可以在没有CPU参与的情况下完成映射存储空间中数据搬移。灵活使用EDMA可以大大提高数据传输效率。以:DM642为例,结合Sobel算法给出EDMA的一种具体控制和实现方法。
2 DM642的EDMA控制器
DM042的EMDA能提供超过2Gb/s的外部带宽.支持64路独立触发的事件传输,总共有85个参数对“Linking”或“Chaining”进行配置。Linking是在1个事件被触发时允许1个序列进行传输。Chaining是当1个通道的数据传输完毕时触发另1个通道的数据传输。 Linking和Chaining使得仅仅被CPU初始配置之后EDMA能够连续的自动运行。EDMA的特点决定了其适合图像处理的功能。由于图像处理的原始数据量很大.同时图像处理中也会产生同等量的中间数据.对于片内存储资源有限的高速DSP来说,一般需要借用外部存储空间。为了提高系统的实时处理能力.可以将数据在不同存储空间转移的任务交给EDMA来完成,而CPU只用于数据的计算。同时,EDMA对数据重排功能可以优化图像数据在内存中的存储,这不仅可以提高内部存储空间的利用效率.而且可以提高数据的传输速率。虽然对图像数据的传输也可由软件实现,但将消耗大量的CPU时钟周期。使DSP的高速性能难以发挥。而由EDMA来完成同样的工作几乎不占用CPU的时钟周期。
在C64xDSP中.EDMA控制器负责片内L2存储器与其他设备之间的数据传输。EDMA控制器和DMA在结构上有很大的不同.其增强之处包括:
提供了64个通道;
通道间的优先级可以设置;
支持不同结构数据传输的链接。
EDMA控制器由以下几部分组成;
事件和中断处理寄存器;
事件编码器;
参数RAM;
硬件地址产生。
其中,事件寄存器控制对EDMA事件进行捕获。1个事件相当于1个同步信号,由它触发1个EDMA通道开始数据传输。如果有多个事件同时发生.则由事件编码器对它进行分辨。EDMA的参数RAM中存放了有关的传输参数,这些参数会被送入地址发生器硬件.进而产生读写操作所需要的地址。
EDMA支持8bit、16bit和32bit数据的存储。在EDMA中定义了下列概念:
(1) 数据单元(element)的传输。单个数据单元从源地址向目的地址传输.如果需要,每1个数据单元都可以由同步事件触发传输;
(2) 帧(frame)。l组数据单元组成1帧,l帧中的数据单元可以是相邻连续存放的,也可以是间隔存放的.帧传输可以选择是否受同步事件控制,“帧” 一般在1维传输中提及;
(3) 阵列(array)。1组连续的数据单元组成1个阵列.在1个阵列中的数据单元不允许间隔存放。1个阵列的传输可以选择是否受同步事件控制。“阵列 ”一般在2维传输中提及;
(4) 块(block)。多个帧或者多个阵列的数据组成1个数据块;
(5) 1维(1一D)传输。多个数据帧组成1个1维的数据传输。Block中帧的个数可以是 l~65536。
(6) 2维(2一D)传输。多个数据阵列组成1个2维的数据传输。第1维是阵列中的数据单元,第2维是阵列的个数。
3 EDMA的控制机制
3.1 事件与事件控制寄存器
EDMA有64个通道.每1个通道都有1个事件与之关联.由这些事件触发相应通道的传输。
3.2 传输参数与参数 RAM
EDMA控制器与DMA控制器在结构上有所区别。C64x的.EDMA控制器是基于RAM结构。参数.RAM(Parameter RAM。PaRAM)的容量是2KB,总共可以存放85组EDMA传输控制参数。多组参数还可以彼此连接起来,从而实现某些负责数据流的传输.例如循环缓存和数据排序等。参数RAM中保存的内容包括:
64个EDMA通道对应的入口传输参数.每组参数包括6个字;
用于重加载,链接的传输参数组。每组参数包括24字节;
8字节空余的RAM可以作为“草稿区”(scratch pad area)。
一旦捕获到某个事件.控制器将从PaRAM顶部的64组入口参数中读取数据对应的控制参数送往地址发生器硬件。
表l给出1组EDMA传输参数的内部结构,总共6个字.192bit。可以通过32bit的外设总线对EDMA的参数.RAM进行访问。
可选参数(Option Parameter),32bit,用户可以根据情况选择设置该参数。
SRC/DST地址.32bit,用于存放EDMA访问起始的源地址和目的地址,可以通过可选参数中的SUM/DUM位设定对SRC/DST地址的修改方式。
数据单元计数(Element Count),16bit无符号数.存放l帧(1一D传输)或1个阵列(2一D传输)中的数据单元数。
帧/阵列计数(Frame/Array Count),16bit无符号数.存放的是1-D数据传输中的帧计数,或是2一D数据传输中的阵列计数。
数据单元,帧,阵列索引(Element/Frame/ArrayIndex).16bit无符号数,作为地址修改的索引值。数据单元索引只应用于1-D 传输,为下一数据单元的地址偏移值(2一D传输不允许数据单元间隔存放)。帧,阵列索引用于控制下一帧,阵列的地址索引。
数据计数的重加载(Element Count Reload),16bit无符号数。用于在每帧最后一个数据元素传输之后.重新加载传输计数值。这个参数只能用于1一D传输中。
链接地址(Link Address),16bit。当设定可选参数中的LINK=1时,可以由链接地址确定下1个EDMA事件采用参数的装载,重装载地址,从而使多组 EDMA传输参数形成EDMA传输链。
数字图像处理技术在科学研究、工业生产和管理部门中得到越来越多的应用。在目标跟踪、机器人导航、自动驾驶、交通监视等领域中的应用也极大地促进了实时图像处理技术的发展。实时应用要求实时图像处理系统必须具有强大的运算功能。DM642 (TMS320DM642)型处理器是TI最新推出的面向多媒体处理领域的数字信号处理器(DSP).给多媒体设备的实现提供了另一种有效的手段。 DM642建立在C64x DSP核基础上.采用德州仪器公司开发的第二代高性能的先进的超长指令字结构VeloeiTl.2TM,在600MHz的时钟频率下.DM642每秒可以进行24亿次16位的乘累加或48亿次的8位的乘累加。这样强大的运算能力使得DM642可以进行实时多视频图像处理。它的增强型直接内存存取 (EDMA)对DSP图像处理系统是非常重要的,它可以在没有CPU参与的情况下完成映射存储空间中数据搬移。灵活使用EDMA可以大大提高数据传输效率。以:DM642为例,结合Sobel算法给出EDMA的一种具体控制和实现方法。
2 DM642的EDMA控制器
DM042的EMDA能提供超过2Gb/s的外部带宽.支持64路独立触发的事件传输,总共有85个参数对“Linking”或“Chaining”进行配置。Linking是在1个事件被触发时允许1个序列进行传输。Chaining是当1个通道的数据传输完毕时触发另1个通道的数据传输。 Linking和Chaining使得仅仅被CPU初始配置之后EDMA能够连续的自动运行。EDMA的特点决定了其适合图像处理的功能。由于图像处理的原始数据量很大.同时图像处理中也会产生同等量的中间数据.对于片内存储资源有限的高速DSP来说,一般需要借用外部存储空间。为了提高系统的实时处理能力.可以将数据在不同存储空间转移的任务交给EDMA来完成,而CPU只用于数据的计算。同时,EDMA对数据重排功能可以优化图像数据在内存中的存储,这不仅可以提高内部存储空间的利用效率.而且可以提高数据的传输速率。虽然对图像数据的传输也可由软件实现,但将消耗大量的CPU时钟周期。使DSP的高速性能难以发挥。而由EDMA来完成同样的工作几乎不占用CPU的时钟周期。
在C64xDSP中.EDMA控制器负责片内L2存储器与其他设备之间的数据传输。EDMA控制器和DMA在结构上有很大的不同.其增强之处包括:
提供了64个通道;
通道间的优先级可以设置;
支持不同结构数据传输的链接。
EDMA控制器由以下几部分组成;
事件和中断处理寄存器;
事件编码器;
参数RAM;
硬件地址产生。
其中,事件寄存器控制对EDMA事件进行捕获。1个事件相当于1个同步信号,由它触发1个EDMA通道开始数据传输。如果有多个事件同时发生.则由事件编码器对它进行分辨。EDMA的参数RAM中存放了有关的传输参数,这些参数会被送入地址发生器硬件.进而产生读写操作所需要的地址。
EDMA支持8bit、16bit和32bit数据的存储。在EDMA中定义了下列概念:
(1) 数据单元(element)的传输。单个数据单元从源地址向目的地址传输.如果需要,每1个数据单元都可以由同步事件触发传输;
(2) 帧(frame)。l组数据单元组成1帧,l帧中的数据单元可以是相邻连续存放的,也可以是间隔存放的.帧传输可以选择是否受同步事件控制,“帧” 一般在1维传输中提及;
(3) 阵列(array)。1组连续的数据单元组成1个阵列.在1个阵列中的数据单元不允许间隔存放。1个阵列的传输可以选择是否受同步事件控制。“阵列 ”一般在2维传输中提及;
(4) 块(block)。多个帧或者多个阵列的数据组成1个数据块;
(5) 1维(1一D)传输。多个数据帧组成1个1维的数据传输。Block中帧的个数可以是 l~65536。
(6) 2维(2一D)传输。多个数据阵列组成1个2维的数据传输。第1维是阵列中的数据单元,第2维是阵列的个数。
3 EDMA的控制机制
3.1 事件与事件控制寄存器
EDMA有64个通道.每1个通道都有1个事件与之关联.由这些事件触发相应通道的传输。
3.2 传输参数与参数 RAM
EDMA控制器与DMA控制器在结构上有所区别。C64x的.EDMA控制器是基于RAM结构。参数.RAM(Parameter RAM。PaRAM)的容量是2KB,总共可以存放85组EDMA传输控制参数。多组参数还可以彼此连接起来,从而实现某些负责数据流的传输.例如循环缓存和数据排序等。参数RAM中保存的内容包括:
64个EDMA通道对应的入口传输参数.每组参数包括6个字;
用于重加载,链接的传输参数组。每组参数包括24字节;
8字节空余的RAM可以作为“草稿区”(scratch pad area)。
一旦捕获到某个事件.控制器将从PaRAM顶部的64组入口参数中读取数据对应的控制参数送往地址发生器硬件。
表l给出1组EDMA传输参数的内部结构,总共6个字.192bit。可以通过32bit的外设总线对EDMA的参数.RAM进行访问。
可选参数(Option Parameter),32bit,用户可以根据情况选择设置该参数。
SRC/DST地址.32bit,用于存放EDMA访问起始的源地址和目的地址,可以通过可选参数中的SUM/DUM位设定对SRC/DST地址的修改方式。
数据单元计数(Element Count),16bit无符号数.存放l帧(1一D传输)或1个阵列(2一D传输)中的数据单元数。
帧/阵列计数(Frame/Array Count),16bit无符号数.存放的是1-D数据传输中的帧计数,或是2一D数据传输中的阵列计数。
数据单元,帧,阵列索引(Element/Frame/ArrayIndex).16bit无符号数,作为地址修改的索引值。数据单元索引只应用于1-D 传输,为下一数据单元的地址偏移值(2一D传输不允许数据单元间隔存放)。帧,阵列索引用于控制下一帧,阵列的地址索引。
数据计数的重加载(Element Count Reload),16bit无符号数。用于在每帧最后一个数据元素传输之后.重新加载传输计数值。这个参数只能用于1一D传输中。
链接地址(Link Address),16bit。当设定可选参数中的LINK=1时,可以由链接地址确定下1个EDMA事件采用参数的装载,重装载地址,从而使多组 EDMA传输参数形成EDMA传输链。
- 双轴微机械陀螺仪的移动机器人运动检测系统(11-14)
- 智能救援机器人的设计(12-03)
- 机器人在锂电池生产中的作用(07-05)
- MEMS传感器加快机器人智能化步伐(05-03)
- 数模转换器与数字电位器的选择(09-24)
- MSC.Software虚拟仿真技术在电子行业中的应用(10-27)