基于FPGA和EPP的图像传感器高速数据采集系统
发布时间:2008/5/27 0:00:00 访问次数:749
    
    
    来源:电子设计应用 作者:郝迎吉 刘青 涂凌志 徐尚龙
    
    引言
    
    usb、串口、并口是pc机和外设进行通讯的常用接口,但对于数据量大的图像来说,若利用串行rs-232协议进行数据采集,速度不能达到图像数据采集所需的要求;而用usb进行数据采集,虽能满足所需速度,但要求外设必须支持usb协议,而usb协议与常用工程软件的接口还不普及,给使用带来困难。有些用户为了利用标准并行口(spp)进行数据采集,但spp协议的150kb/s传输率对于图像数据采集,同样显得太低。因此,为了采集数据量大的图像数据,本文采用了具有较高传输速率的增强型并行口协议(epp)和fpga,实现对ov7620cmos图像传感器进行高速数据采集,它最高速率可以达到2mb/s。
    
    硬件电路方案
    
    图1为基于fpga和epp技术对ov7620cmos图像传感器的高速数据采集系统原理框图,它主要由三部分组成:ov7620的参数配置电路、图像采样电路以及pc读取数据电路。
    
    ov7620的参数配置电路
    
    系统在上电后需要对cmos采像芯片进行初始化,以确定采集图像的开窗位置、窗口大小和彩色或黑白工作模式等。这些参数的配置是通过ov7620芯片上提供的sccb接口进行的。
    
    sccb接口是采用一种简单、双向二线制的同步串行总线i2c总线,接口引线有scl和sda。由于89c2051没有标准的i2c总线接口,可以用软件程序来模拟i2c总线,ov7620开窗位置和开窗大小、黑白和彩色模式以及扫描方式均可通过相应寄存器来设置。这些寄存器都是可读/写的,具体操作方法如下:可以采用页写的方式,即在写寄存器过程中要先发送写允许指令ox42,然后发送写数据的目的寄存器地址,接着为要写的数据。写完一个寄存器后,cmos会自动把寄存器地址加一,程序可继续向下写,而不需要再次输入地址。读寄存器是同样过程,只不过指令改为ox43。
    
    i2c总线功能的实现完全是依靠scl、sda线上电平的状态以及两者之间的相互配合实现的。i2c总线规约中规定的条件如下:
    
    启动时序:scl为高电平时, sda出现一个下降沿;
    传输时序:在启动条件满足后,sda为稳定数据状态, scl产生一个正脉冲,将传送一位数据;
    应答时序: 在从机接收到一个完整的数据字节时,在主机释放sda的情况下,主机给scl输出一个正的时钟脉冲,从机将sda拉低,以表应答;
    停止条件:当scl为高电平时,sda出现一个上升沿,该条件可以解决多机竞争的问题,即在两个器件对话时,第三者插入会终止前者的数据通信,其主要特点在于各器件每一位都在判断总线的状态。
    
    i2c总线的启动和停止条件如图2所示。
    
    图像采样电路
    
    在隧道的平行度、无损检测、垂直度测量仪中常选用的图像分辨率为320×320,用黑白模式就能基本满足图像识别对图像特征点的要求。 因此本系统采样的参数是在图像分辨率取为320×320、黑白模式、zv图像格式中进行的。
    
    cmos图像芯片zv端口格式的输出波形如图3所示。图中vsync是垂直场同步信号,其下降沿表示一帧图像的开始(cmos是按列采集图像的),href是水平场同步信号,其上升沿表示一列图像数据的开始。pclk是输出数据同步信号,y是图像灰度信息。下面介绍fpga如何对图像传感器的数据采样。
    
    为了进行速度匹配,fpga和pc之间有两根握手信号: ready和ack。它们来协调fpga对同一个数据存储芯片的读写过程。ready是fpga通知pc图像数据已经读完信号;ack是pc通知fpga数据已读完信号,两者都是低电平有效。
    
    在数据采样期间,将ready拉高,表示正在采集,这时fpga根据ov7620的vsync、href、pclk产生图像mem_wr(写信号)和address(地址),读取ov7620的数据到高速缓存,到下一个vsync信号时,表示一帧数据已经采完,接着向pc机发送申请ready信号,表示图像采集完成,如果pc不
    
    
    来源:电子设计应用 作者:郝迎吉 刘青 涂凌志 徐尚龙
    
    引言
    
    usb、串口、并口是pc机和外设进行通讯的常用接口,但对于数据量大的图像来说,若利用串行rs-232协议进行数据采集,速度不能达到图像数据采集所需的要求;而用usb进行数据采集,虽能满足所需速度,但要求外设必须支持usb协议,而usb协议与常用工程软件的接口还不普及,给使用带来困难。有些用户为了利用标准并行口(spp)进行数据采集,但spp协议的150kb/s传输率对于图像数据采集,同样显得太低。因此,为了采集数据量大的图像数据,本文采用了具有较高传输速率的增强型并行口协议(epp)和fpga,实现对ov7620cmos图像传感器进行高速数据采集,它最高速率可以达到2mb/s。
    
    硬件电路方案
    
    图1为基于fpga和epp技术对ov7620cmos图像传感器的高速数据采集系统原理框图,它主要由三部分组成:ov7620的参数配置电路、图像采样电路以及pc读取数据电路。
    
    ov7620的参数配置电路
    
    系统在上电后需要对cmos采像芯片进行初始化,以确定采集图像的开窗位置、窗口大小和彩色或黑白工作模式等。这些参数的配置是通过ov7620芯片上提供的sccb接口进行的。
    
    sccb接口是采用一种简单、双向二线制的同步串行总线i2c总线,接口引线有scl和sda。由于89c2051没有标准的i2c总线接口,可以用软件程序来模拟i2c总线,ov7620开窗位置和开窗大小、黑白和彩色模式以及扫描方式均可通过相应寄存器来设置。这些寄存器都是可读/写的,具体操作方法如下:可以采用页写的方式,即在写寄存器过程中要先发送写允许指令ox42,然后发送写数据的目的寄存器地址,接着为要写的数据。写完一个寄存器后,cmos会自动把寄存器地址加一,程序可继续向下写,而不需要再次输入地址。读寄存器是同样过程,只不过指令改为ox43。
    
    i2c总线功能的实现完全是依靠scl、sda线上电平的状态以及两者之间的相互配合实现的。i2c总线规约中规定的条件如下:
    
    启动时序:scl为高电平时, sda出现一个下降沿;
    传输时序:在启动条件满足后,sda为稳定数据状态, scl产生一个正脉冲,将传送一位数据;
    应答时序: 在从机接收到一个完整的数据字节时,在主机释放sda的情况下,主机给scl输出一个正的时钟脉冲,从机将sda拉低,以表应答;
    停止条件:当scl为高电平时,sda出现一个上升沿,该条件可以解决多机竞争的问题,即在两个器件对话时,第三者插入会终止前者的数据通信,其主要特点在于各器件每一位都在判断总线的状态。
    
    i2c总线的启动和停止条件如图2所示。
    
    图像采样电路
    
    在隧道的平行度、无损检测、垂直度测量仪中常选用的图像分辨率为320×320,用黑白模式就能基本满足图像识别对图像特征点的要求。 因此本系统采样的参数是在图像分辨率取为320×320、黑白模式、zv图像格式中进行的。
    
    cmos图像芯片zv端口格式的输出波形如图3所示。图中vsync是垂直场同步信号,其下降沿表示一帧图像的开始(cmos是按列采集图像的),href是水平场同步信号,其上升沿表示一列图像数据的开始。pclk是输出数据同步信号,y是图像灰度信息。下面介绍fpga如何对图像传感器的数据采样。
    
    为了进行速度匹配,fpga和pc之间有两根握手信号: ready和ack。它们来协调fpga对同一个数据存储芯片的读写过程。ready是fpga通知pc图像数据已经读完信号;ack是pc通知fpga数据已读完信号,两者都是低电平有效。
    
    在数据采样期间,将ready拉高,表示正在采集,这时fpga根据ov7620的vsync、href、pclk产生图像mem_wr(写信号)和address(地址),读取ov7620的数据到高速缓存,到下一个vsync信号时,表示一帧数据已经采完,接着向pc机发送申请ready信号,表示图像采集完成,如果pc不