以STM32位主控的基于指纹传感器FPS200的指纹识别系统解决方案

2017-12-26 13:59:59 来源:电子发烧友
标签:
引言
指纹识别是根据每个人指纹的不变性和唯一性进行身份识别的一门技术。随着社会的发展,嵌入式的指纹识别技术越来越受到市场的青睐,成为近年研发的重点,但目前的嵌入式指纹算法大多在实时性和准确度上还存在不足,需要进一步优化算法,以实现准确高效的指纹识别。
 
本研究设计、实现一种基于STM32芯片的指纹识别系统,通过指纹传感器采集指纹数据,指纹算法处理指纹数据实现指纹识别,同时结合VC++平台建立人机交互界面对指纹图像数据显示。
 
1、系统硬件设计
1.1、结构组成及特点
本研究采用ARMcortex-M3内核的32位处理器STM32F-103ZET6作为主控制器,该芯片内部采用哈佛结构、其中集成有64KB的RAM和512KB的FLASH,运算速度快,并且具有体积小和低功耗的特点,在嵌入式图像处理方面具有较高的应用前景。指纹识别系统结构功能图如图1所示。
 
图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实现程序的设计。
 
1.2、指纹采集电路设计
指纹图像的采集对系统实现其识别功能至关重要,一幅采集质量较好的指纹图像有利于后续对指纹图像的算法处理,减少算法的复杂程度,提高系统指纹识别的功能。
 
指纹传感器FPS200是Veridicom公司的一款新型指纹传感器,具有500dpi的分辨率,片内集成300&TImes;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作进一步处理。
 
图2  指纹采集系统原理图
 
1.3、数据处理以及与上位机的通信
本研究接收到的指纹数据通过异步串口管脚PA9和PA10与3.3V转换芯片MAX3232相连外接串口线同PC机进行通信,接收和发送数据,STM32作为下位机通过SPI接口方式采集指纹数据,并将数据保存在外扩的SRAM中,当采集完一幅指纹图像后,把该指纹数据发送给上位机,PC机接收数据,并通过VC编程把接收的指纹数据转换成256级灰度图像并显示和保存该指纹图像。
 
2、系统软件设计
2.1、指纹采集程序设计
程序设计关键是编程实现SPI通信模式下STM32和指纹传感器FPS200的通信操作,其采集程序流程图如图3所示。
 
图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时图像效果最佳。
 
2.2、指纹算法设计
指纹识别算法是指纹识别过程中重要的部分,算法的好坏直接决定指纹识别的精确性和可靠性。
 
该算法的3个重要部分是指纹图像预处理、特征点提取和特征匹配。指纹预处理又包括图像场的计算、分割、均衡化、平滑、增强、二值化、细化等部分。本研究的指纹识别算法流程如图4所示,下面对算法各部分作简要介绍。
 
图4  指纹识别算法流程
 
 
关注与非网微信 ( ee-focus )
限量版产业观察、行业动态、技术大餐每日推荐
享受快时代的精品慢阅读
 

 

继续阅读
英特尔产能短缺,在10nm制程上遇到了什么问题?
英特尔产能短缺,在10nm制程上遇到了什么问题?

由于在10nm制程上遇到问题,英特尔正在努力保持14nm晶圆供应,并且采取第一项措施来避免硅短缺。英特尔选择了不同的工艺生产大批量的硅片,首先获得此待遇的是英特尔芯片组芯片。

OPPO与汇顶相爱相杀,是啥原因?
OPPO与汇顶相爱相杀,是啥原因?

此前OPPO曾言正词严的表示要封杀汇顶,随后双方却又快速达成谅解,这体现出国产手机品牌的竞争之激烈,各方的竞争已不仅仅是手机企业之间的竞争,还牵涉到了产业链之间的竞争。

小米8又来屏幕指纹版,看上去不错哦

9月19日也就是今天,小米要在成都举行新品发布会,除了小米8青春版外,还有一款新机才是这场发布会真正的主角,而它就是小米8屏幕指纹版。

是什么让苹果A系列成为了目前的最强处理器?
是什么让苹果A系列成为了目前的最强处理器?

上周的苹果秋季发布会三款iPhone新品虽然看上去是重头戏,但新一代的A12 Bionic处理器无疑才是主角。苹果全球营销高级副总裁菲利普·席勒花了很大的篇幅介绍了A12 Bionic,并自豪的表示它是全世界计算行业的第一块7纳米处理器。

英特尔、AMD、英伟达的“芯片三国”

芯片巨头的战场从来都不寂寞,在激烈的捉对厮杀中,英特尔、AMD、英伟达这场三国大戏已经延续了数十载。

更多资讯
固态LiDAR传感器解决方案

据麦姆斯咨询介绍,加拿大激光雷达(LiDAR)开发商LeddarTech历经十余年研发出了创新的固态LiDAR传感专利技术——Leddar,独特地整合了先进的光波数字信号处理和软件算法,实现了固态LiDAR传感器的量产,以极具竞争力的价格提供了卓越的性能和可靠性。

LED“闪烁”不再是实现自动驾驶的“拦路虎”

豪威科技中国区汽车电子业务部总监刘琦表示:“LED灯以一个基础频率,以及可调节的占空比来调整亮和暗的强度。对于人眼来说,LED光源是持续的,但HDR相机却捕捉到了亮和暗的属性,并且在观看视频的时候出现‘闪烁’。”

把握好这四点可轻松玩转示波器解码

协议解码是示波器非常实用的功能,很多工程师因为不熟悉操作,或者参数设置不正确,最终没有得到理想的结果。本文对解码设置方面的几个细节做一个介绍,帮助您快速上手示波器的协议解码。

如何快速开发嵌入式系统的交互界面?

工业产品的交互界面开发要求越来越接近于消费领域的产品。选择一种快速且低成本的嵌入式UI开发方案显得尤为重要,本文将为您介绍一种新的框架式嵌入式UI开发平台。

超声波传感器与红外传感器谁的可靠性更高?

随着电子计算机、生产自动化、现代信息、军事、交通、化学、环保、能源、海洋开发、遥感、宇航等科学技术的发展,对传感器的需求量与日俱增,其应用的领域已渗入到国民经济的各个部门以及人们的日常文化生活之中。在这些应用中选择传感器对任何项目都具有挑战性。系统的性能在很大程度上取决于传感器和应用程序其他组件的可靠性。

Moore8直播课堂
电路方案