1 引言
图像采集是图像处理的前提。图像采集卡是常用的图像输入设备,通常占用PC机总线的一个插槽。它主要包括图像存储器单元、CCD或CMOS摄像头接口、PC机总线接口等。传统的图像采集卡大多数采用 PCI接口,这种图像采集卡适用于将模拟信号经A/D转换器转换成数字信号,或本身就是数字信号,再通过PCI接口传输至PC机,进行图像处理。但使用嵌入式系统实现图像采集和处理时,带有PCI接口的图像采集卡就不适用。为此,这里提出一种适用于嵌入式系统的数字图像采集模块设计方案,实现图像数据采集、“乒乓”模式图像数据的缓存、图像数据的采集模块外部接口,并保证图像采集的高速性和连续性。
2 图像采集系统设计
图1为图像采集系统框图。该系统包括OV7620图像数据采集板、FPGA的图像数据接收缓存板、两片SRAM构成的高速缓存以及系统外部接口。OV7620图像数据采集板主要完成图像数据采集,其图像数据总线、帧图像数据时钟、帧同步信号、行同步信号与FPGA图像数据接收缓存板相连,FPGA协调两片SRAM“乒乓模式”的读写操作,并完成模块的外部接口。
2.1 OV7620图像数据采集板
数字图像采集模块的核心是图像传感器。OV7620内置640x480的图像阵列,每秒可输出30帧以上的图像;并集成有诸如曝光控制、伽马、增益、白色控制、彩色矩阵、彩色饱和度、色彩控制、窗口等照相功能。该器件能够通过串行SCCB接口编程,通过编程实现8位和16位格式的输出。
2.1.1 OV7620电路设计
该系统设计采用OV7620的电路如图2所示。其中,SBB引脚接跳线,用于设置OV7620在复位时读取引脚状态或I2C方式配置;UV2引脚接上拉电阻,选择0V7620为QVGA工作状态(320x240);Y3引脚接上拉电阻,选择OV7620为RGB数据格式输出:Y1引脚接上拉电阻,选择 OV7620位逐行扫描模式;PWDN引脚接地,OV7620不能工作在睡眠模式;UV0~UV7,Y0~Y7,XCLKl,HSYNC,VSYNC,PCLK,HREF,FODD,FREX接26针的插座,与FPGA相连,由 FPGA输出时钟和控制信号控制0V7620。在PCB设计时,应将模拟电源和数字电源、模拟地和数字地分开。电源的输入引脚接O.1μF的去耦电容和 47μF的防止电源“浪涌”的电容。模拟地和数字地分开布线,最后在一点接地。晶体振荡器应尽可能靠近器件放置,使其起振效果达到最佳。
2.1.2 OV7620模块与FPGA板的连接
图3为0V7620模块与FPGA板的接口电路,其中3.3 V和GND是由FPGA板供电接口,UV0~UV7及Y0~Y7是图像数据的输出总线,VSYNC是图像帧同步信号,HREF是图像的行同步信号,PCLK是图像数据时钟在时钟的上升沿,图像数据发生跳变。
2.1.3 MSP430F1121组成I2C配置电路
设计中采用MSP430Fll2l单片机配置OV7620,单片机通过JTAG接口下载程序,接入32.768 kHz的低速晶体振荡器,供单片机使用。单片机的P1.1,P1.0端口分别作为I2C总线的SCLK,SDA引脚,各接10 kΩ电阻上拉到3.3 V,增强了总线的驱动能力。单片机内部程序实现P1.1和P1.0组成的I2C总线。
2.1.4 OV7620主设备工作模式
OV7620有主设备和从设备两种工作模式。该系统设计选用主设备工作模式。在主设备工作模式时,0V7620可提供以下信号:水平行同步信号 Hsync,即CHSYNC引脚(输出状态),高电平有效;垂直场同步信号Vsync,即VSYNC引脚(输出状态),高电平有效;图像数据信号,由 UV7~UV0和Y7~Y0输出。图像数据同步时钟信号Pclk,即PCLK引脚。通过这些信号,系统可采用FPGA接收OV7620的数据,正确采集每一帧图像数据,为后续数据存储和处理奠定基础。
2.2 FPGA的图像数据接收缓存板
2.2.1 图像缓存方案
采用高速SRAM切换模式,即“乒乓模式”。高速SRAM只有一个数据、地址和控制总线,可通过三态缓冲门分别接图像传感器和嵌入式系统。当图像传感器输出数据时,SRAM由三态门切换至图像传感器一侧,以使图像数据写入。当图像传感器输出数据结束后,SRAM再由三态门切换到嵌入式系统一侧以便嵌入式系统读写。在切换过程中,还应保证帧图像数据的完整性。这种方式的优点是SRAM可随机存取,同时易于得到较大容量的高速SRAM且价格适中。
2.2.2 FPGA板模块电路
图4为电源部分的设计电路。其中,FPGA板接9 V直流电源的输入,经7805后,9 V的电压转换为5 V,经电容平滑滤波后,5 V的电压输人给1117—3.3,得到3.3 V电压。电源工作指示灯VD2指示电源是否正常工作。同时,5 V的电压经1117—1.5,转换为1.5 V的电压输出,供给FPGA使用。
图5为RS一232接口电路。该接口电路采用MAX232。图中,TX_OUTl_FPGA,RX_INl_FPGA,TX_OUT2_FPGA,RX_IN2_FPGA连接至FPGA的I/0引脚,FPGA的输出经MAX232的电平转换后,通过DB9的插座与PC机串口连接,实现FPGA与PC机通信,便于后续Nios II嵌入式软核调试。为了实现高速图像的采集与存储,保证在高速图像采集中图像的完整性,必须含有缓冲区。利用两片SRAM,其成本较低、容量大、操作简单,能够完成图像数据缓冲功能。SRAM选用IDT71V416,容量为256 Kxl6 bit,访问速度为10 ns,使用两片SRAM即可构成256 Kxl6 bitx2=8 Mbit的高速缓存,从而可实现图像数据的不间断传输。
为了在FPGA内部嵌入Nios II软核,采用Flash存储器存储Nios II软核的程序,作为存储程序和数据的Flash存储器,要求操作简单、容量大、接口简单。凶此,选用TC58FVBl6-OAFT型Flash存储器。 Flash的地址总线,数据总线和控制引脚与FPGA的控制引脚相连,通过FPGA内部,挂载到Nios II软核的Avalon总线,实现读写控制。Flash的内部主要由存储阵列和控制逻辑电路、控制寄存器组成,并能产生“忙信号”。
2.3 用EPCSl配置Cyclone系列FPGA
该系统设计采用Ahera公司的Cyclone系列 EPlC6Q240C8型的FPGA。选用EPCSl系列配置器件,在主动串行配置(Active Serial Programming)工作模式配置FPGA。EPCSl是1 Mbit的Ahera专用配置器件.其本质是一块专用Flash,用于保存FPGA的配置信息。Cyclone系列是基于SRAM的FPGA器件,可通过下载电缆在线配置该器件。掉电后。FPGA内部配置信息丢失。如果配合相应配置器件。FPGA在上电时,从配置器件读取配置内容,这样即可使用。
2.4 Nios U嵌入式软核处理器
Nios II是基于哈佛结构的RISC通用嵌入式处理器软核,能与用户逻辑相结合,编程至Ahera的FPGA中。使用Nios II处理器的优势是明显的,只要FPGA的资源允许,NiosII核在同一FPGA中被植入的数量无限制,此外Nios II可植入的Ahera FPGA的系列几乎没有限制,在这方面,Nios显然优于同类产品一Xilinx的MicroBlaze。另外,在开发工具的完备性方面、对常用的嵌入式操作系统支持方面,Nios II都优于MicroBlaze。就成本而言,Nios II的使用费仅仅是其占用的FPGA的逻辑资源费。因此,选用的FPGA越便宜,则Nios II的使用费就越低。在FPGA内部的Nios II创建完成后,需要对Nios II软核处理器进行编程。利用]Nios II IDE集成调试环境编写调试程序,最后,程序下载到FPGA内部。
2.5 使用嵌入式逻辑分析仪实时测试
为了验证该系统工作,使用SignalTap II实时测试。通过JTAG把图像数据读回PC机,实时监测图像采集卡所采集的图像数据。具体的图像数据的采集验证如图6所示。
由图6看到UV总线和Y总线输出的帧图像的各像素点的原始RGB值,在行有效时(HREF为高电平)为 41,37,ll(R1,G1,B1);40,44,11(R2,G2,B2)等。
3 结语
设计是在深入研究传统的图像采集模块的基础上,针对传统的PCI图像采集卡的弊端,设计适用于便携式嵌入式系统的图像采集模块。该系统实现了图像原始数据采集及缓存,保证了图像数据的连续和完整性,具有体积小、功耗低、速度快、接口简单的优点。