1 引言
视频采集系统是数字图像获取的最基本手段,是进行数字图像处理、多媒体和网络传输的前提,它可为各种图像处理算法提供待处理的原始数字图像和算法验证平台。随着图像数字化处理技术的高速发展,对图像采集的要求也越来越高,这包括对采集图像的速度、主观质量、灵活性等等的要求。针对这种发展的趋势,设计了一种基于CPLD和DSP器件的多分辨率图像采集处理系统,重点介绍了CPLD在采集过程中逻辑控制的灵活应用。
2 系统方案设计
根据系统要求,采取了独立采集法,采用专用图像采集芯片自动完成图像的采集,除了对采集模式进行设定外,处理器不参与采集过程,这种方法的特点是不占用CPU的时间、实时性好、适合活动图像的采集。系统设计流程如下:DSP发开始采集指令,A./D开始采集,将A/D输出的控制、状态信号接入CPLD,由CPLD控制将转换后的数字信号存储到高速大容量SRAM(ODD和EVEN)中,直到一帧图像数据存储完毕后,其间CPLD产生SRAM地址、SRAM读写信号、中断信号、总线切换信号等等;CPLD交出总线控制权,DSP占用总线从SRAM中读出图像数据进行处理。限于篇幅,本文重点介绍CPLD在数据采集中的灵活设计。系统结构如下图所示:
图1:系统结构框图
3 系统硬件设计
本系统DSP采用TI公司生产的54x系列中的TMS320VC5416,CPLD是ALTERA公司MAX7000系列中的EPM7128A。A/D芯片选用飞利浦公司出品的SAA7111A视频A/D转换芯片,这里利用DSP多通道缓冲串行口McBSP来模拟I2C总线时序对SAA7111A进行初始化。
3.1 数据采集的逻辑功能设计
本设计方案通过利用CPLD控制视频采集芯片SAA7111A实现行、场数据延时[2],并分奇、偶场数据分离存放,DSP选择读取采集到的奇、偶场数据统一或分别进行处理,从而得到多分辨率图像数据。将SAA7111A产生的控制信号和状态信号与CPLD连接,即把垂直同步信号VREF、水平同步信号HREF、奇偶场标志信号RTS0、片选信号CE、场同步信号VS、象素同步信号LLC2等连接到CPLD上,CPLD通过这些控制和状态信号进行译码和产生存储地址等操作。垂直同步信号VREF的两个正脉冲之间为扫描一帧(帧扫描方式)或一场(场扫描方式)的定时,即完整的一帧或一场图像在两个正脉冲之间扫描完。水平同步信号HREF为扫描该帧或该场图像中各行象素的定时,即高电平时为扫描一行象素的有效时间。若当前图像窗口大小为640×480,则在VREF两个正脉冲之间有480个HREF的正脉冲,即480行;在每个HREF正脉冲期间有640个LLC2正脉冲,即每行640个象素,即VREF、HREF、LLC2这三个同步信号之间的关系。
为了体现本系统多分辨率的特点,需要改变SAA7111A的默认采样分辨率,通过CPLD的逻辑控制就可以得到多分辨率图像数据。本文选择从默认分辨率720×625到设定分辨率640×480的采集,因此就需要进行、场延迟,舍弃部分像素。通过写SAA7111A中I2C寄存器行同步开始寄存器(子地址06)和行同步结束寄存器(子地址07)可以直接控制行同步有效时间,因此可以省略行延迟电路设计,而场延迟是在CPLD中实现。
逻辑功能设计大体分为以下几个部分:DSP与CPLD的总线切换逻辑;场延迟部分(HREF的下降沿进行计数器设计);LLC2控制的SRAM地址产生部分;SRAM片选信号、写信号以及同步时钟选择时序控制部分。其中CPLD和DSP之间的总线管理是设计中的难点。图像采集时序如下图所示。
图2:图像采集时序图
具体描述如下:置低DSP的XF引脚产生START采集启动信号,它向CPLD发出图像采集命令,当VS上升沿来临时,如果RTS0为低电平,则表明是奇场即将到来,产生ODD高电平信号,对ODD取反再与DSP输出的nPS相或后用作SRAM (ODD)的片选信号CS_ODD。在VREF上升沿时刻,启动场延迟计数器,场延迟是在CPLD中实现的,从每帧625行到480行需要舍弃145行(奇、偶场各采集240行),在CPLD中利用行同步参考信号HREF进行计数器设计(HREF<240)。场延迟结束时,置高HREF145信号,有效图像数据采集开始接受,当VREF出现下降沿时,置低HREF145信号,奇场图像采集完成;如果RTS0为高电平,则表明偶场即将到来,产生EVEN高电平信号,对EVEN取反再与DSP输出的nPS相或后用作SRAM (EVEN)的片选信号CS_EVEN,场延迟仍然利用行同步参考信号HREF进行计数器设计(HREF<240)来实现,场延迟结束时,置高HREF145信号,有效图像数据采集开始接受,当VREF出现下降沿时,置低HREF145信号,偶场图像采集完成。此外GCSWITCH信号作为CPLD选择内部时钟的控制信号,当GCSWITCH为高电平期间,表示CPLD获取总线权,系统处于图像采集阶段,CPLD内部时钟为LLC2;当GCSWITCH为低电平期间,表示DSP收回总线权,系统处于图像处理阶段,此时CPLD内部的时钟信号为DSP输出时钟信号CLOCKOUT。奇、偶场图像存储器采用了ISSI公司的l0ns级256K×16高速SRAM,LLC2时钟为13. 5MHz,即每个像素时钟大约为74.1ns,每一个LLC2脉冲产生一次SRAM地址,相对于SRAM的10ns级的读写周期来说完全可以满足要求。利用LLC2(约13.5MHz)时钟进行写逻辑时序控制设计如下图所示:
图3:RAM(ODD,EVEN)写信号时序图
同时要注意:如果在处理完一帧图像后再采集下一帧时,图像数据已经进入了偶场或奇场,此时若开放图像采集,由于不是从图像头开始采集,所采图像将不完全,因此需要确定图像采集开始的基准。这里设计只在RTS0的上升沿才检测图像采集开始信号是否产生,这样每帧图像只在RTS0的上升沿才开始采集,即每次都从偶场开始,这样就避免了图像数据的混乱,保证图像的开始基准。另外,由于存放图像数据的SRAM(奇、偶场SRAM)地址是由CPLD控制产生的,那么如果将SAA7111A转换输出的VPO[15:0]直接存放在SRAM中,势必就会影响数据、地址的同步,导致不同的数据写入同一个地址,同一个数据写入不同的地址,从而造成读写错误。因此,考虑将SAA7111A输出的VPO[15:0]也作为CPLD的输入信号,在CPLD里通过延时作同步处理后再连接到SRAM的数据线上,这样就可以满足时序要求使数据写入正确的地址。