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

时间: 2024-02-02 08:59:38 |   作者: 屏蔽类电源滤波器

产品详情

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

  本研究设计、实现一种基于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滤波增强,细化图像时采用查表法对图像进行细化处理,对细化结果去噪,为提取特征点提供了良好的指纹数据,提高了系统识别的准确性,并通过进一步改进匹配算法来提高识别效率,使该系统能准确、高效地完成指纹识别,总体性能达到要求。

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

  在指纹自动识别系统中,嵌入式系统由于功耗低、设备体积小、安全性高等优点,已经得到越来越广泛的应用。通用串行总线(USB)是由Inter、 Microsoft、IBM和NEC等共同制定的微机总线接口规范,具有较高的传输速率,支持即插即用,占用系统资源少,扩展能力强。在嵌入式系统的应用中,几乎不可避免与PC机的通信,由于通信速度的要求以及计算机硬件高速发展,传统的RS232接口已经越来越不能满足用户的需求,所以在嵌入式系统中USB接口的实现势在必行。 系统控制模块设计 系统控制模块的核心处理器为P89C52,由于其接口有限,同时完成系统控制和USB接口控制将十分困难。而从系统成本、开发时间周期和继承性方面考虑,换用其他

  USB接口电路设计 /

  目前,基于FPGA的自动指纹识别系统主要有纯硬件方式实现和在以Nios II为CPU的软核中实现 两种方式。以纯硬件方式实现虽然速度较快,但由于指纹处理算法比较复杂,实现困难,同时算法精度差,设计周期长;而以下载到FPGA的软核Nios II为控制模块,具有灵活的设计方式,并具备软硬件在系统可编程的功能,较大程度上提高了系统速度,但是该方案中软硬件处理交替进行,涉及到软硬件之间频繁的指纹数据传输,限制了系统的速度,同时增加了系统的复杂度。 本文提出了一种基于SoPC的新型结构的自动指纹识别设计方案。具有以下特点: (1)根据对指纹识别算法的分析和优化,在软、硬件结合的基础上将软件设计和硬件设计分开,把指纹识别系

  网上找到此文章解决了j-flash只能连接后不能烧录的问题,希望遇到相同问题的小伙伴,可以用同样的办法解决: 前段时间,做了一块板子,调试接口只留了三个口SWD、SWCLK、GND,在使用Jlink的SWD方式调试的时候发现无法连接。使用ST-link的时候可以连接,无奈楼主的ST-link的链接方式相当的不可靠,时而能识别时而不能识别:当然我的ST-link是山寨版的。 那么问题来了:为什么通过20针全部连接的方式可以调试,而三针的方式就不行了呢? 古人云知之为知之,不知Google之,Google不让用,那就问度娘好了。 通过查阅网上资料发现,jlink的20针,不光有调试的功能还有供电和检测电压的功能。 下面是jl

  无法识别 /

  stm32所有寄存器都需要时钟才能配置,寄存器是由D触发器组成的,只有送来了时钟,触发器才能被改写值。 任何MCU的任何外设都需要有时钟,8051也是如此;STM32为了让用户更好地掌握功耗,对每个外设的时钟都设置了开关,让用户可以精确地控制,关闭不需要的设备,达到节省供电的目的。 51单片机不用配置IO时钟,只是因为默认使用同一个时钟,这样是方便,但是这样的话功耗就降低不了。 例如,某个功能不需要,但是它还是一直运行。 STM32需要配置时钟,就可以把不需要那些功能的功耗去掉。 当你想关闭某个IO的时候,关闭它想对应的时钟使能就是了,不过在51里面,在使用IO的时候是没有设置IO的时钟的,还有在STM32中,

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

  AD7799是早些前ADI公司推出的一款高精度低速24位ADC器件,主要应用于低功耗精密测量场合。最近开发与气压检测相关的产品,选择了这个芯片,经过PCB的合理布线,感觉这颗芯片的效果还不错。 AD7799内部数字部分和模拟部分的供电是分开的,数字部分由DVCC供电,模拟部分由AVCC供电,经过实验,在只有DVCC而不加AVCC的时候芯片的数字接口部分是可以工作的,这样就可以把AIN3+和AIN3-作为数字信号来启动模拟电源输出AVCC,不知道这样描述是否清楚,主要是为低功耗和省电考虑。 AD7799内部有三个差分通道,可以分别配置成为差分模式和单端模式,在单端模式下需要保证AINx(+)电压高于AIN(-)电压,否则

  摘要:阐述一款基于DSP(Digital Signal Processor)的嵌入式指纹识别系统,对其硬件设计电路和软件设计进行了详细的论述。设计了双电源切换系统,通过SPI协议与指纹采集头FPC1011C和液晶屏进行通信,能够方便地进行指纹采集、注册、匹配,可实时显示处理结果,并把数据及结果通过RS232传送到电脑终端。另外,系统既可以脱机使用,也可与PC联机使用。 关键词:DSP;指纹识别;FPC1011C 引言 指纹识别系统是日常生活中常见的一种识别方式,其广泛应用于门禁、考勤和其他安防领域。本指纹识别系统,采用双供电方式,既可与电脑联机使用,也可作为便携式设备使用。作为便携式时,大约可存储300~500枚指纹,同时系

  和BQ76940的电池管理系统设计

  使用STM32 Nucleo撬开针对物联网的ARM mbed IDE之门

  有奖直播 是德科技 InfiniiMax4.0系列高带宽示波器探头新品发布

  MPS电机研究院 让电机更听话的秘密! 第一站:电机应用知识大考!跟帖赢好礼~

  【下载】LAT1362 利用STM32 TIMER触发ADC实现分组转换

  【下载】LAT1334 基于MCSDK5.4.8电机库修改两电阻采样方法

  【下载】LAT1347 基于STM32CubeIDE移植ClassB 4.0

  【下载】LAT1340 STM32H5读取温度传感器校准值时进HardFault的原因分析

  【生态】使用STM32CubeMX在STM32U5上配置LPBAM应用程序

  【MPU】轻松使用STM32MP13x如MCU般在Cortex A 核上裸跑应用程序

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

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

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

  【新品】降本增效这事儿,就看STM32C0,低至0.24美元” ,开机即可物联世界

  【GUI开发】TouchGFX 4.23:支持矢量字体,节省Flash,更丰富的UI!

  【边缘AI】突破边缘AI应用的次元壁:首届意法半导体边缘人工智能峰会举行

  【生态系统】STM32CubeProgrammer和STM32CubeIDE协同调试的方法

  【无线携手创新微MinewSemi共创低功耗模块,引领中国智能连接未来

  因为公司有一部分设备生产年代久远,用的PLC也是比较古老的,有一款东芝EX20 40的用的单片机是P8051AH,其CPU板的图片如下。因此想尽可能的 ...

  本文设计了一种基于无线单片机的无线射频收发系统。该系统由发送模块和接收模块组成。发送模块主要将要发送的数 ...

  1 引言在如今的快速嵌入式系统设计中,目前比较流行的方案是在FPGA内集成应用软件或是软IP平台,以简化工序、加速产品面市日程。为此,很 ...

  W78E516D为6T 12T 8051单片机系列,其特点为管脚兼容于传统12T 8051。W78E516D提供工业温度规格、宽电压工作范围 2 4V至5 5V,支持在线 ...

  目前市场上USB设备的种类繁多,但是这些设备会有一些共同的特性,根据这些特性可以把USB设备划分为不同的类,如显示设备、通信设备、音 ...

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

其他产品
热门产品