|
Image processing system based on TMS320DM642 Abstract: An image processing system based on TMS320DM642 is discussed.The emphasis of the article is the method of video input and video output design.This system uses the special video port of TMS320DM642 to transfer data through EDMAs,so it can capture and display video data very simply.It can design video driver by IOM model which reduces the designing work.It is simple to design this system.The design time is short.This system is a very perfect selection for image processing. Keywords: TMS320DM642; iimage processing system; video input; video output; high efficient design 摘要: 介绍了基于TMS320DM642的图像处理系统,给出了系统的输入输出及数据处理部分的设计。利用TMS320DM642提供的专用视频端口通过EDMAs传输数据使视频的获取及输出变得非常简单,同时TMS320DM642支持的视频驱动IOM设计模式大大简化了视频输入输出驱动设计的工作量,设计简单、设计周期短,是图像处理系统较为理想的选择。 关键词: TMS320DM642; 图像处理系统; 视频输入; 视频输出; 设计高效性
1 引言 随着大规模集成电路的飞速发展,DSP的性能越来越完善,能够满足图像处理时对数据处理速度的实时要求。以DSP为核心处理器组建图像处理系统应用广泛,其优点是DSP资源丰富、编程灵活、算法设计简单,并且在系统软件开发中可采用模块化设计,可提高系统的通用性,缩短系统的开发周期。本文介绍了基于TMS320DM642的图像处理系统。 2 TMS320DM642简介 TMS320DM642是TI公司推出的一款针对网络与多媒体应用的DSP。TMS320DM642具有以下主要特点: 处理器时钟频率高,具有500 MHz/600 MHz/720 MHz 三种时钟速率(本系统设计采用的时钟速率是600 MHz); 专用的视频口,包括3个可配置的视频口; 外部接口:64个独立通道的增强EDMA控制器,多通道音频串行端口(McASP),64 bit的外部存储单元接口EMIF,66 MHz 32-bit,3.3 V的PCI主/从接口,10 Mb/s/100 Mb/s以太网口(EMAC)及通用I/O端口(GPIO)等外围接口; 专用缓存,能够加快数据存储及运算速度。TMS320DM64采用二级高速缓存的Cache结构,一级程序和数据缓存为16 KB,二级缓存为256 KB,其CPU内核基于C64X的CPU。 因此,TMS320DM642的处理速度高,外围接口丰富,并具有专用的视频口。与其他同性能产品相比,TMS320DM642性价比高,无论从产品性能还是经济效益上考虑,TMS320DM642都是图像处理系统的理想选择。 3 系统设计 3.1硬件设计 系统硬件结构框图如图1所示。系统工作过程是:视频输入设备摄像机输入的图像数据经视频解码器解码后传输至TMS320DM642,TMS320DM642存储、处理采集到的数据,并将处理后的数据送至视频编码器,视频编码器对其编码后再送至视频输出设备监视器。
3.2视频输入设计 采集视频输人设备(摄像机)图像采用专门的视频解码器,视频解码器实现图像采集驱动,简化了设计,节省设计时间缩短设计周期。视频解码器采用Phillips公司的SAA7115。 TMS320DM6412数据采集驱动程序通过IOM器件驱动模式进行设计。如图2所示驱动器的设计分为Class Driver与Mini-Driver两个层面,利用FVID模块设计Class Driver,提供独立和通用的API设置以及Mini-Driver的多种服务。为了使代码重复利用率达到最高,Mini-Driver分为通用部分和面向不同电路板的个体部分设计,前者利用EDMAs与视频口进行数据传输,后者又称为EDC(External DeviceControl)接口设计,是针对不同电路板设置视频解码器,包括视频编码器的初始化及其配置等。采用此方式设计TMS320DM642视频输入驱动时,需配置DSP/BIOS参数:正确配置Input/Output下DeviceDrivers中的User-DefinedDrivers项,包括Init function、Function table ptr、Function table type、Deviceid、Device params ptr、Device global data ptr等参数。DSP/BIOS各参数配置完成后,DSP程序包含vport.h、vportcap.h、saa7115.h,并对SAA7115初始化及其配置,视频数据输入直接调用器件支持的API函数,即可完成视频输入驱动设计。 3.3视频输出设计 视频输出的编码器采用Phillips公司SAA7105。SAA7105与SAA7115是配套使用的一对器件。图3是视频输出驱动框图,在显示操作期间。数据从存储器加载到帧缓冲器中,然后通过EDMA传输给视频端口FIFO,视频端口再将数据传输至视频编码器进行显示。EDMA中断在每帧数据从存储加载完成后触发,此中断用于管理帧缓冲器和EDMA重新加载更新数据。
视频输出驱动设计与视频输入驱动设计类似,DSP/BIOS中各参数配置完成后,DSP程序中包含vport.h,vportdis.h,saa7105.h,并对SAA7105进行初始化以及配置,视频数据输出直接调用器件支持的API函数,即可完成视频输出驱动设计。 3.4数据处理设计 数据处理设计分为两步,第一步确定算法,第二步将确定好的算法用DSP程序代码实现。确定算法利用功能强大且容易使用的Matlab软件实现,在Matlab环境中设计算法并对其仿真,仿真结果正确后即可确定算法。DSP代码按照图4所示的C6000系列代码开发流程进行设计。代码开发流程分为三个阶段:第一阶段产生C代码,第二阶段优化C代码,第三阶段编写将C代码转换为线性汇编或汇编代码并对其优化,直到程序代码满足要求。 整个设计中代码的优化是核心,只有通过优化代码的效率才能保证满足既定的要求。代码优化的步骤及方法: 1)CCS编程环境中设置编译优化级别为-o3,并按照C代码的优化法则对代码做一些手动的初步优化。 2)经过优化后的C代码效率不能达到要求时将C代码转换为线性汇编代码让编译器作进一步优化。 3)如果还不能达到要求,则将线性汇编代码转换为汇编代码,并且手动调整代码顺序,改变代码的并行及流水能力,如此通过不断地对代码的调整,使代码的执行效率达到要求。 4 应用实例 利用TMS320DM642EVM硬件平台对PAL格式的图像进行旋转处理,算法设计时插值算法采用最近临插值算法。整个软件采用C语言编写,程序运行结果不理想,图像有明显的停滞现象。将耗时最多的旋转算法代码部分转换成汇编代码,并对其优化,重新调整代码次序,增加代码的并行及流水能力,代码执行效率大大提高,程序运行流畅无滞留,运行速度满足实时要求。 5 结束语 TMS320DM642提供的专用视频端口通过EDMAs传输数据使视频的获取及输出非常简单;同时TMS320DM642支持的视频驱动设计模式大大简化视频输入输出驱动设计的工作量,从而简化了整个图像处理系统的设计,节省了设计时间,从而保证了系统设计的高效性。基于TMS320DM642的图像处理系统设计简单,设计周期短,是图像处理系统较为理想的选择。 参考文献/References [1] 邢素霞,常本康,钱芸生,等.基于高速DSP的红外处理电路研究[J]. 红外与激光工程,2004,33(3):292-295. [2] 田岩涛,常丹华,潘普丰,等. 用基于DSP的线阵CCD实现二维图像信号采集的系统设计[J].应用光学,2005,26(6):8-11. [3]Texas Instruments Incorporated.TMS320DM642 Video/Imaging Fixed-Point Digital Signal Processor?[DB/OL]. http://focus.ti. com/lit/ds/symlink/tms320dm642.pdf,2002. [4]Texas Instruments Incorporated.DSP/BIOS Driver?Developer’s Guide[EB/OL].http://focus.ti.com/lit/ug/?? spru616/spru616.pdf,2002. [5]李方慧,王 飞,何佩琨. TMS320C6000系列DSPs 原理与应用(第二版)[M]. 北京:电子工业出版社,2002. 作者通信地址:西安应用光学研究所,陕西 西安 710065
|