摘要: 为了适应指纹采集传感器件和指纹识别系统向着小型化和嵌入式方向发展的需要,文中提出了一种基于ARM9处理器架构的CPU芯片S3C2440A的嵌入式指纹识别系统(指纹识别系统是一个典型的模式识别系统,包括指纹图像获取、处理、特征提取和比对等模块。)设计方案,同时对该指纹识别系统的硬件架构进行了说明。该方案具有结构简单、可扩展性和移植性强等诸多优点。
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所示。
图2 FPS200与ARM的连线图。
FPS200的一些状态寄存器(如DTR、DCR、PGC、THR等) 需要在进行指纹采集之前被初始化。FPS200共有19个寄存器, 其中控制寄存器C(CTRLC) 主要负责时钟输出, 端口P0和Pl在使用中无需考虑。
3 系统软件设计
本系统的软件主程序流程图如图3所示。
图3 系统软件主程序流程图。
一般情况下, 系统上电后, 都要对整个采集系统进行初始化操作, 包括微处理器系统的初始化以及目标板上外设的初始化, 以对它们的参数进行配置。初始化完成后, 就可以开始检测传感器上是否有手指, 如果有, 则进行指纹图像的采集, 采集完成后, 再对这枚指纹图像进行预处理。若这枚指纹图像采集的质量比较好, 则将数据上传; 如果采集的图像质量很差, 则重新采集指纹数据。
指纹图像的采集是在中断程序中开始的, 当指纹传感器上没有手指时, 系统将进入省电模式。通过指纹传感器FPS200的手指自动检测中断可唤醒系统, 并进行指纹图像的采集、预处理和数据上传。完成后再将进入省电模式, 并等待下的手指中断采集。ARM中的主程序很简洁, 因为主要的操作都由中断完成。手指检测由指纹传感器FPS200的自动手指检测中断来完成,当检测到有手指后, 即可开始对这枚指纹的处理工作。
系统初始化完成后, 系统将对手指是否安放在指纹传感器上进行检测, 若传感器上有手指,则进行指纹采集及相应的处理, 然后等待下指纹数据的采集。实际上, 指纹的采集和指纹数据的上传都是由中断过程完成的, 所以, 整个系统的主程序流程比较简洁。
4 实验结果
通过不断实验并设定FPS200的寄存器DCR、DTR值可以调整放电电流和放电时间, 以使采集的图像获得。图4所示是原图和预处理后的指纹图像对比, 由图4可以看到, 实验的预处理效果是比较理想的。
图4 原图与处理后的指纹图像对比。
本文对几十个采集的指纹图像进行了匹配实验, 所得出的据真率和误识率及其所需要的验证时间如表1所列。
表1 实验数据列表
5 结束语
本文给出了基于ARM9和FP200传感器的指纹识别系统的设计和实现方法。本方法在指纹识别的可靠性及快速性上, 充分发挥了ARM9的优势。
ARM体系结构是面向低预算市场的款RISC微处理器, 具有可集成、可扩展、可移植的特点。
我们相信, 随着其性价比的提高, ARM的应用领域将会越来越广泛。
[1]. S3C2440A datasheet https://www.dzsc.com/datasheet/S3C2440A_589563.html.
[2]. FP200 datasheet https://www.dzsc.com/datasheet/FP200_331243.html.
[3]. RISC datasheet https://www.dzsc.com/datasheet/RISC_1189725.html.
免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。