基于DSP的自动指纹识别系统
关键词:指纹识别;DSP;混合语言编程
指纹识别技术是以数字图像处理技术为基础,而逐步发展起来的。相对于密码、各种证件等传统身份认证技术和诸如语音、虹膜等其它生物认证技术而言,指纹识别是一种更为理想的身份认证技术。使用指纹识别具有许多优点,例如:每个人的指纹都不相同,极难进行复制或被盗用;指纹比较固定,不会随着年龄的增长或健康程度的变化而变化;最重要的在于指纹图像便于获取,易于开发识别系统,具有很高的实用性和可行性。
1 指纹识别系统的架构
本课题设计了一个嵌入式系统,通过DSP来完成指纹图像的采集和指纹识别的算法。另外为使系统有更广阔的应用领域,在设计上还采用异步串行通讯方式实现了DSP和PC之间的数据交互。据此,系统由指纹传感芯片、复杂可编程逻辑器件、闪烁存储器和UART等硬件组成。系统的结构框图和主要程序流程图如图1和图2所示:
2 系统各部分设计要点
2.1 DSP的选择和存储空间的设计
TMS320VC5402具有很高的性价比,可以访问1M的程序空间和64K的数据空间。内部自带的16K 双寻址RAM,可以在一个指令周期内完成两次读操作或一次读和一次写操作。锁相环电路则可提供高达100MHz的工作频率,从而使VC5402完全有能力在较短的时间内完成指纹的识别操作。
由于指纹图像具有数据量大特点,因此程序的设计不可避免的需要较大的存储空间。系统中所采集到的8bits灰度图像大小为300×256,则存储一幅图像就需要75K的空间,而VC5402可寻址的数据空间范围总共才有64K。为此,可以参照VC5402空间分配结构图,通过程序空间页扩展功能来解决图像的存储和运算问题,运用RPT、READA和WRITA指令完成图像数据在程序空间和数据空间的搬移操作。
图1 系统结构框图
图2 系统主要程序流程图
2.2 指纹采集电路的设计
指纹传感芯片选用Fujitsu公司的MBF200。它由256列×300行电容阵列组成,芯片内设计有两套采样保持电路用于指纹图像的采集。图像传输速度最大可达30帧/秒,能够满足连续指纹图像的采集和比对。MBF200具有手指自动检测电路(AFD),它允许DSP在没有指纹时处在低功耗待命模式,当有手指时才通过中断唤醒它进行相应的处理。然而实验证明,AFD功能的可靠性较差,不能满足设计要求。为此,在设计上采用了手动开关加软件查询方式来判断是否进行指纹的采集。当主机接口(HPI)中的HPIENA管脚通过电阻接地,则系统复位上电后,HPI接口将作为通用输入输出口(GPIO)来使用。将手动开关的输出信号线和GPIO的一个指定的输入口相连接,当要进行指纹采集时,通过开关产生一个输出信号;而系统初始化后DSP不断的查询GPIO中指定的输入口状态,一旦发现状态发生变化,就进行指纹图像的采集。实验证明,这种方式很好的解决了图像采集的问题,提升了系统的可靠性。除此之外,GPIO中其它的管脚可作为输出管脚来使用,用于控制声光报警电路。
2.3 DSP与PC接口的设计
为了充分利用VC5402的片上资源,降低成本。系统中使用MAXIM公司的通用异步串行收发器MAX3111E实现DSP和PC的通信。MAX3111E应用SPI接口与主控制器进行通信,它具有四个RS-232电平转换器,这样无需再接入MAX232进行电平转换,从而应用一个芯片就实现了具有SPI接口的主控器与PC进行异步数据传输的功能。
VC5402的时钟停止模式兼容SPI通信协议。当McBSP被设置成时钟停止模式时,可将发送帧同步信号(FSX)用作SPI协议中/SS,将发送时钟(CLKX)用作SPI协议中SCK;接收串行数据(DR)和发送串行数据
《基于DSP的自动指纹识别系统》