采用DM642的EDMA图像处理系统
的修改方式。 数据单元计数(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传输不允许数据单元间隔存放)。帧,阵列索引用于控制下一帧,阵列的地址索引。 链接地址(Link Address),16bit。当设定可选参数中的LINK=1时,可以由链接地址确定下1个EDMA事件采用参数的装载,重装载地址,从而使多组 EDMA传输参数形成EDMA传输链。 4 EDMA的传输操作 EDMA进行数据传输时有2种启动方式,1种是CPU启动.另1种是由同步事件触发。每1个通道的启动是相互独立的。 4.1 CPU启动EDMA/非同步的 EDMA CPU可以通过写事件置位寄存器(ESR)启动1个EDMA通道。向ESR中某1位写1时,将强行触发对应的事件。此时,与正常的事件响应过程类似, EDMA的PaRAM中的传输参数被送入地址发生器.完成对EMIF、L2存储器或外设的存取访问。由CPU启动的EDMA属于非同步的数据传输。EER 中的事件使能与否不会影响这种EDMA传输的启动。 4.2 由事件触发 EDMA 一旦事件编码器捕获到1个触发事件并锁存在ER寄存器中,将导致PaRAM中对应的参数被送入地址发生器.进而执行有关的传输操作。尽管是由事件启动传输操作,但是事件本身必须首先被CPU使能。EER寄存器负责控制事件的使能。触发EDMA传输的同步事件可以源于外设,外部器件的中断或某个EDMA通道结束。与DMA的情况不同,与EDMA的每1个通道相关联的触发事件是固定的。因此,如果假设EER中的EVT4=1,那么EXT_INT4引脚的外部中断信号就会启动EDMA通道4的传输。所以,每个事件也就指定了1个特定的EDMA通道。 5 在实时图像处理系统中的应用 在实时图形处理系统中,经常是把数据块转移,例如从视频通道采集数据传送到SDRAM中作为后续处理的缓存,或是把数据传送到片内RAM中。EDMA使数据的传送简单易行。下面以把数据从视频通道传送到片内RAM中并作Sobel边缘提取算法和把数据从视频通道传送到SDRAM中并作So—bel边缘提取算法为例。 (1)把数据从视频通道通过1维方式传送到片内RAM中并作Sobel边缘提取算法 只对摄像头采集的I块数据进行Sobel边缘提取。采用一维EDMA传送方式,每1次传送采集1行中的部分数据(DAT_copy()函数)。在PAL制式下.先把1行数据放到nMemTemp数组中,然后对从144行到432行、从180列到435列的图像进行Sobel边缘提取.最后把变换后的数据输出到显示缓冲区.如图1所示。 因为Sobel算法需要3行数据,所以可以开辟1个可以存放3行数据的缓冲区,通过指针的交换把从视频通道过来的数据分别放到缓冲区中。保存的3行图像使用翻卷的缓冲区管理,3个变量分别指示当前使用的y行、y—l行和y一2行在缓冲区中的起始偏移量。可以这样:轮流往3块缓存区拷贝数据.只要改变拷贝的指针就可以。在拷贝当前这1块的时候.已经拷贝的另外2块数据依然没有变化,所以就可以实现3块数据保存采集图像中的相邻3行数据.如表2所示。 (2)把数据从视频通道通过2维方式传送到SDRAM中并作Sobel边缘提取算法可以通过DAT_copy2d 0函数直接把采集的l幅图像亮度分量存放到SDRAM中,如下: 其中.m_dbFrameBufferTemp是指向SDRAM中缓冲区的指针,numPixels是1行的像素数,num-Lines是行数。当把数据存放到SDRAM的1个数组中后.Sobel算法的实现就非常简单了。当然也可以参照1维的方法来实现。 6 结束语 大批量的图像数据传输和复杂算法的处理一直是高速数字图像处理器的速度瓶颈,利用DSP的EDMA功能可以在不中断信号处理器算法处理工作的同时完成图像数据的搬移,在有效地解决了大批量图像数据传输速度瓶颈的同时,又能让DSP的处理器核专门从事算法处理工作,极大地提高了系统的并行性能。
数据计数的重加载(Element Count Reload),16bit无符号数。用于在每帧最后一个数据元素传输之后.重新加载传输计数值。这个参数只能用于1一D传输中。
- 用CPLD实现FIR数字滤波器的设计(08-07)
- 单片DSP处理器功能系统的SOPC技术设计(01-12)
- Altera FPGA在Fairlight新媒体处理引擎中替代64片DSP(01-20)
- 基于DSP的短波分集合成接收机(09-01)
- LPC2292的伪中断与伪中断处理(03-25)
- 基于LabVIEW的USB实时数据采集处理系统的实现(03-26)