使用SPCE061A的指纹识别系统设计
MBF300传感器的特点
MBF300表面保护膜异常坚硬,使得该传感器经久耐用。它的工作电压为2.8V~5V,所以可以利用电池进行供电。它具有256*32像素感应矩阵,使得指纹的特征采样数据更精确。它的总线接口分别支持USB1.1、增强型8位微处理器接口和SPI串行接口。SPCE061A利用
USB接口芯片PDIUSBD12和MBF300指纹传感器进行通信。
4软件设计
4.1指纹识别算法
人类的指纹由紧密相邻的凹凸纹路构成,根据公式3-2,通过对每个像素点上利用标准参考放电电流,便可检测到指纹的纹路状况,具体算法分为四部分。
4.1.1指纹识别预处理算法
指纹识别预处理的目的是使指纹图像更清晰,边缘更明显,以便提取指纹的特征点进行识别。本文采取极值滤波和改进的平滑滤波进行噪声消除,使图像不失真;采取拉普拉斯锐化对指纹进行纹线增强,突出边缘信息,为背景分离算法提供方便。
4.1.2背景分离
采用迭代阀值的方法对指纹图像进行阀值分割。在图像处理中,反复地用一种运算直至条件满足而得到输出图像的方法称为迭代。迭代阀值方法如下:
①设定初始灰度阈值T(如令T=127),指指纹图像的灰度值分为两组R1和R2。
②计算两组的平均灰度值u1和u2。
③重新设定新的灰度阈值T。新的T定义为:T=(u1+u2)/2。
④依据新的T对指纹图像进行阀值分割。
这种方法是以自适应的阀值对指纹图像进行二值化处理。实验结果表明,该方法比设定固定阀值进行处理更有普遍意义,且行之有效。
4.1.3 特征点提取
采用脊跟踪法,其基本思想是直接对图象进行脊线跟踪,在跟踪过程中检测和提取特征点。
4.1.4分类算法
指纹被分成5大类:拱类、做环类、右环类、尖拱类和旋涡类,预先使用全局特征排序,可以加速指纹的匹配服务。
4.2程序流程
当系统处于空闲状态时,SPCE061A利用P_SystemClock单元写入CPUCLK STOP控制字,使系统从运行状态转入睡眠状态,关闭系统时钟(PLL振荡器)。当用户有指纹或按键输入时, 系统接收到唤醒信号后接通PLL振荡器,同时CPU会响应唤醒事件的处理并进行初始化。利用IRQ3_KEY为触键唤醒源,利用FIQ为MBF300指纹传感器输入唤醒源。下面是程序流程图3和IRQ3_KEY唤醒程序的部分代码。
图3 程序流程图
R1=0x0000; //设置A口为带下拉电阻的输入口
评论