三、指纹采集接口的设计与实现
本文中指纹传感器MBF300的主要任务是采集指纹图像,并自动A/D转换,并把转换后的图像数据通过SPI接口传送到FPGA芯片XC3S400中,以进行指纹登记或者指纹识别比对。由此可见,指纹采集是整个指纹识别系统的第一步,采集质量的好坏将直接影响系统的性能与准确度的高低,因此,接下来将重点介绍指纹采集接口――SPI接口的设计,在此过程中,XC3S400为SPI主设备,MBF300为SPI从设备。
1、指纹采集电路
由于FPGA内部采用的SRAM存储器结构,所以需要外置一个PROM在上电时对FPGA进行程序配置。同时,还扩展了一个SRAM和Flash分别用作存储指纹程序运行时的临时数据和指纹数据信息。另外,为了实现与PC机通信,指纹采集部分还设计一个RS232接口,整个的硬件电路如图2所示。由图中可以看出,整个指纹采集的核心部件就是FPGA芯片XC3S400,它相当于常见的嵌入系统中的DSP或者ARM,控制着整个指纹采集,以及指纹登记,指纹比对,结果输出等过程。
2、指纹采集接口硬件设计与实现
本文的SPI接口主设备为FPGA芯片XC3S400,从设备为指纹传感器MBF200。由于FPGA没有特定管脚的要求,本文任意选用XC3S400的4个I/O口137―140,分别与指纹传感器MBF300的相应管脚连接,见图3所示。
3、指纹采集接口软件设计与实现
接口时钟采用传感器内部的12M时钟,整个采集指纹图像流程如图4所示,主要有初始化,调整参数,指纹采集,指纹存储几部分组成。
3.1初始化XC3S400和MBF300
XC3S400为FPGA器件,因此在系统上电后先要对其进行初始化,即从PROM中读取配置数据,以完成后面的指纹采集、特征点提取、存储、比对等工作;初始化XC3S400之后,接着初始化指纹传感器MBF300,其中部分VHDL源程序如下:
……
ENTITYini_mbf300IS
PORT(……
pgc:INOUTSTD_LOGIC_VECTOR(7DOWNTO0);
dtr:INOUTSTD_LOGIC_VECTOR(7DOWNTO0);
dcr:INOUTSTD_LOGIC_VECTOR(7DOWNTO0);
thr:INOUTSTD_LOGIC_VECTOR(7DOWNTO0);
ctrlb:INOUTSTD_LOGIC_VECTOR(7DOWNTO0);
isr:INOUTSTD_LOGIC_VECTOR(7DOWNTO0);
icr:INOUTSTD_LOGIC_VECTOR(7DOWNTO0);
……);–定义需要初始化的MBF300寄存器;
ENDini_mbf300;
ARCHITECTUREini_mbf300OFini_mbf300IS
BEGIN
pgc<=”00000110″;–初始设置图像增益为1.5;
dtr<=”00111111″;
dcr<=”00000001″;
thr<=”00101100″;
ctrlb<=”00000001″;–使能阵列,AD及时钟;
isr<=”00000011″;–清空中断;
icr<=”01011001″;–使能自动检测;……
ENDini_mbf300;……
3.2调整MBF300参数
调整MBF300参数,也就是调整PGC、DTR、DCR三个寄存器的值来调整放电时间、放电电流速率和图像的放大增益,直到获得最佳质量的图像。
3.3采集指纹图像
XC3S400按照MBF300的SPI时序要求,在MOSI信号线上发送一系列读写MBF300寄存器的指令,并由MBF300在MISO信号线上发送A/D转换后的指纹数据,直到一幅完整的256*32的指纹图像传输完毕。详细的工作流程见图5。
3.4存储指纹图像
采集到的原始指纹图像保存到片外SRAM中,地址空间为0000000000000000~FFFFFFFFFFFFFFFF。
4实验调试与结论
指纹采集接口的整个程序的VHDL源代码已经通过调试,在ModelSimSE6.1b中成功仿真,FPGA的SPI时序与MBF300一致,完全能达到指纹采集的目的。于是将MBF300设置为DTR=0x15,DCR=0x20,PGC=0x01,通过SPI接口采集到的原始指纹数据通过图2中的RS232接口传送给PC机,然后利用Matlab工具数据转化得到如图6的指纹图像,它足以满足后续的指纹特征点提取、比对等要求。
四、小结
这种基于FPGA芯片XC3S400与固体指纹传感器MBF300的SPI接口具有设计实现简单,传输速率高的特点,完全能胜任指纹采集的任务。而MBF300的高精度更能保证采集到的指纹图像的质量,这有利于简化后续的指纹图像增强、二值化等算法。总之,基于FPGA与指纹传感器的指纹采集系统的SPI接口的成功实现,为指纹识别技术的SOC片上集成打开一个良好的开端。
本文作者创新点:
虽然基于DSP或者ARM的指纹识别认证系统已经在考勤,门禁等领域实现商品化,但这样的嵌入式系统很难实现小型化集成化,更无法SOC,所以本文采用FPGA来实现指纹识别认证系统,利用FPGA高集成度,低功耗,短开发周期等优点,并以实现系统的ASIC为研究背景,具有很强的现实意义和广阔的市场空间。
只有保证高质量的指纹采集才会保证高质量的指纹识别认证,因此本文主要介绍了基于FPGA的指纹识别系统的指纹采集接口部分的设计与实现方案,经实验研究证实该接口完全能满足实际需要,这为指纹识别系统的片上集成打开了一个良好的开端。
参考文献:
[1]谢健阳,李铁才,唐降龙等.指纹识别系统的设计与实现.微计算机信息.2006;22(3-2):156-157;
[2]周宁婕,付宇卓,周煜.基于DSP的指纹识别系统硬件平台设计.计算机仿真.2005;22(1):241-243;
[3]黄林波,杜坤梅,谢建阳等.基于ARM的指纹识别算法的研究与开发.哈尔滨商业大学学报(自然科学版).2005;21(2):179-181;
[4]沈小丰,李小贝.便携式指纹识别系统的设计.自动化技术与应用.2005;24(4):55-58
[5]MBF300SolidStateFingerprintSweepSensor,DataSheet[Z].2002
[6]Spartan-3FPGAFamily:CompleteDataSheet[Z].2005
该文观点仅代表作者,本站仅提供信息存储空间服务,转载请注明出处。若需了解详细的安防行业方案,或有其它建议反馈,欢迎联系我们。