基于ARM9处理器的嵌入式指纹识别系统设计
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 系统软件主程序流程图。
一般情况下, 系统上电后, 都要对整个采集系统进行初始化操作, 包括微处理器系统的初始化以及目标板上外设的初始化, 以对它们的参数进行配置。初始化完成后, 就可以开始检测传感器上是否有手指, 如果有, 则进行指纹图像的采集, 采集完成后, 再对这枚指纹图像进行预处理。若这枚指纹图像采集的质量比较好, 则将数据上传; 如果采集的图像质量很差, 则重新采集指纹数据。
指纹图像的采集是在中断程序中开始的, 当指纹传感器上没有手指时, 系统将进入省电模式。通过指纹传感器FPS200的手指自动检测中断可唤醒系统, 并进行一次指纹图像的采集、预处理和数据上传。完成后再将进入省电模式, 并等待下一次的手指中断采集。ARM中的主程序很简洁, 因为主要的操作都由中断完成。手指检测由指纹传感器FPS200的自动手指检测中断来完成,当检测到有手指后, 即可开始对这枚指纹的处理工作。
系统初始化完成后, 系统将对手指是否安放在指纹传感器上进行检测, 若传感器上有手指,则进行一次指纹采集及相应的处理, 然后等待下一次指纹数据的采集。实际上, 指纹的采集和指纹数据的上传都是由中断过程完成的, 所以, 整个系统的主程序流程比较简洁。
评论