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实现行、场数据延时,并分奇、偶场数据分离存放,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的数据线上,这样就可以满足时序要求使数据写入正确的地址。
3.2 总线逻辑切换设计
在前面提到了CPLD和DSP之间的总线切换管理是设计中的难点,在数据采集过程CPLD必须掌握总线控制权,切换到数据处理过程DSP必须掌握总线控制权。为了解决这个无缝切换问题,这里充分利用DSP的保持请求信号nHOLD和保持响应信号nHOLDA来协调总线切换。
通过置DSP的XF引脚为低电平,告诉CPLD开始控制SAA7111A进行图像采集。在DSP_XF连接到CPLD为高电平(DSP_XF初始状态应该为低电平)时,CPLD产生DSP_ HOLD总线请求切换信号,该信号连接到DSP的nHOLD引脚请求DSP进入保持状态,在3个机器周期后DSP做出响应:产生nHOLDA低电平信号到CPLD,而且外部数据总线、外部地址总线和控制总线都变成高阻态。此时DSP进入保持状态,CPLD控制各总线操作;当一帧图像采集、存储完成后CPLD产生nINT中断信号通知DSP开始处理处理数据,同时并置高DSP_ HOLD引脚使得DSP的nHOLD脚也置高,并通过对CPLD编程将CPLD与SRAM连接的各个外部数据总线、外部地址总线和控制总线都置成高阻态,而在nHOLD置高3个机器周期后DSP外部数据总线、外部地址总线和控制总线都脱离高阻态,DSP进入正常工作状态,DSP置XF脚为高电平,收回总线控制权进行数据处理;
当DSP将处理后的一帧数据传输到上位机完成后,再次置低XF脚告诉CPLD可以开始采集下一帧了,CPLD产生DSP_ HOLD使DSP进入保持状态,外部数据总线、外部地址总线和控制总线又都变成高阻态,CPLD掌握总线控制权。如此往复下去即可以解决DSP与图像采集模块的总线冲突问题,正确的切换总线逻辑保证了可以循环采集图像进行处理。
3.3 CPLD逻辑功能仿真验证
通过利用CPLD控制视频A/D芯片SAA7111A的图像采集过程,并利用SAA7111A的输出状态信号来控制CPLD实现图像数据储存、时序控制、地址译码等功能。这样很好地协调了行、场参考及同步信号、像素时钟、SRAM读写信号和DSP控制信号之间的时序关系,保证了对SRAM读写操作时各信号的时序配合,很好的解决了行、场延时问题,使图像分辨率从720×625过渡到640×480,并且正确生成SRAM写地址,DSP中断信号以及总线切换信号的产生。
由于篇幅有限,故没有列出VHDL具体代码,现只给出仿真结果。仿真结果如下所示:
图4:循环采集处理仿真图
上面的循环采集处理仿真图就是实际系统工作时采集模块中各个信号的时序逻辑关系。从仿真图可以看出通过对CPLD的编程实现了多点的行、场延时,奇偶场分离存放,从而得到多分辨率的图像数据,以及DSP中断产生、逻辑总线切换信号、下一帧的开始触发信号、奇偶场对齐信号等都能满足系统时序要求。采集一帧640×480的图像约需22.75ms,可以满足实时性的要求。
4 结论
本文设计了一种基于CPLD的多分辨率图像采集系统,本文作者创新点:提出一种由CPLD控制图像的行、场信号延时,奇偶数据分离存储来得到不同分辨率图像数据的方法,实现了不占用DSP资源的多分辨率图像的实时采集。经过大量仿真和电路板调试,证明该方案灵活有效,能够在工业监测、医疗诊断等图像实时采集领域得到广泛应用。
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实现行、场数据延时,并分奇、偶场数据分离存放,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的数据线上,这样就可以满足时序要求使数据写入正确的地址。
3.2 总线逻辑切换设计
在前面提到了CPLD和DSP之间的总线切换管理是设计中的难点,在数据采集过程CPLD必须掌握总线控制权,切换到数据处理过程DSP必须掌握总线控制权。为了解决这个无缝切换问题,这里充分利用DSP的保持请求信号nHOLD和保持响应信号nHOLDA来协调总线切换。
通过置DSP的XF引脚为低电平,告诉CPLD开始控制SAA7111A进行图像采集。在DSP_XF连接到CPLD为高电平(DSP_XF初始状态应该为低电平)时,CPLD产生DSP_ HOLD总线请求切换信号,该信号连接到DSP的nHOLD引脚请求DSP进入保持状态,在3个机器周期后DSP做出响应:产生nHOLDA低电平信号到CPLD,而且外部数据总线、外部地址总线和控制总线都变成高阻态。此时DSP进入保持状态,CPLD控制各总线操作;当一帧图像采集、存储完成后CPLD产生nINT中断信号通知DSP开始处理处理数据,同时并置高DSP_ HOLD引脚使得DSP的nHOLD脚也置高,并通过对CPLD编程将CPLD与SRAM连接的各个外部数据总线、外部地址总线和控制总线都置成高阻态,而在nHOLD置高3个机器周期后DSP外部数据总线、外部地址总线和控制总线都脱离高阻态,DSP进入正常工作状态,DSP置XF脚为高电平,收回总线控制权进行数据处理;
当DSP将处理后的一帧数据传输到上位机完成后,再次置低XF脚告诉CPLD可以开始采集下一帧了,CPLD产生DSP_ HOLD使DSP进入保持状态,外部数据总线、外部地址总线和控制总线又都变成高阻态,CPLD掌握总线控制权。如此往复下去即可以解决DSP与图像采集模块的总线冲突问题,正确的切换总线逻辑保证了可以循环采集图像进行处理。
3.3 CPLD逻辑功能仿真验证
通过利用CPLD控制视频A/D芯片SAA7111A的图像采集过程,并利用SAA7111A的输出状态信号来控制CPLD实现图像数据储存、时序控制、地址译码等功能。这样很好地协调了行、场参考及同步信号、像素时钟、SRAM读写信号和DSP控制信号之间的时序关系,保证了对SRAM读写操作时各信号的时序配合,很好的解决了行、场延时问题,使图像分辨率从720×625过渡到640×480,并且正确生成SRAM写地址,DSP中断信号以及总线切换信号的产生。
由于篇幅有限,故没有列出VHDL具体代码,现只给出仿真结果。仿真结果如下所示:
图4:循环采集处理仿真图
上面的循环采集处理仿真图就是实际系统工作时采集模块中各个信号的时序逻辑关系。从仿真图可以看出通过对CPLD的编程实现了多点的行、场延时,奇偶场分离存放,从而得到多分辨率的图像数据,以及DSP中断产生、逻辑总线切换信号、下一帧的开始触发信号、奇偶场对齐信号等都能满足系统时序要求。采集一帧640×480的图像约需22.75ms,可以满足实时性的要求。
4 结论
本文设计了一种基于CPLD的多分辨率图像采集系统,本文作者创新点:提出一种由CPLD控制图像的行、场信号延时,奇偶数据分离存储来得到不同分辨率图像数据的方法,实现了不占用DSP资源的多分辨率图像的实时采集。经过大量仿真和电路板调试,证明该方案灵活有效,能够在工业监测、医疗诊断等图像实时采集领域得到广泛应用。
举报