- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
基于Nios II与FPS200的半导体指纹采集系统设计
引言
信息化时代,生物识别技术作为信息安全和个人身份识别技术越来越受到人们的重视,指纹作为人体中最明显的外表特征之一,具有唯一性、稳定性、普遍性和易于采集等优点,成为人们的一种"活的身份证"。
指纹图像的采集技术是指纹识别系统中的关键技术之一[2],在指纹识别系统中具有非常关键的作用,altera公司提供的Nios II是一种软核处理器,用于可编程逻辑器件的开发环境,可以加入自定义指令或自定义外设,使用硬件来实现软件执行起来最耗时的那部分程序,因此在很大程度上提高了系统的性能,缩短了执行时间,并可以将其嵌入到低成本的cyclone II等芯片中,具有较高的性价比,本设计以DE2开发板为硬件平台,配以指纹传感器芯片和VGA接口控制电路,实现一种嵌入式自动指纹采集方案。
1 指纹采集技术发展与现状
目前市场上有多种不同的指纹采集系统,指纹采集技术主要有光学指纹采集、半导体指纹采集和超声波指纹采集[2]。
1)光学指纹采集技术。其原理是利用光的全反射(FTIR),成像区域大,功耗高,成本高。
2)超声波指纹采集技术,它被认为是指纹采集技术中最好的一种
,获取的图像是实际指纹纹路凹凸的真实反映,图像质量非常好,但成本很高,而且还处于实验室阶段。
3)半导体指纹采集技术,根据采用传感器的不同,可分为3种:硅电容指纹传感器通过电子度量来捕捉指纹图像,半导体压感式传感器,指纹的外表地形(凹凸)压在具有弹性的压感介质材料,转化为相应的电子信号,产生具有灰度级的指纹图像,半导体温度感应传感器,通过感应压在设备上较近脊线和较远谷线的温度的不同获得指纹图像。优点是成像区域小、功耗低、成本低、集成度高,适合于目前的指纹采集及其识别。目前是最为流行的指纹采集技术。
2 硬件设计
本设计采用体积小巧的Veridicom公司的FPS200[3]指纹传感器来获取指纹图像。FPS200是电容式固态指纹传感器,采用CMOS技术,具有性能高、功耗低、价格低、尺寸小、耐静电能力强、集成度高等优点,该传感器提供3种接口方式:8位微机总线接口、USB全速接口和SPI接口,其传感区域为256×300阵列,分辨率为500dpi,内置8位模/数转换器,工作电压为3.3-5V,本设计选取MCU接口方式,Nios II处理器与指纹传感器FPS200取MCU接口模式如图1所示,图2为Nios II系统的硬件架构框图。
Nios II处理器可提供高性能内核、低成本内核和标准内核3种内核,且具有可编程、可配置等特点[4],所有内核可以方便地增加指令和自定义外设,大大增强了SOPC系统的整体能力,在Nios II嵌入式处理器自定义指令和自定义外设的操作控制下,硬件可以优化那些软件执行起来最耗时的那部分程序,使其能够在FPGA中运行,从而大大地提高了系统性能和数据吞吐量,本设计中FPS200指纹采集模块和VGA显示部分使用了自定义外设的形式通过AVALON总线与Nios II CPU连接,简化了系统设计,增强了系统稳定性。
2.1 自定义指纹采集模块外设
指纹采集模块核心部分为FPS200传感器芯片,该芯片是一种触摸式CMOS传感器件,本指纹采集系统采用传感器的微处理器总线(MCU)模式,传感器的8位数据线直接与DE2开发板的扩展口相接,采用Nios II自定义外设的接口形式来对FPS200指纹图像传感器进行初始化控制和图像读取。
2.2 自定义VGA显示输出模块外设
图像的显示有许多种设备,常见得有VGA、SVGA、LCD等,本设备采用VGA显示指纹图像采集的过程,可以很直观地显示指纹的清晰图像。使用640×480模式,显示器刷新频率为60赫兹,普通的显示器都满足工业标准,因此在设计VGA控制器和自定义外设时参考了显示器的技术规格,VGA显示输出模块包括显示器及其相应的接口控制电路,采用Nios II处理器自定义外设的形式来对VGA接口进行操作,通过直接对显存的读/写来控制图像的显示,最大可以显示640×480(即显存为300KB)像素、刷新频率为60赫兹的256级的灰度图像,能够满足指纹图像的显示以及处理结果的输出需求。
3 软件设计
FPS200内含13个寄存器,其中,DTR和DCR寄存器用于指定放电电流时间,RAH、RAL、REH、REL寄存器用于指定要采集的行;CAL、CEL寄存器用于指定要采集的列;CTRLA、CTRLB、CTRLC三个为控制寄存器,主要用于控制传感器的初始化、时钟的选择及P0、P1的输出;PGC寄存器用于指定采集指纹图像的增益。
传感器初始化是指对DTR、DCR、PGC三个寄存器进行配置,以便在获得整幅图像之前启动传感器并对图像参数进行调整,根据外界环境和指纹表面的特性设置好相应参数。
本系统采用集成MCU接口,指纹采集的程序流程如图3所示。首先初始化FPS200的各个寄存器,主要是放电电流寄存器(DCR)、放电时间寄存器(DTR)和增益控制寄存器(PGC)的设置;然后查询等待,指纹被FPS200采集进入数据寄存器后,再读入内存,根据指纹采集流程图在Nios II IDE下编写相应的C语言代码,具体如下:
用HDL语言编写指纹采集芯片FPS200和VGA的外设与开发板连接,创建Nios II CPU时包括以下内容:选择标准的Nios II CPU内核[5],根据需要添加相应的components。在Interface to user logic中添加自定义指纹采集和VGA图像显示外设,在SOPC Builder中添加FPS200和VGA两个自定义外设,生成的Nios II CPU如图4所示。
4 系统实现
启动Nios II IDE环境下,创建系统软件控制部分后,运行程序即可采集指纹图像,本系统环境下采集的指纹图像5所示。
图6为作参考比较的光学采集指纹图像,指纹图像容易受指纹表面的杂质影响,手指干燥、潮湿和带有灰尘都会使成像模糊。图5为采集原始指纹后用软件读取得指纹图像,在手指干燥、潮湿和带有灰尘的情况下都可采集到很好效果的指纹图像,两种不同技术所采集的图像相比而言,光学采集的指纹比较模糊,从图5显示的结果可以看出,本系统可以简便快速地获取比较清晰的原始指纹灰度图,图像质量好,失真较小,保留了指纹纹线的边缘细节和固有形态,指纹的谷线和脊线明显,线条连接紧密。在指纹处理得处理过程中有利于提取指纹的特征参数,可以很好地应用于指纹识别系统及指纹分类系统的各种后端任务[3],如指纹自动识别系统的建库和各种查询工作。
5 小结
本文设计了一种基于Nios II处理器,采用高性能指纹传感芯片FPS200的MCU接口方式的指纹采集系统;详细地阐述了指纹采集系统的自定义外设及指纹采集程序编写。本系统采集的原始指纹图像质量高,效果好,能够满足嵌入式指纹识别系统的要求。