基于FPGA的数据嵌入式图像采集系统
摘要 介绍了以FPGA为核心的逻辑控制模块的数据采集系统的设计可以满足实时性要求,设计中采用自顶向下的设计方法,根据不同的功能将整个系统划分为若干模块进行设计,并介绍了每个模块的功能和实现方法。在设计中采用VHDL语言对各个模块进行描述。视频解码芯片采用Philips公司的SAA7113H,该芯片通过I2C总线协议进行配置。实验表明,设计可以满足图像采集实时性的要求。
关键词 图像采集;可编程门阵列;视频解码芯片;格式转换;状态机
在图像处理系统中,首先对摄像头采集的视频信号进行A/D转换,将模拟图像信号转化为数字信号,提供给后端的处理系统进行图像处理。而视频图像采集系统是多媒体信息处理、视频监控等系统的前端子系统,是视频处理系统中不可缺少的部分。传统视频采集系统一般电路复杂、成本高,而且较难满足实时性的要求,而采用视频摄像头+视频解码器+FPGA的模式,可简化电路的复杂性,其中视频解码器对摄像头采集的信号进行AD转换,FPGA对信号的采样进行控制。FPGA的时钟频率高、时间延迟小,可以满足实时性的要求。基于以上的优点文中采用些结构来实现视频图像的采集。
1 视频解码器SAA7113H
SAA7113H是Philips公司的一种增强型视频输入处理器,内部有一系列寄存器,寄存器的读、写通过I2C总线完成。包括一个双通道的模拟预处理电路、可编程静态增益和自动增益控制电路、时钟生成电路、数字多标准解码电路、亮度、对比度、饱和度控制电路和I2C总线控制电路。SAA7113H需外接24.576 MHz晶体,内部锁相环PLL可输出27 MHz的时钟。自动检测50 Hz和60 Hz的场频,可在PAL、NTSC两种制式之间自动转换。具有4路模拟视频信号输入,通过内部寄存器的不同配置可以实现4路信号的转换;输入可以是4路CVBS或2路Y/C信号或1路Y/C信号2路CVBS,输出为标准ITU656 YUV4:2:2格式的VPO数据总线(8-bit)。SAA7113H模拟部分和数字部分采用+3.3V,数字I/O接口兼容+5V。
2 系统总体方案及工作原理
系统选用Altera公司的CycloneⅡ系列中的EP2C20Q240C8为系统的硬件平台,该芯片内部有18752个LE,26个乘法器和4个锁相环等。视频解码芯片采用Philips的SAA7113H。系统主要由SAA7113H图像采集接口模块、I2C总线配置模块、控制模块、像素存储模块、格式转换模块和显示接口模块组成。设计中利用VHDL语言在QuartusⅡ下进行编程和调试。系统基本结构如图1所示。
3 主要模块功能介绍
3.1 SAA7113H图像采集接口模块
该模块负责视频图像的采集并将模拟视频信号转换为数字视频信号,为后面的视频处理做准备。该模块与SAA7113H的VPO数据总线、RTS0、RTS1、及LLC相连,RTS0和RTS1分别配置为行同步和场同步信号,只有在这两个信号同时有效时,输出数据是有效图像数据,否则是消隐信号。有效的视频信号分为奇数场和偶数场,共576行有效数据,其中奇数场有效数据为23~310行,偶数场有效数据为336~623行,其余
为垂直控制信号。
SAA7113H的VP0总线输出数据的频率是27 MHz,在每个LLC的上升沿输出1 Byte有效数据。标准ITU YUV 4:2:2格式视频信号的每个像素都有各自的亮度分量Y,每两个相邻的像素公用一对的色差数据Cb和Cr。在存储像素数据时,可认为每两个连续字节表示一个像素,当需要格式转换或进行其他的处理时,要一次提取两个相邻的像素的数据,进行相应处理。其中,每行有数据864个采样点中有效数据720个,消隐期间数据144个。在完整的一帧图像数据中第一场的消隐EAV为FF 00 00 BX,第一场消隐SAV为FF 00 00 AX;第一场有效数据SAV为FF 00 00 8X,有效数据EAV为FF 00 00 9X,其他场类推。奇数场有效数据阶段的SAV为“FF 00 00 80”,偶数场有效数据阶段的SAV为“FF 00 00 C7”。在每个时钟的上升沿读取8位数据,当检测到一行数据的开始标志FF 00 00 XY时,检测到SAV或EAV信号,提取H、F、V信号。然后开始对图像数据进行解码,根据8位数据自带的信息,判断该数据是Y、Cb还是Cr,从而得到Y、Cb、Cr各分量。
3.2 I2C总线配置模块
该模块通过I2C总线协议对SAA7113H进行配置,时钟频率为20 kHz。通过该模块完成SAA7113H配置。配置模块如图2所示。
其中,inicio_conf信号表示启动对SAA7113H进行配置,高电平有效。clk为时钟信号。reset为外部复位信号高电平有效。SCL和SDA为SAA7113H配置信号。CONFIGURACION_OK表示解码芯片配置好以后输出一个控制信号给控制模块,以启动数据采集。
SAA7113H的寄存器地址从00H开始,只有01H~05H前端输入配置部分,06H~13H、15H~17H解码部分,40H~60H常规分离数据部分,这些可读写,其余为保留地址或只读寄存器,将需要配置的寄存器数据存在查找表con_data中,并用count表示当前对哪个寄存器配置,配置时逐个写入寄存器。
评论