采用S3C2410和Linux系统的指纹识别管理系统
作者Email: newtonian@263.net
摘要:随着ARM系列处理器性能的不断提高,过去一些专属于DSP领域的运算密集型的应用,例如指纹识别等,也能够在ARM处理器上得以很好的实现。并且由于MCU的强大控制功能,以及操作系统的巨大灵活性,使得这种系统有DSP平台不可比拟的优势。本文着重介绍了基于S3C2410和Linux操作系统的指纹识别管理系统的实现方法,以及这种实现方法与传统DSP系统的异同。
指纹识别技术在金融、交通、安全等领域以及日常工作和生活中被越来越广泛地应用。指纹识别的算法中通常有大量的矩阵运算,域变换,三角函数运算等等,属于典型的运算密集型的应用,因此通常采用DSP来实现嵌入式应用。不过近期情况有了很大改观,MCU的性能突飞猛进,使得指纹识别这样的运算密集型的应用也可以采用MCU来实现。例如,三星公司推出的基于ARM920内核的嵌入式处理器S3C2410,速度高达200MIPS,完全可以满足指纹识别应用对运算速度的要求。S3C2410具有的丰富外设,并且可以运行Linux操作系统,这样的特性则是传统的DSP所无法比拟的。
进行指纹识别,首先要设法获取指纹。之前用得最多的是光学采集器,特点是价格相对便宜($15-$100),但体积比较大,结构复杂。最近光学采集器正受到半导体电容阵列式指纹采集器的强烈冲击。这种新型的采集器采用硅片表面的微小电容阵列来感知指尖的细微纹理,其特点是灵敏度高,采集图像质量好,并且体积非常小,很容易将其安装到小型设备,例如手机或者是门锁等产品中。尽管目前其价格还比较高(>$25),但由于它是按照莫尔定律发展的半导体产品,可以预见,正如传统的相机会被数码相机代替一样,在不久的将来它将成为指纹采集器的主流产品。目前半导体采集器的主要生产厂家有ST和Fujitsu等。
在我们这项设计方案中采用的指纹采集器是Fujutsu公司的FSP200。它能在大约25mmX30mm的面积上获得256X300个象素的指纹图像。FPS200可以直接连接到S3C2410的总线上,因此这项设计的硬件十分简洁紧凑。硬件如下图所示:
从上图可以看出,指纹识别核心板实际只有3个组成部分,即电源管理,CPU和内存。电源管理部分采用DC-DC以获得高效率,这对于门锁等采用电池的应用非常有用。内存有16MB的SDRAM和4MB的Flash。实际上如果仅仅需要进行指纹识别是用不到那么多Flash的,但我们的设计并不仅仅是要实现简单的指纹识别,而是一个可以对多个用户进行管理的指纹管理系统,因此4MB的Flash是必要的。
核心板提供了两个外部接口,即传感器接口和用户板接口。传感器接口采用16Pin的扁平印刷电缆与FPS200传感器相连。用户板接口实际上是一个UART,用户板开发者可以通过任何一个带有UART的简单单片机对它进行完全的控制。对核心板的控制是通过一系列指令集来完成。为了与过去的大量用户保持兼容性,我们的控制指令集与现在被广泛应用的FDA2000指纹识别模块是兼容的。(FDA2000由于Intel的S1100的停产而面临供货的问题)通过指令集操作,用户板可以在核心板上实现建立和删除档案,比对,查询等等功能,核心板可以在一秒左右的时间将比对的结果反馈给用户板。
在软件方面,引入了操作系统是这种设计方案的最大特点。尽管会对效率有所影响,但由于处理器速度很快,并且算法可以针对处理器做很多优化,因此较引入操作系统带来的好处而言,对效率的影响就不值一提了。系统的软件结构如下图所示:
如上图所示,软件由Linux操作系统内核,设备驱动程序,指纹识别算法以及用户接口程序等四个部分组成。操作系统负责整个系统的管理,进程调度等。设备驱动用于驱动各种外设进行工作,例如指纹采集,串口通信等。指纹识别算法是系统的核心部分,算法设计的好坏直接关系到指纹识别系统的速度、可靠性等重要指标。清华大学精密测试技术及仪器国家重点实验室林教授领导数名博士、硕士进行了十余年的潜心钻研以及众多国家级公安、国防、人事部门的实用验证保证了我们这款设计中算法的先进性和可靠性。用户接口程序则提供核心板和用户板之间的通信机制,使得用户可以方便地对核心板进行控制。
基于操作系统的最大好处在于,可以在指纹识别系统上几乎无限制地扩充出各种各样的功能,例如适应于网络化管理的以太网接口,适应于移动应用的GPRS或者WLAN通信接口,适应于安全数据存储应用的U盘读写操作等等。如果没有OS,上述功能的实现是不可想象的。
《采用S3C2410和Linux系统的指纹识别管理系统》