基于ARM的指纹识别门禁系统设计方案
现代社会高速发展,很多场合需要身份确认,传统的身份识别技术已经不能满足社会要求。人的身体特征具有不可复制性,因此人们开始研究生物识别技术,而指纹具有唯一性、终生不变性、难于伪造等特点,安全性高,因而得到了广泛应用。在一些机要部门,如银行、宾馆、机房等一般都安装有门禁系统,门禁系统是为保障人们生活、工作及财产安全, 对重要通道的出入口进行管理与控制的系统,基于指纹识别技术的门禁系统是一项高科技安全设施,提高了系统的安全性。ARM作为一种嵌入式系统处理器,具有高性能、低功耗、低成本等特点,因而在工业控制领域、成像和安全产品方面得到了广泛应用。本文介绍了基于嵌入式ARM9体系结构的指纹识别原理与处理方法,以及指纹识别门禁系统的软硬件设计方法。
1 指纹识别原理及处理方法
指纹识别技术通过分析指纹的局部特征,从中抽取详尽的特征点,从而可靠地确认个人身份。指纹识别技术主要涉及四个功能:读取指纹图象、提取特征、保存数据和比对。首先从获取的指纹图像上找到“特征点”,然后根据特征点的特性建立用户活体指纹的指纹特征数据(一种单向的转换,可以从指纹图像转换成特征数据但不能从特征数据转换成为指纹图像)。由于两枚不同的指纹不会产生相同的特征数据,所以通过对所采集到的指纹图像的特征数据和存放在数据库中的指纹特征数据进行模式匹配,从而计算出它们的相似程度,最终得到两个指纹的匹配结果,根据匹配结果来鉴别用户身份。
1.1 指纹图像的采集
光学取像有着悠久的历史,它可以追溯到上世纪70年代,依据的是光的全反射原理。现在一般采用光学指纹传感器来采集指纹,取得指纹具有图像清晰、功耗低、稳定性高等特点。本系统采用的是TFS-D0303光学指纹传感器。
1.2 指纹识别的算法实现
指纹识别算法的有效性直接影响着指纹识别的精确度和指纹识别门禁系统的安全性和稳定性,对整个门禁的安全性和可靠性起着决定性的作用。指纹识别算法的处理过程主要包括: 图像处理、纹路细化、特征提取和特征匹配等(见图1)。
图1 指纹识别流程图
预处理在指纹识别中是不可缺少的步骤。其目的是去除图像获取时所引入的噪声,消除低质量图像的影响,以便后续环节能够正确地进行特征提取和分类识别。预处理过程主要包括图像分割、平滑、图像增强、二值化和细化等步骤,每经过一个步骤都可以改善图像的质量,有利于后面的工作。
环境温度的影响或手指干燥可能会使指纹图像产生纹线不连续。对于指纹纹线不连续的指纹图像,一般要经过平滑滤波处理,这也是对图像进行模糊化,使断裂的纹线边界经过模糊后连接起来。在本算法中采用低通滤波器对各块指纹图像的方向信息进行块水平的平滑,修正不准确的计算结果。
具体方法为先计算θ(x, y)在X轴和Y轴上的投影分量:
低通滤波表示为:
式中,H(u, v) 为二维低通滤波器;wl×wl为5×5滤波器尺寸;w为图像子块尺寸(本算法取w=10个像素大小)。
经过纹路细化, 二值化图像的纹路线被细化为只有一个像素宽的连接线段。显示了原始指纹图像、增强后的二值化图像以及细化后的二值化图像。指纹的特征点信息是从细化后的二值化图像中提取的。从细化后的二值化图像中找到分叉点或端点,然后从这些点开始寻找纹路轨迹。通过这些点,纹路的形状被计算出来。这些形状数据、点的类型以及点的位置就作为该指纹图像的特征点被记录下来。
特征匹配是根据两幅图像特征点的最大匹配点支持数来确定的。假设有甲和乙两幅图像,首先依次以甲图的每一个特征点为基准,依次计算乙图像中每个和甲图中基准特征点类型相同的特征点到乙图中每个特征点的距离和方向,根据这个距离和方向,再以甲图中的基准点为原点,计算出甲图中的一个点,然后判断是否也是甲图的特征点, 如果是, 则匹配支持数加1。按甲图中特征点顺序依次计算, 取最大值就是两幅图像的最大支持匹配点数。
如果最大匹配支持点数大于规定的值,则认为两幅图像匹配。否则,不匹配。
2 系统硬件设计
基于RISC体系结构的ARM微处理器因其体积小、功耗低、执行速度快等优点在多个领域得到广泛应用。本系统采用的是三星公司的嵌入式微处理器S3C2440AL,这是一款高性能、低功耗的功能强大的嵌入式应用处理器产品,它采用Intel X-Scale微结构体系框架,集成了许多常用的外围接口,功能强大。S3C2440AL主频为400MHz,最高为533MHz;TFS-D0303指纹传感器由256×300个电容传感阵列组成,其分辨率高达500dpi,工作电压范围为3.3~5V,传感器内部有8位ADC,并具有2组采样保持电路。整个硬件系统的框图如图2所示。
图2 系统硬件结构图
系统存储器接口采用128MB SDRAM存储器,支持16、64、128、256MB DRAM技术,4个SDRAM区,每个区支持64M存储器。时钟允许(一个CKE引脚用于把整个SDRAM接口置为自我刷新),支持最多至6个静态存储器器件(SRAM、Flash、ROM),支持2个PCMCI/CF插槽。
时钟采用3.6864MHz振荡器,具有核PLL和外围PLL,可产生各种工作频率,32.768kHz振荡器可驱动实时时钟、电源管理器和中断控制器。电源控制器可控制快速/运行、空闲和睡眠工作方式。LCD控制器支持被动(DSTN)和主动(TFT)LCD显示,最大分辨率800×600×16,2个专用DMA通道,允许LCD控制器支持单层或双层显示。实时时钟(RTC),可产生周期性中断,把应用处理器从睡眠状态唤醒。串行口通信USB从模块,符合USB规范,支持v1.1版本,支持多达16个端点提供48MHz的内部时钟。
3 系统软件设计
本系统的软件设计主要有以下几个流程:上电系统初始化、指纹识别、控制电锁的开启。系统的精度绝大部分取决于指纹识别的算法。程序初始化后进人低功耗模式,等待各种具体操作。当有指纹采集时,就进入指纹数据采集和处理模块,处理结束后,又重新退回低功耗等待模式,等待其他操作。同理,当有读卡数据或者时钟设置响应时,便进入相应的操作模块进行处理。
3.1 对S3C2440AL的初始化
系统初始化对于嵌人式系统,要在其程序存储器中有系统初始化代码(如图3)。系统执行了初始化代码后,才能正确执行其他应用程序,初始化在系统复位后自动完成。系统的初始化必须包含下列初始化代码,有设置中断向量表、初始化寄存器、初始化堆栈指针寄存器、初始化端口、改变处理器的工作模式。系统在用户模式下才能开中断。在对指纹传感器的初始化中,应按要求逐步对控制寄存器进行初始化。
图3 初始化流程图
3.2 指纹采集
指纹采集可以工作在中断方式,也可以工作在查询方式。本系统采用的是查询工作方式。程序流程大致如下,先初始化各寄存器,先往相应的寄存器写入控制字,设置采集指纹的参数,当指纹被自动采集进入数据寄存器,把指纹数据存入到指定的存储空间。
3.3 与计算机之间的通信
RS232串口用于S3C2440AL与上位机的通信,当存储图像过多时,可把图像存储在上位机上。S3C2440AL的UART可工作在中断模式或DMA模式下。本系统选用的是中断模式,也可以用查询方式。程序可以控制端口的波特率、数据宽度(5、6、7、8位)、停止位(1到2位)、极性控制等通信协议的设置。
4 结束语
本文介绍了基于ARM的指纹识别门禁系统的软硬件设计。ARM体系结构有丰富的接口,在门禁、监控等领域正发挥越来越重要的作用,面向可集成、可移植的特定嵌入式系统越来越多地出现在工程应用领域。本文实现的指纹识别门禁系统具有轻便、易安装、成本低的优点,具有良好的发展前景。