CMOS图像传感器的图像采集系统的研究与实现
2015-01-25姚洪涛李晓宇谷元保
姚洪涛,李晓宇,陈 磊,谷元保
(长春理工大学 计算机科学技术学院,吉林 长春 130022)
随着CMOS制造工艺的发展,CMOS图像传感器芯片以其成本低、集成度高、单一供电电压、功耗低等优点,在安防监控领域占有的市场越来越大。一款CMOS芯片在进入市场之前必须对其采集的图像质量进行评估。这就需要开发相应的图像采集系统来做对应的测试工作。目前国内外诸多公司和科研机构已经开发出了接口各异的CMOS图像传感器图像采集系统。而基于USB2.0接口的采集系统具有这样的特点,支持热插拔、传输速率高、占用系统资源少、易于扩展、兼容性好[1]。本文就研究设计了一套基于USB2.0的CMOS图像传感器图像采集与验证系统。
1 系统的组成和工作原理
本系统主要由CMOS图像传感器感光模块、FPGA逻辑控制模块、USB接口模块、上位机PC端等组成。系统总体框图如图1所示。
图1 系统总体框架图Fig.1 Block diagram of the whole system
CMOS图像传感器感光模块对目标进行成像,生成图像数据;FPGA逻辑控制模块完成数字图像的接收和存取,并协调控制各个模块;USB接口模块完成信息的传输;上位机PC端负责发送控制命令和处理显示图像数据[1]。
系统上电后,通过USB线连接到PC端,打开PC端的上位机软件,通过上位机软件把CMOS图像传感器的寄存器配置文件发送给FPGA。FPGA把USB接口传来的寄存器配置信息通过I2C总线模块传送给CMOS图像传感器。CMOS图像传感器芯片根据I2C总线传来的信息配置控制寄存器。配置的控制寄存器包括增益控制寄存器、曝光控制寄存器、白平衡控制寄存器、图像输出格式控制寄存器等。控制寄存器配置完后,CMOS图像传感器就可以采集图像了。
CMOS图像传感器把数字图像数据传输给FPGA芯片;FPGA芯片把接收到的图像信息先缓存进SRAM,待一帧图像接收完后,再读取SRAM中信息,通过USB接口传送给PC端的上位机软件;上位机软件把接收到的图像信息显示出来。
2 系统实现
2.1 CMOS图像传感器芯片外围电路设计
本系统所用的CMOS图像传感器内部既有模拟信号又有数字信号,给这两种信号电路模块分别用模拟电压与数字电压供电。设计框图如图2所示。
图2 图像传感器外围电路设计框图Fig.2 The image sensor circuit design diagram
本设计中使用的CMOS图像传感器芯片所需供电电压是3.3 V,分辨率为640X480。本设计选用的供电芯片是XC6203E332。此款芯片输入电压最大可承受8 V电压,而输出电压稳定在3.3 V,最大输出电流可达400 mA。本模块的供电电压来自USB总线的5 V电压。
本设计还为感光芯片挂载了一片华邦公司的型号为W25X80A的FLASH存储芯片。这款FLASH的最大存储容量可达8 Mb,工作电压为2.7~3.6 V,工作电流为5 mA,支持标准的SPI(串行外设接口),擦除块大小为64Kb,擦写次数可达100000次。这个FLASH芯片用来烧录成熟的寄存器配置文件,也可以用来存储将来开发菜单用的图片信息。这样感光芯片一上电就可以工作而不需要上位机来发送配置文件。
2.2 FPGA逻辑控制模块电路设计
FPGA芯片是系统的核心控制器件,使得各个模块协调工作。本设计可把芯片内部细分为数字图像信号读取控制模块、I2C总线控制模块、PROM控制模块、SRAM读写控制模块、USB控制模块等[2]。本系统选用的是Xilinx公司的XC3S400型FPGA芯片。该芯片系统门数有400 K,等量逻辑单元有8064个,可配置逻辑模块 (CLB)896个,分布式RAM大小为56 Kb,块RAM大小为288 Kb,专用乘法器16个,4个时钟管理单元(DCM),最大用户输入/输出端口数为264个。
本系统选用的PROM芯片是Xilinx公司的XCF04SVO0 2C型可编程芯片,工作电压为3.3 V,大小为4 Mb。
本系统从CMOS图像传感器采集的图像信息量大,传输速度快,输出到USB接口的速度与采集速度不匹配,这样会导致图像信息的丢失。为了使的输入与输出的速度匹配,本系统在FPGA外围挂载了两片SRAM缓存芯片,使得传输可以进行乒乓操作。FPGA先把从CMOS图像传感器芯片采集的图像数据存储进SRAM-1中,待存储完一帧图像后,写地址指针指向SRAM-2,同时读地址指针指向SRAM-1,SRAM-2存储接下来一帧的图像数据。在向SRAM-2中写数据的同时,FPGA从SRAM-1中读出图像数据,输出给USB接口模块。待SRAM-2写完一帧图像数据时,写地址指针指向SRAM-1,读地址指针指向SRAM-2。本系统选用的是Cypress公司的型号为CY7C1069AV33的SRAM芯片,工作电压3.3 V,大小为2 MB。
2.2.1 FPGA芯片与图像传感器接口设计
FPGA芯片与CMOS图像传感器芯片的接口电路设计框图如图3所示。
图3 FPGA与感光芯片接口电路设计Fig.3 FPGA and the photosensitive chip interface circuit design
FPGA的I2C控制模块,通过SDA数据总线和SCL时钟信号线把寄存器配置信息写入CMOS图像传感器芯片内部的寄存器。通过寄存器来设置感光芯片的工作方式。工作过程中,上位机也可以通过这两个信号线读取CMOS图像传感器内部寄存器的值。FPGA芯片XC3S400的8个I/O口与感光芯片的8条数字图像数据输出线相连。VSYNC为帧同步信号,其下降沿表示一帧图像的开始。HREF为行同步信号,其高电平期间表示输出某行的图像数据。PCLK为27 MHZ的像素同步时钟信号。一帧图像开始后,当HREF为高电平,并且PCLK是上升沿时,输出的图像数据DATA[7:0]才为有效数据。FPGA芯片根据采集到的VSYNC、HREF和PCLK信号信息来控制CY7C1069AV33的读写。
2.2.2 FPGA芯片与USB模块的接口设计
USB接口芯片选用的是Cypress公司的USB2.0接口芯片CY7C68013A。这款芯片内部集成了USB2.0收发器,支持12 Mbps的全速传输和480 Mbps的高速传输,内部还集成了智能串行引擎 (SIE)、增强型8051控制器、通用可编程接口(GPIF)、8.5 KB的RAM和4 KB的FIFO存储器[3-6]。USB芯片与FPGA的接口电路设计如图4所示。
图4 USB芯片与FPGA芯片接口设计Fig.4 Design of USB interface chip ang FPGA chip
图4 中FD[15:0]作为数据总线,用于传输数字图像信息;FIFOADR[1:0]为 4个 FIFO 的地址信号;FLAGA、FLAGB、FLAGC、FLAGD为FIFO从模式下的状态输出信号;CLKOUT为12MHZ的时钟输出信号;IFCLK为外部输入的数据同步时钟信号;SLWR为低电平有效的写FIFO使能信号;SLRD为FIFO的读使能信号;SLOE是输出使能信号;INT1中断标志信号,当传输完一帧图像信息时产生一次中断;PKTEND为包结束标志信号,此信号低电平有效[7]。
FPGA向USB模块传送数字图像信息时,先通过FIFOADR[1:0]地址线选择与端点对应的FIFO缓冲区。然后通过FIFO的状态信号线判断所选定FIFO缓冲区是否为满状态。如果所选FIFO为满状态则FPGA不发送数据,进入等待状态;如果所选FIFO为未满状态则FPGA拉低SLWR信号一个IFCLK周期,告诉USB模块写周期开始[6]。而后,FPGA把发送到数据送到FD[15:0]数据总线上,USB模块在IFCLK的上升沿把数据从数据总线上读进FIFO缓冲区。
3 系统测试
图像采集电路把采集的图像数据传输给PC端,PC端的上位机软件把采集的数字图像数据按所需格式通过VGA显示器显示出来。采集的图像如图5所示,图像大小为640X480。从图中可以看出采集的图像清晰,色彩鲜艳,无坏点,物体边缘也比较平滑,由此可以判断所设计的CMOS图像传感器图像采集系统达到了设计要求。
4 结束语
本文研究了如何配置图像传感器的控制寄存器,并对数据图像数据采集、数据存储、数据传输也做了深入的研究。研究设计的数字图像采集系统,具有传输速度快、功耗低、成本低、可扩展性强等特点。
图5 系统采集的测试图像Fig.5 The test image acquiring system
[1]赵群英.一种基于USB2.0超高分辨率图像采集系统设计[J].硅谷,2012(12):61-62.ZHAO Qun-ying.Design of a ultra high resolution image acquisition system based on USB2.0[J].Silicon Valley,2012(12):61-62.
[2]潘明,陈元枝,李强.基于FPGA的图像采集系统的设计[J].研究与开发,2012,31(3):58-61.PAN Ming,CHEN Yuan-zhi,LI Qiang.The design of image acquisition system based on FPGA[J].Research and Development,2012,31(3):58-61.
[3]罗向东.基于FPGA和CY7C68013A的USB接口系统设计[J].科技广场,2010(6):96-98.LUO Xiang-dong.Design of USB interface system based on FPGA and CY7C68013A[J].Technology Square,2010(6):96-98.
[4]王寅超,郑正奇.基于FPGA和USB接口的多通道数据采集系统[J].电子设计工程,2011,19(23):163-165.WANG Yan-chao,ZHENG Zheng-qi.Multi channel data acquisition system based on FPGA and USB interface[J].Electronic Design Engineering,2011,19(23):163-165.
[5]张莉,李敬文,陈永禄.基于FPGA和USB的图像采集系统设计与实现[J].计算机与信息技术,2008(8):43-45.ZHANG Li,LI Jin-wen,CHEN Yong-lu.Design and implementation of image acquisition system based on FPGA and USB[J].Computer And Information Technology,2008(8):43-45.
[6]张思杰,赵泰,汪振兴,等.基于FPGA的USB接口数据采集系统设计[J].电子技术应用,2011(5):98-100.ZHANG Si-jie,ZHAO Tai,WANG Zhen-xing,et al.Data acquisition system of USB interface based on FPGA[J].Application of Electronic Technique,2011(5):98-100.
[7]张通.基于USB2.0和FPGA的图像采集存储系统研究[D].大连:大连理工大学,2009.