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和sram构成的高速数据缓冲区中,cpld充当了sram的控制器,其内部电路实现框图如图3所示:
基于cmos图像传感器与usb接口数据实现传输的指纹识别仪设计
图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所示(左图是未经任何处理的重现,右图是经过平滑、细化等算法处理后的重现)。
来源:eccn
2022年中国电驱动系统市场情况分析
PWM调光驱动ICHI7001无频闪高精度模拟简介
涂鸦智能打造专业家庭智能生活助手,实现人机交互升级
通过声音传感器的监听系统从而维护街头治安
三星推出200MP图像传感器 为旗舰智能手机提供超高分辨率影像体验
基于CMOS图像传感器和USB控制器实现指纹仪的设计
红米Pro2、魅族MX7什么时候上市最新消息:红米Pro2、魅族MX7价格先知道,红米Pro2、魅族MX7性价对比
赛灵思INT8优化为嵌入式视觉应用性能和计算方法
尴尬了 疯传的iPhone8会是5寸屏还是5.8寸屏
firefly神经网络硬件加速简介
SSD级的速度和容量!aigo国民好物固态U盘U393表现很惊喜
如何建设智能体?华为助力深圳向全场景智慧之城迈进
智能手表后壳的防水测试该怎么做,需要用到什么设备
掌握一些关于晶体振荡器的知识
Microchip在中国推出PIC单片机系列技术培训研讨会
台积电官宣:核准不超过1亿美元额度认购Arm股票
直流电子负载在电子电器研发中的重要性
华为发布会下午2点30闪耀登场,华为MatePadPro13.2详细参数
RTT下ADC+DMA裸机程序移植成功经验分享
精密光纤激光打标机未来的研究重点是什么