您现在的位置是:首页 > 家电

基于FPGA和SAA7113芯片的视频采集监控方案

2020-12-24 02:06:05

提出了基于FPGA的视频监控系统整体实现方案。首先介绍了在FPGA中设计I2C总线配置模块对视频处理芯片进行合理的配置,然后简单介绍了视频信号的处理过程。经过处理后的视频信号通过乒乓机制存储到SDRAM缓存,最后按照VGA的时序送到显示器正常显示。本设计采用VerilogHDL语言编写程序,并用Modelsim软件进行仿真,采用ISE下载到Virtex-II XC2VP30 FFG896开发板实现了视频监控功能。

    一个典型的视频监视系统一般由光源、摄像头、视频转换单元、数字图像传输处理及控制系统、输入/输出单元和监视器等部分组成。现存的视频监控系统主要由工控机和视频图像采集卡构成,存在系统稳定性差、价格高昂等缺点。不断发展的FPGA具有设计周期短、灵活、可提高系统的可靠性和集成度的优点;Verilog HDL语言类似于C语言,灵活且容易上手,本文结合这两者的优点,提出了基于FPGA的视频监控系统。1 系统模块划分    本设计的视频监控系统的大部分设计工作都集中在对FPGA的编程开发上,通过分析可将系统分为以下5个功能模块,如图1所示。

基于FPGA的视频监控系统


    (1)视频接口模块:视频采集芯片具有多种采集方式,本设计中FPGA通过I2C总线对其内部寄存器进行配置,使其按照一定的格式进行采样。    (2)视频变换模块:对得到的视频流进行解码,识别出行、场同步信号,并且根据需要选择采集图像的大小,进而变换成RGB格式的图像数据,以便于后续显示。    (3)异步FIFO模块:由于视频处理器和SDRAM工作在不同的时钟频率下,会出现读写速度不匹配的情况,解决的方法是在两者之间添加一块异步FIFO。    (4)图像存储模块:将解码后的数据经由一个乒乓机制依次存放在两片SDRAM中,每个SDRAM存放一幅图像,通过乒乓机制使得两块存储区域交替进行存储输入和显示输出,避免等待,提高速度。   (5)VGA控制模块:根据VGA的工业参数,产生相应的行同步信号和场所同步信号,并在适当时刻送入VGA进行显示。
 
2 系统模块的具体设计2.1 视频采集模块

    视频采集芯片SAA7113通过I2C总线对其内部寄存器的不同配置可以对4路输入进行转换,输入可以为4路CVBS或2路S视频(Y/C)信号,输出8 bit“VPO”总线,为标准的ITU 656、YUV 4:2:2格式。I2C总线系统由两根总线SCL(串行时钟)和SDA(串行数据)线构成,I2C总线传输过程包括起始信号、传输包头、传输数据、结束信号4个部分。整个模块可以分为4种状态:普通状态、等待ACK状态、写数据状态和结束状态。I2C总线数据传送时序如图2所示。

基于FPGA的视频监控系统


2.2 视频变换模块    视频变换模块是对得到的数字视频流进行解码,识别出行、场同步信号,并且将YUV数据格式变换成RGB格式的图像数据,以便后续显示。2.2.1 ITUR 656解码    PAL制式的图像一帧有625行,其中有效图像数据572行,其他为场消隐信号;每行图像数据包含720个像素。因此,PAL制电视信号的分辨率为720&TImes;572。PAL制电视信号每秒扫描25帧图像,每帧包括奇、偶两场图像。1帧图像分为奇数场和偶数场,每场各有286行有效图像。   

  SAA7113 输出的数据格式为标准ITU.656、YUV4∶2∶2的视频数据。每个像素点亮度信号占8 bit,两个色度信号共占16 bit。每个像素都有自己的亮度数据Y,但是输出的数据中每两个相邻的像素共用一组色差数据Cb、Cr。    ITU656每行的数据结构如图3所示, 每行数据包含水平控制信号和YCbCr视频数据信号。视频数据字是以27 MB/s的速率传送的, 其顺序是:Cb,Y,Cr,Y,Cb,Y,Cr,…。每行开始的288 B为行控制信号, EAV信号意思是有效视频结束,SAV信号意思是有效视频起始。

2.2.2 YUV4:2:2变换为YUV4:4:4    YUV4:2:2变换为YUV4:4:4主要是将串行数据转化为并行数据,并对YCbCr(4:2:2)视频数据进行插值,得到YCbCr(4:4:4)视频数据,分频得到13.5 MHz的像素时钟。

2.2.3 色度空间转换  

 色彩空间变换公式为:    R=1.164(Y-16)+1.596(Cr-128)    G=1.164(Y-16)-0.813(Cr-128)-0.392(Cb-128)    B=1.164(Y-16)+2.017(Cb-128)


2.3 异步FIFO模块      

FIFO是一种先进先出存储器,主要用来缓冲数据和隔离时钟或相位差异。其使用一个双端口存储器存放数据,数据发送方在一端写入数据,接收方在另一端读出数据。首先要利用FPGA的RAM资源例化一块双口RAM,需要同时对其进行读写操作,使其输入和输出以及深度按照设计要求大小进行设定,而FIFO控制器有复位、输入输出数据、读写时钟、读写使能和空满标志端口。其设计原理框图如图4所示。

基于FPGA的视频监控系统


2.4 SDRAM控制模块2.4.1 SDRAM工作的原理简介   

一个SDRAM中包含几个BANK,每个BANK的存储单元是按行和列寻址的。由于这种特殊的存储结构, SDRAM的工作原理有以下特点:(1)SDRAM在上电100 μs~200 μs 后,必须由一个初始化过程来配置SDRAM的模式寄存器,模式寄存器决定SDRAM的工作模式;(2)SDRAM的存储单元可以理解为一个电容,总是倾向于放电,因此必须有定时的刷新周期以避免数据丢失,刷新周期可由最小刷新周期+时钟周期计算获得;(3)SDRAM的具体控制命令由一些专用控制引脚和地址辅助完成。

2.4.2 SDRAM控制器总体设计     

SDRAM控制器与外部的接口示意图如图5所示。控制器左端接口信号为与FPGA相连的系统控制接口信号,右端接口信号均为直接与DSRAM对应管脚相连的信号。根据SDRAM的各个接口信号、时序要求和工作模式,将该SDRAM控制器的内部进一步细化为多个功能模块,包括系统控制接口模块、CMD命令解析模块、命令响应模块和数据通路模块。系统控制接口模块用于接收系统的控制信号,进而产生不同的CMD命令组合;CMD命令解析模块用于接收CMD命令并解码成操作指令;命令响应模块用于接收操作指令并产生SDRAM的操作运作;数据通路模块用于控制数据的有效输入输出。

基于FPGA的视频监控系统


2.5 VGA控制模块2.5.1 视频数模转换器FMS3818  

   FMS3818是一种低成本的视频数模转换器(DAC),能够适应具有180 MHz最大像素时钟的图形和视频应用。VGA_OUT_BLANK_Z信号输入覆盖RGB输入和空白显示输出。当FPGA没有对XSGA输出编程时,这个信号通过下拉电阻保持显示空白,而不需要由用户控制。

2.5.2 VGA标准简介    

VGA是一种标准的显示接口,采用逐行扫描的方式使图像投射到屏幕上,标准VGA显示的场频为60 Hz,行频为31.5 kHz。水平时序中包括水平脉冲宽度、水平同步脉冲结束到水平门的开始之间的宽度和一个完整的视频行的宽度几个时序参数。垂直时序与水平时序类似,包含垂直同步脉冲宽度、垂直同步结束到垂直门的开始之间的宽度、一个视频帧可视区域的宽度和一个完整的视频帧的宽度。

3 系统采用的硬件连接

    摄像头采集光源信号,FPGA通过I2C向SAA7113发送控制信息,使其按一定的格式进行采样,转换成RGB格式后,通过FIFO缓冲存储到SDRAM,最后经视频数模转换器FMS3818送到VGA显示器进行显示。系统硬件连接示意图如图6所示。

基于FPGA的视频监控系统


    本设计采用从顶向下的分析方法,根据系统的功能需求分析系统的各个功能模块,然后对各个模块进行具体设计。将数字视频技术与FPGA设计理论结合起来,采用Verilog HDL语言,系统具有设计灵活、易于修改等优点,同时可与其他CPU协作完成进一步的设计,例如添加一定的算法可以实现相应的模式识别等任务。