基于ARM9处理器的嵌入式指纹识别系统设计
扫描二维码
随时随地手机看文章
0 引言
指纹鉴定是人身识别最重要的手段之一, 指纹自动识别系统给指纹鉴定工作提供了一个新的平台, 并使指纹自动识别系统在身份认证方面具有更广阔的前景。目前, 自动指纹识别系统一般都是联机的,大多数系统都选用指纹传感器来采集, 并以计算机(PC) 作为主机来处理, 从而对指纹进行匹配。而本文提出的基于ARM9的嵌入式指纹识别系统则是把采集和处理集于一身的独立系统, 因而可以做得很小, 比较适合用于高档汽车门、防盗门以及公*勤系统等场合。嵌入式系统是指以应用为中心, 以计算机技术为基础, 软硬件可裁剪, 其应用系统对功能、可靠性、成本、体积和功耗等要求都比较严格的专用计算机系统。本文选用SAMSUNG的S3C2440A作为嵌入式指纹系统的主处理芯片,提出了系统的软硬件设计方案。:
1 嵌入式指纹识别系统的硬件设计
图1所示是本嵌入式指纹识别系统的硬件框图。从图1中可以看到, 本系统主要由指纹数据采集模块、微处理器模块、数据存储模块和通讯模块等四个模块组成。本系统以ARM9处理器为核心来驱动指纹传感器采集指纹, 并将指纹数据放入存储器中, 此数据可以被PC通过串口获取,也可以保存在数据存储器中。
指纹数据采集模块可利用软件方式来判断是否进行指纹的采集。当进行指纹采集时, 指纹传感芯片将按照设定的参数来采集指纹, 并将模拟图像转换成数字图像, 然后在ARM的控制下, 将数据存储在外部数据空间, 以等待下一步的处理。
指纹识别系统的硬件框图
图1 指纹识别系统的硬件框图。
微处理器模块以ARM和数据存储器为核心,可对采集到的指纹图像进行相应的预处理, 并通过对发光二极管的控制来显示指纹预处理结果。
数据存储模块由SDRAM、FLASH构成。其中Flash中存放的是系统的应用程序和一个指纹预处理后的数据, 系统上电后, 即可通过“BootLoader”
功能将程序加载到FLASH中以便程序运行。
SDRAM用来存放指纹图像并提供程序运行时所需要的临时数据空间。
通讯模块的设计要考虑到处理的简易性。本系统的指纹数据上传采用的是串口方式。
2 指纹传感器与处理器的接口设计
2.1 指纹采集器件的选择
考虑到产品价格的因素和所需精度的要求,本系统选择了FPS200 指纹传感器。FPS200 是Veridicom公司推出的第三代半导体指纹传感器,是一款专为嵌入式系统设计的高性能、低功耗、低价格指纹传感器。FPS200可以轻易地集成到各种设备中, 如便携式电脑、个人数字助理(PDA)、移动电话等。FPS200基于电容器充放电原理, 它由300行和256列电容阵列组成, 传感阵列的每一点都是一个金属电极,可充当电容器的一极, 手指按在传感接触面上的对应点则作为另一极, 传感面形成两极之间的介电层。由于指纹的脊和谷会导致各点的电容值不同, 因此, 这个电容值阵列就形成了一幅指纹图像。FPS200是面向行的器件, 即每次可获得一行图像, 每列接有两个采样保持电路, 当选定一行后, 对此行的所有电容充电至VDD, 而在充电结束时, 第一组采样保持电路将保存该电压值。然后, 该行电容将被放电, 经过一定的放电时间后, 另一组采样保持电路将保存剩余电压值。两组采样保持电路的电压值之差正比于电容值, 这样, 将其数字化即可表示该行的指纹图像。FPS200的放电电流和放电时间可分别由寄存器DCR、DTR的值来设定。
FPS200在待命模式下的操作电流小于20μA, 故可在移动设备的应用中节约电池的消耗, 延长电池寿命。此外, FPS200还有手指自动检测电路(AFD), 当有手指按在传感器表面时,系统将向主机发送一个中断信号。自动检测电路允许主机在没有指纹时处在低功耗待命模式, 只有当有手指时才唤醒主机进行处理,从而节省了整个系统的功耗。FPS200的图像搜索功能则可通过改变电容阵列的参数值来在1秒种内扫描多幅指纹图像并自动选择最好的一幅。
2.2 指纹图像的采集方式
FPS200有三种总线接口: USB接口、微处理器总线(MCU) 接口和串行外设接口(SPI)。使用时可由模式选择管脚MODE [1:0] 确定其所处的工作模式。
在MCU接口模式, 通过自动增加行列地址寄存器的值以及模数转换的路径优化功能, 可使FPS200内置的标准8位微处理器总线的性能大大加强, 其图像传输速度可达到30帧/秒, 故可以满足连续指纹图像的采集和比对。
在SPI接口模式, FPS200传感器可通过其内置的SPI接口来减小FPS200对硬件的依赖, 这样,系统只需6条线就可以与带SPI接口的微处理器相连接。在SPI模式下, FPS200的图像传输速度为10帧/秒。
而在USB接口模式下, 由于FPS200内置有高速USB核电路, 其外部不再需要其它USB控制器,因而可作为标准的USB设备来使用。在USB模式下, FPS200的图像传输速度为13帧/秒。
本设计选用SPI接口, 其FPS200与ARM处理器的连线图如图2所示。
FPS200与ARM的连线图
图2 FPS200与ARM的连线图。
FPS200的一些状态寄存器(如DTR、DCR、PGC、THR等) 需要在进行指纹采集之前被初始化。FPS200共有19个寄存器, 其中控制寄存器C(CTRLC) 主要负责时钟输出, 端口P0和Pl在使用中无需考虑。
3 系统软件设计
本系统的软件主程序流程图如图3所示。
系统软件主程序流程图
图3 系统软件主程序流程图。
一般情况下, 系统上电后, 都要对整个采集系统进行初始化操作, 包括微处理器系统的初始化以及目标板上外设的初始化, 以对它们的参数进行配置。初始化完成后, 就可以开始检测传感器上是否有手指, 如果有, 则进行指纹图像的采集, 采集完成后, 再对这枚指纹图像进行预处理。若这枚指纹图像采集的质量比较好, 则将数据上传; 如果采集的图像质量很差, 则重新采集指纹数据。[!--empirenews.page--]
指纹图像的采集是在中断程序中开始的, 当指纹传感器上没有手指时,系统将进入省电模式。通过指纹传感器FPS200的手指自动检测中断可唤醒系统, 并进行一次指纹图像的采集、预处理和数据上传。完成后再将进入省电模式, 并等待下一次的手指中断采集。ARM中的主程序很简洁, 因为主要的操作都由中断完成。手指检测由指纹传感器FPS200的自动手指检测中断来完成,当检测到有手指后, 即可开始对这枚指纹的处理工作。
系统初始化完成后, 系统将对手指是否安放在指纹传感器上进行检测, 若传感器上有手指,则进行一次指纹采集及相应的处理, 然后等待下一次指纹数据的采集。实际上, 指纹的采集和指纹数据的上传都是由中断过程完成的, 所以, 整个系统的主程序流程比较简洁。
4 实验结果
通过不断实验并设定FPS200的寄存器DCR、DTR值可以调整放电电流和放电时间, 以使采集的图像获得最佳。图4所示是原图和预处理后的指纹图像对比, 由图4可以看到, 实验的预处理效果是比较理想的。
原图与处理后的指纹图像对比
图4 原图与处理后的指纹图像对比。
本文对几十个采集的指纹图像进行了匹配实验, 所得出的据真率和误识率及其所需要的验证时间如表1所列。
表1 实验数据列表
实验数据列表
5 结束语
本文给出了基于ARM9和FP200传感器的指纹识别系统的设计和实现方法。本方法在指纹识别的可靠性及快速性上, 充分发挥了ARM9的优势。
ARM体系结构是面向低预算市场的第一款RISC微处理器, 具有可集成、可扩展、可移植的特点。
我们相信, 随着其性价比的提高, ARM的应用领域将会越来越广泛。