随着计算机技术的快速发展和市场需要的逐步扩大,各种视频信息处理技术发挥了越来越重要的作用,广泛应用于网络多媒体通信、实时监控系统、高清晰度数字电视等方面。在视频处理领域中,由于处理的数据量大,算法复杂度高,因此处理的实时性成为一大难题。在这种情况下,多媒体处理器TMS320DM642以其丰富的外设接口和高速的处理能力,使基于其设计出的产品在图像质量、硬件成本和灵活性等方面都优于专门的视频编解码芯片。本系统主要研究基于TMS320DM642罔像采集和处理系统的设计及应用。
1 系统基本原理
本系统主要由视频解码模块、DSP(TMS320DM642)模块、外部存储器模块(包括数据存储器和程序存储器)、PCI总线驱动模块、电源管理模块及JTAG接口等六大模块组成。
由摄像机输入的1路复合视频信号(CVBS)进入视频解码芯片SAA7115,在解码芯片中完成模拟视频的数字化、图像信号与同步信号的分离;从解码器中输出的数字图像数据进入DSP视频输入口的FIFO缓存,通过EDMA送到DSP的外部数据存储器中;处理后的图像存人输出缓存,再由DSP自带的PCI接口将处理后的图像送给外部主设备。系统的工作原理框图见图1。
图1 系统工作原理框图
2 图像采集处理系统硬件设计
2.1 视频解码模块
由于设计中采用模拟摄像机进行视频数据的采集,因此需要使用视频解码芯片将采集到的模拟数据进行数字化,然后传给DM642的视频端口进行处理。视频解码芯片采用SAA7115,省去时钟同步电路的设计,简化接口电路,提高系统的可靠性。由摄像机采集到的模拟信号经过视频端子进入到解码器SAA7115的模拟端AI11,经模拟处理和A/D转换后产生数字色度信号和亮度信号,分别对其进行处理。亮度信号处理的结果一路送到信号处理器,进行综合处理,产生Y和uV信号,经格式化后采用4:2:2 YUV格式从IPD[7..0]输出直接连接到DM642视频口的VP0[9..2]管脚;另一路经过同步分离器,由数字PLL产生相应的同步信号与DM642的VP0CTL0和VP0CTL1相连,同时PLL驱动时钟发生器,产生27MHz的时钟同步信号LLC,输出到DM642的VP0CLK0管脚。解码器SAA7115与DM642的视频接口的原理见图2。
图2 SAA7115与DM642视频口原理图
所有这些功能均在I2C总线控制下完成。SCL作为I2C接口的时钟线与DM642的SCL相连,SDA作为I2C接口的数据线与DM642的SDA相连。通过SCL和SDA的时序配合,可由DM642向SAA7115的寄存器写入数据或读出数据。
2.2 DSP图像处理模块
本系统中视频口VP0作为输入,与视频解码器SAA7115的IPD(image port)相连。从解码器SAA7115出来的BT.656数据流进入VP口后,经由BT.656捕获通道,进入到视频口缓冲区中,每个视频口都有1个5120B的视频输入/输出缓冲区,视频口输入的数据分别进入捕获FIFO A和FIFO B,其中Y缓存2560B,Cb和Cr缓存分别为1280B。根据输出的同步脉冲产生帧存储器的地址信号、读写和片选等控制信号,将图像逐帧存入SDRAM存储器中,通过中断通知DSP读取。DM642通过EDMA事件实现视频口缓冲区和片内L2存储器之间的数据传递。用户编程设定1个缓冲区阈值用以产生EDMA事件。BT.656格式的数据流经由捕获通道分别进入各自的缓冲区,并打包成64b的双字。当双字增至缓冲区阈值时触发EDMA事件,存储器映射寄存器即作为EDMA数据传输的源地址。为保证每一场的数据能够全部传完且没有遗漏,每次EDMA传输的数据大小应等于阈值。由于DM642的强大处理能力,用户算法作为任务线程嵌入DSP软件系统中。此时,DSP自动将Flash存储器中的程序自举到DSP的内部程序存储区,并开始执行程序,调用用户算法对缓存中的视频数据逐帧进行处理。处理后的数据暂时存入SDRAM存储器中,或通过DM642的PCI接口传输到PCI总线接口然后进入计算机。DM642的PCI接口和PCI总线接口之间用3片总线驱动芯片连接,这样既能增强PCI总线驱动能力,又能实现PCI总线接口与DM642的I/O口的电平转换功能。
2.3 外围存储模块
本系统主要用于视频图像的处理,因此在处理过程中会产生大量数据;而DM642内部最多仅有256kB的RAM,所以需要扩展大容量的外部存储器才能满足数据处理的需要。系统通过DM642的EMIF接口外部扩展存储器,扩展两片SDRAM用于存储程序、数据和缓存数字视频信息,扩展1片Flash存储器用于固化程序和一些掉电后仍需保存的用户数据。系统采用MT48LCAM32B2
SDRAM 存储器,大小为1Meg×32bit×4banks,1片Flash AM29LV081B存储器。EMIF提供了对SDRAM的无缝接口,在CEO空间提供了64bit宽的SDRAM接口总线,把2片32位的SDRAM并接,实现CEO空间的64bit存取,用于存放程序和缓存数字视频。EMIFA提供了4个彼此独立的外部存储接口CE[3:0],为从Flash启动,将Flash连接到CE1,将SDRAM连接到CE0。DM642的EMIF和64位SDRAM及Flash存储器的接口原理图见图3。
图3 DM642的EMIF和64位SDRAM 及Flash存储器的接口原理图
2.4 电源管理部分
本系统所需电源为+5V、+3.3V和+1.4V,其中+5V为电平转换芯片电源,+3.3V为DM642的I/O口、解码器及其他芯片的电源,+1.4V为DM642 CPU内核电源。TMS320DM642采用低电压供电方式,大大降低DSP芯片的功耗。CPU内核电压+1.4V,外设I/O电压+3.3V,降低内核电压主要是降低功耗。
外部接口引脚采用+3.3V电压,便于直接与外部器件接口。由于是两种不同的电压,所以要考虑供电系统的配合问题。在上电过程中,保证CPU内核电源先上电,最晚也应当与外设I/O电源
同时上电。关闭电源时,先关闭I/O电源,再关闭内核电源。如果内核上电晚于I/O,则会发生内部总线竞争,从而产生不可预定的结果;因此,在本系统中加入了电压监控电路。
3 系统软件编程部分
为了搭建1个可以实现各种图像算法的硬件平台,本系统的程序主要包括以下几个部分:系统引导部分,DM642的初始化程序(包括片内外设的选择、EMIFA初始化、IIC模块的初始化、VP口初始化),解码器的初始化,Flash的读写程序,EDMA进行视频数据传输的设置等。
系统断电时,程序、初始化数据等都存在片外的Flash里。上电后,DM642从外部Flash中将程序引导到片内存储器,开始运行程序。系统启动时,系统上电复位,从Flash加载程序,并进行系统初始化,主要完成芯片初始化、外围硬件配置,为图像输入及处理做好准备。DM642发启动采集信号,送入图像信号,产生SDRAM的地址、读写、选通等逻辑信号,将图像写入SDRAM中。写完1帧图像发中断信号通知DM642读取,DM642从SDRAM中将1帧图像读入,运用图像处理算法进行处理。
系统自动将0x9000 0000~0x9000 03FF地址的程序和数据搬移到0x0000~0x0000 03FF地址,对EMIFA中的CE0、CE1寄存器进行配置;然后将片外0x9000 0400以后的Flash中的程序搬移到0x0000 0400以后的片内RAM中或片外SDRAM中,程序指针跳转到rts6400.Lib中的C入口点c_int00执行C初始化函数。初始化工作完成后,便进行图像采集。由摄像机摄入的PAL制式图像传送到SAA7115解码器,解码器将信号转变成并行的BT.656图像码流送到DM642的视频口VP0口,DM642视频口解码BT.656,得到YUV(4:2:2)格式的图像,并通过EDMA传输到SDRAM中存储。图像每场为720×288(宽×高),每帧720×576(宽×高)。CPU通过访问SDRAM中的图像数据,根据程序进行图像处理。系统的主程序结构框图见图4。
图4 系统的主程序结构框图
4 结束语
本系统研究并设计了1个通用的基于DM642的视频采集处理系统。与其他视频处理系统相比,它有着诸多优势:在处理器方面,为了实现较高的实时性,且能够满足对运动图像进行处理的要求,系统采用了专门用于多媒体处理的TMS320DM642芯片作为处理器,使得系统硬件设计相对容易,提高了系统整体的性价比;在视频采集方面,采用了专门的解码芯片来完成,这样避免出现传统视频采集电路中存在的“DSP花费大量时间进行图像采集的控制”问题,从而将DSP解放出来,更高效地进行图像处理工作;具有很强的可编程性.可以利用外接的SDRAM编程实现MPEG2、MPEG4、H.263等多种视频压缩编解码算法,在适用性上远优于专用视频编解码系统;由于DSP的运算速度快,所以实时性强也是本系统的一大优势。
因此,本系统可以作为许多视频图像处理算法开发、验证的硬件平台,也可以作为各种多媒体应用系统的核心部件。