基于STM32芯片的指纹识别系统模块设计与实现

来源:指纹芯片    发布时间:2023-09-28 11:43:56

  指纹识别是根据每个人指纹的不变性和唯一性进行身份识别的一门技术。跟着社会的发展,嵌入式的指纹识别技术慢慢的受到市场的青睐,成为近年研发的重点,但目前的嵌入式指纹算法大多在实时性和准确度上还存在不足,要进一步优化算法,以实现准确高效的指纹识别。

  本研究设计、实现一种基于STM32芯片的指纹识别系统,通过指纹传感器采集指纹数据,指纹算法处理指纹数据实现指纹识别,同时结合VC++平台建立人机交互界面对指纹图像数据显示。

  本研究采用ARMcortex-M3内核的32位处理器STM32F-103ZET6作为主控制器,该芯片内部采用哈佛结构、其中集成有64KB的RAM和512KB的FLASH,运算速度快,并且具有体积小和低功耗的特点,在嵌入式图像处理方面具有较高的应用前景。指纹识别系统结构功能图如图1所示。

  系统硬件最重要的包含:指纹采集模块、SPI接口模块、指纹数据存储模块(SRAM)、指纹程序存储模块(FLASH)、UART模块、指纹图像算法处理模块、处理结果为模块等。

  具体工作流程如下:系统通过USB供给5V稳压电源,通过内部电路转换成3.3V稳压电源,系统上电后,通过STM32给传感器的各个寄存器初始化,指纹传感器FPS200采集指纹图像,通过SPI接口和STM32最小系统来进行通信,将采集到的指纹数据发送到STM32,进而保存指纹图像到SRAM,通过种种算法实现对指纹图像信号的预处理、提取特征点和图像匹配,最后实现指纹识别功能。另外STM32和主机之间通过异步串口通信把指纹图像数据传送到PC机,显示图像,由于一幅图像的数据量就是76.8KB,主控芯片内部RAM容量不能够满足存储和处理图像数据的要求,所以本设计外扩SRAM来存储指纹数据。系统模块设计的程序放在FLASH中,指纹特征数据模板也放在FLASH中,以便在使用的过程中删除和添加,并显示指纹识别结果,主控制器采用JTAG接口,通过J-link进行仿真调试,通过IAR-forARM实现程序的设计。

  指纹图像的采集对系统实现其识别功能至关重要,一幅采集质量较好的指纹图像有利于后续对指纹图像的算法处理,减少算法的复杂程度,提高系统指纹识别的功能。

  指纹传感器FPS200是Veridicom公司的一款新型指纹传感器,具有500dpi的分辨率,片内集成300×256的传感器阵列,256级的灰度图像和8位的像素数据,并且支持MCU、SPI和USB3种接口模式,这里采取了比较简单的SPI接口模式,供给3.3V稳压电源,系统指纹采集硬件电路如图2所示。

  STM32的MODE1接VCC、MODE0接GND,使其工作在SPI模式且为主模式,指纹传感器FPS200工作在SPI从模式。这样STM32通过PB12~15管脚与FPS200的SPI接口的4个管脚相连。FPS200根据STM32由SPI接口发送过来的写寄存器的命令、地址和指令数据执行相关操作,并将采集到的指纹数据经由该SPI接口传回STM32作进一步处理。

  本研究接收到的指纹数据通过异步串口管脚PA9和PA10与3.3V转换芯片MAX3232相连外接串口线同PC机进行通信,接收和发送数据,STM32作为下位机通过SPI接口方式采集指纹数据,并将数据保存在外扩的SRAM中,当采集完一幅指纹图像后,把该指纹数据发送给上位机,PC机接收数据,并通过VC编程把接收的指纹数据转换成256级灰度图像并显示和保存该指纹图像。

  程序设计关键是编程实现SPI通信模式下STM32和指纹传感器FPS200的通信操作,其采集程序流程图如图3所示。

  FPS200有19个寄存器,用来控制指纹数据采集过程中的状态和行为,这里介绍几个较为重要的寄存器的初始化:

  (1)初始化CTRLB,使能芯片的ENABLE位使其处于工作状态,XTALSE位选择内部12M晶振,同时使能指纹自动检验测试,通过判断RDY位的状态决定指纹图像数据的读取。

  (2)初始CTRLA,这里可以再一次进行选择GETROW、GETIMG和GETSUB这3种存取模式的1种作为存取模式,本研究给CTRLA写入0x02,即选择GETIMG模式来获取整幅图像。

  (3)初始化DTR、DCR和PGC,它们影响采集图片的质量,DTR是放电时间寄存器,影响着图像背景亮暗程度;DCR是电容放电寄存器,对图像的前景区和背景区的亮暗程度有一定影响;PGC是可编程增益寄存器,对图片的前景和背景的影响较大。经实验选择DTR=0x38,DCR=0x01,PGC=0x0C时图像效果最佳。

  指纹识别算法是指纹识别过程中重要的部分,算法的好坏直接决定指纹识别的精确性和可靠性。

  该算法的3个重要部分是指纹图像预处理、特征点提取和特征匹配。指纹预处理又包括图像场的计算、分割、均衡化、平滑、增强、二值化、细化等部分。本研究的指纹识别算法流程如图4所示,下面对算法各部分作简要介绍。

  首先本研究采用Sobel算子求指纹图像灰度函数,再分别沿x和y方向偏导A(xx,y)和A(yx,y),计算该指纹图像的梯度场,因为梯度场可以较好地分割指纹图像。

  图像分割的目的是将指纹前景区域和背景区域分割开来。因前景区域和背景区域在灰度和梯度上存在一定的差异,故均采用阈值分割方法处理。

  指纹图像均衡化的目的是使图像在各种灰度场强上均匀分布相等的点数,通过均衡化使得图像对比度得到增强。

  指纹图像的平滑的目的是消除图像噪声点。本研究通过指纹图像和模板算子的卷积实现指纹图像的平滑滤波。卷积运算公式为:

  指纹图像平滑算法相当于低通滤波,只是让指纹信号的低频部分通过,而阻止指纹信号的高频部分,实现滤去指纹图像中噪声的目的。2.2.5、指纹图像增强

  指纹图像增强是指纹识别系统的重要组成部分,在通过算法使指纹不清晰的地方得到一定的改善的同时尽量保留指纹原有的特征信息,确保后续图像处理的准确性和可靠性。

  对于指纹图像的增强,本研究前面通过计算获得指纹的方向场和频率场信息,这里采用较成熟可靠的Gabor小波滤波器实现图像的智能增强,Gabor滤波器公式如下:

  指纹图像二值化是将连续灰度图像转化成只有两种颜色值的图像,让黑的纹线区域更黑,白的谷线区域更白。即:使白色的图像区域的灰度值为255,黑色的灰度值为0,成为黑白两色图像。二值化公式为:

  指纹图像的细化是为减少要处理的信息量,把指纹的脊线部分对称减薄,使指纹纹线由原来的多个像素宽度变为单个像素的线形图。

  本研究采用查表法对指纹进行细化处理。因指纹图像已进行二值化处理,其像素要么是0,要么是255,故把指纹图像中某个目标点(要处理的黑色点)的8个邻域的所有要删除的所有可能情况排列后列入一张表中,再根据图像中某点的8个相邻的点的情况查表,如果满足表中的情况则删除该点,否则保留。

  特征点提取分两种情况,即:对端点和交叉点的提取;对指纹特征奇异点的提取。

  本研究采用基于交叉数的特征性提取算法[7(即]通过扫描某点[黑点],根据该点周围8点(顺时针相邻两点灰度的差值情况)来判断该点是端点还是叉点,并记录该特征点的位置、类型和方向信息。

  本研究采用基于指纹特殊点的匹配方法,匹配过程中为减少拒判时间,把匹配分成“初匹配”和“全局匹配”两个方面,在提高了指纹识别的效率的同时,也大幅度的提升了识别成功率。

  该设计实现了基于STM32的指纹识别系统,指纹采集方面,本研究通过主控制器和传感器的SPI通信采集指纹图像,串口发送数据给PC机,VC界面显示指纹图像;算法方面,本研究通过提取方向场对指纹图像实现Gabor滤波增强,细化图像时采用查表法对图像进行细化处理,对细化结果去噪,为提取特征点提供了良好的指纹数据,提高了系统识别的准确性,并通过进一步改善匹配算法来提高识别效率,使该系统能准确、高效地完成指纹识别,总体性能达到要求。

  关键字:编辑:什么鱼 引用地址:基于STM32芯片的指纹识别系统模块设计与实现

  最近一年多开始使用STM32F4系列芯片,在使用开发板、评估板的时候一切正常,但当自己做板子的时候事故频发,最典型的就是无法启动、无法刷机,现将遇到的几个无法启动的缘由分析如下: 1、芯片引脚短路 这是最典型的现象,也是最常见的原因,一般不工作的时候第一反应就是检查是不是发生短路,短路引发芯片无法正常工作。 2、芯片VCAP引脚没有接电容 有一次自己做的板子,忘记在VCAP引脚引出电容,导致一直无法工作,经查Datasheet,发现VCAP引脚是专为芯片内部1.2V区域供电所用,若没有引出电容,1.2V区域将无法正常工作。 3、芯片VDDA(VREF)引脚没有供电 一次做AD转换,为求精确,将VDDA(VREF)引脚接上

  无法正常工作的现象及缘由分析集锦 /

  摘 要: 设计了一种基于SoPC的新型结构的自动指纹识别系统。指纹识别系统是一个典型的模式识别系统,包括指纹图像获取、处理、特征提取和比对等模块。通过专门的指纹采集仪可以采集活体指纹图像。目前,指纹采集仪主要有活体光学式、电容式和压感式。对于分辨率和采集面积等技术指标,公安行业已形成了国际和国内标准,但其他还缺少统一标准。根据采集指纹面积大体能分为滚动捺印指纹和平面捺印指纹,公安行业普遍采用滚动捺印指纹。另外,也能够最终靠扫描仪、数字相机等获取指纹图像。 目前,基于FPGA的自动指纹识别系统主要有纯硬件方式实现和在以Nios II为CPU的软核中实现 两种方式。以纯硬件方式实现虽然速度较快,但由于指纹处理算法很复杂,实

  设计 /

  生物识别技术是利用人体固有的生理特性(如指纹、脸象、红膜等)和行为特征(如笔迹、声音、步态等)来进行个人身份的鉴定。 生物识别技术比传统的身份鉴别判定的方法更具安全、保密和方便性。生物特征识别技术具有不易遗忘、防假冒伪劣性能好、不易伪造或被盗、随身“携带”和随时随地可用等优点。 生物识别的工作原理是利用生物识别设备对生物特征进行采样,提取其唯一的特征并将其转化成数字代码,并进一步将这些代码组成特征模板,人们同识别设备交互进行身份认证时,识别设备获取其特征并与数据库中的特征模板进行比对,以确定是不是匹配,从而决定接受或拒绝该人。而在众多的用于身份验证的生物识别技术中,指纹识别技术是目前最方便、可靠、非侵害和价格便宜的解

  的设计和实现 /

  前段时间参加了全国大学生智能互联创新大赛,我们队伍经过半个月的努力做了一款智能台灯,特分享出来供大家学习。 智能台灯侧面图 智能台灯整体图 智能台灯俯视图 作品简介: 随时代的进步人们对灯的要求也慢慢变得多,台灯是普遍的家用照明设备之一,为了结合国家的节能环保计划和产品人性化的要求,我们团队研发出了一种多功能用途台灯,将智能与节能环保最大化结合。该智能台灯基于多种模块的相互配合,融入了团队智能环保的设计理念,以及人性化的宗旨使“她”能更加贴心的照顾我们对灯光的需求。智能灯光调节的设计使她拥有最大化保护用户视力的强大功能,通过我们团队特制的手机APP用户都能够随心所欲的对她进行远程监控,本智能台灯强大的外设

  的一款智能台灯 /

  通用串行总线USB(UNIversal Serial Bus)是一种新型接口技术。它是由Intel、Microsoft等公司为解决日益增加的外设与有限的主板插槽与端口之间的矛盾而制定的一种串行通信标准。USB具有以下特点:(1)有较高的传输速率。USBl.1支持全速和低速两种方式,全速速率为12Mbps,低速速率为 1.5Mbps;USB2.0除支持USBl.1的两种速度方式外,还增加了速率可达480Mbps的高速方式。(2)使用起来更便捷灵活。USB支持即插即用和热插拔,允许在任何一个时间里连接和断开外设。当外设被连接时,系统会自动检验测试到外设并准备使用。(3)易于扩展。通过根集线个设备真正的完成多个外设共用一个接口。此外,U

  设计方案 /

  1.引言 从逆变器诞生之日起人们就把改善输出波形,消除谐波,提高波形质量作为一项重要的研究内容,所以对SPWM波形的谐波分析有着十分重要的意义 。对于实时计算的PWM操控方法常常要建立数学模型,较为常用的是采样型的SPWM法。文 指出,在对正弦波进行调制时,采用三角波作为载波比用锯齿波产生更少的谐波分量,自然采样SPWM法是通过正弦波与三角波的比较来决定开关点的位置,原理简单易于用模拟电路实现,但由于其开关模式不能用显式表达,难以用微机实现实时控制,因此发展了规则采样法。 本文给出了一种基于DSP的对称规则SPWM生成法——开关点预置算法,开关点预置最优SPWM控制波形的确定是以输出THD性能指标最小为优化目标,在同样

  及其DSP实现 /

  0 引言 指纹以其唯一性、稳定性及非遗失性而成为个人身份识别的有效手段。计算机图像处理和模式识别技术的发展使指纹自动识别技术更成熟。指纹识别技术主要是通过一系列分析指纹的局部特征,从中抽取详尽的特征点,从而可靠地确认个人身份。目前的多数指纹识别系统是将指纹图像采集到计算机中,然后利用计算机进行识别。但该方法不但占用了主机系统的资源,同时也限制了指纹图像处理的速度。而本文介绍的基于DSP的指纹识别系统不但可脱机工作,也可通过接口进行二次开发,并可快捷地整合到其它系统中。该系统采用TI公司生产的DSP芯片TMS320VC5416(以下简称:C5416)作为核心处理器,同时选择Veridicom公司的固态指纹传感器件FPS200。

  这次是实现一个使用STM32内部的flash模拟一个U盘。我使用的STM32芯片是STM32F103ZE,该芯片有512K的内部flash,本次工程,我准备用最后的400K空间来模拟一个U盘。本次的工程在之前用NAND或SD卡模拟U盘的工程基础上做修改。 首次要做的是在外设库组中添加stm32f10x_flash.c文件,因为涉及到内部flash,所以必须添加此文件。接下去,需要修改的文件只有mass_mal.c和memory.c两个了。 先来讲讲memory.c,这一个文件修改量很小。在函数的前面,我们大家可以看到有个:uint32_t Data_Buffer ;数组的定义,该数组的数组元素个数,跟大家所使用的存储器的块大小

  篇

  微控制器实战教程

  2023 DigiKey KOL 系列——将TinyML融入IoT物联网应用中

  Microchip 喊你快来打造你的理想型单片机,智能门铃、百元京东卡等【80份】好礼等你赢!

  报名赢【挂灯、浴巾】等好礼|TI MSPM0家用电器和电机控制应用详解

  【下载】LAT1289 Keil、IAR、CubeIDE中变量不被初始化方法

  【下载】LAT1288 STM32 G474中Triggered-half模式的实现

  【下载】LAT1309 一步一步创建STM32WBA BLE_Custom工程

  【课程】STM32 & X-Cube-TouchGFX GUI开发实践

  【直播】STM32H5系列:强大的ARM® CORTEX®-M33 MCU让高性能和安全性唾手可得

  【直播】STM32U5系列扩充新成员-探索更安全,更高效,更节能的设计

  【新品】STM32H5-Arm® Cortex®-M33 内核,主频高达250MHz,提升性能与信息安全性

  【新品】STM32MP13X-支持Linux、RTOS和Bare Metal应用,新一代通用工业级MPU

  【新品】Arm® Cortex®-M33处理器内核,运行频率160 MHz,基于Armv8-M架构并带有TrustZone®

  STM32Cube.AI开发者云:只需四个步骤,轻松将AI集成到MCU

  说起给单片机烧录程序,大多数人应该都不陌生,我最早接触单片机是从51单片机开始的,型号是STC89C52RC,当时烧录程序就是用的下面这种烧录软件 ...

  基于89C52单片机和MB90092芯片实现视频图像叠加应用系统的设计

  1、引言随着监控现场的扩展和探头数量增多,在监控端的图像显示系统中,经常需要接收外部数据并把相关的信息实时地连同图像显示在监控屏幕 ...

  电力网是每个家庭都要用到的物理网络,现有的电力线基本功能是传输电力。利用现有的电力线实现数据通信, 而无需增加额外的通信线路,可以 ...

  温度监控是工业生产里的一个重要环节,尤其在环境 恶劣和复杂的工业现场,温度监控起着无法替代的作用。但是由于目前许多温度监控系统所采 ...

  1 引言在油田等地域分布辽阔的野外地区,输电线路和电力变压器因远离供电局经常面临被盗的危险,一旦输电线和电力变压器被盗,将会造成很 ...

  2022 Digi-Key KOL 系列: 你见过1GHz主频的单片机吗?Teensy 4.1开发板介绍

  直播回放: Microchip Timberwolf™ 音频处理器在线研讨会

  2nm 半导体代工竞赛拉开序幕:台积电、三星和 Rapidus 纷纷出手

  Diodes 公司推出具备电源正常指示且符合汽车规格的 300mA 输出 LDO,支持电池断电负载点

  GaN Systems 推出第四代氮化镓平台 突破能源效率瓶颈 加速应用版图拓展

  英飞凌MERUS D类音频解决方案|【阅读赢好礼,下单送开发板】

  站点相关:综合资讯51单片机PIC单片机AVR单片机ARM单片机嵌入式系统汽车电子消费电子数据处理视频教程电子百科其他技术STM32MSP430单片机资源下载单片机习题与教程