EDMA在实时图像处理系统中的应用
发布时间:2008/5/27 0:00:00 访问次数:589
摘要:增强型直接内存存取(edma)是数字信号处理器(dsp)中用于快速数据交换的重要技术,具有独立于cpu的后台批量数据传输的能力,能够满足实时图像处理中高速数据传输的要求。以ti公司的tms320dm642型dsp为例,介绍edma控制器的特点。结合实例给出edma在图像数据实时传输中的具体控制和实现方法。实验结果表明,通过灵活控制edma不仅能够提高图像数据的传输效率,而且能够充分发挥:dsp的高速性能。
关键词:edma;实时图像处理;数字信号处理器;sobel;tms320dm642
中图分类号:tp274 文献标识码:a 文章编号:1006—6977(2006)01—0008—04
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个
摘要:增强型直接内存存取(edma)是数字信号处理器(dsp)中用于快速数据交换的重要技术,具有独立于cpu的后台批量数据传输的能力,能够满足实时图像处理中高速数据传输的要求。以ti公司的tms320dm642型dsp为例,介绍edma控制器的特点。结合实例给出edma在图像数据实时传输中的具体控制和实现方法。实验结果表明,通过灵活控制edma不仅能够提高图像数据的传输效率,而且能够充分发挥:dsp的高速性能。
关键词:edma;实时图像处理;数字信号处理器;sobel;tms320dm642
中图分类号:tp274 文献标识码:a 文章编号:1006—6977(2006)01—0008—04
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个