指纹识别

更新时间:2024-05-18 15:40:01 阅读量: 综合文库 文档下载

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

滨江学院

本科生毕业论文(设计)

题目基于ZFM-206的指纹识别系统

学生姓名史家甄

学号 20122305925

系 别 电子工程系

专业 电子信息工程

指导教师 徐伟

二O一六 年五月二十五日

1

目 录

1 绪论 ....................................................... 5

1.1 指纹识别的发展前景 ........................................................ 5

1.2 指纹识别中的基本概念 ...................................................... 5 1.3 课题内容与意义............................................................ 6 1.4 系统的主要功能............................................................ 6

2 系统硬件设计 ............................................... 7

2.1 硬件总体框图.............................................................. 7 2.2 系统主控制器.............................................................. 7 2.3 电源模块 ................................................................. 9 2.4 按键模块 ................................................................ 10 2.5 显示模块 ................................................................ 10 2.6 指纹识别模块............................................................. 10

2.6.1模块特色 ........................................................... 11 2.6.2 工作原理........................................................... 11 2.6.3 主要技术指标 ....................................................... 11 2.6.4 串行通讯........................................................... 12 2.6.5 缓冲区............................................................. 12 2.6.6 指纹库............................................................. 13 2.6.7 系统配置参数 ....................................................... 13 2.6.8 系统状态寄存器 ..................................................... 13 2.6.9 模块口令........................................................... 14 2.6.10 通讯协议 .......................................................... 14

3 系统软件设计 .............................................. 16

3.1 识别指纹的总体特征和局部特征 ............................................. 16 3.2 指纹识别系统的流程 ....................................................... 17 3.3 指纹识别系统串行口工作方式 ............................................... 18 3.4 通信模块程序设计 ......................................................... 20

4 系统测试 .................................................. 21 5 结 论 .................................................... 23 致 谢 ...................................................... 25 附录一 单片机指纹识别系统元件清单 .......................... 26 附录二 电路图 .............................................. 27

2

`

基于ZFM-206的指纹识别系统

史家甄

南京信息工程大学电子信息工程专业,江苏南京 210044

摘要:科学技术的发展在让社会进步的同时,也让传统的安全管理系统受到威胁。生物识别技术的出现给身份识别的研究带来了突飞猛进的发展。每个人都有着自己特有的特征,用本身的特征来验证身份有着得天独厚的优势。本设计主要对单片机的指纹识别系统进行研究,应用指纹识别模块,设计基于SCT89C52单片机的指纹识别硬件电路,形成一个独立的指纹识别系统。该系统实现单片机和指纹模块之间的串口通信。通过操作独立式键盘按键,向指纹模块的DSP芯片发送相应指令,从而执行添加用户、删除用户、认证用户等功能。 关键词:生物识别技术;指纹识别;串口通信;SCT89C52单片机;指纹识别模块

3

Fingerprint identification system based on ZFM-206

Shi Jiazhen

Electronic information engineering, Nanjing University of Information Science and Technology,Nanjing, Jiangsu

210044,.

ABSTRACT:The development of science and technology in making social progress at the same time, also let the traditional safety management system is threatened.The emergence of biometric technologies brought a make a spurt of progressof development for the research of the identification. Everyone has their own special features, with the characteristics of itself to verify identity has theadvantage be richly endowed by nature. Study on the design of the fingerprint identification system, the application of fingerprint identification module, the hardware circuit design offingerprint identification based on SCT89C52 single chip microcomputer,formed an independent fingerprint identification system. The system is the realization of serial communication between MCU and fingerprint module.Through stand-alone keyboard keys, to the DSP chip to send corresponding commands to perform fingerprint module, add, delete user authenticationuser, etc.. Keywords:Biometrics;fingerprintidentification;serialcommunication;SCT89C52single chip microcomputer;fingerprint identification module

4

1 绪论

进入21世纪后,由于国际反恐、互联网应用等因素的推动,在全球范围内,指纹识别技术得到了更加广泛的应用,指纹识别市场进入高速发展阶段。据国际生物认证组织(International Biometric Group)的预测,到2008年,整个生物认证市场的总量将达到46亿美元,并将保持每年36%以上增长速度。

出现这种惊人的高速增长不是偶然的,比尔?盖茨就曾做过这样的断言:生物识别技术,利用人的生理特征,例如像指纹等来识别个人的身份,将成为今后几年IT产业的重要革新。盖茨有这段言论是因为据相关数据显示,每年由于证件或密码遗失而造成的损失巨大。这是因为各种密码被破解的概率越来越高,或者由于年龄的曾长记忆力随之下降的原因导致的。

而指纹在所有的生物特征中,相对稳定、不随年龄而变化和采集较为便捷,同时它的研究历史最长、相对更为成熟。与现有的智能卡、身份证号码和密码的身份识别系统相比,指纹识别的性价比最高,也更适于应用到大众生活中。

因此指纹识别以其革命性的便捷和安全性成为一个理想的卓越的解决方案。 1.1 指纹识别的发展前景

指纹行业是一个新兴的行业,本身具有很高的科技含量,相对利润高发展前景广阔。经专家预计,指纹产品将是未来IT产业新的增长点:利润率最高、发展潜力最大。据不完全统计,2004年指纹类产品平均利润率就已经为385%,指纹产品行业是各行业及投资者最好的选择目标。

于是,世界顶尖的指纹识别技术得到了全球范围内的高度重视,指纹识别技术的应用如火如荼地迅速发展起来。目前,国内已经有不少企业在参与指纹识别技术的开发和应用。

指纹技术在现代生活和工作中的应用已越来越普遍,例如:指纹考勤、指纹社保、指纹银行、指纹商场、指纹接送幼儿等等生活和工作的新现象已广为人知,指纹技术正在日益刷新着我们的现代化生活方式。指纹识别已经与人们的生活休戚相关,指纹识别技术在全球范围内已经彻底拉开了“指纹时代”的巨幕。 1.2 指纹识别中的基本概念

指纹识别技术的发展得益于现代电子集成制造技术和快速可靠的算法的研究。尽管指纹只是人体皮肤的一小部分,但用于识别的数据量相当大,对这些数据进行比对也不是简单的相等与不相等的问题,而是使用需要进行大量运算的模糊匹配算法。现代电子集成制造技术使得我们可以制造相当小的指纹图象读取设备,同时飞速发展的个人计算机运算速度提供了在微机甚至单片机上可以进行两个指纹的比对运算的可能。另外,匹配算法可靠性也不断提高,指纹识别技术已经非常实用。

我们手掌及其手指、脚、脚趾内侧表面的皮肤凸凹不平产生的纹路会形成各种各样的图案。这些纹路的存在增加了皮肤表面的摩擦力,使得我们能够用手来抓起重物。人们也注意到,包括指纹在内的这些皮肤的纹路在图案、断点和交叉点上各不相同,也就是说,是唯一的。依靠这种唯一性,我们就可以把一个人同他的指纹对应起来,通过比较他的指纹和预先

5

[3]

[2]

[1]

保存的指纹进行比较,就可以验证他的真实身份。这种依靠人体的身体特征来进行身份验证的技术称为生物识别技术,指纹识别是生物识别技术的一种。

指纹识别是成熟的生物识别(Biometric)技术,由于人体的身体特征具有不可复制的特点,人们把目光转向了生物识别技术,希望可以籍此技术来应付现行系统安全所面临的的挑战。要把人体的特证用于身份识别,这些特征必须具有唯一性和稳定性。研究和经验表明,人的指纹、掌纹、面孔、发音、虹膜、视网膜、骨架等都具有唯一性和稳定性的特征,即每个人的这些特征都与别人不同、且终生不变,因此就可以据此识别出人的身份。基于这些特征,人们发展了指纹识别、面部识别、发音识别等多种生物识别技术,目前许多技术都已经成熟并得以应用,其中的指纹识别技术更是生物识别技术的热点。

指纹识别技术可以分为两类,即验证(Verification)和辨识(Identification)。 验证就是通过把一个现场采集到的指纹与一个已经登记的指纹进行一对一的比对,来确认身份的过程。作为验证的前提条件,他或她的指纹必须在指纹库中已经注册。指纹以一定的压缩格式存贮,并与其姓名或其标识联系起来。随后在比对现场,先验证其标识,然后,利用系统的指纹与现场采集的指纹比对来证明其标识是合法的。

辨识则是把现场采集到的指纹同指纹数据厍中的指纹逐一对比,从中找出与现场指纹相匹配的指纹。这也叫“一对多匹配(one-to-many matching)”。

验证和辨识在比对算法和系统设计上各具技术特点。例如验证系统一般只考虑对完整的指纹进行比对,而辨识系统要考虑残纹的比对;验证系统对比对算法的速度要求不如辨识系统高,但更强调易用性;另外在辨识系统中,一般要使用分类技术来加快查询的速度。 1.3 课题内容与意义

指纹识别技术相对于其他识别方法有许多独到之处,具有很高的实用性和可行性。因此,指纹识别成为最流行、最方便、最可靠的身份认证方式,己经在社会生活的诸多方面得到广泛应用。这是由于指纹是独一无二的,两人之间不存在着相同的指纹,同时指纹样本易于采集,难以伪造,便于开发,实用性强,可以利用多个指纹构成多重口令,提高系统的安全性。

本文主要通过对指纹识别系统的结构和功能进行分析,来研究基于单片机指纹识别系统的内部结构特点和功能阐述以及工作原理,更好的了解了指纹识别系统的未来前景。 1.4 系统的主要功能

本系统是针对指纹采集、识别模块开发出的指纹识别系统。该系统使用指纹模块搜索手指,一旦搜索到手指,立即采集指纹图像,并将采集到的图像转化成数据的形式发送出去。他利用人体指纹各异性和不变性,为用户提供加密手段,使用时只需将手指平放在指纹采集仪的采集窗口上,即可完成采集任务,并将显示出指纹模块采集指纹图像各个流程及比对的结果。简单的描述本次设计的功能即使用指纹模块检测、录入指纹,将比对结果显示。

该系统的主要功能有以下几个方面:

(1)指纹录入 能进行指纹的录入,二次录入无误后,记录该指纹数据。

(2)指纹识别 能进行指纹的识别,指纹识别出错时,在LCD1602液晶上提示ERROR。图像采集完成后,与库中已存在指纹进行比对,与所有用户信息比对后,若无相符信息即提示

6

[4]

ERROR。

(3)指纹清除 能进行指纹数据的删除。

(4)操作显示 通过按键进行指纹系统的功能选择,采用LCD1602液晶显示与LED(Light Emitting Diode,发光二极管)指示灯综合提示操作内容。若信息经核对相符,即显示该用户编号+OK,若不相符,即提示错误代码+ERROR。

2 系统硬件设计

2.1 硬件总体框图

本系统主要由指纹识别模块、单片机、电源、复位电路、时钟电路、指示灯、按键和LCD1602液晶显示器等构成,在无需PC参与管理的情况下,构成具有指纹录入、指纹清除和搜索等功能的智能型模块。并采用C语言构建系统程序,通过执行不同的按键动作,使单片机向模块发送相应指令,以完成对应功能。完成后整体可构成一个独立的指纹识别系统,或作为一个完整的外部设备。其结构框图如图2-1所示。

整个系统由指纹输入模块输入与识别指纹,对单片机进行编程,使得单片机有两种模式。第一种模式为输入指纹模式,即按下模式转换按键,液晶屏显示Input,蜂鸣器响一声,这时输入指纹,指纹需要扫描两次才能被写入单片机内,每扫描一次蜂鸣器响一声,可以输入多个指纹;另一种模式是识别指纹模式,按下模式转换按键,液晶屏显示Indenfity,这时是识别指纹,通过单片机对指纹进行识别是否有效,有效则输出指纹编号+OK,蜂鸣器提示响一声;无效则输出错误代码+Error,蜂鸣器响三声,表示识别错误,或者这个指纹没有登记。

[5]

图2-1 系统总体框图

2.2 系统主控制器

STC89C52是一种低功耗、高性能CMOS8位微控制器,具有8K系统可编程 Flash存储器。使用STC公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、更有效

7

的解决方案。STC89C52具有以下标准功能:8K字节Flash ,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。

另外,STC89C52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。

STC89C52引脚图如图2-2,其主要引脚功能介绍如下:

[6]

图2-2STC89C52引脚图

P0端口(P0.0~P0.7,39~32引脚):P0口是一个漏极开路的8位双向I/O口。作为输出端口,每个引脚能驱动8个TTL负载,对端口P0写入“1”时,可以作为高阻抗输入。在访问外部程序和数据存储器时,P0口也可以提供低8位地址和8位数据的复用总线。此时,P0口内部上拉电阻有效。在Flash ROM编程时,P0端口接收指令字节;而在校验程序时,则输出指令字节。程序验证时,需要外接上拉电阻。

P1端口(P1.0~P1.7,1~8引脚):P1口是一个具有内部上拉电阻的8位双向I/O口。P1的输出缓冲器可驱动(吸收或者输出电流方式)4个TTL逻辑电平。对端口写入1时,通过内部的上拉电阻把端口拉到高电位,此时可作为输入口使用。P1口作输入口使用时,因为有内部上拉电阻,那些被外部拉低的引脚会输出一个电流。

此外,P1.0和P1.1分别作定时器/计数器2的外部计数输入(P1.0/ T2)和定时器/计数器2的触发输入(P1.1/ T2EX),在Flash编程和校验时,P1口接收低8位地址字节。

P2端口(P2.0~P2.7,21~28引脚):P2口是一个带内部上拉电阻的8位双向I/O端口。P2的输出缓冲器可以驱动(吸收或输出电流方式)4个TTL输入。对端口写入1时,通过内部的上拉电阻把端口拉到高电平,这时可用作输入口。P2作为输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚将输出电流。

在访问外部程序存储器和16位地址的外部数据存储器时,P2送出高8位地址。在这种应用中,P2口使用很强的内部上拉发送1。在使用8位地址的外部数据存储器时,P2口输出P2

8

锁存器的内容。在Flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。

P3端口(P3.0~P3.7,10~17引脚):P3是一个具有内部上拉电阻的8位双向I/O端口。P3的输出缓冲器可驱动(吸收或输出电流方式)4个TTL输入。对端口写入1时,通过内部的上拉电阻把端口拉到高电位,这时可用作输入口。P3做输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输入一个电流。

P3口亦作为STC89C52特殊功能(第二功能)使用,如表2-1所示。在Flash编程和校验时,P3口也接收一些控制信号。

表2-1 P3口引脚第二功能

引脚号 P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7

复用功能 RXD(串行输入口) TXD(串行输出口) INT0(外部中断0) INT1(外部中断1) T0(定时器0的外部输入) T1(定时器1的外部输入) WR(外部数据存储器写选通) RD(外部数据存储器读选通) 此外,P3口还接收一些用于Flash闪存编程和程序校验的控制信号。

RST:复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将是单片机复位。

ALE/PROG:当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。对Flash存储器编程期间,该引脚还用于输入编程脉冲(PROG)。如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。该位置位后,只有一条MOVX和MOVC指令才能将ALE激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE禁止位无效。

PSEN:程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当STC89C52由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲,在此期间,当访问外部数据存储器,将跳过两次PSEN信号。

EA/VPP:外部访问允许,欲使CPU仅访问外部程序存储器(地址为0000h-ffffh),EA端必须保持低电平(接地)。需注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。如EA端为高电平(接Vcc端),CPU则执行内部程序存储器的指令。Flash存储器编程时,该引脚加上+12V的编程允许电源Vpp,当然这必须是该器件是使用12V编程电压Vpp。

XTAL1:振荡器反相放大器和内部时钟发生电路的输入端。 XTAL2:振荡器反相放大器的输出端。

此外,片上资源包括看门狗定时器、UART、定时器0和定时器1,以及定时器2。 2.3 电源模块

9

[7]

本设计采用USB供电,用USB线与电脑PC的USB口相连接,供给单片机工作,方便,供电稳定。 2.4 按键模块

键盘是最常用的输入设备,是实现人机对话的纽带。按其结构形式可分为非编码键盘和编码键盘。

编码键盘采用硬件方式产生键码。每按下一个键,键盘能自动生成键盘代码,键数较多,且具有去抖动功能。这种键盘使用方便,但硬件较复杂。非编码键盘仅提供按键开关工作状态,其键码由软件确定,这种键盘键数较少,硬件简单,广泛应用于各种单片机应用系统,在单片机控制电路中,可把单片机使用的键盘分为独立式和矩阵式两种。独立式实际上就是一组独立的按键,这些按键可直接与单片机的I/O口连接,即每个按键独占一条口线,这种接法简单。矩阵式键盘也称行列式键盘,因为键的数目较多,所以键按行列组成矩阵。本设计中键盘数目较少,且为安装方便,因此采用独立式接法。

图2-3 按键模块电路

2.5 显示模块

采用液晶显示器,其驱动电压低,工作电流小,可以和单片机组成低功耗系统,广泛应用于各种电子产品。现在的字符型液晶模块已经是单片机应用设计中最常用的信息显示器件了。1602型LCD显示模块具有体积小,功耗低,显示内容丰富等特点。1602型LCD可以显示2行16个字符,有8位数据总线D0~D7和RS,R/W,EN三个控制端口,工作电压为5V,并且具有字符对比度调节和背光功能。显示电路如图2-4所示。

[8]

图2-4 显示模块电路

2.6 指纹识别模块

10

2.6.1模块特色

ZFM-206 光学指纹模块以高性能高速 DSP 处理器 AS601 为核心,结合具有公司自主知识产权的光学指纹传感器,在PC参与管理的情况下,具有指纹录入、图像处理、指纹比对、搜索和模板储存等功能的智能型模块。并提供UART接口和通讯协议,方便进行二次开发应用。

其具有如下特点:

(1)体积小巧、成像清晰、手指感应灵敏、识别速度快、干/湿手指适应性强,二次开发简单、应用方便,适用面广;

(2)稳定:工作稳定,可应用于各种类型单片机;

(3)方便:串口UART操作(直接可接任何带串口单片机),操作简单; (4)开放:可以自由输入、输出指纹图片、指纹特征值文件及各种指纹操作; (5)高性能:采用商业算法,识别速度快、手指感应灵敏,手指只要轻轻地触碰采集窗就能快速识别,不需要用力按压。 2.6.2 工作原理

首先了解关于指纹特征的定义:

[9]

● 指纹特征

指纹算法从获取的指纹图像中提取的特征,代表了指纹的信息。指纹的存储、比对和搜索等都是通过操作指纹特征来完成的。

● 指纹处理

包含两个过程:指纹登录过程和指纹匹配过程[其中指纹匹配分为指纹比对(1:1)和指纹搜索(1:N)两种方式]

[10]

指纹登录时,对每一枚指纹录入 2次,将 2次录入的图像进行处理,合成模板存储于模块中。指纹匹配时,通过指纹传感器,录入要验证指纹图像并进行处理,然后与模块中的指纹模板进行匹配比较(若与模块中指定的一个模板进行匹配,称为指纹比对方式,即1:1方式;若与多个模板进行匹配,称为指纹搜索方式,即 1:N 方式)模块给出匹配结果(通过或失败)。 2.6.3 主要技术指标

供电电压: DC3.6-6.0V/ 直供3.3V

供电电流: 工作电流:<120mA 峰值电流:<140mA 指纹图像录入时间:<1.0 秒

匹配方式:比对方式(1:1) 搜索方式(1:N) 特征文件:256字节

模板文件:512字节 存储容量:1000 枚

安全等级:五级(从低到高:1、2、3、4、5)

11

通讯波特率(UART):(9600╳N)bps 其中N=1~12 (默认值 N=6,即57600bps)

2.6.4 串行通讯

单片机与指纹模块的连接通讯线如表2-2所示:

表2-2 串行通讯

引脚号 名 称 1 2 3 4

类型 in out in - 功 能 描 述 电源正输入端。(线色:红) 串行数据输出。TTL逻辑电平。(线色:绿) 串行数据输入。TTL逻辑电平。(线色:白) 信号地。内部与电源地连接。(线色:黑) Vin TD RD GND 2.6.4.1 硬件连接

模块通过串行通讯接口,可直接与5V电源的单片机进行通讯:模块数据发送脚(2脚 TD)接单片机机的数据接收端(RXD),模块数据接收脚(3脚 RD)接上位机的数据发送端(TXD)。若需与 RS-232电平(例如:PC机)的单片机机进行通讯,请在模块与上位机之间增加电平转换电路(例如:MAX232电路)。 2.6.4.2 串行协议

采用半双工异步串行通讯。默认波特率为57600bps,可通过命令设置为9600~115200bps本设计中波特率设为9600bps。传送的帧格式为10位,一位0电平起始位,8位数据位(低位在前)和一位停止位,无校验位。

图 2-5 10位帧格式

2.6.4.3 上电延时时间

模块上电后,约需 500mS时间进行初始化工作。在此期间,模块不能响应上位机命令。 2.6.5 缓冲区

模块 RAM 内设有一个 72Kbytes 大小的图像缓冲区 ImageBuffer 与二个 512bytes 大小的特征文件缓冲区CharBuffer1 和CharBuffer2,用户可以通过指令读写任意一个缓冲区。图像缓冲区和两个特征文件缓冲区中的内容在模块断电时不保存。 2.6.5.1 图像缓冲区

图像缓冲区Image Buffer用于存放图像数据和模块内部图像处理使用。上传/下载图像时,图像格式为 256╳288 像素 BMP。

通过 UART 口上传或下载图像时为了加快速度,只用到像素字节的高四位,即采用 16 级灰度,每字节表示两个像素(高四位为一个像素,低四位为同一行下一相邻列的一个像素,即

12

将两个像素合成一个字节传送)。由于图像为 16个灰度等级,上传到 PC进行显示时(对应 BMP格式),应将灰度等级进行扩展(扩展为 256 级灰度,即 8bit 位图格式)。 2.6.5.2 特征文件缓冲区

特征文件缓冲区 CharBuffer1 或 CharBuffer2 既可以用于存放普通特征文件也可以用于存放模板特征文件。

2.6.6 指纹库

模块在 FLASH 中开辟了一段存储区域作为指纹模板存放区,即指纹库。指纹库中的数据是断电护的。

指纹模板按照序号存放,若指纹库容量为 N,则指纹模板在指纹库中的序号定义为:0、1、2?? N-2、N-1。用户只能根据序号访问指纹库内容,相应的存储和搜索功能对应的都是针对指纹序号的操作。

2.6.7 系统配置参数

为方便用户使用,模块开放部分系统参数,允许用户通过指令,单个修改指定(通过参数序号) 的参数数值。参见设置模块系统基本参数指令 SetSysPara和读系统参数指令 ReadSysPara。上位机发修改系统参数指令时,模块先按照原配置进行应答,应答之后修改系统设置,并将配置记录于 FLASH。系统重新上电,模块将按照新的配置工作。

2.6.7.1 波特率控制(参数序号:4)

该参数控制模块与上位机通过 UART 通讯时的通讯波特率,若参数值为 N(N 取值范围为1~12),对应波特率为(9600╳N)bps。

2.6.7.2 安全等级(参数序号:5)

该参数控制指纹比对和搜索时比对阀值,分为 5级,取值范围为:1、2、3、4、5。 安全等级为1时认假率最高, 拒认率最低。安全等级为 5时认假率最低, 拒认率最高。

2.6.7.3 包内容长度(参数序号:6)

该参数控制模块与上位机通讯时,每次传送时允许数据中包内容的最大长度,取值范围为:0、1、2、3,对应长度(字节数)分别为:32、64、128、256。 2.6.8 系统状态寄存器

系统状态寄存器表示模块当前工作状态。可通过指令 ReadSysPara 指令读取,长度为 1Word。 其各位定义如表2-3:

表 2-3位定义

信号 意义 注:

15??4 Reserved 3 ImgBufStat 2 PWD 1 Pass 0 Busy ● Busy:占 1 位,置 1 表示系统正在执行命令,0 表示系统空闲; ● Pass:占 1 位,置 1 表示指纹验证通过; ● Pwd: 占 1位,置 1 表示设备握手口令通过验证;

13

● ImgBufStat:占一位,置 1 表示指纹图像缓冲区存在有效指纹图像。

2.6.9 模块口令

模块默认口令为 0x00000000,若默认口令未被修改,则 USB通讯时模块不要求验证口令,可以直接与上位机通讯;若通过 UART通讯或口令被修改,则上位机与模块通讯的第一个指令必须是验证口令,只有口令验证通过后,模块才进入正常工作状态,接收其他指令(即串行通信必须先进行握手信号处理)。

口令修改后,新口令保存于 Flash 中,断电依然保存(修改后的密码无法通过通讯指令获得,如不慎遗忘则模块无法进行通信,请谨慎使用)。 2.6.9.1 模块地址

每个模块都有一个识别地址,在模块与上位机通讯时,每条指令/数据都以数据包的形式传送, 每个数据包都包含一个地址;模块只对与自身地址相同的指令和数据包有所反应。 模块地址为 4 字节,出厂时默认缺省值为:0xFFFFFFFF。用户可通过指令修改模块地址。模块地址修改后,新地址在模块断电后依然保存。 2.6.9.2 随机数产生器

模块内部集成了硬件 32 位随机数生成器(不需要随机数种子),用户可以通过指令让模块产生一个随机数并上传。 2.6.9.3 记事本

Flash中开辟了一个 512字节的存储区域作为用户记事本,该记事本逻辑上被分成 16 页,每页32字节;上位机可以通过 WriteNotepad 指令和 ReadNotepad 指令访问任一页。注意:写记事本任一页的时候,该页 32字节的内容被整体写入,原来的内容被覆盖。 2.6.10 通讯协议

通信协议定义了 ZFM-206 系列模块与上位机之间信息交换的规则;硬件上采用 UART 接口形式, 参考如下通讯协议和指令集;如采用 USB 接口形式,请联系我们获得 API 调用函数(请告知需要运行的平台)。如果上位机采用 PC 机,建议定购 USB 接口形式的模块,以提高系统速度(采用 USB 上传图像时,图像灰度等级高且上传速度快,模块可做指纹采集仪使用)

[11]

2.6.10.1 数据包格式

模块采用 UART 与上位机通讯,对命令、数据、结果的接收和发送,都采用数据包的形式。对于多字节的,高字节在前低字节在后(如 2 bytes 的 00 06 表示 0006,不是 0600)。

表2-4 数据包详细定义表

名称 包头 地址 符号 START ADDR 长度 2 字节 4 字节 说 明 固定为0xef01,传送时高字节在前。 默认值为0xffffffff,用户可通过指令生成新地址,模块会拒绝地址错误的数据包。传送时高字节在前。 包标识 PID 1 字节 0x01 0x02 表示是命令包(Command packet)。 表示是数据包(Data packet),且有后包。 14

数据包不能单独进入执行流程,必须跟在指令包或应答包后面。 0x07 0x08 表示是应答包(ACK packet)可以跟后续包。 表示是最 后 一个数据 包 ,即结束 包 (EndData packet)。 包长度 LENGTH 2 字节 包长度指的是包内容(指令/数据)的长度加上效验和的长度(即包内容长度+2)。 长度以字节为单位(即字节数),传送时高字节在前。 包内容 DATA — 可以是指令、数据、指令的参数、应答结果等。(指纹特征值、指纹模板都是数据) 校验和 SUM 2 字节 包标示、包长度和包内容的所有字节的算术累计和,超过2字节的进位忽略。传送时高字节在前。 2.6.10.2 指令集汇总表

表2-5 按指令代码顺序

代码 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0a 0x0b 命令名 GenImg Img2Tz Match Serach RegModel Store LoadChar UpChar DownChr UpImage DownImage 功能说明 录指纹图像 图像转特征 特征比对 搜索指纹 特征合成模板 存储模板 读出模板 上传特征 下载特征 上传图像 下载图像 代码 0x0d 0x0e 0x0f 0x12 0x13 0x14 0x15 0x18 0x19 0x1d 0x1f 命令名 Empty SetSysPara ReadSysPara SetPwd VfyPwd GetRandomCode SetAddr WriteNotepad ReadNotepad TemplateNum ReadConList 功能说明 清空指纹库 设置系统参数 读系统参数 设置口令 效验口令 采样随机数 设置地址 写记事本 读记事本 读指纹模板数 读指纹模板索引表 0x0c DeletChar 删除模板 2.6.11 数据包的校验与应答

指令只能由上位机下发给模块,模块向上位机应答。

模块收到指令后,会通过应答包,将有关命令执行情况与结果上报给上位机。应答包含有参数,并可跟后续数据包。上位机只有在收到模块的应答包后才能确认模块的收包情况与指令执行情况。应答包的内容包括一个字节的确认码(必须有)和可能有的返回参数。

表2-6 确认码定义表

15

开始 串口初始化 检测发送缓冲区是否为空 N 等待 Y 继续接收

图3-4 通信接收流程图

4系统测试

测试指纹模块及按键是否工作,操作步骤为:

(1)按下电源,电源指示灯点亮,蜂鸣器响一声,指纹模块亮起,同时绿灯点亮进入识别模式,见图3-5(1)所示。

图3-5 显示屏(1)

(2)按下按键1,删除所有指纹,如果按键工作那么正常的反应是:蜂鸣器鸣叫,同时红灯亮起,进入录入模式,见图3-6(2)。

21

图3-6 显示屏(2)

(3)按下按键3,如果指纹头亮起,将手指放到指纹头上,第一次扫描录入蜂鸣器响一下,第二次扫描录入如果成功则响两次,反复录入多个手指。

(4)按下按键2,表示模式切换,绿灯亮起,把前面录入的某手指再放到指纹头上,观察液晶显示,看指纹头是否能够正确识别手指。若识别成功则如下显示,见图3-6(2):

图3-7 显示屏(3)

若识别不成功,则如下见图3-8(4):

图3-8 显示屏(4)

如果以上步骤不符合要求则重新检查程序,直到实物可以正常工作。

如满足上述要求时,实物就算调试完成,达到设计要求。

22

5 结 论

系统针对目前的指纹识别设别存储量小、处理速率慢的现状,采用高性能的51系统单片机作为处理核心,实际实现了一款高性能的网络指纹采集识别终端。系统利用数据处理服务器海量存储及处理速度高,可实现快速复杂匹配算法的优点。系统采集苏率高,识别性能好。系统可广泛应用月各类企业考勤应用。

作为一种可靠的生物识别技术,指纹识别技术受到了广泛关注,高效可靠的指纹图像识别算法技术在实际生活中具有很高的实用价值。本文应用指纹识别模块,设计基于AT89S52单片机的指纹识别硬件电路,形成一个独立的指纹识别系统。该系统实现单片机和指纹模块之间的串口通信。通过操作独立式键盘按键,向指纹模块的DSP芯片发送相应指令,从而执行添加用户、删除指定用户、删除全部用户、认证用户,以及管理用户权限等功能。 主要研究内容如下:

(1)指纹识别原理。分析如何对采集到的图像进行预处理,包括图像的规格化,图像分割,图像二值化,图像增强,图像细化以及特征值的提取。

(2)指纹识别模块工作流程。包括添加用户,删除指定用户,删除所有用户,认证用户,管理用户权限等功能的工作原理。

(3)单片机与DSP的通信。如何实现串口通信,以及怎样运用软件进行仿真。掌握指纹识别模块的与单片机的通信机制,运用通信协议实现各功能控制。

本文由于时间上的限制,在指纹识别系统的用户管理功能上没有进行更深入的开发,是一个缺憾。如何有效提高指纹识别可靠度,更安全地管理用户控制权限,以及寻求更为简洁可靠的指纹图像识别算法,应该是今后开展工作的方向。

参考文献

[1] 河桥,段清明,邱春玲.单片机原理及应用[D].北京:中国铁道出版社,2007.12

[2] 冯星奎,李林艳,颜祖泉.一种新的指纹图像细化算法.中国图像图形学报[J],1999, 4(10)835-838. [3]吕凤军.数字图象处理编程入门一一做一个自己的Photoshop[D].北京:清华大学出版社,1999. [4] 赵晓玲.单片机在指纹保险柜中的应用[J].微计算机信息.2006,20(20):134-136. [5] 刘小华,王燕生.指纹识别技术的发展[J].光学技术.1998,23(04):78-80. [6] 郭天祥.新概念51单片机C语言教程[M].北京:电子工业出版社,2009:60-400. [7] 张毅刚.单片机原理与应用[M].北京:高等教育出版社,2006:56-234.

[8] 赵建领.51单片机开发与应用技术详解[M].北京:电子工业出版社,2009:75-124. [9] 陈光新.自动指纹识别技术及其应用[J].江苏船舶.2004,24(03):32-35.

[10] Kazuharu Yamato, et al. Problems of Fingerprint Lookup Devices and How to Resolve Them. Gazo Denshi Gakkaishi.1995,vol.24:382-391.

[11] 郑春来,韩团军,李鑫.编译软件Keil在单片机教学中的应用[J].高教论坛.2009,15(12):96-97. [12] Prata.S.C Primer Plus中文版[M].北京:人民邮电出版社,2005:74-99.

23

[13] 吴凌燕.基于Proteus的单片机仿真设计[J].仪表技术.2011,17(07):31-37.

[14] 唐钱辉,丁明亮.Proteus ISIS 和Keil在单片机教学中的应用[J].重庆电力高等专科学校学报.2006,8(04):46-49.

[15] 林三宝.高效焊接[M].北京:机械工业出版社,2012:45-78.

24

致 谢

非常感谢徐伟老师在我大学的最后学习阶段——毕业设计阶段给我们的细心指导,从最初的定题,到资料收集,到写作、修改,到论文定稿,他给了我耐心的指导和无私的帮助。同时,感谢所有任课老师和所有同学在这三年来给自己的指导和帮助,是他们教会了我专业知识,教会了我如何学习,教会了我如何做人。正是由于他们,我才能在各方面取得显著的进步,在此向他们表示我由衷的谢意,并祝所有的老师培养出越来越多的优秀人才,桃李满天下!通过这一阶段的努力,我的毕业设计《基于单片机的指纹识别系统》终于完成了,这意味着大学生活即将结束。在大学阶段,我在学习上和思想上都受益非浅,这除了自身的努力外,与各位老师、同学和朋友的关心、支持和鼓励是分不开的。感谢老师和同学们三年来的关心和鼓励。老师们课堂上的激情洋溢,课堂下的谆谆教诲;同学们在学习中的认真热情,生活上的热心主动,所有这些都让我的三年充满了感动。感谢在整个毕业设计期间和我密切合作的同学,和曾经在各个方面给予过我帮助的伙伴们,在此,我再一次真诚地向帮助过我的老师和同学表示感谢!

25

附录一 单片机指纹识别系统元件清单

序号 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 名称 STC89C52RC单片机 LCD1602液晶 指纹模块 USB口 8550三极管 洞洞板 自锁开关 USB线 小按键 蜂鸣器 LED灯(红) LED灯(绿) IC锁紧座(40脚) 11.0592MHz晶振 10K电位器(可调电阻) 10K排阻 4.7K电阻 1K电阻 10UF铝电解电容 30pF瓷片电容 数量 1 1 1 1 1 1 1 1 4 1 2 1 1 1 1 1 1 3 1 2 26

附录二 电路图

27

附录三 1602液晶显示部分子程序

#include #include #include\

/***********1602液晶显示部分子程序****************/ void lcddelay(unsigned int z) { }

void LCD_Write(bit style, unsigned char input) { }

void lcddelay(unsigned int z) { }

void LCD_Write(bit style, unsigned char input) {

LcdRs=style;

unsigned int x,y; for(x=z;x>0;x--)

for(y=110;y>0;y--);

LcdRs=style; P0=input; lcddelay(5); LcdEn=1; lcddelay(5); LcdEn=0;

unsigned int x,y; for(x=z;x>0;x--)

for(y=110;y>0;y--);

P0=input; lcddelay(5); LcdEn=1;

28

}

lcddelay(5); LcdEn=0;

void LCD_SetDisplay(unsigned char DisplayMode) { }

void LCD_SetInput(unsigned char InputMode) { }

//初始化LCD************************************************************ void LCD_Initial() { }

//液晶字符输入的位置************************ void GotoXY(unsigned char x, unsigned char y) { }

if(y==0)

LCD_Write(LCD_COMMAND,0x80|x); LcdEn=0;

LCD_Write(LCD_COMMAND,0x38); //8位数据端口,2行显示,5*7点阵 LCD_Write(LCD_COMMAND,0x38);

LCD_SetDisplay(LCD_SHOW|LCD_NO_CURSOR); //开启显示, 无光标 LCD_Write(LCD_COMMAND,LCD_CLEAR_SCREEN); //清屏

LCD_SetInput(LCD_AC_UP|LCD_NO_MOVE); //AC递增, 画面不动 LCD_Write(LCD_COMMAND, 0x04|InputMode); LCD_Write(LCD_COMMAND, 0x08|DisplayMode);

if(y==1)

LCD_Write(LCD_COMMAND,0x80|(x-0x40));

29

//将字符输出到液晶显示 void Print(unsigned char *str) { while(*str!='\\0') { LCD_Write(LCD_DATA,*str); str++;

}

}

30

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

Top