




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于STM32的指纹识别系统的设计摘要随着经济时代的到来和科技的发展,人们对生活水平有了更进一步的的追求,对生活的安全性逐步提高,其中含有身份安全认证功效的指纹识别技术在人们的关注和需求下,得到了长足的发展,出现了多个不同的指纹识别系统,然而大多数指纹识别系统是基于PC机的,在便捷性和可移动性上还存在诸多局限性。基于嵌入式的指纹识别成为了人们的研究的方向,并获得了一定的成果。然而在这些应用中尚有诸多局限性等待大家的讨论研发,需要更进一步的研究和改善,以提高系统的应用前景。本文通过对嵌入式有关知识、图像预解决等方面的理论知识进行研究,在前人的基础之上,开发了一套小型的嵌入式身份识别系统。本文根据要设计的身份识别系统的功效来讨论了有关的指纹识别系统的硬件设计,完毕了基于STM32微解决器的指纹识别系统设备的硬件电路设计和对应的软件设计。该系统含有指纹图像采集、指纹库中数目统计、指纹比对、指纹录入等功效。另外,本文电路设计中选用的电器件在价格和性能上都有一定的优势。同时,本文对指纹识别系统的过程和有关的原理进行了一定的分析和研究,重点研究指纹图像的预解决过程。核心词:指纹识别;STM32;嵌入式技术;图像预解决ThedesignofthefingerprintidentificationsystembasedonSTM32AbstractWiththeadventoftheeraofeconomyandthedevelopmentofscienceandtechnology,people'slivingstandardshavefurtherpursuit,graduallyimprovethesafetyofthelife,theonewhichhasthefunctionofauthenticationsecurityfingerprintidentificationtechnologyunderthepeople'sattentionanddemand,therapiddevelopment,appearedavarietyoffingerprintidentificationsystem,butmostofthefingerprintidentificationsystemisbasedonPC,therearestillmanydeficienciesintheconvenienceandmobility.Basedonembeddedfingerprintidentificationhasbecomepeoplethedirectionoftheresearch,andachievedsomeresults.Howeverintheseapplicationsandtherearemanyinadequatewaitwediscussresearchanddevelopment,theneedtofurtherresearchandimprovement,inordertoimprovetheapplicationprospectofthesystem.Basedontheembeddedknowledge,imagepreprocessing,etctostudythetheoryofknowledge,onthebasisofpredecessors,hasdevelopedasmallembeddedidentificationsystem.Identificationbasedontodesignthesystemfunctiontodiscusstherelatedfingerprintrecognitionsystemhardwaredesign,completedthefingerprintidentificationsystembasedonSTM32microprocessorequipmentdesignofhardwarecircuitandsoftwaredesign.Thesystemhasafingerprintimagecollection,fingerprintlibrarystatistics,fingerprints,fingerprintinputnumber,andotherfunctions.Inaddition,thispaperselectedfromthecircuitdesignofelectrichaveacertainadvantageinpriceandperformance.Atthesametime,inthispaper,thefingerprintrecognitionsystemhasbeenconductedfortheprocessandtherelatedprincipleofanalysisandstudyonthekeyresearchoffingerprintimagepretreatmentprocess.Keywords:fingerprintidentification;STM32;Embeddedtechnology;Imagepreprocessing目录摘要 =1\*ROMANIAbstract =2\*ROMANII第1章绪论 11.1引言 11.2指纹识别技术 11.3指纹识别研究的现状 2第2章STM32嵌入式指纹识别系统的设计 22.1设计的概述 22.1.1图像分割 22.1.2指纹图像的收敛 32.1.3指纹图像的二值化解决 32.1.4指纹图像的细化 32.1.5指纹图像增强 42.1.6特性点的提取 42.2指纹传感器的分类 42.2.1光电式指纹传感器 42.2.2热敏指纹传感器 52.2.3电容式指纹传感器 52.2.4超声波指纹传感器 62.2.5压敏指纹传感器 62.3指纹采集程序设计 62.3.1指纹比配 72.3.2图像场计算 72.4细节提取 8第3章系统的硬件设计及软件设计 83.1指纹识别系统的硬件 83.1.1采集方式 93.1.2MBF200传感器概述 113.1.3MBF200重要寄存器 113.1.4MBF200的重要功效 123.1.5SPI通信模式 123.2STM32指纹识别的软件 123.2.1系统主程序设计 133.2.2传感器初始化程序 143.2.3存储器的扩展程序设计 163.2.4串口程序的设计 163.2.5移植算法程序 17第4章成果分析 184.1图像匹配测试 184.2指纹识别系统测试 19第5章总结 20致谢 21参考文献 22附录1 23第1章绪论1.1引言随着社会的进步和经济的发展,人们越来越关注身份鉴别的精确性和安全性。指纹识别就是根据生物特性的身份认证方式之一[1]。传统的身份识别办法的局限性和弊端体现得越来越明显。从本质上解决传统了身份识局限性,因此正逐步被承认。指纹识别技术发展至今已经成为生物特性识别应用最为可靠,方便的一种类型。本研究设计,是一种基于STM32芯片的指纹识别系统,它是通过指纹算法解决,以及传感器采集指纹数据等来实现指纹识别的。同时它还结合了VC++实现了人机交换显示指纹分辨数据。鉴于STM32有下列几点功效高速低功耗,这个特点能够让我们将其作为主控芯片。嵌入式指纹识别系统有较高的实时性、精确性安全性等各个实验的来以规定进行了改善,以提高指纹识别系统的性能[2]。1.2指纹识别技术指纹识别技术是指运用计算机进行的指纹自动识别的技术,它是一项综合技术,其研究发展涉及到多个前沿及边沿科学,如含糊数学、数学形态学、神经网络、模式识别、计算机视觉、人工智能、数据压缩、并行解决以及网络技术。基本能够分为三类;捺印指纹、含糊指纹和活体指纹。捺印指纹指的是将沾了印墨的手指按压在某种东西(普通是纸)上所留下的指纹痕迹,过去普通采用的都是这种采集方式,直到今天,这种方式仍然是指纹采集的重要手段之一。含糊指纹普通是指犯罪现场采集观察到的指纹。根据录入原理的不同,活体指纹录入能够分为光反射式、超声反射式、热敏式以及电容式几个。根据采集时指头与否与录入仪器接触,又可分为接触式和非接触式。根据与否能够滚动采集指纹又可分为滚动指纹录入仪和非滚动指纹录入仪[3]。1.3指纹识别研究的现状指纹自动识别系统是网络、光电技术、图像解决、智能卡、数据库技术等于一体的综合技术。并把它变成计算机解决过的暗码相比对的代码。这些代码通过加密解决,然后经独特的有关算法进行识别判断,在算法上采用一种指纹的全部图案,而有的采用指纹的特殊细节的办法。第2章STM32嵌入式指纹识别系统的设计2.1设计的概述指纹识别系统事实上是一种相称复杂的多任务系统,整个过程涉及图像采集、预解决、特性提取、识别匹配等,考虑到实际应用的需要,还必须加上数据传输、外围设备控制等部分来完毕一系列诸如人机对话、指纹数据库数据读取、匹配成果输出等工作。其中预解决、特性提取和匹配识别都含有算法复杂、计算量大的特点,因此整个系统事实上也是一种计算密集的过程。要实现这样一种多任务、高计算密度的系统,除了规定解决器拥有强大的计算能力外还必须拥有强大的控制能力来协调调度和分派资源。同时,大量高速的存储器资源也是必不可少的。在这种系统中,由于微解决器既要完毕复杂的图像解决,又要负责监控外围设备的任务,这样使得系统解决指纹的效率偏低,系统的功效简朴,并且更重要的是对于系统升级或功效扩展都十分不便。在本嵌入式指纹自动识别系统中,我们将其分为指纹识别算法模块加控制模块两大部分。指纹图像预解决可得到含有清晰纹理构造的指纹灰度图像,涉及图像特性分割,图像收敛、平滑、增强、二值化等一系列过程。2.1.1图像分割指纹图像应用部分梯度场值高,在很大程度上背景部分梯度场值低,因此,能够以分型维数的物理模型为基础通过梯度场来分割指纹图像。在这里我们能够通过某些计算办法来实现图像的分割[4]。本分割办法构造边界曲线概率密度模型,接着根据指纹图像所含有的内在特性构造外背景区域概率密度函数和内指纹区域概率密度函数,然后形成边界曲线的Markov链,最后采用马尔科夫链蒙特卡洛模拟(MCMC)办法实现动态模拟,求取最优的边界曲线,从而实现对指纹图像的有效分割。指纹图像中存在有脊线区域、谷线区域和背景区域。相对而言,脊线区域上的像素的灰度值相差很小,而谷线区域与背景区域上的像素的灰度值相差很小。反映在灰度直方图上,灰度值就会在两处集中而形成两个峰,两个峰对应的灰度值分别称之为脊线中心灰度和谷线中心灰度。那么,能够认为脊线区域中像素的灰值服从以脊线中心灰度为中心的正态分布。然而对于指纹区而言,其上的像素既可能在脊线区域上,也可能在谷线区域上,而谷线的灰度分布跟背景灰度分布相似。因此判断曲线Γ内部区域在指纹区的指标应当是属于脊线区域的像素。在一块指纹区上,脊线和谷线总是交替出现,能够认为,脊线像素总数与谷线像素部数大致也相等。换句话说,脊线像素的总数应当大概等于指纹区像素的总数的1/2,太大或太小都不行。2.1.2指纹图像的收敛当受到外界的噪声干扰时,指纹纹线像素的位置和灰度会变化并发散。指纹图像的收敛就是使像素的变化差别缩小到预先固定的阈值之内。二维高斯函数描数值,A是该点的发散振幅(用灰度值表达),最后一项是二维高斯函数模板算子。2.1.3指纹图像的二值化解决指纹图像二值化解决把指纹图像变成黑白两色的指纹纹线构造。如果一种点的切向灰度之和比法向灰度之和要小,则可判断为黑点处在指纹纹路的背景上。所谓灰度图象的二值化就是通过设定阀值,把它变为仅用两个灰度值分别表达图象的前景和背景颜色的二值图象。图象的二值化能够根据下面的阀值来解决。2.1.4指纹图像的细化指纹图像的细化是为了减少要解决的信息量,把指纹的脊线部分对称减薄,使指纹纹线由原来的多个像素宽度变为单个像素的线形图。本研究采用查表法对指纹进行细化解决。因指纹图像已进行二值化解决,其像素要么是0,要么是和方向差,再分析其内在的关系,从而建立局部的特征向量以进行指纹特性点的初次匹配。同时在匹配的过程中标记最大且不为零的匹配分数Score,再对所得匹配分数Score求和并通过进一步算法得到相对匹配分数S,为了减少误判,本研究通过设立门限对指纹的匹配状况进行初步鉴定。全局匹配:对于没有得到鉴定的状况,通过全局匹配来进行进一步鉴定。由于前文已经求取了指纹的奇异点,这里将提取的指纹A和指纹B的奇异点(中心点或三角点)分别作为待鉴定和模板库指纹图像相应的极坐标的中心点。2.1.5指纹图像增强指纹图像增强是指纹识别系统的重要构成部分,在通过算法使指纹不清晰的地方得到改善的同时尽量保存指纹原有的特性信息,确保后续图像解决的准确性和可靠性。对于指纹图像的增强,本研究前面通过计算获得指纹的方向场和频率场信息,这里采用较成熟可靠的Gabor小波滤波器实现图像的智能增强,该小波工具首先在指纹纹线上能够对在该位置方向场上的指纹纹线进行收敛增强,另首先它也符合指纹纹线相间的特点,能够在该位置的频率场上对指纹纹线进行振荡增强,从而提高图像的增强效果,方便更有利地提取指纹特性点信息[5]。2.1.6特性点的提取特性点提取分两种状况,即:对端点和交叉点的提取;对指纹特性奇异点的提取。本次的研究采用的是交叉数的特性提取办法。在特性点检测中,对Harris算子提出了两种不同的办法,添加了高斯函数一阶微分作为滤波窗口,此窗口是能够手动调节的,进行了改善,得到了比传统的使用梯度算子进行检测更加好的结果。随着图像解决精度规定的不停提高,对图像边沿检测的精度规定也在不停提高,现有的边沿特性检测算子大多都是像素级的办法来实现的。2.2指纹传感器的分类指纹采集设备按指纹传感器工作原理的不同可分为五类:光电式、电容式、压敏式、热敏式和超声波式。下面就指纹传感器的几个类型分别加以介绍。2.2.1光电式指纹传感器光电式指纹传感器工作原理是运用从光源发出的一组光线,通过棱镜后照射在待采手指上,由于指纹的脊和谷对光线的反射不同,所形成的指纹纹路图像被投射到半导体光敏矩阵器件上,形成随图像明暗变化而变化的电信号。最后通过A/D转换电路转换为一连串指纹识别系统设计的数字图像信息。早期的光电式指纹传感器中,光电图像转换器件重要采用半导体CCD器件,其信号输出大多是模拟信号,与解决器的接口电路比较复杂,抗干扰能力也较弱。随着CMOS数码阵列光电图像传感器技术的不停成熟,在光电图像转换的领域中,CMOS光电器件开始逐步取代传统的CCD光电器件。用CMOS光电器件取代CCD光电器件而构成的光电式指纹传感器,称之为CMOS光电式指纹传感器。光电式指纹传感器的优势在于,产品的成本相对较低,耐用度好,抗静电强度高,能承受一定程度的温度变化,并能够提供分辨率为500dpi的图像。局限性之处重要体现在尺寸过大和潜在指印两个方面。2.2.2热敏指纹传感器热敏式指纹传感器的采样原理是通过感应在传感器上指纹的脊和谷的温度不同来获得指纹图像。热敏式指纹传感器的工作方式属于被动扫描型,输出信号为图像帧序列,需要用专门的图像拼接算法来拼接出一蝠完整的指纹图像。其特点是体积小,成本极低。但其输出的图像经拼接后生成的指纹图像几何失真度较大。热敏式指纹传感器采用了全新的设计思路,它的工作机理是基于对温度的敏感。从而能够在不影响芯片采集性能的前提下,在其表面涂覆一层导电的钛膜,既起到静电保护的作用,又能够提高芯片的耐瘩损性能。它的采集面普通呈窄条线状构造,采集时变化了以往传统的“捺印”模式[6]。依靠手指在指纹传感器表面上滑动时,各对应热敏传感单元上温度的不同变化来生成指纹图像的电信号。2.2.3电容式指纹传感器电容式指纹传感器由半导体晶片构成,在半导体晶片的表面,集成了约100,000个电容传感器阵列,其表面是绝缘的。当活体手指放在上面时,皮肤构成了电容阵列,手指上导电性能良好的真皮层上的脊和谷相对晶片表面的距离不同,与芯片之间产生不同的电容使电容传感器阵列中对应单元的电压值也不同,继而使这些电信号转换成一种8bit的灰度数字指纹图像。半导体电容式指纹传感器含有自动增益(AGC)功效,在不同的环境下结合反馈的信息,能够自动调节行列、局部范畴以及每一种像素的敏捷度,从而提高图像的质量。例如一种局部不清晰(对比度差)的干燥指纹图像,或者是手指按压力度较轻而使边沿含糊不清,都能够被反馈环路感觉到,并自动增强其敏捷度来进行赔偿,在图像捕获的瞬间生成清晰的图像。因此采用半导体电容式指纹传感器录入设备,能够在相对较差的条件下生成质量较好的指纹图像。对不同的气候变化和职业背景所带来的手指变化,含有较好的适应性。半导体电容式传感器体积小巧,它能够集成到许多现有设备特别是移动式设备中,图像几何失真度小,能够生成质量较好的指纹图像,并且指纹录入时不需要较大面积的录入头。其缺点是受半导体大规模集成电路制造技术水平的限制,其采集的面积不易做大。对特别潮湿的手指,采集效果不佳。另外,容易受到静电的影响,这使得传感器有时会取不到图像,甚至会被损坏。2.2.4超声波指纹传感器超声波指纹传感器取像的原理是通过超声波扫描指纹的表面,接受其反射信号,测量它的变化值,得到脊的深度和具体位置,进而获得指纹图像。该类传感器工作时,超声波能够穿透台板以及指纹上的灰尘和残存物,因此积累在皮肤上的脏物和油脂对超声波扫描获得的图像影响不大,因此这样的图像是实际脊线凹凸的真实反映。其优点是采集面积大、适应能力好。缺点是设备体积大、成本高以及使用寿命不稳定。2.2.5压敏指纹传感器压敏指纹传感器顶层的表面是含有弹性的压敏介质材料,它们根据指纹的外表脊纹线的凹凸转化为对应的电子信号,继而形成指纹图像。其重要特点是成本较低,对干湿手指适应能力极佳,即使将其浸入水中,也不会影响指纹图像采集质量。缺点是对于妇女、小朋友等皮肤较娇嫩的手指,采集的图像不够清晰。2.3指纹采集程序设计程序设计核心是程序实现SPI通信模式下STM32和指纹传感器FPS200的通信操作。FPS200有19个寄存器,用来控制指纹数据采集过程中的状态和行为,这里介绍几个比较重要的寄存器的初始化:(1)初始化CTRLB,使能芯片的ENABLE位使其处在工作状态,XTALSE位选择内部12M晶振,同时使能指纹自动检测,通过判断RDY位的状态决定指纹图像数据的读取。(2)初始CTRLA,这里可以选择GETROW、GETIMG和GETSUB这3种存取模式的1种作为存取模式,本研究给CTRLA写入0x02,即选择GETIMG模式来获取整幅图像。(3)初始化DTR、DCR和PGC,它们影响采集图片的质量,DTR是放电时间寄存器,影响着图像背景亮暗程度。结束与否读到该图像的最后单元与否读到该行最后单元初始化DTR初始化CTRLA自动采集指纹数据结束与否读到该图像的最后单元与否读到该行最后单元初始化DTR初始化CTRLA自动采集指纹数据图像场计算分割图像场计算分割均衡化平滑增强二值化细化原始灰度图像指纹图像预解决特性点提取特性匹配匹配成果图2.12.3.1指纹比配指纹匹配指的是通过对两枚指纹特性集间的相似性比较,来判断对应的指纹图像与否来自同一手指的过程,它是一种非常典型而又亟待解决的模式识别问题。现在,指纹细节点匹配算法分类有多个:根据指纹识别的目的能够分为一比一匹配和一比N匹配;根据操作过程的差别可分为自动匹配和人机交互匹配;根据匹配适应性能够分为弹性匹配和刚性匹配。根据指纹细节点定义和相似性判断函数选用的不同,指纹匹配办法更是多个多样的,例如基于奇异点的、基于三角形的、基于极坐标变换的,基于动态规划的、基于图匹配的等等办法,不胜枚举。需要阐明的是这些分类办法都难以囊括全部的指纹匹配算法,由于同时有诸多算法彼此交叉。需要指出的是,上述分类办法并不是绝对的,多个办法是互相联系的,每个算法都有自己的特点,并针对特殊的应用。例如:图匹配的办法对质量差指纹图的噪声抗干扰能力较好,但办法未经大规模实验的证明;细节点匹配对质量好的指纹图像计算精确,纹理特性的可辨别性不强;基于纹理信息和串匹配的混合匹配办法在一定程度上提高了识别率,但是计算代价非常高;基于三角匹配和动态规划的混合匹配办法能够解决非线性形变的问题,但是提取的特性过大,难以满足在线实用的规定。总而言之,指纹图像的几何影像形变及错位等问题是匹配算法需要做的首要工作。因此,在指纹识别中必须考虑这些指纹图像中可能存在的线性或非线性形变。现在已有的算法依赖一种前提条件:待匹配的两幅指纹图像是使用相似配备、相似采集仪来采集的,即同模态,并且,这些指纹允许存在一定程度的噪声。而匹配算法的最后目的是对给定的两幅指纹,谋求使这两幅图像的灰度(或特性)相似度之间差别达成最小的办法。在这种状况下,重要的工作经常是对指纹形变问题的研究,建立一种定义在有穷的形变参数空间的带参数的形变变换模型,最后进行形变参数最优化解决[7]。2.3.2图像场计算图像场计算涉及图像的强度场、梯度场、方向场以及频率场计算。首先本研究采用Soble算子求指纹图像灰度函数,再分别沿x和y方向偏导Ax(x,y)和Ay(x,y),计算该指纹图像的梯度场,由于梯度场能够较好地分割指纹图像。2.4细节提取细节点对应的脊线用在与该脊线上的采样点来表达,采样的距离约为脊线间的平均距离。脊线分支点对应的脊线是与该细节点的方向近来的那条。脊线末梢对应的脊线则就是该细节点所在的脊线。采样点用该点与对应细节点的距离di和连接该点与对应细节点的直线与对应细节点方向的夹角αi来表达,αi的取值范畴是-180到180度[8]。细节点对应的脊线及脊线上的采样点的例子。在细节匹配中,对应脊线将被用来对用来匹配的两个平面点集进行校准,并且,校准的参数,也就是两个点集中任意一对脊线间的旋转角度,将被用来作为判断它们所对应的细节点能否看作匹配的细节点的条件。第3章系统的硬件设计及软件设计3.1指纹识别系统的硬件图3.1所示是本STM32指纹识别系统的硬件框图。从图3.1中能够看到,本系统重要由指纹数据采集模块、微解决器模块、数据存储模块和通讯模块等四个模块构成。本系统以本解决器为核心来驱动指纹传感器采集指纹,并将指纹数据放入存储器中,此数据能够被PC通过串口获取,也能够保存在数据存储器中。指纹数据采集模块可运用软件方式来判断与否进行指纹的采集。当进行指纹采集时,指纹传感芯片将按照设定的参数来采集指纹,并将模拟图像转换成数字图像,然后在ARM的控制下,将数据存储在外部数据空间,以等待下一步的解决。指纹识别系统的硬件框图以下。SDRAMSDRAMARM通讯接口MBF200FLASH图3.1微解决器模块以ARM和数据存储器为核心,可对采集到的指纹图像进行对应的预解决,并通过对发光二极管的控制来显示指纹预解决成果。数据存储模块由SDRAM、FLASH构成。其中Flash中寄存的是系统的应用程序和一种指纹预解决后的数据,系统上电后,即可通过“BootLoader”功效将程序加载到FLASH中方便程序运行。功效将程序加载到FLASH中方便程序运行。SDRAM用来寄存指纹图像并提供程序运行时所需要的临时数据空间。通讯模块的设计要考虑到解决的简易性。本系统的指纹数据上传采用的是串口方式。3.1.1采集方式MBF200[9]有三种总线接口:USB接口、微解决器总线(MCU)接口和串行外设接口(SPI)。使用时可由模式选择管脚MODE[1:0]拟定其所处的工作模式。在MCU接口模式,通过自动增加行列地址寄存器的值以及模数转换的途径优化功效,可使FPS200内置的原则8位微解决器总线的性能大大加强,其图像传输速度可达成30帧/秒,故能够满足持续指纹图像的采集和比对。在SPI接口模式,MBF200传感器可通过其内置的SPI接口来减小MBF200对硬件的依赖,这样,系统只需6条线就能够与带SPI接口的微解决器相连接。在SPI模式下,MBF200的图像传输速度为10帧/秒。而在USB接口模式下,由于FPS200内置有高速USB核电路,其外部不再需要其它USB控制器,因而可作为原则的USB设备来使用。在USB模式下,MBF200的图像传输速度为13帧/秒。3.1.2MBF200传感器概述富士通公司的MBF200固体指纹传感器是一款直接接触的指纹识别芯片。它含有高性能、低功耗、低成本的特性,是电容性传感器,在传感阵列中有一种二维的金属电极传感阵列,每一种金属电极充当电容的一种电容板,接触的手指作为电容的另外一种电容扳,器件表面的钝化层作为两板的绝缘层。当手指触摸传感器表面时,指纹的高低不平就会在传感器阵列上产生变化的电容,从而引发二维阵列上电压的变化,并形成指纹传感图像。tdBF200是根据原则的CMOS工艺制造而成,传感阵列为256X300,有50um时间延迟,产生的图像的分辨率为500dpi。该芯片的特点是:电容性固态传感器;500dpi的分辨率(50um间隔);传感器面积为1.28cmX1.50cm:256X300的传感阵列;工作电压范畴为3.3V一5V;特别的硬抗化学的保护涂层;集成了8位ADC:3种总线接口,即8位微解决器(MCU)总线接口、集成的USB全速接口及集成的串行周边1发备接口MBF200的传感器阵列由256行300列的传感器单元构成,每一列有两个采样保持电路,每次捕获一行指纹图像数据。行捕获分为两个阶段,第一阶段,将电容板的被选行充电到3.3V或5V,在充电的同时,一种内部信号使自&一种采样保持电路以采样被选行的电容单元电压;第二阶段是传感器板放电阶段,放电快慢由放电电流寄存器。3.1.3MBF200重要寄存器地址标记功效:0x00RAH行地址高位;0x01RAL行地址低位;0x02CAL列地址低位;0x03REH行末地址低位;0x04REL行末地址低位;0x05CEL列末地址低位;0x06DTR放电时间寄存器;0x07DCR放电电流寄存器;0x08CTRLA控制寄存器;A0x09LTRLB控制寄存器;B0x0ACTRLC控制寄存器;C0x0BSRA状态寄存器;0x0CPGC可编程增益控制寄存器;0x0DICR中断控制寄存器;0x0EISR中断状态寄存器;0x0FTHR门限寄存器;0x10CIDH芯片标记高;0x11CIDL芯片标记低;0x12TST测试模式寄存器。这些就是MBF200的重要寄存器。由于列地址最大为256,因此,MBF200只有一种列开始寄存器CAL和一种列结束寄存器CEL。另外,THR用于在自动检测指纹时设立门限电压。PGC用于在A/D转换时设立放大器的增益。3.1.4MBF200的重要功效MBF200的传感器阵列由256列300行的传感器单元构成。每一列有两个采样保持电路,每次捕获一行指纹图像数据。行捕获分为两个阶段,第一阶段,将电容板的被选行充电到3.3V或5V,在充电的同时,一种内部信号使能一种采样保持电路以采样被选行的电容单元电压;第二阶段是传感器板放电阶段,放电快慢由放电电流寄存器决定。放电阶段结束后,可由一种内部信号使能另一种采样保持电路去采样电容单元的最后电压,充电电压与放电电压之差就是所要测量的有用传感信号电压。行捕获结束之后,接着对该信号进行数字化,从而完毕一次采样。事实上,该芯片的敏捷度是由放电电流和放电时间寄存器来调节的。3.1.5SPI通信模式MOTOROLA公司的SPI总线的基本信号线为3根传输线,即SI、SO、SCK。传输的速率由时钟信号SCK决定,SI为数据输入、SO为数据输出。它包含了一种主片和多个从片,主片通过发出片选信号-CS来控制对哪个从片进行通信,当某个从片的-CS信号有效时,能通过SI接受指令、数据,并通过SO发回数据。而未被选中的从片的SO端处在高阻状态。主设备通过产生移位时钟来发起通讯。通讯时,数据由SO输出,SI输入,数据在时钟的上升或下降沿由SO输出,在紧接着的下降或上升沿由SI读入,这样通过8/16次时钟的变化,完毕8/16位数据的传输。3.2STM32指纹识别的软件本程序是以IAREmbeddedforARM作为系统的一种专门嵌入式微解决器所开发的环境,其特点开发容易,简答易学,代码紧凑。其涉及项目管理,编辑器、C/C++编译器和ARM汇编器、连接器和支持RTOS的调试工具C-SPY。IAREWARM内部开发了全软件模拟功效,能够在没有外接硬件设备的状况下进行调试,通过软件自带的模拟程序实现任何ARM内核和外部环境的模拟。其中IAR公司还推出了芯片仿真器,支持无缝连接。只需将该仿真器的两端通过JTAG接口和USB接口分别与STM32芯片和计算机相连,即可实现与IAREWARM的连接进行软件的仿真和调试,下载速度可达800kb/秒,并且无需任何驱动程序,简朴方便,是最实用有效的ARM系统软件开发的工具。在IAREWARM下实现程序开发,并对开发的程序进行仿真和调试的具体流程以下:(1)新建工作区,然后创立工程,生成一种新的项目,添加要开发的全部应用程序,选择芯片类型同时配备编译和连接有关参数和输出文献途径等。(2)编译和连接项目中的应用程序,生成编译器列表文献和连接存储器分派文献。(3)使用j-link仿真器调试和运行程序,同时设立断点。3.2.1系统主程序设计指纹识别的主程序是将指纹解决的各个阶段:涉及指纹采集、图像的预解决、提取特性点、图像匹配整个过程组合在一起实现嵌入式系统的指纹识别,在组合的过程中,要实现算法程序的移植、系统存储空间的分派和算法的优化等各个部分,最后实现精确高效的指纹识别。其系统的主程序流程图如图3.2所示。主程序的重要初始化函数以下:RCC_Configuration();//系统时钟初始化NVIC_Configuration();//中断初始化GPIO_Configuration();//GPIO初始化USART_Configuration();//串口初始化MBF200_Init();//MBF200初始化LCD1602_init();//1602液晶初始化FSMC_SRAM_Init();//SRAM初始化开始开始STM32系统初始CP200初始化自动采集指纹数据初始化CTRLA初始化DTR读CTRLA寄存器等待A/D转换时间与否读到该行的最后单元与否读到该图的最后单元结束等待行捕获时间图3.2.指纹识别系统流程3.2.2传感器初始化程序对于传感器的初始化,事实上是主控制器通过SPI通信对传感器内部寄存器写数据的过程,当写数据时,通过先发送写命令0X02,再发送要写的寄存器地址,最后向对应地址的寄存器写入数据,整个过程遵照SPI时序。需要强调一点,根据MBF200的技术资料中写数据的时序图,这里要写的寄存器地址是原地址的值左移3位然后补零而形成的新的地址值。初始化CTRLB,使能芯片的ENABLE位,使其处在工作状态,传感器启动内部A/D转换,XTALSE位选择内部12M晶振,同时使能指纹自动检测,通过判断RDY位的状态决定指纹图像数据的读取;当有手指按在传感器的电容阵列区域时,传感器自动唤起电路启动,开始由休眠转入工作状态,同时向主控制器发送一种中断信号,传感器开始逐行采集指纹的每一种像素,通过A/D转化后,将数据暂存在CTRLA中,主控制器接受到中断后,等待A/D转换结束,开始读取CTRLA的数据,读取结束后则继续等待A/D转换数据,如果没有能够读到该行的最后单元,则返回CTRLA寄存器,继续读取A/D转换数据,否则需要判断与否读到图像的最后单元,如果到图像末尾则整个采集工作结束,否则继续等待传感器捕获指纹信息,读取下一行数据。这里给出传感器的初始化程序:voidMBF200_Init(){MBF_WriteREG(0x06,0x38);//初始化寄存器DTRMBF_WriteREG(0x07,0x01);//初始化寄存器DCRMBF_WriteREG(0x0C,0x0C);//初始化寄存器PGCMBF_WriteREG(0x0F,0x2C);//初始化寄存器THRMBF_WriteREG(0x0E,0x03);//初始化寄存器ISRMBF_WriteREG(0x09,0x0D);//初始化寄存器CTRLBMBF_WriteREG(0x00,0x00);//初始化寄存器RAHMBF_WriteREG(0x01,0x00);//初始化寄存器RALMBF_WriteREG(0x02,0x00);//初始化寄存器CALMBF_WriteREG(0x03,0x00);//初始化寄存器REHMBF_WriteREG(0x04,0x00);//初始化寄存器RELMBF_WriteREG(0x05,0x00);//初始化寄存器CELMBF_WriteREG(0x0A,0x00);//初始化寄存器CTRLCMBF_WriteREG(0x08,0x00);//初始化寄存器CTRLA}3.2.3存储器的扩展程序设计STM32对SRAM存储器的扩展重要是通过对FSMC的配备实现的,系统选择Bank1的子Bank3,根据存储器IS62WV51216BL的映射位置FSMC_BCR3和FSMC_BTR3/BWTR3进行设立。首先选择芯片映射到Bank1的第3个子Bank,设立对SRAM的读/写使用相似时序,这样对时序寄存器只需要设立BTR3就能够了,选择存储器的类型为SRAM,设立数据宽度为16(bit),严禁对地址和数据的复用,配备等待时序为在等待前的一种周期有效,同时使能芯片写操作,这样就完毕了对该寄存器的初始化。STM32的FSMC固件库里包含了NORFlash控制器全部操作固件,通过对数据构造FSMC_NORSRAMTimingInitTypeDef内部组员的设立能够实现时间参数寄存器FSMC_BTR3和BWTR3的转变,使得内部组员的设立能够实现对基本特性参数配备寄存器FSMC_BCR3的初始化。3.2.4串口程序的设计将指纹传感器采集到的指纹数据保存在外部SRAM的全局数组中必须用到主控制器。系统通过设计串口程序建立主控制器与上位机的异步串口通信,对主控制器的串口进行初始化,对串口的有关参数进行设立,当到波特率选择最大值为115200时,并启动UART1,即可通过串口发送和接受函数实现与上位机的数据交互。采集的指纹数据通过串口线被发送到上位机的接受数据缓冲区,需要在上位机设计串口程序将缓冲区的数据进行接受和保存。对次设计而言,MSComm控件封装了与串口有关的全部API函数,在设计时只需要调用有关属性、办法、事件就能够实现对串口通信的开发,而不需要学习复杂的API函数,相对简朴。因此本设计采用MSComm控件在VC++环境下实现对串口程序的开发。本设计选择事件驱动法,对MSComm控件的惯用属性,其中涉及端标语、通信参数、通信合同、端口状态等进行初始化设立,并打开通信端口,然后通过OnComm事件的CommEvent属性的值来判断与否有数据发送或接受。当下位机开始发送数据时,即发生了一种通信事件,将引发上位机程序产生OnComm事件,并使得其CommEvent属性的值将发生变化,应用程序根据CommEvent属性值为2,表达缓冲区接受到字符,开始使用GetInput()函读取接受缓冲区数据,由于在读取和发送数据的过程中,使用的数据类型都为VARIANT型,因此需要将读取的缓冲区数据保存在一种VARIANT[10]变量中,然后将该变量中的VARIANT型数据转换为Cstring型变量存入全局数组。3.2.5移植算法程序研究算法时普通不用考虑存储空间的分派问题,因此系统的内部存储空间做够大,能够满算法解决的规定对于嵌入式微解决器而言,芯片内部存储空间有限,指纹的解决算法需要解决的数据量相对较大,其采集的指纹图像、提取特性模板和运行的程序代码都会占据较大的存储空间,合理的分派存储空间对系统算法的执行十分重要。算法中间解决的临时图像通过建立全局数组的方式存储在外部SRAM中;指纹提取的模板特性点以构造体的形式寄存在FLASH中;便于后来对其进行添加和删除;指纹的待匹配特性点通过分派动态内存来保存,当系统识别结束后,即将该数据释放,为系统的存储空间节省了资源。系统解决过程中的临时图像数据就寄存在该全局数组中。对应外部SRAM,能够通过两个指针lpDIBBits(原图像指针)和lpDataOut(目的图像指针)指向该数组,以这两指针算法的输入输出端口可实现图像算法解决,即将指纹图像解决前后的数据都保存在该数组中,避免了系统存储资源的浪费。在指纹图像的采集部分,通过对图像边沿处不重要的图像信息进行裁剪,使得采集的图像为250*200,同时对于存储在数组中的矩阵图像数据,通过抽样提取的方式对图像矩阵的行和列进行了减半缩小[11],使得图像变为原来的1/4即为125*100的图像,这两个方面的解决使得图像的数据量得到了较大减少,提高了系统的执行效率。第4章成果分析4.1图像匹配测试图像特性匹配重要是通过统计匹配的特性点数计算两幅图像的相似度,验证图像的匹配,算法通过对特性点匹配的相似度进行计算,如果两幅指纹图像相似度于0.6,则认为两幅指纹来自同一种手指的指纹。VC上针对两幅图像的匹配设计特性点匹配界面如图4.1图4.1特性匹配界面将图像的预解决和细节特性点匹配算法相结合,从原指纹图像开始对图像的预解决算法和指纹的匹配算法进行整体性能的测试。采用指纹传感器采集的指纹图像作为输入图像,通过指纹算法解决,根据图像的匹配程度给出匹配成果,匹配成功则输出”sameimage”,匹配失败则输出“differentimage”.4.2指纹识别系统测试通过将VC++的指纹识别算法移植到嵌入式系统中,搭建嵌入式指纹识别系统平台,并对图像的识别算法进行测试。匹配成功LCD1602输出”sameimage”字符串,匹配失败LCD1602输出“differentimage”字符串。通过在嵌入式系统上的验证,指纹识别算法在该系统是上的识别精确率有所减少,分析重要因素可能是系统为了提高解决速度,对指纹图像进行了抽样缩小解决,使得图像损失了部分的特性信息,识别的精确率有所下降,但是仍然保持在95%的水平。图片数据量的减小使得系统在识别效率上得到了较大的提高。原来系统整个识别过程大概需要6s的时间,通过改善识别时间能够控制在3s以内,大大提高了系统的识别效率。第5章总结随着社会的发展,技术的不停进步,生物识别作为一种方便有效的身份认证技术,越来越受到人们的青睐,指纹识别技术作为生物识别技术中最为成熟的一种,始终都是人们研究的重点,特别是嵌入式技术在指纹识别方面应用以来,提高了指纹识别系统的性价比,为指纹识别系统走向民用提供了便利,现在人们已经开发出了多款不同的嵌入式指纹识别系统,并且广泛应用在社会的各个领域。本文对现有指纹识别技术原理和研究现状进行了简要分析,并对指纹算法和嵌入式系统进行研究,通过对现有指纹解决算法进行改善,设计了一种基于STM32的嵌入式指纹识别系统,并在该系统上对指纹识别的可行性进行了验证。本文的研究工作重要涉及以下几个方面。本设计实现了指纹图像从采集到指纹识别的整个过程,但毕竟笔者对指纹识别技术的研究才刚刚起步,设计的系统在某些方面还存局限性,需要进一步的改善。指纹采集的质量直接影响着算法的复杂度,系统在指纹算法解决方面,有较大一部分是对采集图像做预解决增强,如果能采集到高质量的指纹图像,将减少较多不必要的预解决算法,进而提高系统算法执行的效率。该传感器含有MCU、SPI和USB三种接口模式,其中SPI接口的速度较慢,如果改为MCU接口的采集模式将较大的提高系统的采集效率。另外,本设计只是实现了指纹的识别,还缺少键盘和模式设立等人机交互界面,同时考虑到系统的成本和设计难度,选择STM32作为主控芯片,对指纹识别系统进行了开发,使得减少了较大成本,但系统的性能与DSP解决效果还是存在差别,这里STM32芯片内部即使集成了乘法器,但是其在主频上还是存在较大的局限性,如果将STM32与DSP解决芯片相结合来实现指纹识别系统,将较大的提高整个系统的性能。致谢时间犹如光阴似箭,转眼间我们的大学生涯即将结束。在辽宁科技大学信息技术学院学习的这段时间,许多老师和同窗在学习上和生活上都予以了我很大的协助。谨向全部予以我协助、关心和指导的老师、同窗、朋友以及亲人致以衷心的感谢。首先要感谢我的导师孙功勤老师,在此期间,孙老师百忙之中抽出时间予以了我诸多的关心和专业指导,拓宽了我的视野,使我受益良多。此篇毕业设计就是在孙老师的指导下完毕的。她学识渊博,治学严谨,工作无私忘我。通过孙功勤老师的传道、授业和解惑,我不仅掌握了必要的知识和技能,还树立了自强和奋斗的人生观。她的精神将始终激励我不停迈进。在此,我向孙老师致以最诚挚、最衷心的感谢!另外还要感谢本文参考图书和文献的各位作者,他们为我提供了这方面的珍贵资料!最后,我要感谢父母和亲人在生活和学习上对我的支持和关心,感谢全部关心和协助过我的朋友们! 参考文献[1]杨艳.生物特性识别技术综述[J].大众科技(3):31-33.[2]柴晓光;岑宝炽.民用指纹识别技术[M].北京:人民邮电出版社.(5):7-9.[3]宋娟.生物识别技术中
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 常见鱼病肉眼初步判别课件
- 场地内车辆管理办法
- 北京市停车管理办法
- 技术型公司管理办法
- 厦门渣土车管理办法
- 国税以服务管理办法
- 村助理日常管理办法
- 注塑业成本管理办法
- 县住房建设管理办法
- 英语中国课件
- 创伤后伴急性胃肠功能损伤相关因素的临床分析
- 广东省佛山市2024-2025学年高二下学期期末教学质量检测政治试卷(含答案)
- 2025坏死性筋膜炎护理
- 儿科常见感染性疾病及护理
- 2025年中国泡沫胶带市场调查研究报告
- 中国氟化工行业“十五五”发展规划
- 呼吸科护理进修后回院工作汇报
- 2025-2030年中国熊去氧胆酸原料药行业市场现状供需分析及投资评估规划分析研究报告
- 煤矿基层工伤管理制度
- 2025年《商务英语翻译》课程标准
- JG/T 446-2014建筑用蓄光型发光涂料
评论
0/150
提交评论