技术文章
基于FPGA的图像采集卡的设计

1 引 言

现代化生产和科学研究对视频图像采集系统的要求日益提高。传统的图像采集卡速度慢、处理功能简单、采用分立元件、电路非常复杂;而且可靠性差、不易调试、不能很好地满足特殊要求。FPGA(现场可编程门阵列)是专用集成电路中集成度最高的一种,用户可对FPGA内部的逻辑模块和I/O模块重新配置,以实现用户所需逻辑功能。用户对FPGA的编程数据放入芯片,通过上电加载到FPGA中,对其进行初始化;也可在线对其编程,实现系统在线重构。基于FPGA技术的图像采集主要是通过集成的FPGA开发板,使用软件编程把图像的采集控制程序写入FPGA开发板的芯片上,通过仿真技术来进行图像的采集处理分析。通过这种方式,便于及时地发现设计中的错误,从而有效地缩短研发时间。

2 系统的组成及基本原理

该图像采集系统主要由模拟视频信号解码模块,I2C控制接口模块,采样控制模块,SDRAM存储控制模块。

SAA7113H芯片把从CCD采集来的模拟视频信号转化成YUV=422格式的数字图像信号。这些信号在同步脉冲的作用下进入采集控制器。采样控制器在奇偶场控制信号下把图像信息存入SDRAM中。该系统可以实现由隔行扫描图像到逐行图像的转化及存储。

 

2.1模拟视频信号解码

由于SAA7113H芯片具有I2C接口,该模块则通过I2C总线来配置SAA7113H初始化的信息。工作涉及SAA7113H的初始化字的配置、工作方式的配置;行同步开始和结束标志位、确定亮度、色度、饱和度的大小以及输出图像数据信号的格式。

2.2 I2C控制接口模块

I2C模块作为SAA7113H寄存器初始配置的整体控制模块。具体可以分成I2C_cmd和数据传输2个模块I2C_cmd模块为纯组合逻辑电路,完成信号的发送控制任务,配合rom _data[7.0]和rom_addr[7.0]信号完成数据的寻址与存入等工作;而数据传输模块主要和I2C_cmd模块一起组合成I2C的数据控制写入模块,他主要负责对I2C_cmd模块的输出信号进行缓存,并在其输出端输出I2C总线的串行数据SDA以及I2C总线的串行时钟信号SCL。

 

2.3采样控制模块

模块在Verilog编程语言的控制下,把SAA7113H输出的一帧灰度数字视频图像数据进行奇偶场的分开存储,达到隔行到逐行的图像转换,与此同时,通过控制行采集数和列采集数,满足720×576,25帧/s的分辨率的要求。

 

2.4 SDRAM控制存储模块

SDRAM模块作为数据的存储模块,可以具体分成SDRAM控制接口模块以及SDRAM存储模块(SDRAM)。SDRAM控制接口模块用于对数据存储的控制,发出控制读写信号来使数据存储到SDRAM模块里面;SDRAM模块则通过本身的逻辑存储单元,把从SDRAM控制接口模块出来的数据存储到自身的存储空间中。

 

3 方案模拟仿真及具体实现

3.1采样控制器的功能仿真

Idel:默认空闲状态(开始或复位状态)。此时如果收到数据8'hff,进入Statel,其他情况在本状态停留。

Statel:开始接收数据状态。此时收到数据8'h00,进入Stare2;收到数据8'hff,停留在本状态,其他情况返回Idel。

State2:数据确认成功状态。此时若收到数据8'h00,数据确认成功,接下来输出图像视频信号,进入State3,其他情况状态转到Idel。

State3:视频图像数据的接收状态,表明数据采集及传送即将开始。在此状态下,若收到数据8'hc7,进入图像奇数场采集;若收到数据8'h80,进入图像偶数场采集。其他情况回到Idel。

State4:奇场图像采集状态。奇数场开始采集,同时输出场同步及奇场信号来控制计数器计数。与此同时,状态自动恢复到Idel。为下一次的图像场的采集做好准备。

State5:偶场图像采集状态。偶数场开始采集,同时输出场同步及偶场控制信号来控制计数器计数。与此同时,状态将自动恢复到Idel。为下一次的图像场采集做好准备。

 

3.2 SDRAM控制存储模块仿真实现

(1)数据的突发式读取

SDRAM支持的实突发式的读取。本文所设置的读取设为整页式突发读取,具体的工作过程:cmd发出001b的控制信号,进行带自动预充电的SDRAM读操作,cmd_ack发出高电平应答信号,同时Cs_n低电平表示片选有效。控制信号Ras_n,Cas_n,We_n的值输出为010b,表示进行带自动预充电的SDRAM操作,紧接着进行读操作。数据在读取的时候,从CAS读取指令发出到第一笔数据输出,存在读取潜伏期(CL)。故数据的读出有一定的时钟延迟,在本文中CL=2。即延时2个时钟周期,之后数据从Dq口从SDRAM读出。如图6所示是采用序列数读入时的Modelsim的仿真图。 (2)数据的突发式写入

数据的整页式突发写过程与读操作类似:cmd控制信号010b控制进行带自动预充电的SDRAM写操作,cmd_ack应答,Cs_n低电平表示芯片选中工作。与此同时,控制信号Ras_n,Cas_n,We_n的值输出为011b,对行地址和列地址进行激活,然后发出100b写控制信号。

由于信号的写入不需要时钟延迟,故此时数据从DA-TAIN口输入,经过寄存后从Dq存入SDRAM芯片里面,从而完成采集数据的存储。如图7所示是采用序列数写入时的modelsim的仿真图。

 

4 结 语

该图像采集卡系统是基于FPGA技术,软件上则采用verilogHDL实现。此图像采集卡完全适用于静态图像以及帧数不是很多的动态图像。经过逻辑分析仪中的采集分析得知,对于一般25帧/s的图像采集要求,该图像采集系统具有很好的效果。创新点:本文是采用FPGA的图像采集技术,通过构造采样控器来实现图像信号隔行到逐行的转换,这样就避免了同时使用两个RAM来分别存储奇场信号和偶场信号。另外,与传统的RAM存储器相比,SDRAM存储器具有更高的读写速度。

 
 
 
 
    网站导航 |友情链接 | 招聘英才 | 联系我们 | 汇款方式 | 在线支付
公司地址:浙江省杭州市信义坊商街225号  邮政编码:310014
E-mail:tech@freefpga.com 服务MSN:freefpga@hotmail.com 电话(传真):0571-85084089
FPGA开发板技术支持群:7277386
Copyright © 杭州自由电子科技有限公司 2006 freefpga.com All Rights Reserved 备案序号:浙ICP备06026335号