指纹识别系统.docx
《指纹识别系统.docx》由会员分享,可在线阅读,更多相关《指纹识别系统.docx(13页珍藏版)》请在冰豆网上搜索。
![指纹识别系统.docx](https://file1.bdocx.com/fileroot1/2023-1/26/1ade0a34-82a1-463e-8847-b84e8ee4e41b/1ade0a34-82a1-463e-8847-b84e8ee4e41b1.gif)
指纹识别系统
指纹识别系统(总15页)
指纹识别系统
指纹识别系统原理
指纹识别系统的组成原理。
如图1-1所示。
图中的学习模块负责采集用户指纹数据,对
指纹图像进行预处理,提取这些指纹的特征,作为将来的比对模板存人数据库。
而识别模块则负责采集和处理指纹图像,在提取特征后与数据库中的指纹模板进行比对,然后判断是否匹配.得出结论。
整个系统的核心就是图像处理、特征提取以及指纹比对。
图1-1
指纹采集与指纹图像处理方法
目前,主要的指纹采集方法有两种:
一种是光学采集器;另一种是用半导体传感器。
光学采集器采集指纹是通过把手指沾上油墨后按在白纸上,然后用摄像机把图像转换为电信号。
光学采集受外界干扰小、采集精度较高,但是数据量较大,因此处理时问较长。
而对于半导体传感器来说,手指的温度、湿度对其测量结果有影响,但是数据量不大,处理比较方便。
随着半导体技术的发展,半导体传感器的成本低、体积小、方便集成等优点逐步体现,它已逐步代替光学采集器。
指纹鉴定过程的第一个阶段是指纹图像的采集阶段,也就是指纹模板的录A阶段。
为了初步确定图像预处理方法,我们必须首先了解指纹传感器获得的图像的尺寸和质量。
根据不同的指纹传感器,我们设计不同的方案进行图像采集,并将从各个图中提出特征点储存到数据库中,来产生“活模板”,为后面的指纹鉴定做准备。
指纹图像处理是整个指纹识别过程的核心。
常见的指纹图像处理包括滤波增强、二值化、细化、提取特征点四个步骤。
在采集指纹图像的过程中,由于采集环境,皮肤表面的性质,采集设备的差异等各种因素的影响,采集的图像会不同程度的受到各种噪声的干扰,从而影响了采集图像的质量。
所以实际的指纹图像首先通过一个滤波增强来改善图像的质量,恢复脊线原来的结构。
特征提取算法的性能和其它指纹识别技术的好坏取决于输入指纹图像质量的好坏。
本系统采用一种用Gabor滤波与方向滤波结合对图像进行增强的方法该方法结合Gabor滤波器善下分离粘连脊线和方向滤波器善于连接断裂接线的特点,能够对低质量的指纹图像进行有效的增强。
完成图像增强后.第二步是对图像进行二值化处理。
二值化是指把灰度指纹图像根据所选取的值化为0~1取值的二值目像。
第三步,对纹路进行细化,细化能够减少大量的多余信息.细化后的指纹图像中的每条纹线都足用单像素来表示点线,更加突出了指纹特征。
最后一步则是纹路特征点的提取,在特征提取阶段,选择脊线端点和分歧点作为特征点,记录每-特征点的类别、位置和方向信息,从而得到特征点(特征模板)。
经过以上几个步骤,系统便完成对指纹图像的处理过程,得到最终模板。
依据上述指纹识别预处理算法,通过的模拟功能,实现了指纹识别预处理的DSP处理,达到了DSP处理指纹图像的应用目的。
硬件设计
系统硬件电路主要包括:
DSP芯片,TMS320VC5402传感器FPS200、FLASH、SROM以及显示和键盘结构框图如图3-1所示
图3-1
系统的核心处理单元是TI公司推出的高性能数字信号处理器TMS20VC5402片具有精度高、灵活性太、可靠性高、时分复用等特点。
其采用程序空间与数据空间完全独立的哈佛总线结构.指令的执行采用流水线结构,内部有一到多个处理内核,带有片上硬件乘法器,指令执行速度最快为几十纳秒,处理能力为100MIPS。
片内有8条总线、片上存储器和片上外围电路等硬件,并且有高度专业化的指令系统.MSC5402直接数据寻址空间为64kB,程序空间寻址能力可达1MB,但是通过程序空间来扩展数据空间将影响系统处理速度。
但是MTS320VC5402在实际使用过程中,程序和数据的一次连续处理一般都不会超过64KB,所以把核心的程序常驻TMS320VC5402内16kB空间,一般控制在l~2kB,再留7~8kB的空间调用所需的程序,程序在片内的执行速度要比片外的快许多,通过来回到程序,就能实现程序的全速运行。
数据空间可以通过CPLD片选来进行扩展。
由于DSP外部最多支持扩展32k数据空间.但是我们实际扩展了64k的SRAM,因此SRAM的A15地址线由DSP通过CPLD中的逻辑电路来控制,由此来选择使用SRAM的高地址段32k存储空间或者地址段32k存储空间,这样既符合DSP的外扩空间要求,又使系统增加了更多的数据存储空间。
CPI是由一种被IEEE认定的标准硬件描述语言VHDL(VHDL主要用于描述数字系统的结构、行为、功能和接口)实现的。
在系统终端我们选用LCM液晶显示模块,直接显示需要的指纹图像和数据结果。
要显示的图像或数据先由DSP存人缓冲器,再由LCM读取,这样可以避免了由于DSP和LCM读写速度不匹配而发生错误。
由于该模块板必须具有完全独立运行指纹图像检测;特征提取;特征提取和特征模板存储等程序综合各个方面因素因此采用了TI公司的DSP处理器TMS320VC5402该芯片的主要特征有最高频率100MHz性价比极高它含4k16bits片内ROM16k16bits片内DARAM6个DMA通道2个McBSP2个Timer外部程序空间可扩展到1M16bits可工作在3种低功耗方式(IDLE1IDLE2IDLE3)本设计中为该处理器分别扩展了512k16bits的Flash和SRAM各1片使用Altera公司的CPLD芯片EPM3032A为Flash和SRAM等产生部分控制信号利用MAX3111为DSP扩展一个与PC机通信的异步串口指纹检测芯片采用Veridicom公司的FPS200指纹检测芯片整个模块板的系统。
图像采集电路是整个系统中极其重要的部分,高质量指纹图像的采集大大的降低了在鉴定指纹时的误识率和拒识率,提高整个系统的性能。
系统采用的是美国Veridicom公司的FPS200固态指纹感器作为图像采集电路的核心器件。
芯片适用于更复杂的指纹和更恶劣的气候条件。
它采用标准COMS工艺制造,获取图像为256×300像素,分辨率为5。
OPJ。
提供二三种接口方式:
标准8位微处理器总线、集成高速USB接口、串行外设接口SPI。
图像传输速度分别为30帧/s、13帧/s、10赖/s.
FPS200芯片由256列和300行电容阵列组成,芯片内设计有两个采样保持电路用于指纹图像的采集。
通过测量每个传指感单元在每次充电后的电压值和放电后的电压值的差来获得每路。
系个传感单元的电容值。
每次捕捉每行图像后,在该内的每个传感单元内就有待数字化的电容值。
因此通过改变放电电流大小和放电时间就可以改变FPS200的灵敏度。
整个图像采集流程网如网3-2所示。
图3-2
(1)DSP处理器与FPS200指纹检测芯片相连
指纹检测芯片采用了Veridicom公司的电容式指纹传感器FPS200该芯片提供了3种可供选择的接口分别为USBSPI和并行接口使用了SPI接口与DSP的McBSP1互联DSP处理器的McBSP接口为高速全双工多通道缓存串行
接口每个McBSP接口包含6个管脚引线分别为BCLKX(传送参考时钟)BDX(传送数据)BFSX(传送帧同步信号)BCLKR(接收参考时钟)BDR(接收数据)和BFSR(接收帧同步信号)在与FPS200的SPI接口互联时DSP处理器采用主方式FPS的SPI采用从方式连接如图3-3所示
图3-3
(2)DSP存储空间扩展
由于DSP本身所带的数据存储器只有16kB的DARAM程序存储器也只有4kB的ROM我们所采集的一幅原始指纹图像就有75kB再加上指纹处理所需的数据空间以及运行和存储程序所需的程序空间芯片上所带空间无法符合使用要求必须扩展数据存储器和程序存储器在该模块板上扩展了512k16bits的Flash芯片用于存储指纹处理程序和指纹特征模板此外还扩展了512k16bits的SRAM芯片用于运行指纹处理程序提供保存采集到的指纹图像以及程序运行过程中所需的临时数据所需空间Flash与SRAM的D[0..15]以及A[0..14]总线直接与DSP的Data[0..15]以及Add[0..14]相连另外的/WE/OE/CE和A[15..18]等信号线的控制信号将通过CPLD产生相应的译码信号如图所示CPLD所产生的译码逻辑将在后面加以说明由于DSP的数据寻址空间只有6416bits在对数据空间操作时DSP的地址线A16-A19将处理高阻状态,因此无法直接对512k16bits的数据空间进行操作将128k16bits的SRAM划分给数据空间将剩下的384k16bits的SRAM和全部512k16bits的Flash划分给程序存储空间DSP在对数据空间操作时当标志位OVLY为1时系统把低32kB的寻址空间映射到片内DARAM和ROM中外部扩展的数据空间若地址在0000h~7FFFh范围内的则无法操作再把外扩的128k16bits的数据空间分成4页分时影射到8000h~ffffh的地址空间中即高32kB的数据空间如图3-4所示。
最终数据空间的寻址范围为0000h~ffffh其中高32k的空间可通过页面切换共4个页面总共有144kB的数据空间外部程序间共有896kB寻址空间为00000h~dffffh
图3-4
(3)扩展串行通信口
DSP所提供的McBSP的接口为高速全双工的串口与PC机所提供的异步串口操作方式不同无法直接相连我们通过一个异步串口收发器Max3111来实现操作方式的转换该芯片已包含了2个RS322电平转换器这样就不再需要MAX232进行电平转换利用DSP的McBSP0端口与MAX3111互联DSP的发送时钟信号(BCLKX0)作为MAX3111的串行时钟输入发送帧同步脉冲信号(BFSX0)作为MAX3111的片选信号(CS)BDX0与DIN连接作为发送数据线BDR0与DOUT连接作为接收数据线MAX3111的TX与T1IN连接RX与R1OUT连接以便利用其片内的转换器实现UART到RS-232电平的转换MAX3111的中断信号(IRQ)与DSP的外部中断相连连线如图3-5所示
图3-5
(4)其他电路设计
除以上功能模块外再就如下几点作简要说明整个模块板采用+5V单一电源供电经电源调整模块TPS767D318输出+与电压模块板中所有芯片均采用电压DSP的核心电压采用板中通过IO口HD0和HD1扩展了两个功能按钮两个均采用低电平触发方式两个按钮连线通过或门功能产生一个中断信号连接DSP的/INT2管脚使用中断方法对该两个按钮进行编程模块板中提供了一个10芯JTAG接口用于对CPLD芯片进行编程板中还提供了一个14芯的JTAG接口用以对DSP进行调试模块板中使用3组调线分别连到DSP的CLKMD1CLKMD2和CLKMD3管脚用于设置DSP的倍频的倍数。
其电路图分别如下所示
图3-6电源电路
:
图3-7时钟电路
图3-8JTAG电路
图3-9复位电路
.软件设计
识别过程及软件实现;逻辑功能实现;CPLD译码电路功能实现
我们通过EPM3032ACPLD芯片实现对存储器芯片和键盘按钮进行控制键盘按键按钮信号通过一个与运算产生中断信号Flash及SRAM的读信号通过DSP的/MSTRB与R/W信号进行或运算得到Flash及SRAM的写信号通过DSP的R/W信号的非运算后再与/MSTRB进行或运算得到在选中程序存储器时片选信Flash和SRAM芯片的片选信号由A19产生Flash以及SRAM的地址线A[15..18]直接由DSP的地址线Addr[15..18]但是要禁止用户访问程序空间的高128kB的空间即发e0000h-fffffh的地址空间在用户选中数据存储空间时在用户访问高32kB的数据空间时通过分时换页方式提供给用户这时系统通过DSP中HD5以及HD6产生换页信号通过Altera公司的QuartusII系统利用CPLD的JTAG接口对EPM3032A进行编程以下是采用AHDL硬件描述语言对CPLD逻辑功能的说明
begin
%产生键盘中断信号%
DSP_INT2=KEY1andKEY2;
%产生Flash和SRAM的读信号%
FLASH_SRAM_OE=
DSP_MSTRBor(notDSP_RW);
%产生Flash和SRAM的写信号%
FLASH_SRAM_WE=
DSP_MSTRBorDSP_RW;
if(notDSP_DS)andDSP_A15then
%产生SRAM的片选信号%
SRAM_CE=DSP_DS;
%产生SRAM的选页信号%
SRAM_A15=DSP_HD5;
SRAM_A16=DSP_HD6;
SRAM_A17=notDSP_DS;
SRAM_A18=notDSP_DS;
endif;
ifnotDSP_PSthen
%产生SRAM的片选信号%
SRAM_CE=notDSP_A19;
%产生FLASH的片选信号%
FLASH_CE=DSP_A19;
%产生Flash的地址信号%
FLASH_A15=DSP_A15;
FLASH_A16=DSP_A16;
FLASH_A17=DSP_A17;
FLASH_A18=DSP_A18;
%产生SRAM的地址信号%
SRAM_A15=DSP_A15;
SRAM_A16=DSP_A16;
SRAM_A17=DSP_A17;
SRAM_A18=DSP_A18;
%禁止访问SRAM的高128KB的地址空间%
ifDSP_A17andDSP_A18and
(notDSP_PS)then
SRAM_CE=notDSP_PS;
endif;
endif;
end;
为兼容不同的应用系统VC5402共提供了5种不同的引导方法
(1)主机接口HPI自举引导方式需执行的程序代码通过HPI由外部主处理器加载至片内存储器中
(2)8位并行EEPROM自举引导方式
(3)8位或16位并行自举引导方式自举引导程序通过外部并行接口总线读取存放于数据存储空间中的自举表自举表的内容包括欲加载的各段代码各代码段长度各代码段存放的目标地址程序入口地址以及其他配置信息
(4)8位或16位标准串行自举引导方式
(5)8位或16位I/O口自举引导方式我们采用了第3种引导方式即16位并行自举引导模块中将DSP设置为微控制器工作方式(即将MP/MC引脚置高)这样DSP复位后程序就从外部Flash的FF80H地址开始运行在FF80H处有一条跳转到Init程序的指令这样便开始运行用户自己编写的Init程序我们所编写Init程序主要完成程序搬运和模块板初始化过程程序搬运过程就是将存放在Flash中用户程序搬运到利用SRAM所扩展的程序空间初始化过程就是完成对整个模块板的硬件初始化最后在初始化结束后从用户程序的起始处开始执行等待用户的中断操作或指纹检测中断或串口通信中断或小键盘中断。
图3-10
系统主要程序流程图如图3-10所示。
系统上电时,TMS320Vc5402通过总线操作对FPS200进行设置,然后进入指纹图像采集阶段。
在该阶段TMS320VC5402处于空闲状态,CPLD占用数据总线,将数据直接存储到图像RAM中。
采集完一帧指纹图像后由CPLD通知DSP进入数据处理阶段。
在该阶段TMS320VC5402先将图像RAM中的数据分块户ROM中,然后对图像进行预处理.特征点提取等运算。
最后通过USB将结果输出给上位机。
上位机调出指纹数据库,并将提取的结果与采集的指纹数据进行比对,判断采集的指纹是否与库中指纹匹配,最后给出结论。