一种基于高速DSP的图像处理应用平台
图2 主程序流程
DM642 的EDMA 控制器负责片内L2存储器与其它设备之间的数据传输。能提供超过2Gb/s 的外部带宽,有64 个通道, 每1个通道都有1个事件与之关联,由这些事件触发相应通道的传输。上面流程中A/D、D/A的芯片初始化的参数传输和视频数据的采集都是通过EDMA来实现的。
3.2 A/D和D/A芯片的初始化
A/D和D/A芯片的初始化过程通过EDMA中的I2C通道来实现。要传输的数据参数在EDMA 的参数RAM表中进行配置,其中主要包括源数据起始地址、目的地址、地址的修改方式、要传输的数据格式和大小。对二个芯片的初始化数据参数分别配置在二个不同的RAM表中。第一次I2C通道的EDMA数据传输完毕后由EDMA控制器向CPU发出中断,中断处理程序载入第二次I2C传输的RAM参数表,启动第二次传输过程。从而完成二个芯片的初始化过程。
3.3 视频采集与输出
对应于YUV 4:2:2的格式视频数据采集,EDMA中用于VP1的数据传输有三个通道。系统中将视频端口VP1配置为连续帧采集的方式,也就是启动第一帧的采集后,后面帧的采集连续进行不需要另外的帧同步信号。
在隔行扫描模式下,每帧分为两场,两场在时域上是分开的,通过EDMA 链表可自动实现场合成,不需占用额外的CPU 时间。EDMA 的参数RAM 存放了有关的传输参数, 这些参数用于产生EDMA 读写操作所需要的地址。在使用EDMA 通道传输奇数场与偶数场时,分别使用不同的EDMA 参数RAM。两组参数RAM 的目的地址分别指向存储图像的第一行与第二行象素的首地址, 并且两组参数RAM 通过链接地址(Linking Address)循环相连,并将源地址传输方式设置为1维的,目标地址方式设置为2维的。在EDMA 通道的传输中,奇数场传输任务的结束会自动地根据当前参数RAM的链接地址装载传输偶数场的参数RAM,进行偶数场的传输。通过设定帧索引(Frame Index)值可以让奇数场与偶数场数据在帧缓冲区中被隔行存储,这样在无需占用额外CPU 时间的前提下就实现了场合成。另外,由于两组参数RAM 通过链接地址循环相连,则奇数场与偶数场的数据传输连续不断地交替进行下去,这就形成了连续帧的数据采集。每一帧数据通过EDMA传输至SDRAM完毕之后,VP1会向CPU发出一个中断,相应的中断程序对会对采集到的图像数据进行处里。
大批量的图像数据传输和复杂算法的处理一直是高速数字图像处理器的速度瓶颈,从上面的数据传输过程上可以看出, 利用DM642 的EDMA 功能可以在不中断DSP算法处理工作的同时完成图像数据的搬移,在有效地解决了大批量图像数据传输速度瓶颈的同时,又能让DSP的处理器核专门从事算法处理工作,极大地提高了系统的并行性能。
视频输出功能在本系统中主要用于早期开发阶段的调试。实际应用中可以根据需要将中间处理图像结果数据通过EDMA中的VP2通道直接写入视频FIFO。
3.4 通信接口功能的实现
系统中,通过软件的方法,不增加硬件的复杂度,利用已有的McBSP和EDMA实现UART功能。
同步串口依赖三条分离的信号线(数据、帧同步和时钟)来实现数据的传输,而异步通信只是在一根信号线上进行。要用同步串口实现异步传输,需要通过在数据的首尾加入起始位和停止位,让接收方知道数据传输何时开始和停止。用McBSP实现UART功能,除了对McBSP进行正确设置外,还需要正确设置EDMA,对McBSP收发数据进行软件处理。EDMA实现内存到McBSP之间的高效数据搬移,数据处理软件对待发送的数据进行编码,对接收到的数据进行解码。对McBSP和EDMA的设置及编解码程序的设计详见文献[5]。
4、结论
研究了一种基于DM642的图像处理应用平台的设计与实现,其实现的基本功能包括视频输入和输出,与外界的UART接口通信等。介绍了系统硬件组成,以及软件功能模块的实现。由于软件采用了模块化设计,针对具体的功能需求,通过配置不同的客户程序,可以实现特定的应用,因而系统具有好的应用前景。
评论