基于FPGA和TMS320DM642的CCD图像采集和处理系统硬件设计
当CCD产生的视频信号为模拟信号对,对其直接传输、存储和处理比较困难,须要将模拟视频信号转换为数字视频信号,以便对其进行处理,并进行高效可靠的传输和存储。当前,数字图像采集和处理系统不仅要面临高速宽带、高精度的挑战,而且对采样时机、采样点数、采样速率的可控性也提出了较高的要求,本文提出了一种实时图像采集和处理系统的设计方法,该系统以TMS320DM642[1-2]为核心,结合视频解码芯片SAA7115H和OSD FPGA构成实时图像采集和处理系统电路。
1 系统总体设计
1.1 系统结构
本系统以TMS320DM642为核心,采用模块化设计思想,整个系统主要由视频解码芯片(A/D转换芯片)、可编程逻辑门阵列(OSD FPGA)、TMS320DM642及外围电路组成。外围电路主要包括CCD摄像机、SDRAM图像存储器、FLASH程序存储器及TMS320DM642外围电路(复位、电源连接等)。图1为该系统的结构框图。
1.2 系统工作原理
由CCD摄像头摄入的PAL制图像传送到SAA7115解码器,SAA7115解码器将信号转变成并行的BT.656图像码流送至TMS320DM642视频口VP0,TMS320DM642将其再解码,得到YUV(4:2:2)格式的图像,并通过EDMA传输到动态存贮器(SDRAM)中存储,图像大小为每场720×288(宽×高),每帧720×576(宽×高)。CPU通过访问SDRAM中的图像数据,依照相应的程序进行相应的图像处理。
在实时图像处理系统中,为了不影响数据处理速度,需要在恒速的CCD图像采集与变速的TMS320DM642图像处理之间加入缓冲电路,缓冲采用TMS320DM642视频口的片内FIFO和片外SDRAM的乒乓缓存结构。“乒乓操作”是一个经常应用于数据流控制的处理方法,如图2所示,其处理流程为:输入数据流通过指针等时地将数据流分配到数据缓冲区1、2和3中,在第1帧的时间,将输入的数据流缓存到1;第2帧将输入的数据流缓存到2,与此同时,将1的数据作运算处理。在下个缓冲周期,再次切换,将输入的数据流缓存到3,与此同时,将2的数据运算处理。如此循环,A、B、C、D、E为其5种状态。
乒乓操作的最大特点是按节拍、相互配合地切换,将经过缓冲的数据流不停顿地进行运算及处理。把乒乓操作模块当作一个整体,此模块两端的输入数据流与输出数据流均是连续不断的,没有任何停顿,因此非常适合进行流水线式处理,完成数据的无缝缓冲与处理。
2 功能模块设计
2.1 视频采集模块
本系统采用Philips公司的SAA7115视频解码芯片将CCD模拟视频进行数字化,然后传给TMS320DM642的视频端口进行处理,同时分离水平同步(XRH)和垂直同步(XRV)等信号。
视频解码芯片采用SAA7115,省去时钟同步电路的设计,简化接口电路,提高系统的可靠性。由摄像机采集到的模拟信号经过视频端子进入到解码器SAA7115的模拟端Al11,经模拟处理和A/D转换后产生数字色度信号和亮度信号,分别对其进行处理。亮度信号处理的结果一路送到信号处理器,进行综合处理,产生Y和UV信号,经格式化后采用4:2:2 YUV格式从IPD[7-0]输出直接连接到TMS320DM642视频口的VP0[9-2]管脚;另一路经过同步分离器,由数字PLL产生相应的同步信号与TMS320DM642的VP0CTL0和VP0CTL1相连,同时PLL驱动时钟发生器,产生27 MHz的时钟同步信号LLC,输出到TMS320DM642的VP0CLK0管脚。解码器SAA7115与TMS320DM642的视频接口的原理如图3所示。
所有这些功能均在I2C总线控制下完成。SCL作为I2C接口的时钟线与TMS320DM642的SCL相连,SDA作为I2C接口的数据地址线与TMS320DM642的SDA相连。通过SCL和SDA的时序配合,可由TMS320DM642向SAA7115的寄存器写入数据或读出数据。
2.2 TMS320DM642图像处理模块
本系统中视频口VP0作为输入,与视频解码器SAA7115的IPD相连。从解码器SAA7115出来的BT.656数据流进入VP0口后,经由BT.656捕获通道,进入到视频口缓冲区中,每个视频口都有1个5 120 B的视频输入/输出缓冲区,视频口输人的数据分别进入捕获FIFO A和FIFO B,其中Y缓存2 560 B,Cb和Cr缓存分别为1 280 B。根据输出的同步脉冲产生帧存储器的地址信号、读写和片选等控制信号,将图像逐帧存入SDRAM存储器中,通过中断通知TMS320DM642读取。TMS320DM642通过EDMA事件实现视频口缓冲区和片内L2存储器之间的数据传递。用户编程设定1个缓冲区阈值用以产生EDMA事件。BT.656格式的数据流经由捕获通道分别进入各自的缓冲区,并打包成64 B的双字。当双字增至缓冲区阈值时触发EDMA事件,存储器映射寄存器即作为EDMA数据传输的源地址。为保证每一场的数据能够全部传完且没有遗漏,每次EDMA传输的数据大小应等于阈值。由于TMS320DM642的强大处理能力,用户算法作为任务线程嵌入TMS320DM642软件系统中。
2.3 外围存储模块
本系统的TMS320DM642在视频图像的处理时,处理过程中会产生大量数据,而其内部最多仅有256 KB的RAM,所以需要扩展大容量的外部存储器才能满足数据处理的需要。本系统选用2片SDRAM用于存储程序、数据和缓存数字视频信息,选用1片FLASH存储器用于固化程序和一些掉电后仍需保存的用户数据。SDRAM芯片和FLASH芯片均通过TMS320DM642的EMIF口实现无缝连接[3]。TMS320DM642的EMIF有4个独立的可设定地址的区域,称为芯片使能空间(CE0~CE3),当FLASH和FPGA映射到CE1时,SDRAM占据CE0,CE3的一部分被配置给OSD功能的同步操作和扩展的FPGA中的其他同步寄存器操作。本系统合并形成了一个64 bit长的外部存储器端口,将地址空间分割成了4个芯片使能区,允许对地址空间进行8 bit、16 bit、32 bit和64 bit的同步或不同步的存取,并且使用了芯片使能区CE0、CE1和CE3。CE0被发送给64 bit的SDRAM总线,CE1被8 bit的FLASH和FPGA功能使用,CE3被设置成同步功能。
2.3.1 SDRAM存储器
本系统采用MT48LC4M32B2[4]来构成SDRAM存储器,大小为1 M×32 bit×4 banks, 在CE0空间连接了64 bit的SDRAM总线。总线由外部PLL驱动设备控制,在133MHz的最佳运行状态下运行,SDRAM的刷新由TMS320DM642自动控制。TMS320DM642的EMIF与SDRAM接口图如图4所示。
2.3.2 FLASH存储器
本系统扩展4 M的FLASH,映射在CE1空间的低位。FLASH寄存器选用4 M×8 bit的AM29LV033C。FLASH寄存器主要用来导入装载和存储FPGA的配置信息。CE1空间被配置成8 bit,FLASH寄存器也是8bit。由于CE1的可利用地址空间小于FLASH的空间,所以利用FPGA可产生3个扩展页。这些扩展的线形地址通过FPGA的FLASH基础寄存器进行定义,复位后的默认值是000。TMS320DM642的EMIF和FLASH的接口图如图5所示。
2.4 OSD FPGA模块
FPGA负责完成所有芯片的接口和控制,其中包括SAA7115与I2C总线的接口、复位控制信号以及与TMS320DM642的EMIF接口和外设接口等,其体系结构图如图6所示。本系统的OSD FPGA功能模块的芯片型号为Xilinx XC2S300E-6PQ208C[5],主要用来完成以下工作:
- 基于TMS320DM642的农药喷洒系统(04-22)
- 基于DSP的视频采集驱动程序的实现(07-21)
- DSP并行处理在剖面声纳系统(06-07)
- 基于TMS320DM642的CCD图像采集系统设计(11-14)
- 双DSP的多路视频监控系统设计(02-14)
- 5/3提升小波在DM642上的实现与优化(07-03)