APP下载

基于FPGA的灰度图像采集系统设计*

2016-04-20赵汉青郎宝华

计算机与数字工程 2016年3期
关键词:图像采集

赵汉青 郎宝华

(西安工业大学电子信息工程学院 西安 710021)



基于FPGA的灰度图像采集系统设计*

赵汉青郎宝华

(西安工业大学电子信息工程学院西安710021)

摘要图像采集是视频监控、图像识别、多媒体数据分析等常用图像处理系统的前端基础,而采集灰度图像可以更加便捷地进行后端复杂的图像算法处理。于是设计实现一种基于FPGA的灰度图像采集系统,系统主要采用OV7670图像传感器采集图像数据,并在主控FPGA内部配合SDRAM缓存,经过系统图像预处理,采集得到所需的灰度图像并显示。该系统有性能稳定、成本低、可靠性高等优点,在工业生产、医疗视频等领域具有良好的应用价值。

关键词FPGA; 图像采集; 图像预处理

Design of Gray Image Acquisition System Based on FPGA

ZHAO HanqingLANG Baohua

(School of Electronic Information Engineering, Xi’an Technological University, Xi’an710021)

AbstractImage acquisition is the front-end basis of video monitoring, image recognition, multimedia data analysis and other common image processing system, and gray image acquired can be more easily used in the back-end complex image algorithm processing. Then a gray image acquisition system is designed and implemented based on FPGA, the OV7670 image sensor will be mainly used in the system to capture image data, and the FPGA will be taken as the master chip, with the SDRAM as data buffer, through the system image data pretreatment, the desired gray image will be acquired and displayed. The system has the advantages of stable performance, low cost and high reliability, and it has great applicable value in industrial production, medical video and other fields.

Key WordsFPGA, image acquisition, image data pretreatment

Class NumberTP391.41

1引言

近年来随着集成电路技术和图像处理技术的迅速发展,图像采集及相应处理技术在工农业生产、交通运输、环境监测、军事防护、医疗设施以及人们日常安防中有了非常广泛的应用。在图像处理领域,灰度图像被广泛使用作为图像处理的源图像,因此,采集灰度图像作为图像处理的前提步骤,具有很大的研究意义。FPGA作为当今主流的大规模可编程集成电路,采用硬件逻辑实现数据处理和运算,具有集成度高、速度快、性能稳定、开发周期短、体积小、便于升级等特点,适用于灰度图像的高速采集处理。因此,设计一种基于FPGA的灰度图像采集系统,可为后续复杂的图像处理工作打好扎实的基础。

2系统总体设计

系统设计的主要内容是基于FPGA的灰度图像采集系统,该系统要求前端采集时能够高速、准确地采集灰度图像。设计该系统以FPGA作为核心控制器,控制片外各个接口电路,将图像信号采集、预处理以及控制集中在一起,通过VGA驱动在显示器上显示采集到的灰度图像。

基于FPGA的灰度图像采集系统结构如图1所示。整个系统的硬件组成部分包括:图像传感器采集电路、FPGA主控制电路、SDRAM缓存电路和VGA显示电路等。它的基本工作原理是:以FPGA作为主控芯片,利用内部各软件模块来控制片外接口电路,通过SCCB配置接口设置图像传感器进行高速采集,初始化图像输出格式为YUV4:2:2,图像采集模块通过实时读出的行、场同步信号以及像素时钟,按照使用手册的采集时序将8位图像数据信号接收到FPGA中,FPGA将读入的8位图像数据转换成16位YUV数据,即可得到两个像素的YUV值。SDRAM将采集到的YUV图像进行缓存,由于OV7670、SDRAM和VGA数据传输不同步,因此需要依靠写FIFO和读FIFO进行数据缓冲。图像预处理模块将Y分量提取得到所需的灰度图像,通过图像显示模块在VGA显示电路驱动显示。

图1 采集系统结构

2.1FPGA选型

FPGA(Field-Programmable Gate Array)即现场可编程门阵列,具有性价比高、开发周期短、反复现场编程修改、速度快、集成度高、低功耗等特点。考虑到设计需要低成本、高性能、低功耗,本设计FPGA选用美国Altera公司的CycloneIV E系列FPGA EP4CE6F17C8,使用Verilog硬件描述语言在Quartus Ⅱ软件平台进行代码编写。硬件设计了FPGA主控制电路,FPGA主控制电路由FPGA芯片、时钟电路、复位电路、电源电路、配置电路等部分构成,保证系统可以正常的工作,完成灰度图像采集功能。

2.2图像传感器选择

图像传感器通常分为CCD传感器或者CMOS传感器。相比CCD传感器,CMOS传感器的优点是几何尺寸小、集成性高、外围电路简单、功耗低、编程方便、成本低。设计时选择美国Omnivision公司的CMOS图像传感器OV7670。它体积小,工作电压低,价格低廉,提供单片VGA摄像头和影像处理器的所有功能。其VGA图像采集速率最高达到30帧/s,感光阵列共有656*488个像素,其中有效像素为640*480个。通过SCCB(Serial Camera Control Bus)总线控制,可以输出Raw RGB, RGB 5∶6∶5/5∶5∶5/4∶4∶4,YCbCr(YUV) 4∶2∶2等数据格式,并具有曝光控制、伽马曲线、白平衡、增益控制、饱和度、色度调整等图像处理功能。

3系统功能模块设计

在FPGA内部均采用Verilog硬件描述语言在Quartus Ⅱ软件中进行功能模块设计,各个模块间相互配合,完成所需功能。

1) 图像数据采集模块:FPGA对OV7670进行初始化,即按照SCCB总线时序协议配置OV7670内部200多个寄存器,对图像数据的格式参数进行设置。SCCB总线协议与I2C总线协议相似,如图2所示,因此适当修改I2C总线协议即可编写SCCB总线配置模块。寄存器配置如图3所示,SCCB总线协议的第一个字节是ID地址,第二个字节是选择配置OV7670芯片中的寄存器地址,第三个字节写入对应的配置参数,结束时从SDAT线上读取应答信号。

图2 SCCB总线协议

图3 SCCB配置数据

设计选择图像输出格式YUV 4∶2∶2格式,且输出顺序为UYVY,通过SCCB总线协议配置相应的寄存器。几个重要的寄存器配置如表1所示。图像数据采集模块分为两个小模块,分别是根据SCCB协议和寄存器参数配置编写的SCCB总线配置模块,以及根据图像采集时序编写的图像采集控制模块,根据图4的时序可以准确接收采集的图像数据。

表1 重要寄存器配置

图4 图像采集时序

Quartus Ⅱ软件平台集成了Signal Tap Ⅱ逻辑分析仪,利用FPGA内部剩余RAM资源可以捕获和显示实时信号,图5就是实际对图像采集时的数据输出情况。调试CMOS图像传感器时设置为固定UV输出,调试结果与时序图相同,当VSYNC场有效信号后,行有效信号HERF上升沿开始采集,PCLK是连续的,每个时钟采集一次。采集图像的每一个像素的YUV要分两次采集,第一次采集U0Y0,第二次采集V0Y1,亮度信号Y0和Y1共用色度信号U0V0。

图5 SignalTap Ⅱ调试结果

2) SDRAM控制模块:在各种存储器中,SDRAM以其体积小、容量大、速度快、价格低,适合前端图像数据的采集。SDRAM主要用于16位像素信息的读写,实现对图像数据的缓冲。SDRAM的初始化过程为如图6所示。首先上电后需要200μs的延时达到输入稳定期,在这个时间内不可以对SDRAM的接口做任何操作;200μs以后对所有的L-Bank预充电,之后SDRAM进行8次刷新命令;最后对SDRAM的模式寄存器进行设置。在进行完初始化过程以后就可以正常对SDRAM进行读写,SDRAM的读写可以通过配置寄存器实现突发长度和突发类型的设置。SDRAM正常读写状态由如图7所示SDRAM控制状态机顺序执行。

图6 SDRAM初始化过程

图7 SDRAM控制状态机

由于SDRAM的读写时钟为100MHz,而OV7670和VGA的时钟为25MHz,数据传输不同步。为了保证数据完整、准确,因此需要两个FIFO(First Input First Output)进行数据缓冲来实现在不同时钟域之间的数据传输,预防亚稳态问题。使用FIFO很好地实现了异步时钟数据交换的问题,FIFO模块由Quartus Ⅱ集成的IP核生成。写FIFO模块由OV7670采集模块控制,将图像信号写入SDRAM,读FIFO模块由VGA显示模块控制,读取SDRAM中的图像信息。

3) 图像预处理模块:YUV格式的图像是由Y(亮度)、U(色彩)、V(饱和度)复合而成,它有4∶4∶4、4∶2∶2、4∶2∶0等数据格式。设计的图像传感器输出为YCbCr(YUV) 4∶2∶2格式,即水平方向上UV的采样速度为Y的一半,相当于每两个点采集一个U、V,每一个点采样一个Y,通过牺牲色度的采样率达到图像数据压缩的目的。设计中对图像传感器传输的图像数据进行预处理,将YUV格式的图像数据去除UV色度分量,单独将Y亮度分量分离出来,即可得到所需的灰度图像,进而传输给VGA显示模块正常显示。

4) 图像显示模块:设计中图像VGA显示采用640*480@60Hz显示标准,根据如图8所示VGA的工业时序标准设计VGA显示模块,按照表2的各个时间参数,产生VGA显示所用行同步信号、场同步信号以及显示所需的行坐标、列坐标。在VGA显示数据有效时期内,通过图像行列坐标控制预处理过的灰度图像数据读出,然后将图像数据及部分控制信号输入VGA驱动电路对应的接口,灰度图像数据最终经D/A转换,从VGA接口传送到显示器中进行显示。

图8 VGA工业时序

显示标准时钟(Mhz)行时序场时序abcdeopqrs640*480@60Hz25.17596486401680023348010525

4系统测试结果

图9 灰度图像采集测试平台

通过Verilog硬件描述语言在Quartus Ⅱ软件平台上进行编写了各软件模块并下载配置到FPGA开发板上,对主要模块都进行了相关调试,尤其是对图像传感器的多个相关寄存器进行了一一设置,使其可以采集到清晰、对比度较高的灰度图像。灰度图像采集系统测试平台如图9所示,测试结果如图10所示,可见系统FPGA通过图像传感器采集到了图像数据,经过图像预处理,获得所需的灰度图像,最后在显示器上显示出来。

图10 灰度图像采集测试结果

5结语

本文设计了一种基于FPGA的灰度图像采集系统,并且在开发板上采用Verilog硬件描述语言编写模块实现了灰度图像的采集以及显示。设计该系统硬件结构简单、系统稳定、速度快,为后续的复杂图像算法处理做好基础,具有一定的实用价值。同时,采用可编程逻辑器件FPGA作为主控芯片,通过部分模块的开发与升级,还可以扩展其他相应功能。

参 考 文 献

[1] 宋宜良.基于FPGA和DSP的实时图像处理系统设计[D].大连:大连理工大学,2009.

SONG Yiliang. Design of Real Time Image Processing System Based on FPGA and DSP[D]. Dalian: Dalian University of Technology,2009.

[2] 丁昊杰,刘敬彪,盛庆华.基于CMOS图像传感器的视频采集系统设计[J].现代电子技术,2012(14):178-181.

DING Haojie, LIU Jingbiao, SHENG Qinghua. Design of Video Capture System Based on CMOS Image Sensor[J]. Modern Electronics Technique,2012(14):178-181.

[3] 杨丽杰.基于FPGA的快速图像处理系统[D].哈尔滨:哈尔滨工业大学,2012.

YANG Lijie. Fast Image Processing System Based on FPGA[D]. Harbin: Harbin Institute of Technology,2012.

[4] 焦文喆,翟正军,任岚昆.基于FPGA的图像采集卡及其驱动设计[J].国外电子测量技术,2010,29(3):57-58.

JIAO Wenzhe, ZHAI Zhengjun, REN Lankun. Image Acquisition Card and Driver Design Based on FPGA[J]. Foreign Electronic Measurement Technology,2010,29(3):57-58.

[5] 熊文彬,蒋泉,曲建军,等.基于FPGA实现的视频显示系统[J].液晶与显示,2011,26(1):92-95.

XIONG Wenbin, JIANG Quan, QU Jianjun, et al. The Video Display System Based on FPGA[J]. Chinese Journal of Liquid Crystals and Displays,2011,26(1):92-95.

[6] 芦薇,徐磊.基于FPGA的OV7620视频信息获取系统[J].光学与光电技术,2010(3):49-53.

LU Wei, XU Lei. The OV7620 Video Information Acquisition System Based on FPGA[J]. Optics & Optoelectronic Technology,2010(3):49-53.

[7] 李德明,韩建,江国强.基于OV7670的图像采集及显示系统设计[J].仪器仪表学报,2010(8):30-33.

LI Deming, HAN Jian, JIANG Guoqiang. Image Acquisition and Display System Design Based on OV7670[J]. Chinese Journal of Scientific Instrument,2010(8):30-33.

[8] 王绍雷,赵进创.基于FPGA的图像边缘检测系统的设计[J].电子技术应用,2007(6):40-42.

WANG Shaolei, ZHAO Jinchuang. Design of Image Edge Detection System Based on FPGA[J]. Application of Electronic Technique,2007(6):40-42.

[9] 胡瑶荣.基于FPGA的实时视频采集系统[J].电视技术,2005,29(2):81-83.

HU Yaorong. A Real Time Video Acquisition System Based on FPGA[J]. Video Engineering,2005,29(2):81-83.

[10] 宋海吒,唐立军,谢新辉.基于FPGA和OV7620的图像采集及VGA显示[J].电视技术,2011,35(5):45-47.

SONG Haizha, TANG Lijun, XIE Xinhui. Image Acquisition and VGA Display Based on FPGA and OV7620[J]. Video Engineering,2011,35(5):45-47.

中图分类号TP391.41

DOI:10.3969/j.issn.1672-9722.2016.03.033

作者简介:赵汉青,男,硕士研究生,研究方向:图像采集及图像处理等。郎宝华,男,博士,副教授,研究方向:高精度交流电机控制、嵌入式系统等。

收稿日期:2015年9月10日,修回日期:2015年10月26日

猜你喜欢

图像采集
基于ARM—Linux的网络视频监控系统的设计
视觉导航系统中图像采集及处理技术综述