Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1695428
  • 博文数量: 607
  • 博客积分: 10031
  • 博客等级: 上将
  • 技术积分: 6633
  • 用 户 组: 普通用户
  • 注册时间: 2006-03-30 17:41
文章分类

全部博文(607)

文章存档

2011年(2)

2010年(15)

2009年(58)

2008年(172)

2007年(211)

2006年(149)

我的朋友

分类:

2007-02-11 13:11:08


Modern Electronics Technique
2004年 第27卷 第8期



基于CMOS图像传感器OV5017的计算机
并口图像采集系统

孙 挺,李众立,黄玉清,罗 霞

  (西南科技大学 信息与控制工程学院 四川 绵阳 621002)

   :详细介绍了CMOS图像传感器芯片OV5017的基本性能和编程特点,以及计算机并行口的性能和使用。在此基础上,分析并给出了基于OV5017的计算机并口图像采集系统的硬件组成和软件实现。实验表明,该系统设计合理,硬件电路简洁,软件编程容易,具有较高的实用价值。

Image Acquisition System Based on PC Parallel Port and CMOS
Image Sensor OV5017



  Abstract:Based on PC parallel portand a kind of CMOS image sensor OV5017,this paper introduces the hardware and softwaredesign of the image acquisition system.This system has been proved to be well-designed and highly practical. parallel port;image acquisition


1 引言
  图像采集是数字图像处理、图像识别的基础,其应用领域非常广泛。传统的图像采集是采用图像采集卡或视霸卡将CCD摄像机的模拟视频信号经A/D采集、存储后送计算机进行处理。这种方法使用普遍,技术比较成熟,但也存在一些问题。首先,CCD摄像机的输出已转换为模拟的NTSC或PAL制式并以SVideo或混合视频信号方式输出,这样采集卡的采样点在输出时序上很难与摄像机的象素点一一对应,造成数字化后的视频图像质量损失较大,图像分辨率也受制式限制。其次,这种方法的硬件电路复杂、成本较高,不利于推广和普及使用。
  CMOS图像传感器是近年发展起来的一种新型固体图像传感器,由于采用了相同的CMOS工艺,因此可以将象素阵列与驱动电路和信号处理电路集成在同一块芯片上。而且,现在越来越多的CMOS图像传感器芯片将A/D集成进去,因此除了模拟视频输出外,还可直接输出数字视频信号和同步信号。这样,利用CMOS图像传感器构成图像采集系统时,传统图像采集卡的A/D就没有必要了,而仅需设计适当的接口电路。由于图像数据量比较大,必须选用可进行高速数据传送的接口。PC机并口的数据传输速率最大可达2 MB/s,使用和编程控制也方便,作为图像采集的接口是合适的。本文设计的系统正是基于这种思 路,图像数据源选用有数字视频输出的CMOS图像传感器OV5017,PC机通过并口对OV5017进行图像采集和控制。该系统实现了完整的图像采集功能,在此基础上通过在PC机上编写相应软件可完成后续的图像处理和识别功能。本文先介绍OV5017和PC机并口,然后给出整个系统的硬件和软件实现。

2 CMOS图像传感器OV5017
2.1 OV5017的基本性能

  OV5017是美国OmniVision公司开发的CMOS黑白图像传感器芯片,该芯片将CMOS传感器技术与数字接口组合,用于视频图像应用。OV5017芯片的基本参数[1]为:
  (1)单片1/4in视频图像传感器,48pin,逐行扫描,内置8 b A/D。
  (2)图像尺寸4.2 mm×3.2 mm,象素尺寸11μm×11μm,象素数384×288  
  (3)帧频50~0.5 Hz,曝光设定:1~1/100帧。
  (4)信噪比(S/N)>42 dB。
  (5)帧频50 Hz、焦距1.4时,最小照度为0.5 lx。
  OV5017输出模拟视频信号,格式为逐行扫描。OV5017内部嵌入了一个8 b的A/D,因而可以同步输出8 b的数字视频流D7~D0。在输出数字视频流的同时,还提供象素时钟PCLK、水平参考信号HREF、垂直同步信号VSYNC,便于外部电路同步读取图像。
2.2 OV
5017的编程功能 
  OV5017具有丰富的编程控制功能,其图像帧频、曝光时间、增益控制、Gamma校正、图像开窗等均可通过对芯片内部寄存器的读写进行设置。芯片内部有11个8 b寄存器,通过对地址线A3~A0的设置来选择寄存器,通过读写数据线D7~D0来读取或设置寄存器。在对寄存器进行读(或写)时,应使片选CSB与输出使能OEB(或写使能WEB)有效[2]
  在本系统中需设置的寄存器有2个。地址号10xx的寄存器为视频数据端口VPORT,他是只读的,当选中并读取他时,芯片向外输出数字视频流。地址号0100的寄存器为帧频控制寄存器FRCTL,他是读写的,帧频可设置在50~0.5 Hz之间。
2.3 数字图像的输出
  数字视频流的输出必须通过对芯片内视频数据端口VPORT的读取才能实现。其步骤为:
  (1)设置地址总线A3~A0为10xx;
  (2)使能片选CSB(置低电平)与输出使能OEB(置低电平)。
  则芯片输出数字视频流和VSYNC,HREF,PCLK同步信号。其水平时序和垂直时序如图1所示。

3计算机并行接口
  在计算机接口种类日新月异的今天,计算机并口作为一种传统的接口,因为其应用的广泛性和灵活性,仍然在设备控制、数据采集等领域有着广泛的应用。下面对PC机并口常用的数据传输模式和并口寄存器做一介绍。
3.1 并口常用的3种数据传输模式
  
(1)SPP
  早期PC机的并口是基于Centrionics打印机接口设计的,他的数据口只能单向传输(PC输出数据),数据输入只能靠读取4位的状态口,数据传输速率最大不超过250 kb/s[3]。这种标准被称为标准并行接口(StandardParallelPort)。
   (2)EPP
  EPP(Enhanced ParallelPort,增强型并行接口)协议最早是由Intel,Xicrom和Zenith Data System联合设计的,并于1994年在IEEE1284标准中发布了EPP1.7标准。该协议为PC和外设之间定义了双向通信的标准。目前EPP有2个标准,EPP1.7和EPP1.9,2个标准之间有一定的差别。EPP接口与传统并行口Centronics完全兼容,但与Centronics利用软件实现握手不同,EPP接口协议通过硬件自动握手,能达到500k~2M B/s的通信速率[3]。本系统并口即采用EPP模式。
  (3)ECP
  ECP(Extended Capabilities Port,扩展功能接口)是由HP和Microsoft首先推出的。同EPP一样,ECP也是双向接口,并能以ISA总线速度传输数据。ECP有缓冲区,支持DMA传输和数据压缩,尤其适用打印机、扫描仪及其他需大块数据传输的外设。
3.2 并口寄存器
  并口中有3个可访问的寄存器:数据端口(DATA)、状态端口(STATUS)和控制端口(CONTROL),他们的偏移地址分别为00h,01h和02h,基地址由FDC37C935的配置寄存器选定。常用标准并口的3个连续地址为:378h(278h),379h(279h)和37Ah(27Ah)。EPP和ECP在此基础上为每一接口保留附加地址,在附加地址上添加5个和3个寄存器[4]
  表1给出了25针DB25并口的引脚和对应寄存器的关系。

4 系统分析
  系统的设计和实现必须充分分析OV5017和PC并口的性能特点。OV5017象素数为384×288,每一个象素占1个字节(8 b),故完整的一帧图像为384×288110 kb。52OV5017具有可编程的特点,帧频可在50~0.5 Hz内改变。如果图像采集系统OV5017的帧频设置为默认的最大值50 Hz,那么要求并口的数据传输速率至少应大于50×110 kb/s=5.5 Mb/s,已远远超过并口的最大数据传输速率(2 Mb/s)。


  实际的情况由于是对图像数据进行采集,还应考虑帧、行和象素同步的问题,即需要检测VSYNC,HREF,PCLK信号,以保证同步。上述3种信号的频率成一定的比例,其中PCLK的频率最高,在帧频50 Hz下为1/2XCLK(即7.159 MHz),显然也超过并口的最大数据传输速率。
  要实现PC机并口直接对OV5017的图像数据进行采集,解决的办法只有一个:降低OV5017的帧频。那么帧频究竟应设置为多大,或者说系统能达到的最大帧频为多大,这主要取决于PC机并口适配器的最大数据传输速率。
  一般的PC机主板没有提供并口的这个参数,这里笔者给出一种自己探索出、行之有效的测量并口最大数据传输速率的简单方法。用VC(或Turbo C等其他编程语言)写一段小程序,程序内可包含N个连续的_inp(dport),其中_inp()为读I/O口的函数,dport为并口数据端口的地址。通过测量这N个_inp(dport)执行的时间,除以N就得到读并口一次的时间。执行这段程序前需要将中断关掉,执行完后再开中断(在VC中可嵌入_asm{cli}和_asm{sti})。以笔者的PC为例,实测执行一条_inp(dport)的时间为1μs,即是说该PC并口的最大数据传输速率在1 Mb/s左右。在该PC机上编写的采集图像数据的程序中,读一个象素(1个字节)需要1μs,在读之前需读PCLK状态也要1μs,再加上一定必要的余量(大概在1μs),一共读一个象素字节需要3μs左右,因此OV5017 PCLK设置的周期应大于等于3μs。即PCLK最大频率不能超333.3 kHz,相应帧频VSYNC不超过2.328 Hz。笔者的PC在OV5017帧频2 Hz下采集图像,运行正常。
  从上面分析可以知道,在本系统中,对OV5017的访问有3个,一是设置地址号0100的帧频控制寄存器FRCTL,第二个为设置地址号10xx的视频数据寄存器,最后为读数据线D0~D7及同步信号。结合OV5017的寄存器写和读连续视频数据的时序[1],可以看出仅需对OV5017的A3,A2,OEB进行控制,而A1,A0,CSB和WEB可全部置0,以节约并口本不多的控制线的资源。

5 系统硬件组成和工作原理
  基于OV5017的计算机并口图像采集系统的硬件组成如图2所示,主要由OV5017,数据缓冲器74LS245,DB25并口和PC机组成。

  系统工作原理是:
  首先设置OV5017的帧频。PC机并口控制端口的STROBE,INIT,AUTOFD输出1,0,1分别设置OV5017的OEB,A3,A2,以选中OV5017的帧频寄存器FRCTL。同时,并口控制端口的SELIN控制一个74LS245的DIR位为0,使数据缓冲器的数据传输方向为B到A。然后PC从并口的D0~D7输出数据(帧频参数)到OV5017的D0~D7。这样帧频参数就写入到FRCTL中,OV5017的帧频被设置。
  接着准备读OV5017的视频数据寄存器VPORT。PC控制OEB,A3,A2分别为0,1,0,以选中VPORT,这时OV5017输出视频数据流和同步信号。同时将DIR设为1,以使OV5017的视频数据流传送到PC。
  最后由PC机读入视频数据。PC并口的控制端口保持不变,由状态端口的ERROR,ACK,SLCT分别检测VSYNC,HREF,PCLK同步信号,由数据端口D0~D7读入8位数据。这样PC机就可以采集到完整的一帧图像数据。

6 系统软件设计
6.1 PC机BIOS设置

  从上述分析知道,并口要完成数据的双向传输,数据传输速率要求很高,SPP模式显然不行,可选用EPP模式。方法是:进入PC机的BIOS设置,在外围设备/并口方式(PeripheralSetup/ParallelPortMode)中设置为EPP。
6.2 图像采集软件的编写
  PC机上的图像采集软件是用VisualC++6.0开发的。Microsoft的VisualC++是在Windows环境下开发应用程序的一种功能强大、使用非常广泛的可视化编程工具。更为重要的是,关于VC的图像处理和图像识别的各种软件、程序、算法、资料的丰富更是其他各种编程语言无法相比的,这一点也是采用VC的重要原因之一。
  软件的核心是图像数据的采集,在此前需对OV5017进行初始化(主要是设置帧频控制寄存器和视频数据寄存器)。程序中对并口的读操作为函数_inp(),写操作为函数_outp()。图3给出了采集一帧图像数据的流程。在此基础上可以扩展连续采集图像、图像处理、图像识别等功能。

7 结语
  该系统充分利用了OV5017具有数字视频输出和可变帧频的特点,以及PC机并口高速数据传输的能力,因此硬件电路简洁,软件编程容易,可称得上是“单芯片的图像采集系统”。该系统可以应用在一些低帧速的图像采集和处理系统中(例如选票识别、汽车牌照识别等)。笔者已将他用于选票自动识别系统中,效果比较理想。系统不足之处是帧速较低,不能应用在要求高帧速的应用中。改进的办法包括在接口电路中加入图像压缩功能,尽量采用高速的并口以及加入图像缓存等。

 

参考文献

[1]赵负图.传感器集成电路手册[M].北京:化学工业出版社,2001.
[2]OmniVision Technologies Inc.OV5017[S].CA94086 USA:OmniVision Technologies Inc.,1997.
[3]Dhananjay VGadre.并行端口编程[M].韩永彬译.北京:中国电力出版社,2000.
[4]Jan Axelson.并行端口大全[M].那怡超译.北京: 中国电力出版社,2001.
阅读(1278) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~