指纹识别系统

更新时间:2023-10-15 16:47:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

指纹识别系统

1.1 指纹识别系统原理

指纹识别系统的组成原理。如图1-1所示。图中的学习模块负责采集用户指纹数据,对 指纹图像进行预处理,提取这些指纹的特征,作为将来的比对模板存人数据库。而识别模块则负责采集和处理指纹图像,在提取特征后与数据库中的指纹模板进行比对,然后判断是否匹配.得出结论。整个系统的核心就是图像处理、特征提取以及指纹比对。

指纹采集指纹库生成指纹图像预处理(极值滤波)(一次平滑)(锐化)(二次平滑)二值化细化提取特征点指纹匹配输出结果

图1-1

1.2 指纹采集与指纹图像处理方法

目前,主要的指纹采集方法有两种: 一种是光学采集器;另一种是用半导体传感器。光学采集器采集指纹是通过把手指沾上油墨后按在白纸上,然后用摄像机把图像转换为电信号。光学采集受外界干扰小、采集精度较高,但是数据量较大,因此处理时问较长。而对于半导体传感器来说,手指的温度、湿度对其测量结果有影响,但是数据量不大,处理比较方便。随着半导体技术的发展,半导体传感器的成本低、体积小、方便集成等优点逐步体现,它已逐步代替光学采集器。指纹鉴定过程的第一个阶段是指纹图像的采集阶段,也就是指纹模板的录A阶段。为了初步确定图像预处理方法,我们必须首先了解指纹传感器获得的图像的尺寸和质量。根据不同的指纹传感器,我们设计不同的方案进行图像采集,并将从各个图中提出特征点储存到数据库中,来产生“活模板”,为后面的指纹鉴定做准备。

指纹图像处理是整个指纹识别过程的核心。常见的指纹图像处理包括滤波增强、二值化、细化、提取特征点四个步骤。在采集指纹图像的过程中,由于采集环境,皮肤表面的性质,采集设备的差异等各种因素的影响,采集的图像会不同程度的受到各种噪声的干扰,从而影响了采集图像的质量。所以实际的指纹图像首先通过一个滤波增强来改善图像的质量,恢复

脊线原来的结构。特征提取算法的性能和其它指纹识别技术的好坏取决于输入指纹图像质量的好坏。本系统采用一种用Gabor滤波与方向滤波结合对图像进行增强的方法该方法结合Gabor滤波器善下分离粘连脊线和方向滤波器善于连接断裂接线的特点,能够对低质量的指纹图像进行有效的增强。完成图像增强后.第二步是对图像进行二值化处理。二值化是指把灰度指纹图像根据所选取的值化为0~1取值的二值目像。第三步,对纹路进行细化,细化能够减少大量的多余信息.细化后的指纹图像中的每条纹线都足用单像素来表示点线,更加突出了指纹特征。最后一步则是纹路特征点的提取,在特征提取阶段,选择脊线端点和分歧点作为特征点,记录每-特征点的类别、位置和方向信息,从而得到特征点(特征模板)。经过以上几个步骤,系统便完成对指纹图像的处理过程,得到最终模板。

依据上述指纹识别预处理算法,通过CCS2.2的模拟功能,实现了指纹识别预处理的DSP处理,达到了DSP处理指纹图像的应用目的。

2.1 硬件设计

系统硬件电路主要包括:DSP芯片,TMS320VC5402传感器FPS200、FLASH、SROM以及显示和键盘结构框图如图3-1所示

FLASHSROMCPLDFPS200缓冲器DSP液晶显示器和控制键盘 图3-1

系统的核心处理单元是TI公司推出的高性能数字信号处理器TMS20VC5402片具有精度高、灵活性太、可靠性高、时分复用等特点。其采用程序空间与数据空间完全独立的哈佛总线结构.指令的执行采用流水线结构,内部有一到多个处理内核,带有片上硬件乘法器,指令执行速度最快为几十纳秒,处理能力为100 MIPS。片内有8条总线、片上存储器和片上外围电路等硬件,并且有高度专业化的指令系统.MSC5402直接数据寻址空间为64kB,程序空间寻址能力可达1 MB,但是通过程序空间来扩展数据空间将影响系统处理速度。但是MTS320VC5402在实际使用过程中,程序和数据的一次连续处理一般都不会超过64 KB,所以把核心的程序常驻TMS320VC5402内16kB空间,一般控制在l~2kB,再留7~8kB的空间调用所需的程序,程序在片内的执行速度要比片外的快许多,通过来回到程序,就能实现程序的全速运行。数据空间可以通过CPLD片选来进行扩展。由于DSP外部最多支持扩展32 k数据空间.但是我们实际扩展了64 k的SRAM,因此SRAM的A15地址线由DSP通过CPLD中的逻辑电路来控制,由此来选择使用SRAM的高地址段32 k存储空间或者地址段32 k存储空间,这样既符合DSP的外扩空间要求,又使系统增加了更多的数据存储空间。CPI是由一种被IEEE认定的标准硬件描述语言VHDL(VHDL主要用于描述数字系统的结构、行为、功能和接口)实现的。在系统终端我们选用LCM液晶显示模块,直接显示需要的指纹图像和数据

结果。要显示的图像或数据先由DSP存人缓冲器,再由LCM读取,这样可以避免了由于DSP和LCM读写速度不匹配而发生错误。由于该模块板必须具有完全独立运行指纹图像检测;特征提取;特征提取和特征模板存储等程序综合各个方面因素因此采用了TI 公司的DSP 处理器TMS320VC5402 该芯片的主要特征有最高频率100MHz 性价比极高它含4k 16bits 片内ROM 16k 16bits 片内DARAM 6 个DMA通道2 个McBSP 2 个Timer 外部程序空间可扩展到1M16bits 可工作在3 种低功耗方式(IDLE1 IDLE2 IDLE3)本设计中为该处理器分别扩展了512k 16bits 的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所示。

FSP200初始化

开始采集图像

开始第一次A/D转换

开始A/D转换。将上次结果送至缓冲区读输出缓冲区数据

将最后一次A/D转换结果送至输出缓冲区

读最后一个传感器单元的值

图像采集结束

图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所示

FPS200MISOMOSISCLK/SCS/INTR 图3-3

DSPBDR1BDX1BCLKX1BFSX1/INT0 (2)DSP 存储空间扩展

由于 DSP 本身所带的数据存储器只有16kB 的DARAM程序存储器也只有4kB 的ROM 我们所采集的一幅原始指纹图像就有75kB 再加上指纹处理所需的数据空间以及运行和存储程序所需的程序空间芯片上所带空间无法符合使用要求必须扩展数据存储器和程序存储器在该模块板上扩展了512k 16bits 的Flash 芯片用于存储指纹处理程序和指纹特征模板此外还扩展了512k 16bits 的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 的数据寻址空间只有64 16bits 在对数据空间操作时DSP 的地址线A16-A19 将处理高阻状态,因此无法直接对512k 16bits 的数据空间进行操作将128k 16bits的SRAM 划分给数据空间将剩下的384k 16bits 的SRAM和全部512k 16bits 的Flash 划分给程序存储空间DSP 在对数据空间操作时当标志位OVLY 为1 时系统把低32kB的寻址空间映射到片内DARAM 和ROM 中外部扩展的数据空间若地址在0000h~7FFFh 范围内的则无法操作再把外扩的128k 16bits 的数据空间分成4 页分时影射到8000h~ffffh 的地址空间中即高32kB 的数据空间如图3-4所示。最终数据空间的寻址范围为0000h~ffffh 其中高32k的空间可通过页面切换共4 个页面总共有144kB 的数据空间外部程序间共有896kB 寻址空间为00000h~dffffh

DARAMFLASH128KB数据空间NULL512KBFLASH896KB程序空间PAGE0PAGE1512KBSRAMPAGE2PAGE3 图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 所示

BDX0BDR0BCLKX0BFSX0DSP/INT1DINOUT/RTSSCLK/CTSCST1RIN/IRQT1OUTRTSCTSRXTX 图3-5

(4)其他电路设计

除以上功能模块外 再就如下几点作简要说明整个模块板采用+5V 单一电源供电经电源调整模块TPS767D318 输出+3.3V 与1.8V 电压模块板中所有芯片均采用3.3V 电压DSP 的核心电压采用1.8V板中通过IO 口HD0 和HD1 扩展了两个功能按钮两个均采用低电平触发方式两个按钮连线通过或门功能产生一个中断信号连接DSP 的/INT2 管脚使用中断方法对该两个按钮进行编程模块板中提供了一个10 芯JTAG 接口用于对CPLD 芯片进行编程板中还提供了一个14 芯的JTAG接口用以对DSP 进行调试模块板中使用3 组调线分别连到DSP 的CLKMD1CLKMD2 和CLKMD3 管脚用于设置DSP 的倍频的倍数。其电路图分别如下所示

图3-6电源电路 :

图3-7时钟电路

图3-8 JTAG电路

图3-9复位电路

2.2.软件设计

识别过程及软件实现;逻辑功能实现;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 公司的Quartus II 系统利用CPLD 的JTAG 接口对EPM3032A 进行编程以下是采用AHDL 硬件描述语言对CPLD 逻辑功能的说明 begin

% 产生键盘中断信号 % DSP_INT2= KEY1 and KEY2; % 产生Flash 和SRAM 的读信号 % FLASH_SRAM_OE =

DSP_MSTRB or (not DSP_RW) ; %产生Flash 和SRAM 的写信号 % FLASH_SRAM_WE = DSP_MSTRB or DSP_RW;

if (not DSP_DS) and DSP_A15 then % 产生SRAM 的片选信号 % SRAM_CE = DSP_DS ; % 产生SRAM 的选页信号 % SRAM_A15 = DSP_HD5 ; SRAM_A16 = DSP_HD6 ; SRAM_A17 = not DSP_DS ; SRAM_A18 = not DSP_DS ; end if;

if not DSP_PS then

% 产生SRAM 的片选信号 % SRAM_CE = not DSP_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 的地址空间 % if DSP_A17 and DSP_A18 and (not DSP_PS) then SRAM_CE = not DSP_PS; end if; end if; 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 所扩展的程序空间初始化过程就是完成对整个模块板的硬件初始化最后在初始化结束后从用户程序的起始处开始执行等待用户的中断操作或指纹检测中断或串口通信中断或小键盘中断。

系统上电,初始化读取指纹图像是否完毕从RAM中输出图像输出完毕DSP进行图像处理输出数据到USB指纹对比输出结果

图3-10

系统主要程序流程图如图3-10所示。系统上电时,TMS320Vc5402通过总线操作对FPS200

进行设置,然后进入指纹图像采集阶段。在该阶段TMS320VC5402处于空闲状态,CPLD占用数据总线,将数据直接存储到图像RAM中。采集完一帧指纹图像后由CPLD通知DSP进入数据处理阶段。在该阶段TMS320VC5402先将图像RAM中的数据分块户ROM中,然后对图像进行预处理.特征点提取等运算。最后通过USB将结果输出给上位机。上位机调出指纹数据库,并将提取的结果与采集的指纹数据进行比对,判断采集的指纹是否与库中指纹匹配,最后给出结论。

本文来源:https://www.bwwdw.com/article/amhf.html

Top