Thursday, November 08, 2007

基于Windows CE的指纹识别系统设计

网络信息化时代的一大特征就是身份的数字化和隐性化。如何准确、快捷地鉴定一个人的身份,并有效地保护信息安全是信息化时代必须解决的一个重要社会问题。自动指纹识别技术作为一种新型的身份认证技术,不仅具有许多独到的信息安全优点,还具有很高的实用性和可行性。

指纹识别的处理过程包括以下几个步骤:1)利用传感器件采集手指生物样本,然后用预先建立的数学公式或算法从样本中提取其独有的数据,并将其转换成一个模板。2)登记认证程序从指纹的30~40个特征点中至少提取7个特征匹配点进行验证,包括构成某一指纹细节的纹路分叉点和终止点,并定义成特征点之间的距离。3)进行指纹注册,保存信息代码以作为今后用户认证的参考模板。当进入指纹识别系统时,用户将手指触摸传感器区域,所获取的现场扫描模板与参考模板进行比较。整个指纹比对过程如图1所示。

嵌入式指纹识别系统

北京铱波电子公司开发研制的嵌入式指纹识别系统,采用英特尔公司的高性能微控制器PXA255作为控制内核,除了采用了与指纹识别操作相关的器件外,还提供应用控制接口以实现安防、门禁等应用系统。该指纹识别系统的硬件框图如图2所示。


这个硬件平台提供如下资源:具有8Mb的FLASH和16Mb的SDRAM;PXA255本身具有的串口控制器在调试期间和PC通信;采用了日本富士通公司的按压式硅电容半导体指纹传感器MBF200,其指纹采集面积为12.8×15mm;两个LED数码显示管和一个三色发光二极管显示运行结果;采用4个按键用于用户指纹数据的管理,其中注册键用于注册指纹,验证键用于验证指纹,前进键和后退键用于选定指纹数据以进行删除和增加的操作,4个按键任意一个被按下时,触发按键中断。此外,该平台能适应不同应用系统要求的控制执行机构。

本指纹识别系统采用Windows CE作为操作系统。Windows CE是微软公司专门为信息设备、移动应用、消费电子产品等嵌入式应用领域设计的一款操作系统,它以开放性好、应用程序开发商众多、功能强大并且与PC及互联网的互动性强等优点而受到嵌入式应用开发者的重视。

要把Windows CE 移植到目标平台上,必须为平台内建设备提供驱动程序。Windows CE支持广泛的基于各种CE平台的设备驱动程序,也提供一些用于驱动开发的模型,包括来自其它操作系统的驱动程序模型。多种多样的驱动程序模型使得Windows CE 能适应大部分的内部和外围设备。

在Windows CE操作系统下提供了两种基于Windows CE的驱动程序模型:本地设备驱动(Native Device Driver)和流接口驱动(Stream Interface Driver)。两者的差别在于它们向上提供的编程接口不同:本地设备驱动可以根据具体设备的需求提供相应的接口,而流接口驱动则提供一组通用接口即流接口函数。本地设备驱动程序又称内置驱动程序,适合于集成到Windows CE平台上的设备有键盘、显示屏、PC卡插槽等内部设备;其它外部设备以及流设备则较多采用流接口驱动。流接口向上提供的编程接口使应用程序可以很方便地用访问文件的接口来访问设备。

这些驱动程序模型都可以采用图3给出的两种实现方式,图3的左侧是分层实现方式,右侧是一体实现方式,它们都向上提供DDI(Device Driver Interface)函数,供其它模块或应用程序调用。分层实现方式在设备驱动程序中被分为MDD(Mode Device Driver)层和PDD(Platform Dependent Device)层。微软公司提供的设备驱动样板程序大多采用分层实现方式。这些程序只需改动PDD层就可以移植到设备驱动领域,从而提高开发效率和驱动程序的可靠性。不过,对那些有较高性能要求的设备驱动或特别适合直接实现DDI的设备,一体实现方式更有效。