基于USB传输及CMOS图像传感器的指纹识别技术

分享到:

CMOS图像传感器是近年来发展迅速的新型固体图像传感器。该芯片实现了图像传感器与控制电路的高度集成,使芯片体积明显减少,功耗也大大降低,满足了对高小型化、低功耗成像系统的要求。同传统的 CCD图像传感器相比, CMOS图像传感器具有高集成度、控制简单、价格低廉等优点。所以,随着 CMOS集成电路工艺的不断改进和完善, CMOS图像传感器已被广泛应用于各种通用图像采集系统中。USB同时又是 PC机和外设之间的高速通讯接口,它有很多突出之处:连接简单,可以热插拔,无需定位和运行安装程序,无需连接外设时关闭和重新启动系统,实现真正的即插即用;高传输速率,USB1.1协议支持12Mb/s;不占 用系统硬件资源,能够自动检测和配置外围设备,不存在硬件冲突问题。
 
因此,利用CMOS数字图像传感器与USB接口数据传输来实现的指 纹识别仪具有结构简单,体积小,便携化等优点。现将介绍利用CMOS彩色数字图像传感器OV762M和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 所示:
CMOS
 
图2 0V762M输出时序
 
VSYNC是垂直场同步信号(也是每帧同步信号,CMOS是按列采集图像的),其下降沿表示一帧图像的开始,HREF 提供了一种有效的控制方式,当输出像素行列分别处于设定窗口之间时HREF 为有效高电平,此时输出有效的视频数据,PCLK是输出数据同步信号,上升沿输出一个有效的像素Y[7∶M]。
 
三、基于CPLD技术的高速数据缓冲区的实现
在由CPLD和SRAM构成的高速数据缓冲区中,CPLD充当了SRAM的控制器,其内部电路实现框图如图3所示:
图像传感器
 
图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总线上传输的时候,装载块数据的下一个数据包。
 
五、结论
采用OV762M CMOS数字图像传感器和AN2131QC USB控制器,实现了结构简单、体积小、使用方便的指纹仪。采用 CPLD技术在指纹识别系统中实现了高速缓冲,解决了速度时序匹配问题;采用快速 USB传输技术实现了数据的快速批量传输,使得指纹数据传输速度最大(每帧传输速度仅为80 Ms)。用本文讨论的方法实现的指纹仪测得的指纹数据在 PC上再现效果如图6所示(左图为未经处理的再现,右图为经光滑、细化等算法处理的再现)。
图像传感器
图6采集指纹重现效果(处理前后)
 
本文为原创,转载请注明网址:https://rohm.eefocus.com/article/id-1887
继续阅读
基于USB传输及CMOS图像传感器的指纹识别技术

CMOS图像传感器是近年来发展迅速的新型固体图像传感器。该芯片实现了图像传感器与控制电路的高度集成,使芯片体积明显减少,功耗也大大降低,满足了对高小型化、低功耗成像系统的要求。同传统的 CCD图像传感器相比, CMOS图像传感器具有高集成度、控制简单、价格低廉等优点。