广东工业大学学报  2015, Vol. 32Issue (1): 71-74, 97.  DOI: 10.3969/j.issn.1007-7162.2015.01.015.
0

引用本文 

应小军, 李瑜煜. 基于FPGA的CMOS图像传感器驱动电路设计[J]. 广东工业大学学报, 2015, 32(1): 71-74, 97. DOI: 10.3969/j.issn.1007-7162.2015.01.015.
Ying Xiao-jun, Li Yu-yu. Design of Drive Circuit of CMOS Image Sensor Based on FPGA[J]. Journal of Guangdong University of Technology, 2015, 32(1): 71-74, 97. DOI: 10.3969/j.issn.1007-7162.2015.01.015.

基金项目:

广东省省部产学研项目(2012B090400513)

作者简介:

应小军(1989-),男,硕士研究生,主要研究方向为嵌入式及图像处理算法。

文章历史

收稿日期:2013-09-27
基于FPGA的CMOS图像传感器驱动电路设计
应小军, 李瑜煜     
广东工业大学 材料与能源学院,广东 广州 510006
摘要: 提出了一种基于现场可编程门阵列(Field Progammable Gata Array, FPGA)的图像实时采集和显示的驱动电路设计方案.该方案采用了OmniVision公司的OV7670 CMOS图像传感器,选用Altera公司Cyclone Ⅱ系列EP2C8Q208C8N作为逻辑控制芯片FPGA,构建了图像传感器驱动电路,并用Modelsim进行仿真验证.仿真结果表明,系统能够很好地满足设计时序要求,并输出稳定的图像.
关键词: 图像传感器    FPGA    I2C    CMOS图像传感器    
Design of Drive Circuit of CMOS Image Sensor Based on FPGA
Ying Xiao-jun, Li Yu-yu     
School of Materials and Energy, Guangdong University of Technology, Guangzhou 510006, China
Abstract: The paper proposes a project of drive circuit of real-time image capturing and displaying based on FPGA. The OmniVision′s OV7670 is chosen as CMOS image sensor, while Altera′s Cyclone Ⅱ series EP2C8Q208C8N as the logic control chip. The drive circuit has been verified by Modelsim. The simulation results show that the system meets the requirements of timing and stable image output perfectly.
Key words: image sensor    field progammable gata array (FPGA)    I2C    CMOS image sensor    

CMOS图像传感器是近些年发展较快的一种新型图像传感器.与CCD相比,CMOS图像传感器具有体积小、成本低、重量轻、功耗低、编程方便、易于控制等优点.CMOS图像传感器已经广泛应用于各种通用图像采集系统中.随着CMOS集成电路设计和工艺的不断进步和完善,CMOS正在朝着高分辨率,高灵敏度,低噪声,大动态范围,高智能化的方向不断发展[1-5].采用FPGA作为主控芯片,整个系统具有设计方便、仿真简单和传送高速数据时有更小的高频噪声干扰等优势[6-8].因此,提出基于FPGA的CMOS图像传感器实时采集和显示的设计方案, 为图像检测系统项目的研究提供了有价值的设计参考.

1 系统结构

系统整体结构包括4部分:CMOS图像传感器图像数据采集模块、FPGA逻辑控制模块、SRAM读写模块及VGA显示模块.图 1为系统结构框图.

图 1 系统结构框图 Figure 1 Diagram of the circuit system structure

系统以Altera公司的FPGA(现场可编程逻辑器件)EP2C8Q208C8N作为逻辑控制器[9],利用I2C(Inter-Integrate Circuit)总线配置CMOS图像传感器,采用两片SRAM (静态随机存储器)进行乒乓读写.FPGA根据CMOS图像传感器输出的同步信号,将CMOS图像传感器采集到的图像数据存储到其中一片SRAM中,同时读取另外一片SRAM,送到VGA显示器进行显示.整个系统的时序控制和数据流的读写控制都由FPGA来完成.

2 电路设计

本文采用自顶向下的模块化设计思想,在Quartus Ⅱ平台下用Verilog硬件描叙语言来描叙整个驱动电路.如图 2所示,系统由以下4部分构成:时钟模块、图像采集模块、存储器控制模块、VGA显示模块.

图 2 电路原理图 Figure 2 Schematic diagram of circuit

时钟模块把输入FPGA的20MHz时钟进行倍频,生成25MHz与50MHz时钟,分别输入VGA显示模块和存储器控制模块.图像采集模块的输入时钟为20MHz,该模块由I2C配置模块和图像数据采集模块构成,图中所示为cmos_i2c与cmos_work两大模块.在cmos_i2c模块中对寄存器进行配置,输出时钟SIO_C与双向数据sio_d.cmos_work, 主要完成取亮度信号的同时过滤掉色差信号的功能,最后输出写地址信号w_address与数据w_data.存储器控制模块对两片SRAM进行乒乓操作,即主要对图像采集模块输出的数据w_data进行乒乓读写.上述乒乓操作主要是由read_over与write_over两个输入信号进行SRAM读写切换,即采集到的数据进行SRAM存储与SRAM数据输出至VGA显示模块.最终,VGA显示模块对VGA显示的时序进行控制,达到很好的VGA显示效果.

2.1 图像采集模块

图像采集模块由I2C配置模块和图像数据采集模块构成[10-11].OV7670图像传感器的初始化配置由SCCB总线接口编程完成,可以输出整帧、子采样、取窗口等方式的各种分辨率8位影响数据.用户可以完全控制图像质量、数据格式和传输方式.所有图像处理功能过程包括伽玛曲线、白平衡、饱和度、色度等都可以通过SCCB接口编程[12].而用于OV7670图像传感器配置的SCCB总线与I2C总线类似,它是一种双向二线制同步串行总线[13].因此,本文采用I2C总线对OV7670图像传感器进行配置.本设计只对主要的几个寄存器进行重新配置,其他采用默认设置.

图像数据采集模块主要完成对I2C总线上的主从设备(传感器和其内部寄存器)的起始、读写和停止的时序控制[14].首先,要对OV7670内部寄存器进行配置,当write_en=1时,FPGA向OV7670发送写地址0X42,然后OV7670向FPGA发送应答信号;FPGA收到应答后,发送要进行写操作的寄存器的地址,然后OV7670向FPGA发送应答信号,FPGA收到应答后再发送写入该寄存器的数据,这样对每个寄存器依次进行写操作,其中发送每个地址和数据必须应答.当write_en=0时, 对OV7670内部寄存器进行读操作,过程和写操作类似,而本文主要对其进行配置,也即对OV7670进行写操作.图 3为I2C时序控制流程图.

图 3 I2C时序控制流程图 Figure 3 Flow chart of I2C timing control
2.2 存储器控制模块

本文采用两片SRAM存储器进行乒乓操作,存放分辨率640×480每帧的图像数据.两块SRAM通过寄存器wren来进行切换,当wren=1时读出寄存器SRAM_ED_2中的数据,并把读地址r_address送入寄存器SRAM_EA_2,同时向寄存器SRAM_ED_1写入数据,并把写地址w_address送入寄存器SRAM_EA_1;当wren=0时两块SRAM切换,此时读出寄存器SRAM_ED_1数据,并把读地址r_address送入寄存器SRAM_EA_1,同时向寄存器SRAM_ED_2写入数据,并把写地址w_address送入寄存器SRAM_EA_2.由于采用乒乓机制,图像数据的采集与显示并行,从而提高了图像采集和显示的效果.相应Verilog代码如下.

……

reg wren;

assign SRAM_EA_1 = wren ? w_address : r_address;

assign SRAM_EA_2 = wren ? r_address : w_address;

assign SRAM_ED_1 = wren ? w_data : 8'hzz;

assign SRAM_ED_2 = wren ? 8'hzz : w_data;

assign r_data = wren ? SRAM_ED_2 : SRAM_ED_1;

……

2.3 显示模块

对于普通的VGA显示器,共有5个信号:R、G、B三基色信号,行同步信号HSYNC和场同步信号VSYNC.本系统中,FPGA产生分辨率640×480(约30万像素),刷新频率60Hz的VGA时序信号,包括行同步、场同步及颜色信号[15].其中的颜色信号为灰度信号,即为CMOS图像传感器输出的YUV格式的信号去除色差信号U、V所剩下的亮度信号.该灰度信号经过电阻网络构成的D/A转换电路输出VGA显示.

2.4 时钟模块

本系统中,输入CMOS图像传感器时钟为25MHz,SRAM读写模块时钟为50MHz,VGA显示需要25.175 MHz,系统提供该模块25 MHz时钟频率.而外部晶振是20MHz,在Quartus ii中用MegaWizard工具生成倍频模块,调用FPGA内部锁相环,进行倍频可得到上述的时钟频率.

3 系统功能仿真结果及分析 3.1 CMOS采集模块仿真分析

CMOS采集模块中,输出数据格式为YUV(也称YCrCb)4:2:2的格式,YUV的输出时序为Y-U-Y-V.由于相对于色差信号,人眼对亮度信号Y更为敏感,因此,对输入图像数据去除色差信号U、V,只取亮度信号Y.

该模块Modelsim仿真结果如图 4所示,首先CMOS传感器输出数据为8位数据DATA_IN,给DATA_IN的值为图中序列01-80-2a-e8-5c-48-4d……利用两个16位寄存器data_reg1和data_reg2可以实现分别存储和输出,相当于隔一个PCLK时钟取一个DATA_IN的值.最终,整个输出只有亮度信号数据w_data,而没有色差信号数据.

图 4 CMOS采集模块仿真波形图 Figure 4 Simulation waveform diagram of CMOS capture module
3.2 SRAM控制模块仿真分析

在SRAM控制模块中,设置read_en为1,即读使能,则CMOS采集的数据一直VGA输出.两块SRAM通过寄存器wren来进行切换.SRAM控制模块Modelsim仿真波形如图 5所示,当wren=1时把SRAM_ED_2设为高阻态,此时读寄存器SRAM_ED_2数据,并把读地址r_address送入寄存器SRAM_EA_2,同时向寄存器SRAM_ED_1写入数据w_data,并把写地址w_address送入寄存器SRAM_EA_1;当wren=0时两块SRAM读写状态、地址和数据切换.整个数据的传输在wren由1变为0的时刻进行切换,写入的数据w_data分别输出至寄存器SRAM_ED_1和SRAM_ED_2,没有出现丢数据的情况.

图 5 SRAM模块仿真波形图 Figure 5 Simulation waveform diagram of SRAM module
3.3 显示模块仿真分析

VGA标准输出分辨率为640×480,如图 6所示,r_address计数到307200(640×480)时,即为显示一帧图片的像素大小(约30万像素).

图 6 显示模块仿真波形图 Figure 6 Simulation waveform diagram of displaying module
4 结论

本系统采用FPGA作为逻辑控制芯片,利用CMOS图像传感器进行图像采集,两片SRAM作为帧存芯片.仿真结果及显示表明,系统实现了SRAM的乒乓操作,设计的CMOS图像传感器,其驱动时序表明其能够很好地满足实时图像输出需求,为干电池缺陷在线检测系统的研究提供了有力支持.

参考文献
[1]
王旭东, 叶玉堂. CMOS与CCD图像传感器的比较研究和发展趋势[J]. 电子设计工程, 2010, 18(11): 178-181.
Wang X D, Ye Y T. Comparative research and future tendency between CMOS and CCD image sensor[J]. Electronic Design Engineering, 2010, 18(11): 178-181. DOI: 10.3969/j.issn.1674-6236.2010.11.050.
[2]
程开富. CMOS图像传感器的最新进展及其应用[J]. 光电机信息, 2003(1): 16-26.
Cheng K F. CMOS image sensor and its application of the latest[J]. OME Information, 2003(1): 16-26.
[3]
Sunetra K M, Sabrina E K, Russell C G, et al. CMOS active pixel image sensors for highly integrated image systems[J]. IEEE Journal of Solid State Circuit, 1997, 32(2): 187-197. DOI: 10.1109/4.551910.
[4]
Blank N Z. CCD versus CMOS - has CCD imaging come to an end[J]. Photogrammetric Week, 2001(1): 131-137.
[5]
Kleinfelder S, Lim S, Liu X Q, et al. A 10000 frames/s CMOS digital pixel sensor[J]. IEEE Journal of Solid State Circuits, 2001, 36(12): 2049-2059. DOI: 10.1109/4.972156.
[6]
曾桂英, 潘金艳. 基于FPGA的CMOS图像传感器采集系统设计[J]. 科学技术与工程, 2010, 10(3): 692-695.
Zeng G Y, Pan J Y. Design of the CMOS Sensor image acquisition system based on FPGA[J]. Science Technology and Engineering, 2010, 10(3): 692-695.
[7]
谢磊. 基于FPGA的VGA图像控制器的设计与实现[J]. 新乡学院学报, 2009, 26(6): 51-53.
Xie L. Research and design of VGA display system based on FPGA[J]. Journal of Xinxiang University, 2009, 26(6): 51-53.
[8]
侯舒志, 姚素英, 周津, 等. CMOS图像传感器时序控制方法研究与实现[J]. 固体电子学研究与进展, 2007, 27(1): 119-122.
Hou S Z, Yao S Y, Zhou J, et al. Research andimplementation of timing control for CMOS image sensor[J]. Research & Progress of SSE, 2007, 27(1): 119-122.
[9]
Corporation A. Cyclone FPGA family datasheet[EB/OL]. [2011-04-01]. http://www.altera.com.cn.
[10]
丁昊杰, 刘敬彪, 盛庆华. 基于CMOS图像传感器的视频采集系统设计[J]. 现代电子技术, 2012, 35(14): 178-181.
Ding H J, Liu J B, Sheng Q H. Design of video acquisition system based on CMOS image sensor[J]. Modern Electronic Technique, 2012, 35(14): 178-181. DOI: 10.3969/j.issn.1004-373X.2012.14.056.
[11]
刘泽伟, 解梅. 基于FPGA的视频图像采集系统的设计与实现[J]. 仪器与仪表学报, 2008, 29(4): 382-385.
Liu Z W, Xie M. A system design and realization for video image acquirement based on FPGA[J]. Chinese Journal of Scientific Instrument, 2008, 29(4): 382-385.
[12]
OmniVision Technology Inc. OV7670/OV7171 CMOS VGA (640x480) CAMERACHIP with OmniPixel Technology[EB/OL]. [2006-04-05]. http://www.ovt.com.
[13]
王晗, 李翔, 李忠敏, 等. 基于OV7670的图像采集与显示设计[J]. 中国科技信息, 2013(11): 90-91.
Wang H, Li X, Li Z M, et al. Image acquisition and display design based on OV7670[J]. China Science and Technology Information, 2013(11): 90-91. DOI: 10.3969/j.issn.1001-8972.2013.11.045.
[14]
Philips Semiconductors. The I2C-bus specification[EB/OL]. [2000-01]. http://www.philips.com.cn.
[15]
Video Electronics Standards Association. VESA and industry standards and guidelines for computer display monitor timing[EB/OL]. [2004-10-29]. http://bbs.elecfans.com.