本文对目前指纹识别系统研究的现状和发展的状况做了简要分析,结合自身对嵌入式系
统和指纹算法的研究,提出了一种基于STM32的指纹识别系统设计方案,并对该方案进行了
实施。根据系统实用性的要求,对指纹采集和指纹处理算法进行了改进,最终实现了嵌入式
指纹识别系统。主要包括硬件和软件两个方面,具体如下:
硬件方面:
1.系统采用MBF200指纹传感器采集指纹,ARM
cortex.M3内核的STM32F.103ZET6
作为主控制器,通过SPI接口实现主控制器与传感器的通信采集指纹图像,并保存数
据在内存空间,主控制器与上位机通过异步串口通信将指纹数据发送至PC机显示指
纹图像。
2.由于指纹识别算法需要处理的数据量较大,系统采集一幅完整指纹图像需要大约
76.8KB的空间,而STM32主控制器的内部RAM只有64KB,系统通过扩展外部SRAM
补其不足,在SRAM中保存指纹采集和算法处理的中间数据,程序和指纹算法提取
的特征点存放在芯片内部的FLASH当中。
3.系统采用USB供电,通过内部电路转换为系统提供3.3V的稳压电源,采用JTAG接
口进行仿真调试程序,使用LCDl602液晶显示指纹识别结果。
软件方面:
1.指纹采集实现:根据对MBF200指纹传感器资料中SPI通信时序的研究和分析,通过
软件编程,实现SPI通信,使用读和写命令,对传感器的不同控制寄存器进行读和写
操作,采集到指纹图像。
2.指纹算法改进:通过对指纹现有算法的研究,在VC++上对已有的算法进行编程实
现,并对已有指纹处理算法进行改进。在指纹的增强算法上,采用基于方向场信息的
图像增强,提高了图像的质量:在指纹二值化算法上,采用图像分块的方式,通过求
阈值实现基于分块的二值化;在匹配的算法上,提出了“初匹配”和“全局匹配”的
方式,提高识别效率。实验证明,通过改进算法,使得指纹识别系统在识别的准确率
和效率上都得到了一定的提高。
3.上位机通信设计:系统通过实现主控制器STM32和PC机的异步串口通信,将采集
的指纹数据发送到PC机,通过VC++的MSComm控件实现串口编程接收指纹数据,
同时制作人机交互界面显示指纹的灰度图像。
4.指纹算法的移植:在VC开发的算法需要移植到主控制器实现嵌入式的指纹识别,在
移植的过程中,对系统的程序、指纹数据、特征点模板数据的存储进行了分配,通过
对指纹图像的进行了裁剪和采样缩放,达到减少数据量提高执行效率的目的。