微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > FPGA和CPLD > 基于FPGA的指纹采集接口设计与实现

基于FPGA的指纹采集接口设计与实现

时间:08-02 来源:互联网 点击:
3、指纹采集接口软件设计与实现
  
接口时钟采用传感器内部的12M时钟,整个采集指纹图像流程如图4所示,主要有初始化,调整参数,指纹采集,指纹存储几部分组成。
  
3.1 初始化XC3S400和MBF300
  
XC3S400为FPGA器件,因此在系统上电后先要对其进行初始化,即从PROM中读取配置数据,以完成后面的指纹采集、特征点提取、存储、比对等工作;初始化XC3S400之后,接着初始化指纹传感器MBF300,其中部分VHDL源程序如下:
   ……
  ENTITY ini_mbf300 IS
   PORT(......
  pgc : INOUT STD_LOGIC_VECTOR(7 DOWNTO 0);
  dtr : INOUT STD_LOGIC_VECTOR(7 DOWNTO 0);
  dcr : INOUT STD_LOGIC_VECTOR(7 DOWNTO 0);
  thr : INOUT STD_LOGIC_VECTOR(7 DOWNTO 0);
  ctrlb : INOUT STD_LOGIC_VECTOR(7 DOWNTO 0);
  isr : INOUT STD_LOGIC_VECTOR(7 DOWNTO 0);
  icr : INOUT STD_LOGIC_VECTOR(7 DOWNTO 0);
  ......);--定义需要初始化的MBF300寄存器;
  END ini_mbf300;
  ARCHITECTURE ini_mbf300 OF ini_mbf300 IS
  BEGIN
   pgc <= "00000110 "; --初始设置图像增益为1.5;
  dtr <= "00111111";
  dcr <= "00000001";
  thr <= "00101100";
  ctrlb <= "00000001"; --使能阵列,AD及时钟;
  isr <= "00000011"; --清空中断;
  icr <= "01011001"; --使能自动检测;…...
  END ini_mbf300;......
  
3.2 调整MBF300参数
  
调整MBF300参数,也就是调整PGC、DTR、DCR三个寄存器的值来调整放电时间、放电电流速率和图像的放大增益,直到获得最佳质量的图像。
  
3.3 采集指纹图像
  
XC3S400按照MBF300的SPI时序要求,在MOSI信号线上发送一系列读写MBF300寄存器的指令,并由MBF300在MISO信号线上发送A/D转换后的指纹数据,直到一幅完整的256*32的指纹图像传输完毕。

3.4 存储指纹图像
  
采集到的原始指纹图像保存到片外SRAM中,地址空间为0000 0000 0000 0000~FFFF FFFF FFFF FFFF。
  
4 实验调试与结论
  
指纹采集接口的整个程序的VHDL源代码已经通过调试,在ModelSim SE 6.1b中成功仿真,FPGA的SPI时序与MBF300一致,完全能达到指纹采集的目的。于是将MBF300设置为DTR=0x15,DCR=0x20,PGC=0x01,通过SPI接口采集到的原始指纹数据通过图2中的RS232接口传送给PC机,然后利用Matlab工具数据转化得到指纹图像,它足以满足后续的指纹特征点提取、比对等要求。
  
四、小结
  
这种基于FPGA芯片XC3S400与固体指纹传感器MBF300的SPI接口具有设计实现简单,传输速率高的特点,完全能胜任指纹采集的任务。而MBF300的高精度更能保证采集到的指纹图像的质量,这有利于简化后续的指纹图像增强、二值化等算法。总之,基于FPGA与指纹传感器的指纹采集系统的SPI接口的成功实现,为指纹识别技术的SOC片上集成打开一个良好的开端。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top