基于USB传输及CMOS图像传感器的指纹识别仪的实现

2010-08-04 12:42:24来源: 光学仪器

引 言

    CMOS图像传感器是近年来得到快速发展的一种新型固态图像传感器。它将图像传感部分和控制电路高度集成在同一芯片里,体积明显减小、功耗也大大降低,满足了对高度小型化、低功耗成像系统的要求。与传统的CCD图像传感器相比,CMOS图像传感器还具有集成度高、控制简单、价格低廉等诸多优点。因此随着CMOS集成电路工艺的不断进步和完善,CMOS图像传感器已经广泛应用于各种通用图像采集系统中。同时作为一种PC机与外围设备间的高速通信接口,USB具有许多突出的有点: 连接简便,可热插拔,无需定位及运行安装程序,无需连接外设时关机及重启系统,实现真正的即插即用;高传输速率,USB1.1协议支持12Mb/s;不占用系统硬件资源,能够自动检测和配置外围设备,不存在硬件冲突问题。

    因此,利用CMOS数字图像传感器与USB接口数据传输来实现的指纹识别仪具有结构简单,体积小,便携化等优点。现将介绍利用OMniVision公司的CMOS彩色数字图像传感器OV762M和cypress公司的EZ—USB AN2131QC USB控制传输芯片(内部集成了增强形51内核)来实现指纹信息的采集和USB传输,同时由于指纹传感器输出数据的速率(27MB/s)与USB控制器(AN2131QC)数据传输速率(12Mb/s)的不匹配,故系统采用了SRAM和CPLD构成中间高速缓冲区。

系统结构

    应用AN2131QC、CPLD和OV762M设计的指纹识别系统硬件框图如图1所示:


                                                        图1 指纹识别硬件系统简略框架图

    首先,AN2131QC通过I2C对指纹识别传感器(OV7620)的窗口设置等参数进行配置,光学透镜把像成在OV762M的像面上后,CMOS图像传感器(OV7620)对其进行空间采样,并按照一定的帧频连续输出8位的数字图像数据Y[7∶M](输出数字图像数据的帧同步信号为VSYNC,水平有效信号为HREF,输出时钟信号为PCLK)。为了实现指纹传感器输出数据与USB控制器(AN2131QC)读取数据速度与时序的匹配,使用了SRAM(IS61C1024)和CPLD构成高速缓冲区,利用此高速缓冲区将OV762M采集的指纹数据缓存。最后AN2131QC实现与上位机的USB通信,将高速缓冲区中数据的传输到PC机进行相应图像处理。

CMOS数字图像传感器OV7620

    CMOS数字图像传感器OV762M集成了一个664×492 的感光阵列、帧(行)控制电路、视频时序产生电路、模拟信号处理电路、A/D转换电路、数字信号输出电路及寄存器I2C编程接口。感光阵列得到原始的彩色图像信号后,模拟处理电路完成诸如颜色分离与均衡、增益控制、gamMA校正、白电平调整等主要的信号处理工作,最后可根据需要输出多种标准的视频信号。视频时序产生电路用于产生行同步、场同步、混合视频同步等多种同步信号和像素时钟等多种内部时钟信号,外部控制器可通过I2C总线接口设置或读取OV762M的工作状态、工作方式以及数据的输出格式等。

    AN2131QC通过I2C总线接口设定OV762M的寄存器来控制输出帧率在0.5帧/s~3M帧/s之间变化,输出窗口在4×2~664×492 之间可调(默认输出640×48M的标准VGA格式),设置黑白平衡等。根据指纹采集的需要,窗口输出设置为: 320×288,经过设定后的OV762M输出时序如图2 所示:


                                          图2 0V762M输出时序

    VSYNC是垂直场同步信号(也是每帧同步信号,CMOS是按列采集图像的),其下降沿表示一帧图像的开始,HREF 提供了一种有效的控制方式,当输出像素行列分别处于设定窗口之间时HREF 为有效高电平,此时输出有效的视频数据,PCLK是输出数据同步信号,上升沿输出一个有效的像素Y[7∶M]。

基于CPLD技术的高速数据缓冲区的实现

    在由CPLD和SRAM构成的高速数据缓冲区中,CPLD充当了SRAM的控制器,其内部电路实现框图如图3所示:


                                    图3 SRAM高速缓冲区控制器的CPLD实现

    图3中ram_rd,raM_wr为输出到SRAM的读写信号线,raM_data,ram_addr为SRAM的数据地址总线;latch_f为SRAM的读写允许信号,当为高电平时允许对SRAM写操作,为低电平时允许对SRAM读操作;两个8路三态门用于隔离总线,当对SRAM写时,输出cpu_datA为高阻态,当对SRAM读时,将采集数据信号Y [7∶M]隔离;cpu_rds,vsync为开始读写信号,单个正脉冲将SRAM地址置0;cpu_rD作为SRAM快速读脉冲,pclk为SRAM写脉冲;irq为写满标志,用于向上提供中断标志;地址发生器用于产生SRAM地址(IS61C1024有17根地址线)。

                                                                图4 CPLD实现的仿真波形

    由图3中逻辑知道,当允许对SRAM写(latch_f=1)且采集的数据有效(href=1)时,pclk脉冲通过地址发生器产生地址(sync单个正脉冲将SRAM地址复位到0),将采集的数据Y[7∶M]写入SRAM中,当写满(写完一帧的32M像素×288像素)时,irq信号有效,通过中断将latch_f置低允许将SRAM数据读出(cpu_rds单个正脉冲将SRAM地址复位到0),此后cpu_rD通过地址发生器产生地址将SRAM中数据读出到USB缓冲区。上述逻辑仿真波形如图4 所示(由于数据线和地址线较多,故只取其中部分信号时序,cpu_datA为X 表示其值根据SRAM数据总线上具体值而定),由图4 可知,CPLD实现了对SRAM的控制,与SRAM一起组成了高速数据缓冲区。

USB快速批量传输的实现

USB控制接口芯片AN2131QC特性简介

    AN2131QC是基于USB1.1协议设计的,支持高速12Mb/s的传输速率,内嵌有增强型8051微控制器、8kB的RAM和一个智能USB内核的收发器,它包含一个I2C总线控制器和3个8位多功能I/O口,有8位数据总线和16位地址总线用于外部RAM扩展。其结构如图5所示。

                                                  图5 AN2131QC结构简图

    AN2131QC内部的USB差分收发器连接到USB总线的D+和D-上。串行接口引擎(SIE)对USB总线上串行数据进行编码和译码(即实现USB协议的打包和解包工作),同时执行错误纠正、位填充及其它USB需要的信号标准,这种机制大大减轻了8051的工作,简化了固件的编程。内核微处理器是一个增强型8051,其指令周期为4 个时钟周期并具有双DPTR指针,同时指令与标准8051兼容。它使用内部RAM存储固件程序和数据,上电后,主机通过USB总线将固件程序和外设特性描述符下载到内部RAM(也可以直接从板上E2PROM上读取),然后重连接,按照下载的特性描速符进行重枚举,这种设计可以实现软件的随时在线升级。

USB快速批量传输的实现

    当采集的指纹数据导入了由SRAM和CPLD构成的高速数据缓冲缓冲区后,要通过USB接口将数据发送到上位PC机,AN2131QC必须先将数据读入到内部USB缓冲区,因此,AN2131QC将数据传到内部USB缓冲的速度将是整个USB数据传输速度快慢的关键。为了使USB数据传输(从外部读入数据并将之传到PC机)达到最快,需要采用很多措施,下面就设计指纹识别仪固件(AN2131QC程序)中采用的USB批量传输进行探讨。

    正常情况下,AN2131QC内核结构从外部读入数据到USB的端点缓冲区,要使用的汇编程序为:

movx a,@dptr;读外部数据到acc寄存器incdptr;外部地址加1
incdps;切换DPTR指针(内核有双DPTR指针,用dps进行切换)
movx @dptr,a;将acc内容放入USB缓冲区
incdptr;USB缓冲区地址加1
incdps;切换DPTR指针

    由上述程序可知,数据在寄存器中完成操作后,都必须有一个“incdptr”和“incdps”指令来完成16位地址的增加和缓冲区指针切换。为了消除这种内部消耗,使用AN2131QC提供的一种特殊的硬件指针即自动指针(只用于内部缓冲区),8051装载USB缓冲区地址到两个AUTOPTRH (高字节地址)和AUTOPTRL(低字节地址)寄存器中,向AUTODATA写入的数据就直接存入由AUTOPTR/H2L指向的地址缓冲区中,并且内核自动增加AUTOPTR/H2L中16位地址的值。这样USB缓冲区可以像FIFO一样来顺序写入数据,节省了每次写内部USB缓冲区时的“incdptr”指令。同时内核还提供一种快速模式(只用于对外部数据操作),此模式从外部读数据“movx a,@dptr”时,直接将外部数据总线和内部缓冲区连在一起,由于使用CPLD和SRAM构成的指纹高速缓冲区具有FIFO的性质,所以使用快速模式读外部指纹数据时也节省了“incdptr”指令。将上述两种方式结合起来,读外部数据到内部缓冲区程序就只需要一条指令:movx @dptr,A(dptR存放AUTODATA寄存器地址),此指令需要两个8051机器周期(8个24MHz时钟周期)。这样,一个字节可以在333ns内读入到USB端点缓冲区。

    在USB接口数据传输一侧,当PC机要对一特定端点进行读数据并发送IN令牌,如果一个IN令牌到达时8051还没有完成向USB端点缓冲区的数据装载(读外部数据),AN2131QC就发送一个NAK握手信号来响应IN令牌,表明PC机应该在稍后再发送一个IN令牌。为了解决这种等待从而达到最快的传输速度,可以使用双缓冲技术(端点配对),使8051在前一个数据包在USB总线上传输的时候,装载块数据的下一个数据包。

结 论

    利用CMOS数字图像传感器OV762M和USB控制器AN2131QC实现的指纹仪结构简单,体积小,使用方便。指纹识别系统中使用CPLD技术实现了高速缓冲,解决了速度时序匹配问题;使用了快速批量USB传输技术实现了数据的快速传输,使指纹数据的传输达到最高速(每帧传输只用80Ms)。使用现论述的方法实现的指纹仪采集的指纹数据经PC机重现后效果如图6所示(左图是未经任何处理的重现,右图是经过平滑、细化等算法处理后的重现)。


                                 图6 采集指纹重现效果(处理前后)

关键字:CMOS图像传感器  指纹识别仪  OV7620  AN2131QC

编辑:金海 引用地址:http://www.eeworld.com.cn/mndz/2010/0804/article_2443.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
论坛活动 E手掌握
微信扫一扫加关注
论坛活动 E手掌握
芯片资讯 锐利解读
微信扫一扫加关注
芯片资讯 锐利解读
推荐阅读
全部
CMOS图像传感器
指纹识别仪
OV7620
AN2131QC

小广播

独家专题更多

富士通铁电随机存储器FRAM主题展馆
富士通铁电随机存储器FRAM主题展馆
馆内包含了 纵览FRAM、独立FRAM存储器专区、FRAM内置LSI专区三大部分内容。 
走,跟Molex一起去看《中国电子消费品趋势》!
走,跟Molex一起去看《中国电子消费品趋势》!
 
带你走进LED王国——Microchip LED应用专题
带你走进LED王国——Microchip LED应用专题
 
电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2016 EEWORLD.com.cn, Inc. All rights reserved