首页 > 代码库 > 基于ARM9的指纹识别系统的设计和实现

基于ARM9的指纹识别系统的设计和实现

生物识别技术是利用人体固有的生理特性(如指纹、脸象、红膜等)和行为特征(如笔迹、声音、步态等)来进行个人身份的鉴定。

  生物识别技术比传统的身份鉴定方法更具安全、保密和方便性。生物特征识别技术具有不易遗忘、防伪性能好、不易伪造或被盗、随身“携带”和随时随地可用等优点。

  生物识别的工作原理是利用生物识别设备对生物特征进行取样,提取其唯一的特征并将其转化成数字代码,并进一步将这些代码组成特征模板,人们同识别设备交互进行身份认证时,识别设备获取其特征并与数据库中的特征模板进行比对,以确定是否匹配,从而决定接受或拒绝该人。而在众多的用于身份验证的生物识别技术中,技术是目前最方便、可靠、非侵害和价格便宜的解决方案。

  指纹作为人体中最明显的外表特征,具有独一无二、普遍性、唯一性、易于采集等优点。指纹鉴定技术利用人类指纹稳定性和独特性的生理特征,将其作为人们的一种“活的身份证”,并且指纹具有不可替代性,使通过指纹进行身份鉴定的安全性大大提高,且随着图像处理模式识别方法的发展和指纹传感器技术的日臻成熟,指纹鉴定方法在金融、公安、门禁、户籍管理等领域都有着良好的应用前景。指纹的采集相对容易;指纹的识别算法已经较为成熟。由于具有扫描指纹的速度快、方便、小型化等优点,技术已经逐渐进入民用市场,并应用到许多嵌入式设备中,但是如何提高指纹识别系统的识别率和稳定性,降低成本以及扩展稳定性和节点分布,存在着一系列技术难题。

  因此,本文研究了以内含arm核的微处理器AT91SAM7X256为核心,外部扩展指纹传感器MBF200构成指纹识别服务器硬件;系统软件移植实时多任务操作系统μC/OS-Ⅱ、文件系统、LwIP,应用软件实现指纹识别。该方法具有成本低、占用资源少、可扩展性强的特点。

  1 分布式指纹识别系统原理及硬件设计

  指纹识别技术主要涉及4个功能模块:读取指纹图像、提取特征、保存数据和比对。通过指纹读取设备读取到人体指纹的图像,然后对原始图像进行初步处理,使之更清晰,再通过指纹辨识软件建立指纹的特征数据。软件从指纹上找到被称为“节点”(minuTIae)的数据点,即指纹纹路的分叉、终止或打圈处的坐标位置,这些点同时具有7种以上的唯一性特征。通常手指上平均具有70个节点,所以这种方法会产生大约500个数据。这些数据,通常称为模板。通过计算机模糊比较的方法。把两个指纹的模板进行比较,计算出它们的相似程度,最终得到两个指纹的匹配结果。

  硬件电路的实现以微处理器AT91SAM7X256为核心,外围电路主要包括指纹识别模块MBF200、以太网物理层(PHY)收发器RTL8201BL,大容量的数据FlashAT45DBl61D、硬件日历时钟器件DSl302,电源电路、复位和时钟电路,如图1所示。

  技术分享

  1.1 AT91SAM7X256器件及MBF200模块应用

  AT91SAM7X256是ATMEL公司推出的基于32位arm7TDMI的微处理器。它在一块芯片上还集成了256 kh的片内Flash和64 kb的SRAM,无需外部扩展存储器。其内部还集成有USB2.0设备端口,以及丰富的片内外设资源,功能强大。AT9lSAM7X256的复位控制器可以管理芯片的上电顺序及整个系统。微控制器具备嵌入式10/100 Mb/s以太网(Ethernet)MAC、CAN、全速(12 Mb/s)USB2.0,针对广泛的网络化实时嵌入式系统而设计的,其性能稳定、功能强大,能够广泛应用于协议转换、通信、工业控制领域。应用AT91SAM7X256开发指纹识别系统可以有效控制成本。工业网络需要极强的稳定性,但实验证明超过60%的总线带宽使用率就会造成冲突。

  MBF200是富士通公司推出的一款先进的固态指纹传感器,它除可自动检测指纹外,还带有多种接口模式,为电容性传感器,其电容性传感器阵列由二维金属电极组成,所有金属电极充当一个电容板,接触的手指充当第2个电容板,器件表面的钝化层作为两板的绝缘层。当手指触摸传感器表面时,指纹的高低不平就会在传感器阵列上产生变化的电容,从而引起二维阵列上电压的变化,并形成指纹传感图像。采用标准C13MS技术的电容性固态器件,具有500 dpi的分辨率,传感器面积为1.28 cmxl.50 cm。具有自动指纹检测能力,内含8位模数转换器,可提供3种总线接口形式。5 V工作电压下的功耗小于70 mW。

1.2 以太网接口电路设计

  AT91SAM7X256内部集成有MAC控制器,可支持MII接口和RMII接口。RTL820lBL则是工业级带有MII接口的10/100 Mb/s低功耗以太网收发器,25 MHz时钟输出,智能降功耗模式,可为系统提供稳定可靠的优质网络解决方案,为工厂企业及其他恶劣的操作环境架设可支持实时传输的以太网,符合IEEE

  802.3u的技术标准。以太网接口电路原理图如图2所示。

 

  技术分享

2 分布式系统软件设计

  2.1 μC/OS-Ⅱ系统移植

  由于系统硬件平台所选用的嵌入式微处理器AT91SAM7X256的RAM、Flash等资源都非常有限,考虑各种因素,选用了μC/OS-Ⅱ作为嵌入式操作系统,TCP/IP协议通过扩展实现。μC/0S-Ⅱ操作系统是一个源码公开、可移植、可固化、可裁剪和占先式的实时多任务操作系统。其最主要的特点就是源码公开,绝大部分源码是用ANSI C写的。虽然μC/0S-Ⅱ只是提供了时间管理、任务问通信同步、任务管理和内存管理等主要服务,但它的可扩展性强。可扩展的上层服务有:设备驱动,文件系统,图形系统和TCP/IP协议系统等,并且由于其性能可以与许多高端商业软件产品相媲美,甚至某些性能比它们还要好,因此,正以其巨大的优势吸引了众多开发者。μC/0S-Ⅱ是专为微控制器系统和软件开发而设计的抢占式实时多任务操作系统内核,是微控制器启动后首先执行的背景程序,作为整个系统的框架贯穿系统运行的始终,对实时性和稳定性要求很高的数据采集系统而言,引入μC/OS-Ⅱ无疑将大大改善其性能。

  2.2 CAN总线接口通信模块

  CAN协议是建立在ISO的开放系统互联模型的基础上的,取其中的3层:物理层、数据链路层和应用层。物理层和数据链路层的功能可由CAN接口器件实现,而应用层的功能则要靠应用程序来完成。CAN总线接口通信模块的功能是接收和发送CAN总线数据。主要操作包括CAN控制器初始化和CAN总线上接收和发送数据的操作。信息由CAN控制器发送接收到CAN总线,都由CAN控制器自动完成。

  2.3 以太网通信模块实现

  以太网是通信网采用的最通用的通信协议标准,该标准定义了在通信网中采用的电缆类型和信号处理方法。以太网采用带冲突检测的载波帧听多路访问(CSMA/CD)机制,是一种广播网络。数据的发送和接收就必须按以太网IEEE802.3协议来进行。软件的实现主要有模块的初始化、数据的发送和接收3部分。片上移植的μClinux系统包含了TCP-IP协议栈,以太网控制器集成在AT91SAM7X256内部。因此,实际上只要网关系统置开启状态,模块的初始化也随之完成。

  2.4 模块软件实现

  算法是指纹识别系统的核心。本系统中采用的指纹识别算法实现流程为:提取脊线方向,脊线频率,经过GABOR滤波,特征提取,与指纹数据库进行特征匹配。本系统单个节点有两大功能:指纹识别和指纹模板存储。指纹识别软件模块工作流程如图3所示。

  技术分享

  采集到指纹信息后,需要进行图像增强,其中要解决的核心问题是指纹图像预处理,其目 的是为了减弱噪声、改善图像质量,以便于特征提取。指纹纹理由相间的脊线和谷线组成,它们蕴涵了纹理方向、纹理密度等大量信息。这些信息在不同区域显示不同特征。指纹图像增强算法就是利用图像信息的区域性差异来实现的。

  本系统参考了指纹图像纹理频率信息,以GABOR变换这个能够同时对图像局部结构的方向和空域频率进行解析的最优滤波器作为滤波器的模板,因而极大改善了增强算法的效果。提取脊线方向方法为:

  1)将指纹图像分割成足够小的子块,以满足块中纹理近似平行的条件;

  2)对每个子块的每一个点p(s,t)(s,t=O,I…w-1)利用Sobel算子分别计算其x方向梯度gx和y方向梯度gy;

  3)每个子块方向θ(m,n)的计算公式:技术分享

  式中,。。

  GABOR变换由于具有最佳时域和频域连接分辨率的特点,能够同时对图像局部结构的方向和空域频率进行解析,可以很好地兼顾指纹图像的脊线方向和脊线频率信息。以与子块纹线方向垂直的方向作为滤波器方向,以脊线频率作为滤波器频率来构建滤波器。本系统中指纹匹配采用基于特征点集合匹配的校准算法,该算法多为简单的比较逻辑和加减运算,不需要用到DSP处理单元。运用本设计中的arm7器件能够较好的工作。由于有一定的拒识率,所以如果要使辨识结果拒绝此人的话,要连续3次都是拒绝才成立。

  3 结束语

  此分布式系统可应用在基于ARM7核心多节点的的大型企业监控、门禁管理的场合。本系统可以实现指纹数据采集的现场总线和以太网互联通信问题,使各分节点能够连接到主干以太网络,方便指纹数据库的管理和更新,可以进行远程的特征匹配查询。该设计的创新点在于:1)采用高集成度高性能的arm7处理器AT91SAM7X256解决方案,充分利用AT91SAM7X256提供的全双工的Ethemet控制器,CAN控制器,结构简单,成本低廉,具有商业价值;2)设计了具体的系统以太网,CAN总线及电源实现硬件电路图;3)移植μC/0S-Ⅱ,给出具体算法及处理方案,实现稳定性和低成本的结合。

 

基于ARM9的指纹识别系统的设计和实现