基于ARM7的指纹识别模块设计
来源:小侦探旅游网
中文摘要摘要:指纹识别技术由于其唯一性和稳定性得到了广泛关注,成为目前最为成熟的生物识别技术之一。随着嵌入式系统的进一步成熟与发展,嵌入式指纹识别系统的应用也越来越广泛。本文重点讨论了嵌入式指纹识别系统的硬件设计,完成了基于ARM7处理器(S3C44BOX)的指纹识别设备的硬件设计和底层软件设计,实现了指纹识别和RFID(RadioFrequencyIdentification)技术相结合的身份认证系统。该系统具有指纹采集、RFID信息采集、数据存储、语音提示、信息加密等功能。另外本系统还具备低成本和低功耗的设计特点,使得其无论在性能和价格上都具有很大的优势。本文首先介绍了指纹识别系统和嵌入式系统的发展状况,并针对目前主流的嵌入式指纹识别系统的硬件平台做了简单介绍,详述了包括处理器、传感器和其它相关器件的功能特点。然后根据系统的功能和性能要求,提出了系统设计的思想。文章详细介绍了系统的软硬件设计过程,并完成了指纹识别算法的移植,实现了单机的指纹注册和匹配功能。根据PCB设计经验,本文还对高速PCB设计中的抗干扰方法和调试过程进行了研究。论文最后总结了嵌入式指纹识别系统的设计开发过程,并对指纹识别的发展方向做出了进一步探讨。关键词:指纹识别;ARM7;S3C44BOX;嵌入式系统;RFID分类号:TP391.4ABSTRACTABSTRACT:Fingerprintidentificationtechnologyhasbeenuniversallynoticedduetoitsfeatureofuniquenessandstability,andhaswithfullythedevelopedamongallthebiometricidentificationtechnology.Alongdevelopmentof锄1beddedtechnology,翱曲edd。dfingerprintrecognitionsystemhasbeenwidelyused.Thispaperfocusesandrealizestheonhardwaredesignof咖boddedfingerprintrecognitionsystem,fingerprintandidentificationonsystemofRFID(RadioFrequencyIdentification)basedSamsungARM7processor(S3C44BOX).Itprovidestheinformationcollection,datastorage,voicecostfunctionsoffingerprintacquisition,RFIDprompt,informationencryptionandetc.Besides,lowpowerandlowfeatures,whichmakethisproductmorecompetitiveThispaperfirstarealsoitsbethinperformanceandp—ce.m删ucesgivesthedevelopmentoutlineofoffingerprintrecognitionand。embeddedhardwaresystem,andmcurrentmainstreamhardwareplatform,includingandprocessorsandsensorsrelated.Thenitgivesoftheprocessofthesoftwaredesign,andtheexplantationthealgorithmabasedonminutiae.AccordingtotheexperienceofPCBdesign,italsomakesbriefintroductionofhighspeedPCBdesignanddebugmethod.Atlast,weconcludethewholeworkofthispaperanddescribetheprospectoffingerprintrecognitionforfurtherexploration.KEYWORDS:FingerprintR£r.,ognition;ARM7CLASSNo:11P391.4S3CA4BOX;Embeddedsystem;RFID学位论文版权使用授权书本学位论文作者完全了解北京交通大学有关保留、使用学位论文的规定。特授权北京交通大学可以将学位论文的全部或部分内容编入有关数据库进行检索,并采用影印、缩印或扫描等复制手段保存、汇编以供查阅和借阅。同意学校向国家有关部门或机构送交论文的复印件和磁盘。(保密的学位论文在解密后适用本授权说明)学位论文作者签名:毒经肩导师签名:刮芬签字日期:劲习年I胡z明签字日期:M)年,二月二L日独创性声明本人声明所呈交的学位论文是本人在导师指导下进行的研究工作和取得的研究成果,除了文中特别加以标注和致谢之处外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含为获得北京交通大学或其他教育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示了谢意。学位论文作者签名:本雠签字日期:伽叼年f胡zzAil致谢本论文的工作是在我的导师荆涛副教授的悉心指导下完成的,荆老师严谨的治学态度和科学的工作方法给了我极大的帮助和影响。在此衷心感谢三年来荆老师在学习上和生活上对我的关心和指导。另外我还要特别感谢实验室的李兴华老师,在您的悉心指导下,我们完成了实验室的科研工作,并为我们创造了良好的实验环境,对论文的工作提出了很多指导性的建议,在此向李兴华老师表示衷心的谢意。在实验室工作及撰写论文期间,李欣桐、廖风华、张弟鹏、苏宁、刘波、宋伟、任萍、单大力等同学,以及蒋开伟、张超、韩建辉等几位同事也对我的论文研究工作给予了热情帮助,在此向他们表达我的感激之情。另外还要感谢我的家人,你们的理解和支持使我能够在学校专心完成我的学业。最后,再一次对大家的帮助表示诚挚的谢意。l概述随着越来越多的电子设备不断进入我们的日常生活中,如电脑、ATM提款机、蜂窝电话、门禁控制系统等等,人们对于身份鉴别的安全性和可靠性的要求越来越高。传统的身份鉴别方法如钥匙、证件、用户名、密码等存在着易丢失、易遗忘、易被他人伪造或盗用的缺点,已经不能满足当今社会发展的需要,因此人们逐渐把目光转向了生物特征识别技术(BiomctricIdentificationTechnology)。生物识别技术是利用人体生物特征进行身份认证的一种技术【lJ。生物特征是唯一的、可以测量或可自动识别和验证的生理特性或行为特征。人体的生理特征与生俱来,包括有掌纹、指纹、脸形、虹膜、视网膜、DNA等,行为特征有签字、声音、步态等。基于这些特征,目前己经发展出了掌纹识别、指纹识别、面部识别、发音识别、虹膜识别、签名识别等多种生物识别技术【I】。与传统的身份鉴别手段相比,基于生物特征的身份鉴别技术具有:(1)稳定性,长期不变;(2)唯一性,不同的个体互不相同;(3)普遍性,人人都有,但是与识别的个体有本质的联系。由于生物识别的这些特征,使得它具有不易伪造和假冒的特点,因此成为目前最为安全的识别技术。在这些的生物特征中,面部特征具有很多优点,如主动性、非侵犯性和用户友好等,但面部会随年龄变化,而且容易被伪装。语音特征具有与面相特征相似的优点,但也会随年龄、健康状况及环境等因素而变化,而且语音识别系统也比较容易被录音所欺骗、伪造。虹膜特征识别解决了上述问题,同时还具有上述其他生物特征所具有的一些优点,不过目前技术还不成熟,而且造价较高。人体的指纹特征相对稳定,并且指纹识别是起步最早、最为实用的技术,它具有终身不变、不可丢失、唯一性的特点,所以不存在损坏、丢失或替代等问题,相对而言,利用指纹识别技术来进行身份认证是一种较好的解决方案【l】【2】。1.1项目背景早期的指纹识别方法采用的是人工比对,效率低、速度慢,不能满足实际应用的需要。20世纪60年代末,美国有人提出利用计算机图像处理和模式识别的方法进行指纹分析来代替人工比对,这就是自动指纹识别系统AFIS(AutomaticFingerprintIdentificationSystem)。当时由于成本限制以及对运行环境的特殊要求,AFIS主要应用于刑事侦查领域。随着计算机图像处理和模式识别理论以及大规模jb立銮煎太堂亟±堂焦论塞援述集成电路技术的不断发展与成熟,自动指纹识别系统的体积不断缩小,价格也不断减低,因而已广泛应用到民用领域。这其中嵌入式系统的飞速发展功不可没。嵌入式系统具有低功耗、可靠性高、功能强大、性价比高、实时性强、支持多任务、占用空间小、效率高、面向特定应用、可根据需要灵活定制等优点。嵌入式指纹识别系统是将指纹的采集和处理集于一身的单机系统,可以做的很小,因此可以作为客户端应用于任何场合,是适应当代身份认证要求的一种识别系统。可以说嵌入式技术的发展使得指纹识别技术进一步走向实用化和大众化…。鉴于二者的广阔的应用前景,本课题将针对基于ARM7的嵌入式指纹识别系统进行研究。本文所介绍的嵌入式指纹识别系统是北京伊丽美科技有限公司的指纹巡更系统项目的重要组成部分之一。这款产品是基于Samsung公司的S3C44BOX处理器设计的,诣在设计出一款价格低廉、性能良好、功能齐备的手持式指纹考勤设备,以方便用户的使用。1.2指纹识别系统的发展概况指纹识别技术是目前最安全、最可靠、最经济的身份识别和鉴定办法之一。科学研究发现了至今仍然承认的两个重要特征:一是两个不同手指的指纹纹脊的样式(ridgepattern)不同,另外一个是指纹纹脊的样式终生不变。在考虑局部指纹特征的情况下,英国学者ER.Hetty认为,只要比对13个特征点重合,就可以确定是同一枚指纹。比较其他生物特征而言,指纹有如下两个突出的优点lzJ嘲:(1)唯一性每个入的指纹独一无二,人与人之间不存在相同的指纹。据指纹学理论,两枚指纹匹配上12个特征的机率为10一。至今仍找不出两个指纹完全相同的人。由于皮肤表皮上的纹路是在胎儿六个月时形成的,所以即使是同卵双胞胎的指纹也是不同的。不仅是人与人之间,就是同一个人的十指指纹也有明显的区别。指纹的这一特点,为其用于身份的认证与识别奠定了基础。(2)稳定性指纹具有很强的相对稳定性。从胎儿六个月指纹形成到尸体腐烂,指纹纹线的类型、结构、统计特征的总体分布始终没有明显变化。尽管随着年龄的增大,指纹在外型大小、纹线粗细上会产生一些变化,局部纹线上也可能出现新的特征,但从总体看,指纹是相对稳定的。即使手指皮肤受伤,只要不伤及真皮层,伤愈后纹线仍能恢复原状【31。指纹的这两个特点,为指纹用于身份鉴定提供了客观的依据。实际上,指纹作为身份鉴定手段早已有着悠久的历史。考古证实,公元前7000年到6000年以前,古叙利亚和中国,指纹作为身份鉴别已经开始应用。现代指纹技术出现在十六世纪的晚蝌”。1648年,英国警察部门的指纹形态学家N.Grew发表了一篇论文,阐述了他对指纹中的脊、谷和孔的系统研究结果,这是关于指纹的最早的一篇科学论文。随着计算机技术的发展,相应地出现了自动指纹识别系统AFIS。20世纪80年代,个人电脑,光学扫描这两项技术的革新,使得它们作为指纹取像的工具成为现实,从而使指纹识别技术开始代替Ic卡在其他领域中得以应用。不过,早期的指纹识别系统的研究都是在高性能的计算机上完成的,主要针对脱机的指纹图像进行研究,随着技术的发展,低价位取像设备和可靠的比对算法的开发与研究为个人身份识别应用的增长提供了舞台,开始进行联机活体指纹识别算法的研究。90年代后期,由于半导体指纹传感器的出现,使得指纹识别的应用领域迅速扩大,在个人电脑、PDA、掌上电脑、门禁系统、考勤系统、保险系统等领域都开始使用AFIS技术Il】。指纹识别系统包括指纹识别的算法和指纹识别模块两个部分。指纹识别的算法主要分为两类:一类是基于细节特征点(Minutiae-based)的指纹识别算法,另一类是基于滤波(Filter-Based)的指纹识别算法。基于细节特征点的指纹识别算法是在采集到指纹图像后,经过灰度滤波、二值化、二值滤波、细线化、去噪声等方法对图像进行预处理,然后提取特征点,将其和模板特征点进行比对。这种方法对于图像质量的要求比较高,当输入图像与样本图像有足够多的对应细节点时能够很好的匹配,否则性能就会下降。基于滤波的方法是利用Gabor滤波器,既能充分利用指纹图像纹理结构信息,抓住图像的全局特征,又能体现细节特征,弥补了上述的不足12J。指纹识别模块主要涉及到基于硬件的指纹采集技术。指纹采集的过程本质上是指纹成像的过程。其原理是根据指纹纹线中谷和脊的几何特性、物理特征和生物特性的不同,以得到不同的反馈信号,根据反馈信号的量值来绘成指纹图像。指纹的几何特性是指在空间上脊是突起的,谷是凹下的。脊与脊相交、相连、分开会表现为一些几何图案:指纹的生物特性是指脊和谷的导电性不同,与空气之间形成的介电常数不同、温度不同等;指纹的物理特性是指脊和谷着力在水平面上时,对接触面形成的压力不同、对波的阻抗不同等【ll。指纹采集技术的发展经过了较长的历史时期,其过程也受传感器技术发展的影响和推动。第一代指纹采集技术采用“按压留痕’’的方式来采集指纹,利用的是指纹“触物留痕”的特性。这一时期主要通过“油墨一指纹卡”的方式,用手指蘸上墨水或印油在纸上按压,然后用扫描仪摄取采集。第二代指纹采集技术采用自动化、数字化的采集方式,指纹数据以数字信息表示和存储…【21。指纹采集有两种模式,一种是在被采集人已知的状况下,实旌的主动式采集。另一种是在被采集人未知的状况下,如刑侦现场,通过各种化学的、物理的方式显影指纹并采集的过程。这种方式一般称为现场指纹提取,并涉及指纹分离的过程。指纹采集的方法也有两种,一种是由指纹采集器件主动向手指发出探测信号,然后分析反馈信号,以形成指纹脊与谷的图案。如光学采集和射频(RF)采集属于主动式采集。另一种是指纹采集器件是被动感应的方式。当手指放置到指纹采集设备上时,因为指纹脊和谷的物理特性或生物特性的不同,会形成不同的感应信号,然后分析感应信号的量值来形成指纹图案。如热敏采集、半导体电容采集和半导体压感采集属于第二种【I】。对生物识别技术来说,被广泛接受意味着在影响千万人的日常生活的各个地方使用。通过取代个人识别码和口令,生物识别技术可以阻止非授权的访问,可以防止盗用ATM、蜂窝电话、智能卡、桌面PC、工作站及计算机网络。在通过电话、网络进行的金融交易时进行身份认证。在建筑物或工作场所,生物识别技术可以取代钥匙、证件、图章和卡阅读器,因此具有十分广阔的应用前景【l】。1.3嵌入式系统的发展概况嵌入式系统(EmbeddedSystem)是近几年才风靡起来的,从20世纪70年代单片机的出现到今天各式各样的嵌入式微处理器,微控制器的大规模应用,嵌入式系统已经有了近30年的发展历史。所谓的嵌入式系统,IEEE(国际电气和电子工程师协会)标准定义为:嵌入式系统是用来控制或监视机器、装置或工厂等大规模系统的设备。微机学会的的定义为:嵌入式系统是以嵌入式应用为目的的计算机系统,可分为系统级(各种类型的工控机)、板级(各种类型的带CPU的主板以及OEM产品)和芯片级(各种以单片机、DSP、微处理器为核心的产品)。嵌入式系统是以应用为中心,以计算机技术为基础,软硬件可以剪裁,能满足应用系统对功能、可靠性、成本、体积、功耗等指标严格要求的专用计算机系统[121。整个嵌入式系统由硬件和软件两部分组成,其中硬件部分包括嵌入式处理器、存储器和输入,输出设备,软件部分包括板级支持包BSP(BoardSupportPackage)、嵌入式操作系统和应用程序,对于不是很复杂的嵌入式应用,嵌入式操作系统为可选项112】。嵌入式系统的发展大致也经历了四个阶段【6Ⅱ12】:第一阶段是以单芯片为核心的可编程控制器系统,同时具有检测、伺服、指示设备相配合的功能。这一类型的系统大部分用于专业性极强的工业控制系统中,一般没有操作系统支持,通过汇编语言对系统进行直接控制。这一阶段系统的主要特点是:系统结构和功能相对单一,处理效率较低,存储容量较小,几乎没有4jE壶窑通太堂亟主堂焦谊塞摄述用户接口。由于这种嵌入式系统使用简单、价格低,以前在国内工业领域应用较为普遍,但是已经远不能适应高效的、需要大容量存储的现代工业控制和新兴信息家电等领域的需求。第二阶段是以嵌入式中央处理器(CPU)为基础,以简单操作系统为核心的嵌入式系统。这一阶段系统的主要特点是:CPU种类繁多、通用性较弱、系统开销小、操作系统只具有低度的兼容性和扩展性、应用软件较为专业、用户界面不够友好。这种嵌入式系统的主要任务是用来控制系统负载,以及监控应用程序的运行。第三阶段是以嵌入式操作系统为标志的嵌入式系统。主要特点是:嵌入式操作系统能运行于各种不同类型的微处理器上,兼容性好;操作系统内核小、效率高,并且具有高度的模块化和扩展性;具备文件和目录管理、多任务、网络支持、图形窗口以及用户界面等功能;具有大量的应用程序接口API,开发应用程序较简单;嵌入式应用软件丰富。然而,在通用性、兼容性和扩展性方面仍不理想。第四阶段是以基于Intm'net网络操作为标志的嵌入式系统,这是一个正在迅速发展的阶段。随着网络在人们生活中的地位日益重要,越来越多的应用需要采用支持网络功能的嵌入式系统。后PC时代更多的产品使用嵌入式操作系统,它们对实时性要求高,如手持设备等,微软公司的WinCE,PalmOS等产品就是顺应这些应用而开发出来的。各类通用机上使用的新技术、新观念正逐步移植到嵌入式系统中,如动态数据库、移动代理等,嵌入式操作系统也出现了基于面向对象的分布式技术。目前大多数嵌入式系统还孤立于Internet之外,但随着Internet的发展以及Internet技术与信息家电、工业控制技术结合日益密切,在不久的将来,嵌入式系统的应用会越来越多样化,并为用户提供更多的选择方案。它不仅仅局限于传统的控制领域,在信息家电、工业、农业、商业、服务业等各行业都会得到广泛应用。嵌入式设备与Intemet的结合将代表嵌入式系统的未来L“。1.4本文的主要内容及文章结构本文所做的主要工作是根据项目的实际要求,完成了基于Samsung公司的ARM7处理器S3C4480X的指纹识别设备的硬件和底层软件设计,实现了指纹识别和RFID(RadioFrequencyIdentification)技术相结合的身份认证系统。系统具备的功能包括指纹采集,RFID信息采集,数据存储,语音提示,信息加密,数据上传等功能,并完成了指纹识别算法的移植。设计中面临的关键问题有:(1)采集头模块和处理器的连接方式。解析采集头的接口标准,使处理器通过DMA方式直接读取一帧的指纹图像信息,快速方便,解决了采集头传感器接口和ARM处理器的连接和采集时序问题。(2)刷卡模块的卡号数据解析,使之通过串口与处理器进行通信。(3)记录的存储。通过规划存储器的存储方式,将系统程序和每次身份认证的结果存储记录,方便数据的统计管理。(4)指纹识别算法的移植。将基于特征点的指纹识别算法移植入系统,配合设备提供的其他功能,实现单机的指纹注册和匹配。(5)通过模拟USB接口实现数据的上传管理,方便用户使用。为了便于阅读和理解本文,下面介绍一下文章各个章节的内容安捧。第一章概述介绍了项目的研究背景,回顾了指纹识别系统和嵌入式系统的发展概况,并介绍了本文所作的主要工作和文章的结构安捧。第二章介绍了指纹识别系统的总体方案设计。首先介绍了设备的主要功能,围绕着这些功能给出了具体的设计思想,然后制定了各个模块的选择方案和主要设计指标。第三章是指纹识别模块的硬件设计。包括总体的硬件设计框架和各单元模块的设计与实现方式。根据功能本文的硬件模块涉及CPU、指纹采集、刷卡采集、电源管理、存储、USB接口、语音和加密等几大模块。分别对其原理和硬件的实现过程进行了阐述。并详细介绍了系统中CPU单元所用到的各模块的功能和使用方法,以方便对后续的软硬件设计过程的理解。第四章介绍了指纹识别模块的软件设计。包括总体软件设计框架和各功能模块的软件实现过程,主要包括指纹模块、刷卡采集模块和数据存储的具体实现方法。并简要介绍了基于特征点的指纹识别算法的移植和数据上传方式。第五章介绍了指纹识别系统的调试环境,软硬件的调试过程和最终的结果。第六章为结论和技术展望。包括对全文的总结,并对指纹识别的发展趋势做出了分析,为以后的设计提供了一个参考方向.62指纹识别系统的总体设计总体设计应该是全面考虑系统的功能和目标,进行硬件的初步选型,然后确定一个系统的草案,同时考虑软硬件实现的可行性。作为指纹识别系统的手持设备终端,其一要能提供使指纹识别算法得到最好发挥的硬件平台,其二要具备强大且优良的性能,其三要方便数据的上传管理,其四,作为手持设备要尽量降低功耗和成本,这样才更具有核心竞争力和市场潜力。本文紧紧围绕这些设计思想,硬件和软件设计也都是以上述目标为前提展开,下面介绍下面分别给出产品的主要功能和技术指标以及项目的设计和方案选取。2.1主要功能(1)指纹采集指纹采集是本产品的主要功能,通过控制采集头内置的光学传感器采集指纹的一幅图像至内存,并与存储器内存储的指纹库进行比对,如果匹配成功则通过认证,再与卡号的比对结果和数据采集的时问一起存入存储器,以保存每次查勤记录。并可通过12c接口设置传感器,以对采集图像的大小等功能进行调节.(2)刷卡采集本产品的身份认证系统包括指纹识别和RFID(RadioFrequencyIdentification)射频识别两种,通过RF接收模块采集RF卡内唯一的卡号数据,配合指纹识别一起构建完整的身份认证信息。RF接收模块通过串口方式与CPU进行通信。(3)实时时钟用于记录每次刷卡和指纹认证的时间,并连同认证结果一起存储,以方便数据的统计管理。通过预置的纽扣电池和CPU提供的实时时钟模块进行时问管理,实际使用时可以通过按键操作灵活设置调节时间。(4)记录存储记录的存储主要用于保存每次身份认证的比对结果,以方便对记录的管理和上传。系统选定16Mb的FLASH存储空间,用于存储用户程序和身份认证记录。(5)语音提示用于提示用户每一步的操作,提供友好的用户界面,方便使用。(6)USB充电系统配备的1150mAh的锂电池可通过连接USB接口进行充电。(7)加密提供硬件加密方式,对程序流程进行加密,保护数据。(8)数据上传本产品提供模拟USB接口,以串口速率上传数据,并通过相应软件分析处理,对认证记录进行统计考核。可热插拔的USB接口方便了用户的使用。2.2器件的选择系统方案的选择直接决定了系统的性能。本文根据项目的实际要求,在参考了各种方案资料和开发扳的前提下,进行了硬件平台的方案设计,这其中主要包括:处理器的选择,存储器的选择,指纹采集头的选择,RF接收模块的选择,电源模块的选择,接口的选择和其它辅助模块的选择。重要思想是能够保证算法的性能,能够用于手持终端的特点(包括体积功耗成本等方面),能够提供友好的用户界面。在介绍方案的选取之前首先简单介绍一下有关低功耗设计的方法。通常系统的耗电状态如图2.1所示【25】:图2-1系统耗电状态Fi92.一ISystemPowerState如图2.1所示,整个系统的平均耗电可表示为:,,=(矗+乃+历+(ra—Ts))/Ta这里Ib代表待机状态时系统消耗的电流,即各功能模块均不工作时保持系统最低运转所需的电流。Is代表所有模块均工作时系统运转时所消耗的电流,Ts为系统持续运转时间,Ta为待机状态保持的时间。由公式(1)可以看出要减小系统的功耗可以采取降低Is,Ts、Tb、Ts和增大Ta的方式实现,具体措施如下:(1)选用低功耗元器件,使其在工作状态下具体较小的电流消耗以减小Is,g并且在体眠模式下具有较小的静态电流以减小Ib。(2)软件设计上应在保持系统功能的前提下尽量降低各模块的工作时间,以减小Ts,并且在使用某一功能时尽量关掉不需要工作的其它模块,使其处于休眠状态,以增大Ta。指纹识别模块在方案选择上主要分为两点,一是处理器根据上述系统的总体设计思想和目标,下面介绍一下各模块的选取。2.2.1处理器的选择嵌入式的处理器是嵌入式系统的核心,据不完全统计,目前全世界嵌入式处理器的品种已达1000多种,流行的体系结构多达30多种1111。世界各大半导体制造商都在生产自己的嵌入式处理器,总体看来当前的处理器种类不外乎以下几类【12】:(1)MCU(MicroControllerUnit)微控制器(2)MPU(MicroProcessorUnit)微处理器(3)DSP(Di西talSignalProcessor)数字信号处理器(4)SOC(SystemOnChip)嵌入式片上系统Mcu即通常所说的单片机,通常为8位电子器件,功能较少,外设资源一般比较丰富,通常用于工业控制领域,典型的代表像8051,PIC,AVR系列等。MPU相对功能强大,相当于一个小型的CPU,其特征是具有32位以上的处理器,和普通的PC机相比,具有体积小、重量轻、成本低、可靠性高等特点。目前包括)(scal.PowcrPC,Mips,ARM(AdvancedRiscMachine)等多种体系结构。DSP处理器由于其在系统结构和指令算法方面的特殊设计,具有很高的编译效率和指令的执行速度。和FPGA(FieldProgrammbleGateArray)现场可编程门阵列器件一样,其应用具有较大的灵活性,这两款器件由于其不同的侧重性,通常用于协处理器领域。SOC是指在一个硅片上整合实现一个复杂的系统,用户只需定义出其整个应用系统,仿真通过后就可以将设计图交给半导体工厂制作样品。这样除个别无法集成的器件以外,整个嵌入式系统大部分均可集成到一块或几块芯片中去,应用系统电路板将交得很简洁,对于减小体积和功耗、提高可靠性非常有利【1”。在MPu处理器中,ARM架构是基于32位单片机的行业标准,是面向低预算市场设计的第一款RISC微处理器,目前在手持设备中应用最为广泛,占有约90%以上的市场份额。下面介绍一下ARM系列的处理器。ARM(AdvancedRiscMachine)其实是一家公司的名称。1991年ARM公司成立于英国剑桥,主要从事芯片设计技术。AItM公司本身并不直接从事芯片生产,9主要作为知识产权供应商,转让设计技术,提供高性能的处理器内核。世界各大半导体厂商从ARM公司购买处理器的内核,然后根据应用领域的不同加上相应的外设电路,然后制作自己特色的ARM处理器出售116J。ARM是基于RISC(ReducedInstructionSetComputer)体系结构的处理器,指令的执行效率比传统的CISC(ComplexInstructionSetComputer)架构要高得多。ARM体系结构支持ARM和Thumb两种指令集,ARM指令为32位长度,Thumb指令为16位。高效的指令集和简单设计的结合,使得ARM称为一种低功耗、小规模、低价位的相对高性能的处理器。ARM芯片还或获得了许多实时操作系统供应商的支持,包括WinCE,LINUX,VxWorks,uCOSII等。目前ARM微处理器包括以下几个系列:ARM7系列,ARM9系列,ARM9E系列,ARMl0E系列,Xscale系列和StrongARM系列等。其中ARM7系列微处理器能够提供0.9MIPS/MHz的三级流水线结构,代码密度高,并具有集成的开发环境,调试开发方便,非常适合于对价位和功耗要求较高的消费类电子产品的应用。ARM7处理器的内核包括一下几种:ARM7TDMI、ARM7TDMI.S、ARM720T和ARM7EJIl”。在指纹识别领域,常用处理器方案主要包括以下几种:MCU方案、DSP方案、FPGA方案、ARM方案、ARM+DsP方案。而ARM方案里又包括ARM7,ARM9等几种。MCU方案通常性能较低,对指纹识别算法的处理速度要求较高:对于DSP和FPGA方案,由于其专用性。在计算能力上具有很大优势,但缺乏常用的模块接口和外围设备的扩展能力,仅适用于图像处理方面。而ARM方案具有较高的集成度,不但可以进行图像处理预算,在控制以及外围模块扩展能力上都具有很大的优势。ARM方案里,ARM9的性能更加强大,主频更高,但是价格往往差强人意,比ARM7方案要贵出很多,这对于低成本的指纹识别应用方案来说是个很大的限制。ARM+DSP方案存在着和ARM9方案同样的成本问题。从产品的开发角度来看,ARM+DSP方案可以作为以后产品升级的一个方向。综合考虑设备的成本、功耗和性能要求,本文最终选取了Samsung公司的¥3C44BOX芯片。S3C44BOX采用了ARM7TDMI内核,025urn工艺的CMOS标准宏单元和存储编译器,并集成了当前广泛应用的各种模块接口,其低功耗、精简指令和出色的全静态设计为手持设备和一般类型的应用提供了高性价比和高性能的解决方案。下面是¥3C44BOX的功能简介1191:≯2.5VARM7TDMICPU核电压,8KBcache,16/32bitR璐C结构>主频66MHz>外部存储控制器>LCD控制器≯2通道DMA控制器>2通道UART控制器>1通道多主i2c总线控制器>1通道12S总线控制器≯5通道PWM时钟,1通道外部时钟>看门狗时钟>71个通用FO口,8通道外部中断>电源控制模式:正常,低速,理想,停止模式>8通道10bitADC>RTC实时时钟带日历功能>片上PLL时钟发生器2.2.2存储器的选择存储器分为ROM(ReadOnlyMemory)和RAM(RandomAccessMemory)两种。ROM具有掉电后信息不丢失的特点,而RAM掉电信息丢失,但是它的随机读写速度非常快,写入数据之前也不需要进行擦除,这些特点使其成为嵌入式系统中必不可少的存储设备之一。嵌入式系统中通常将程序运行的数据区和堆栈区放在RAM中,以供快速的读写【“J。RAM又分为SRAM(StaticRAM)静态RAM和DRAM(DynamicRAM)动态RAM两种,SRAM的访问速度非常快,但它的基本存储电路是由6个MOS管组成l位,集成度低,功耗大。DRAM存储一位信息只需要一个晶体管,但是需要周期性的刷新充电以保持信息不消失。DRAM的存取速度没有SRAM快,但是更容易做出大容量的RAM,因此一般的嵌入式系统中,主存储器都是采用DRAM,而缓存多采用SRAM。DRAM里还有一类叫SDRAM(同步动态RAM)器件,它的存储位与DRAM相同,区别是采用多Bank结构,使得在一个Bank进行预充电期间,另一个Bank可以马上被读取,这样大大提高了存取访问的速度【12】。ROM的种类也很多,通常包括PROM、EPROM、EEROM等,这里不再重点介绍,而着重介绍一下EEROM的延伸产品,闪速存储器。闪速存储器(FlashMemory)具有非易失性,可轻易擦写,FLASH既具有ROM器件的特点,又有很高的读取速度。因此得到了越来越广泛的应用。FLASH器件通常又分为NorFlash和NandFlash两种,NorFlash通常容量较小,写入速度慢,但因其随机读取速度快,因此在嵌入式系统中,通常应用于存储程序代码。NandFlash能提供高的单元密度,可以达到很大的存储容量,写入和擦除的速度也很快,但其随机读取的速度不及NorFlash。由于指纹图像匹配过程需要快速读取jE毫窑塑盔堂亟±生焦i金塞指筮识剔丕统曲盛佳丝盐指纹库,并且S3C44BOX没有内部ROM,因此这里我们考虑选用NorFlash来作为系统程序和数据的存储。因此综合考虑设备的成本、处理速度和存储容量,本文最终选取了现代的64Mb大小的SDRAM,型号为HY57V641620HG,内存容量完全可以满足设计要求。由于指纹图像存储在FLASH中,在指纹比对的时候需要读出图像信息,处理的数据量较大,因此宜选用读取速度较快的NorFlash。这里选用了SST公司的16Mb大小的NorFlash,型号为SST39VFl601。SST39VFl601的性能特点如下【2l】:>存储空间16Mb>读写操作采用单一电源:2.7.3.6V>可靠性高,可擦写100000次,数据可保存100年》低功耗:动态电流:15mA,静态电流4uA,自动低功耗模式4uA>快速擦除.扇区/VA/整片擦除方式,统一2K’16b扇区大小扇区擦除时间:18ms(典型值)块区擦除时间:18ms(典型值)片区擦除时间:70ms(典型值)字区擦除时间:14us(典型值)片重写时间:15s(典型值)≯以字为单位的编程》快速读操作时间:90ns>48脚TSOP封装(12*20ram)2.2.3指纹采集头的选择为了获得指纹的数字图像信息,将指纹采集下来输入计算机进行处理是指纹识别的第一步。指纹采集的过程本质上是指纹成像的过程。其原理是根据指纹谷和脊的几何特性、物理特征和生物特性的不同,以得到不同的反馈信号,根据反馈信号的量值来绘成指纹图像。指纹的几何特性是指在空问上脊是突起的,谷是凹下的。脊与脊相交、相连、分开会表现为一些几何图案;指纹的生物特性是指脊和谷的导电性不同,与空气之间形成的介电常数不同、温度不同等;指纹的物理特性是指脊和谷着力在水平面上时,对接触面形成的压力不同、对波的阻抗不同等12】【3】。指纹采集的方法有两种,一种是由指纹采集器件主动向手指发出探测信号,然后分析反馈信号,以形成指纹脊与谷的图案。如光学采集和射频(RF)采集属于主动式采集。另一种是指纹采集器件是被动感应的方式。当手指放置到指纹采集设备上时,因为指纹脊和谷的物理特性或生物特性的不同,会形成不同的感应信号,然后分析感应信号的量值来形成指纹图案。如热敏采集、半导体电容采集和半导体压感采集属于第二种【2l。对指纹采集设备来讲,一般经过“感知手指”、“图像拍照~质量判断与自动调整”三个主要过程。考虑到设备功耗,在无手指接触时,采集设备处在休眠状态。当手指接触到采集设备时,采集器会迅速感知到手指的接触并切换到工作状态。“图像拍照”是采集过程的关键步骤。指纹采集器件以每秒几十帧甚至几百帧的速度来产生指纹图像。对于主动式采集的器件。会通过器件内部的控制电路发出探测信号,如光、RF、超声波,然后根据脊与谷对探测信号的反馈值的大小,来形成指纹图像[2113J。了解了指纹采集的原理后可以看出指纹采集头的选择主要是传感器芯片的选择。随着半导体技术的发展,指纹传感器的种类也随之增多,依据原理的不同,主要分为:光学传感器、晶体传感器超声波传感器等。其中晶体传感器又包括电容式传感器、温度传感器、压力传感器等。下面详细介绍一下这些传感器的原理和特点12】【3]171[8】19J。(1)光学传感器光学采集的历史悠久,可以追溯到20世纪70年代,是最古老也是应用最为广泛的指纹采集设备。光学采集是利用了光的全反射原理,即当光线照射到和指纹接触的玻璃表面时,在指纹的浅色谷的地方发生全反射,而深色脊的地方光线被吸收或者发生漫反射,反射光的量依赖于压在玻璃表面的指纹谷和脊的深度和皮肤与玻璃间的油脂和水分,传感器通过接收反射过来的光线获得图像信息,然后将谷脊构成的指纹图像转化成数字信息。光学传感器对温度的交化不敏感,成本相对较低,并镌提供分辨率为500dpi的图像。主要的不足之处在于由于手指要通过压在玻璃表面形成反射光来获取图像,因此玻璃表面容易残留指印,造成图像获取的质量不高。另外在体积方面也存在过大的问题。随着光学技术的不断发展,光学采集模块的尺寸也在不断减小,现在的传感器尺寸可以6*3*6英寸甚至更小。(2)晶体传感器晶体传感器是从90年代开始在市场上出现的,包括电容式传感器、压力传感器、温度传感器等多种类别。电容式传感器是通过电容感应电压来捕捉指纹的。电容传感器是在单个晶片上集成了lO多个电容传感器,外面是绝缘的表面,传感器为电容的阳极,手指放在上面时即组成了电容阵列的另一极,电容器的电容值由于指纹脊和谷楣对于另一极距离的不同面不同,通过测量空间中不同的电容值即可得到完整的指纹图像,然后传感器再将采集来的指纹图像转化为灰度数字图像;压力传感器其表面的项层是具有弹性的压感介质材料,用来将指纹的的外表地形的凹凸转化为相应的电子信号t温度传感器是通过感应压在传感器设备上的指纹脊和谷的温度不同来获取指纹图像的。晶体传感器大多体积小巧,可以集成到许多现有设备中,并且生成的图像质量较好。但是也有一些缺点,首先稳定性还有待提高,另外相比与光学传感器价格昂贵,还容易受到静电的影响,使得传感器有时会无法采集图像甚至损坏。(3)超声波传感器超声波传感器是利用超声波扫描指纹表面,接收设备获取其反射信号,测量它的范围,然后通过手指、台板和空气间的电阻来测量距离,根据指纹脊和谷的不同来重构指纹图像。超声波扫描是实际指纹谷脊地形的真实反应,图像质量很好,精度相对较高,和光学传感器相比,积累在皮肤表面的赃物和油脂对其获取图像的影响不大,因此超声波扫描被认为指纹采集非常理想的方式。但是超声波扫描设备的耐用性很差,而且耗电量很高,价格非常昂贵,这也影响了它的普及。不同指纹传感器的性能比较如表2-l所示:表2-1指纹传感器比较类型体积成像能力光学传感器大干手指差,汗多、脏手指成像模糊晶体传感器小干手指好,汗多、脏手指成像失真易受静电影响高较少超声波传感器中非常好活体鉴别一般很高较多耐用性成本耗电非常耐用低较多从表2.1可以看出,超声波传感器虽然在成像能力上有很大的优势,但是价格十分昂贵,而且耗电量很多,在对功耗和成本有很高要求的设备中并不适用。而晶体传感器虽然体积较小,成本相对也较低,但考虑到我们的指纹识别方案是应用于部队的巡更查勤系统,因此在户外操作的情况比较多,环境通常比较恶劣,这对于稳定性不高,并且易受到静电等因素影响的晶体传感器来讲并不适用。综上所述,考虑到我们设备对成本、功耗以及稳定性等多方面的影响,我们选用了长春方圆公司的指纹采集模块。内置了OV7620指纹传感器,利用光学原理采集指纹图像。这款传感器的性能特点如下【20】:>标准CMOS工艺,30万像素VGA/QVGA格式4》4.86*3,64mm,I/3英寸成像区域,7.6*7.6um像素大小>10Bit两通道内部A/D转换器,8/10Bit输出》可编程帧率:0.5.30fvs≯5V电压供给≯<120mW功耗》48管脚CLCC封装2.2ARF卡模块的选择Identification)射频识别技术是90年代开始兴起的一RFID(RadioFrequency项自动识别技术,它是利用无线射频方式进行非接触式双向通信,以达到识别目的并交换数据。一个RFID系统通常由RF(射频)卡和阅读器组成,与传统的磁卡、IC卡等接触式识别技术不同,RFID系统的RF卡和阅读器之间无需物理接触就可以完成识别【4l。RF卡主要由IC芯片和环形天线组成,天线被封装在标准模式的射频卡中。阅读器通过发射天线发出一组固定频率的电磁波,当RF卡进入发射天线工作区域时,RF卡内的LC串联谐振电路(其频率与读写设备相同)在电磁波的激励下发生共振,产生感应电流,产生一个瞬间能量供给芯片工作。RF卡将自身的编码等信息通过卡内置发送天线发送出去;接收天线接收到从RF卡发送来的载波信号,经天线调节器传送到阅读器,阅读器对接收的信号进行解调和解码然后送到后台主系统进行相关处理【4】I…。目前,可供RF卡使用的几种射频技术标准有Is010536、IS014443、ISOl5693和ISOi8000。应用最多的是IS014443和Isol5693,这两个标准都由物理特性、射频功率和信号接口、初始化和反碰撞以及传输协议四部分组成。RF卡主要有以下几种分类【4J【lo】:(1)按供电方式分为有源卡和无源卡有源是指卡内有电池提供电源,其作用距离较远,但寿命有限、体积较大、成本高,且不适合在恶劣环境下工作:无源卡内无电池,它利用波束供电技术将接收到的射频能量转化为直流电源为卡内电路供电,其作用距离相对有源卡短,但寿命长且对工作环境要求不高。(2)按载波频率分为低频RF卡、中频RF卡和高频RF卡低频RF卡主要有125kHz和134.2kHZ两种,中频RF卡频率主要为13.56MHZ,高频RF卡主要为433Ml-lz、915MHz、2.45GHz、5.8GHz等。低频系统主要用于短距离、低成本的应用中,如多数的门禁控制、校园卡、动物监管、货物跟踪等。中频系统用于门禁控制和需传送大量数据的应用系统;高频系统应用于需要较长的读写距离和高读写速度的场合,其天线波束方向较窄且价格较高,在火车监控、高速公路收费等系统中应用。(3)按作用距离可分为密耦合卡、近耦合卡、疏耦合卡和远距离卡密耦合卡:作用距离小于lena;近耦合卡:作用距离小于15cm;疏耦合卡:作用距离约lm:远距离卡:作用距离从Im到10m,甚至更远。RFID系统的读写距离是一个很关键的参数。目前,长距离射频识别系统的价格还很贵,因此寻找提高其读写距离的方法很重要。影响RF卡读写距离的因素包括天线工作频率、阅读器的RF输出功率、阅读器的接收灵敏度、RF卡的功耗、天线及谐振电路的Q值、天线方向、阅读器和RF卡的耦合度,以及RF卡本身获得的能量及发送信息的能量等。本文选用阅读器,即RF接收模块,是北京远兴时代科技有限公司的MTI'.125K4模块,这是一款低功耗的近距离阅读器,其功能特点如下:≯尺寸:26.5"16.5*6.9ram>电源:5V,44mA>工作频率:125KHz≯卡片格式:EM4001/4102或兼容卡>感应距离:最大30cm>感应速度:约0.3s》输出格式:wiegand26位爪S232TrL(ASCII)2.2.5电源管理模块的选择电源是电子产品中一个重要的组成部分,近年来,各种便携式电子产品发展迅猛,特别是手持式计算机、数码相机、移动通信等相关产品的发展更为神速,如何使稳压电源的性能既能满足电路的要求,又具备耗电省、安全性好、占用空间小、重量轻等特点是设计便携式电子产品中一个重要任务。这就涉及到电源管理的问题,合理的电源管理对于依赖电池电源的移动式设备至关重要。电源管理(PowerManagement)是指如何将电源有效的分配给系统的不同组件。通过降低组件闲置时的能耗,优秀的电源管理系统能够将电池寿命延长两到倍。根据不同的工作原理电源Ic大致可以分成三类:线性稳压电源、开关稳压电源及电荷泵电源。它们都有各自的特点及适用范围,这里做一下简单介纠…。(1)LDO线性稳压电源线性稳压电源是因其内部调整管工作在线性范围而得名。LDO稳压器可适用16于降压变换,具体效率与输入电压和输出电压之间的电压差有关。LDO根据负载电阻的变化情况来调节自身的内电阻,从而保证稳定输出端的电压不变。LDO线性稳压电源外围元件最少、输出噪声最小、静态电流最小,价格也便宜,但是其发热也随着输入输出电压差的增大而增大。(2)开关稳压电源在便携式电子产品中,开关稳压电源主要指DC/DC变换器。由于器件中有一个工作在开关状态的晶体管故称为开关电源。开关电源功耗小并且与输入电压大小无关,效率较高(一般可达80~95%)。DC/DC变换器Ic可以组成升压式(Vout>V'm)、降压式(Vout<V'm)。大多数便携式电子产品的工作电流在300mA以下,所以很少用到降压式DC/I)C变换器。(3)电荷泵电源电荷泵也成为开关电容式电压变换器。是一种利用“快速”电容来储能的电压变换器。它能使电压升高或者降低,并且可以获得负电压。这一特点使得其在便携式产品中需要负电压的场合得到了广泛的应用。本文需要供电的种类非常繁多,根据所选用元器件的特点,系统总共需要5V,3.3V,2.8V等多种电压模式,因此选择合适的电源管理芯片尤为重要。本文的电源管理模块主要分为三个部分:DC/DC模块,LDO模块,充电模块。系统供电电源选用了1150mAh的可充电锂电池。工作时间可达3小时。DC/DC模块功能是将锂电池转换为系统其他模块所需要的5V电压供给,LDO模块用于电压转换,可将5V转换为系统其他模块需要的3.3V和2.8v的稳定电源供给,另外由于本设备属于手持机系统,配备了可充电的锂电池,因此还要提供充电模块。DC/DC升压模块采用的是低功耗的LTi308A芯片,它是一款工作于1v至10V输入电压范围的微功率、固定频率升压型DC/DC变换器。可将锂电池电压转换成较高的稳定的直流电压供给,最大转换电压可至34V,并具有电压检测、固定频率600KHz、luA的关断模式低静态电流。LTl308A能够在轻负载的情况下自动转换至节能的突发方式操作状态,且在无负载条件下的消耗电流仅140pA。LDO模块采用了AMSlll7芯片,1117系列是一款低压差电压调节器,可提供1.8V、2.5V、2.8、3.3V、5V的可调电压的型号。其压差在1.2v输出,负载电流为800mA/1.2V,并提供电流限制和热保护功能,并具有多种小尺寸封装形式。充电模块选用了可供线性锂电池充电,大小为3*3ramTDFN封装的MAXl508芯片,采用USB接口直接进行充电。2.3硬件总体框图”根据前面所描述的功能和设计要求,本系统主要由CPU和八个外围模块组成,总体的结构框图如图2.3所示:图2-2硬件设计总体框图Fi92-2HardwareDesignBlockDiagramCPU选用的是ARM7内核的S3C44BOX处理器;SDRAM选用了64Mb的HY57V641620HG芯片;FLASH选用了16Mb大小的SST39VFl601芯片;CMOSsensor接口为CPU和光学指纹采集头的接口,为16管脚的专用接口:RFcard即CPU和RF卡接收模块接口,通过串口方式采集卡号信息:语音模块为设备的操作提供相应的语音提示信息;加密模块用于对设备和程序信息进行加密。USB接口用于调试和与上位机的通信接口:电源管理模块为CPU和其他外围模块提供相应的供电电源。具体模块的设计和操作方法在接下来的第3章会有详细介绍。jL塞銮亟态堂醒±堂焦j幺塞丕绽缝{生丝让3系统硬件设计根据图2-3所示系统的结构框图,本系统主要由CPU模块、指纹采集接口模块、RF卡接收模块、电源管理模块、存储模块、USB接口模块、语音模块、加密模块这8个部分组成。下面详细介绍一下各个模块的功能和设计方法。3.1CPU模块CPU是整个系统的核心,信号的采集、处理,外设的控制以及信息交互都是由它来完成的。处理器我们选用了Sanmmg公司的基于ARMTTDMI内核S3C44BOX芯片,LQFPl60封装。在2.2.1章节中我们简单介绍了其特点,为了方便理解其它相关模块的硬件和软件实现方法,下面详细介绍一下S3C44BOX的主要功能单元。3.1.1内存控制单元S3CA4BOX并没有内置的随机存储器,但是它提供了强大的外接内存控制单元,可以方便用户根据需要进行存储器的扩展。S3C44BOX采用大/4,端(bigendian/littleendian)格式存储数据,并支持外部管脚对其进行选择。其中大端格式是指字数据的高位存储在低地址,低位存储于高地址中;而小端模式刚好相反,是指字数据的低位存储于低地址,而高位存储于高地址中的存储方式。S3C44BOX内部的ARM7TDMI核将存储器空间视为一个从0开始的由字节组成的线性集合,并将整个内存空间分为几个不同的固定存储区域,图3.1所示为复位后整个地址空间的映射关系【l”。如图3.1所示,S3C44BOX总共具备256MB(32MB/Balll【,共8个bank)的地址空间,并且每个Bank均可实现8/l倒32bit可编程的总线宽度。当系统复位时,S3C4480X的访问地址是0X00000000。复位后S3C4480X必须进行系统变量的配置,因此这段特殊的代码即BooTRoM应当位于地址为0X00000000的地方,即Bank0区域。对应图上的地址空间为:0x00000000.0x01c00000。SRa忡DR¨彬;D洲fnC,CST)S≈。lWDR~崩盥X洲(n(℃S6)SROM猁1啪]晰白删1渊-J讪¨Z帅越惦25C喇1BSA[27:0]笔^B(n07.S5}SROMfnC43s4)SROM融esaableRegion(nC:,CS31SROM(nG(:S2)SROM箕粕3帅S*唰functionRegisters(4Mbytes)(ne__,-CS'0SROMlnC-CSO)28MB图3-1CPU地址映射空间Fi93-1S3C4480XMemoryMapafterRe{lct我们用nGCS0片选外接了16Mb的FLASH芯片,使其位于Bank0区,即从外接的FLASH作为程序的启动入口。刚才提到每个Bank均可实现8/16/32bit可编程的总线宽度,这是通过硬件管脚的连接设定的,即通过OM[I:0]弓I脚上的逻辑电平进行设定。具体关系如下表3.1所示:表3-1Bank0数据总线宽度设定表Table3-lBankODataBusWid山OMI(OperationModel)OO11OMO(OperationMod印)OlO1BootingROMData8-bit16_bit32.bitWidth1btMode由于我们选用的FLASH和SDRAM均具有16位的数据总线宽度,因此这里选择了16位模式。aP[OMl一OM0]的值设定为【0.1】。硬件上‘0’通过管脚连接下拉电阻来实现,‘l’通过连接上拉电阻实现。另外在Bankl区域,即地址空间为:0x02000000-0x04000000的区域上用nGCSI19片选外接了锁存器,用于存储从指纹模块传递过来的一帧图像信息,以供CPU以DMA方式直接读取图像信息,这在后续的指纹模块中会有详细的介绍。3.1.2时钟单元S3C44BOX内部的时钟发生器可以产生CPU核以及外围器件工作所需要的时钟信号。系统的主时钟源来自外部晶振,这里我们选用了10MHz的石英晶体振荡器,连接在CPU的EⅪrA功和XTAL0管脚,共由如图3-2所示的时钟发生单元来产生系统需要的稳定频率。最后PPU锁相环)输出频率范围为:22M_I-Iz-舶MI-Iz.。具体的对应关系为如下所示:F。。=“8+M—DIJO*Fh)/((2+P_DIV)*2£鲫)…(2)其中:F。为输出频率,即系统的主时钟MCLK,F。为输入时钟频率,这里为我们外接的晶振大小,即10MHz,MDW为vco(压控振荡器)的输出频率到PFD(相位频率检测器)的分频系数,PDIV为输入频率的分频系数,S_DIV为VCO输出频率的分频系数,即分频后为所得的F。。本系统为时钟控制的方便,将主频调整为60MH2。因此对应将PLLCON寄存器设置为:M—D∥=0X40000=262144,P—DIV=0)(20=32,S—DIV=0,F。=10MHz,求出,。=60MHz。图3-2时钟发生器的框图Fi93・2ClockGeneratorBlockDiagramS3C44BOX还具备了RTC(RealTimeClock)实时时钟单元,通过小容量的储备电池和单独的外部晶振来维持系统断电后的时间设定。RTC可通过指令将8位BCD码(BinaryCodedDecimal)数据送至CPU,即可显示年、月、日、星期、时、分、秒,具有日历功能。BCD码是一种二进制的数字编码格式,即用二进制编码的4个位代表一个十进制数,通常也称为8421码。与十进制的对应关系见表3.2所示:表3-2十进制数至BCD码转换Table3.2DecimalisttoBCDCodeI十进制BCD码O00Do1o0012ool03ooll4010050lOl6011078100091001011lO例如:十进制数123的BCD码按位展开为:000100100011。当我们需要设定时间时,只需输入一个十进制数,然后编程将其转换为BCD码存入年月日的相应寄存器即可。3.1.3DMA控制器DMA(DirectMemoryAccess)即直接存储器存取。它是一种快速传送数据的机制,即利用它进行数据传送时不需要CPU的干预。通常如果想从一个存储器M1传送数据到另一个存储器M2,其传送过程为:先将数据从M1传送到CPU内部寄存器,然后再从CPU的寄存器将数据传送到M2。这样当CPU需要处理的资源很多时即会造成读写速度的降低。而DMA方式则可以使锝数据直接从M1传送到M2,不需要中间媒介。具体的方法是:DMA直接操作总线上的控制信号,当要传送数据时,由DMA控制器发出信号给CPU,使其获得总线控制权,数据开始从源地址M1直接传送到目的地址M2,传送完毕后DMA控制器通知CPU.同时交还总线控制权。由于DMA方式不过分依赖CPU,因此大大节省了系统资源,提高了数据的读取速度。S3C44BOX内部具有4通道的DMA控制器,其中两个称为ZDMA(即通用DMA),它直接连接在系统总线上,用于从存储器到存储器以及从存储器到固定目标FO设备间的数据传输,如映射于存储空间中的设备或者存储器之间。另外两个称为BDMA(桥DMA),它是连接在系统总线和外围总线的接口层,用于从外设到存储器问的数据传输【l”。由于我们是要将锁存器中的指纹图像数据直接调入内存,而锁存器和SDRAM都是映射于存储空间中的,因此需采用ZDMA方式。ZDMA有四种请求/应答协议,分别为握手模式、单步模式、全局服务模式和请求模式。根据传感器传送时钟信号的特点(在下面指纹模块会详细讲述),这里我们使用握手模式。握手模式即一次请求传送一个DMA服务,即读和写操作,如下图3.3所示:2ljE丞至亟太茔瑟±堂焦诠塞歪统缝住遮让图3-3DMA握手协议Fi醪-3DMAHandshakeModeDiagram图3—3表示在一个DMA请求周期内,即nxDREQ【O】为低电平时传送一个DMA服务,即一个像素的读写操作。这里nX])REQ[O]曼jDMA请求源,硬件连接上将传感器的行同步信号和像素时钟经过与非后连接至nXDREQ[0],即将DMA的一个请求周期设定为传感器一个像素的传送周期,具体的做法在下面的指纹采集模块中会再有详细介绍。nXDACK[0]为请求确认信号。3.1.4I/O端口S3C44BOX提供多达71个复用的I/O端口。包括两个9-bit的输入输出端口(E和F):两个8-bit的输入输出端口(D和G),一个16-bit的输入输出端口(C),一个10-bit的输出端口(A),一个11.bit的输出端口(B)。这其中端口G同时可复用为8个外部中断口【191。我们的设备主要用到的I/O操作体现在语音模块部分,即用I/O端口的输出功能来控制语音片段的选择。这在后面的语音模块中会有所介绍。3.1.5UARTUART(UniversalAsynchronousReceiverandTransmitter)l/p通用异步收发器,一般是指控制计算机与串行设备的芯片,即可将计算机发送来的并行数据转换为串行数据流输出,也可将外部的串行转化为计算机可操作的字节,它按照标准波特率完成双向通信。通常UART由接收器RX和发送器TX组成,如图3—4所示。-另外UART还提供一些状态信息,比如接收器是否己满(有数据到达)或者发送器是否为空(有数据待发送)等【lsl。UARTRXTX图3_4UART功能框图Fi93-4UARTBlockDiagramS3C44BOX内部集成了2通道的UART,并可基于DMA或者中断两种方式进行操作,每个通道内部具有2个32字节的FIFO用于输入和输出。支持可编程的5/6/7/Sbit串行数据的传输。支持可编程的波特率,最高可达115.2Kbps,支持IrDAI.0红外数据传输规范。每个UART由波特率发生器、发送器、接收器和控制单元组成,其中波特率发生器以MCLK系统主时钟作为时钟源。发送器和接收器包含16字节的FIFO移位寄存器。发送时,数据首先写入FIFO,然后拷贝到发送移位寄存器,再从数据输出端口TxDn依次被移位输出;接收时,数据从数据接收端口RxDn移位输入到移位寄存器,然后再拷贝到FIFO中。每个UART的波特率发生器为传输提供了移位时钟,这个时钟由MCLK主时钟源的16分频和波特率除数寄存器UBRDIVn指定的16位除数决定,UBRDIVn的值参加下式:UBRDIVn=(round—off)(MCLK/16)一1其中round_off代表取整。我们的设备中两个UART均有用到,其中串口0用于串口调试和数据上传,串口1只用到了RXDl接收端,用于接收卡号数据。这在后序的章节中还会有讲到。实际我们将通信波特率设定为960叻ps。3.1.612C接口12C(Inter-IntegratedCircuit)总线是一种由Philips公司开发的两线式串行总线,用于连接微处理器及其外设设备。由于它支持任何一种IC制造工艺,且能够提升硬件的效率和简化电路设计,因此众多厂商都提供了12C兼容芯片。i2c总线由串韭塞窑适太堂亟±堂焦i金塞丕统照住退让行数据线SDA和串行时钟线SCL组成,用于总线上器件之问的信息传递。i2c可支持多主控方式,即两线上可连接多台12C器件进行通信【181,如图3.5所示:VCCVCCSCLSDA图3-512c总线框图Fi93-512CBusBlockDiagram每个连接到i2c的设备都有一个唯一的地址,12C器件发送数据到总线上则定义为主机(发送器),器件接收数据则定义为从机(接收器)。主机和从机均可以工作于接收和发送状态。总线必须有主机(通常为处理器)控制,产生SCL来控制总线的传输方向,并产生起始和停止条件。SDA线上的数据状态仅在SCL为低电平期间才能改变,SCL为高电平期间,SDA状态的改变被用来表示起始和停止条件,如图3-6所示:式][:::::啊:….:厂…]盯8tan湖CondNionCondition图3-612c操作起始和中止条件Fi93-612cStartandStopConditionS3C44BOX具备一个通道的iZc总线控制器,这使得它能够轻松地与其它支持i2c的功能芯片通信,从而增强了自身的接口和功能扩展能力。使用12C器件时只需设置相应的寄存器并编写12c通信程序即可,我们的设备在对指纹传感器和加密芯片的配置上都采用了12c通信方式,具体的实现过程在第4章中会有详细介绍。3.2指纹采集模块指纹采集是整个设备的核心功能,此部分的方案设计前面已经有所介绍,下面主要讲述模块的实现过程。市场上通用的光学采集头都是基于USB接口的独立的指纹采集模块,单独在PC机上使用时需安装驱动,并通过软件进行图像采集或者视频传输。而本产品希望通过ARM7芯片直接对采集头内置的传感器芯片进行控制,以方便对图像的调节和设置。本文的设计思路是:通过解析采集头的接口协议和对传感器时钟的控制,在信息采集时,将传感器所传的一帧图像预先存入锁存器,在需要提取数据时由CPU读取锁存器内的数据信息进行操作,这样方便了图像数据的采集和读取。指纹采集传感器采用OV7620芯片,并以DMA的数据传输方式实现与CPU的信息交互。而对图像的设置则是CPU通过12C接口直接对传感器芯片的寄存器进行控制,以调节图像尺寸等功能。其硬件电路的连接如图3.7所示:图3.7指纹采集接口信号定义图Fi93-7InterfaceDefinitionofFingerprintModule图中儿为采集头的接口,LCX373为数据锁存器。J1共有15个引脚,其中引脚8至引脚15为8根数据线接口,连接至锁存器LCX373的数据端,最终接到数据总线DATA[0。71上;引脚6、7分别为12C的数据线(SDA)和时钟线(SCL),对应连接到CPU的12C接口,用于对传感器寄存器进行初始化设置:引脚3到引脚5分别为传感器的时钟信号(PCLK)、行同步信号(HREF)和帧同步信号(VSYNC)。帧同步信号直接连接至CPU的通用I/O端口GPF3上,行同步信号和jE塞蛮垣太堂亟±堂僮论塞丞统缝住遨盐时钟信号通过与非门接至CPU的外部DMA请求输入端nXDREQI,这三个信号用于对图像采集时的时钟控制;nGCSl为锁存器LCX373的片选信号。下面介绍图像的采集过程。OV7620传感器各个时钟信号的时序如图3-8所示。其中VSYNC代表帧同步信号、HREF为行同步信号、PCLK为时钟信号。由时序图我们可以看出数据只有在时钟信号的上升沿,且行同步信号出现时才能有效输出,并维持至时钟信号的下降沿。T斌厂、热长—印…@@—一I——一-—一VtlidD“・——_’一图3-8指纹传感器OV760信号时序图Fi93-8OV7620Signalsequence结合图3.7和图3.8不难发现,当nXDREQl输出由高电平变得低电平时,传感器便有数据输出,并且数据能够维持至下一个同样的过程的到来。这正好符合S3C44BOX外部DMA请求的单步模式的要求。于是自然就可以采用DMA的方式来读取数据,由于DMA的方式不干预CPU,因此也大大提高了读取的速度。最终是通过片选锁存器来实现的一帧图像数据的读取。通过12C接1:3可以设置OV7620传感器内的寄存器,用于对图像时钟和大小的设置。实际设置图像大小为:320*240。设置好图像大小后会给DMA计数器赋值,当一帧信号开始后,检测到VSYNC的一个脉冲,数据在时钟PCLK信号的上升沿且HREF行同步信号出现时开始输出,此时DMA计数器开始递减计数,当计数器计数到0产生DMA中断,表示DMA传输结束,或者下一个VSYNC信号到来时均表示一帧信息的采集结束。此时可以读取DMA目的地址寄存器内的图像数据用于后续处理。3.3刷卡模块刷卡模块的设计采用MTP.125K4芯片,工作频率为125KHz,此芯片输出数据格式有标准RS232格式,TTL电平,13位ASCII输出和标准wiegand26位输出两种模式,数据输出模式的选择对应电路的连接不同。考虑到ARM7本身所具备的串口通信模块,且刷卡模块直接输出TrL电平,无需进行电平转换,因此本文选用标准RS232数据格式。串口通信的接收和发送具有相对独立性,因此只需将刷卡模块从天线解析下来的数据连入CPU的串口接收端,然后CPU再对接收来的数据进行解析,提取有用的卡号数据即可。具体实现电路如图3-9所示:图3-9刷卡模块电路连接图Hg3-9RFCardCkeuitDiagram如图3-9所示,其中D17为刷卡接收模块,Pl为读卡接收天线,实际选用了外径为35mm的圆形线圈,读卡距离可达30em。U29为蜂呜器,用于刷卡提示。模块的Pin4脚为接收数据指示,Pr05脚和Pm6脚分别为数据的同相输出和反相输出,实际使用一个管脚即可,这里我们选用同相端Pin5脚与CPU的串口1接收端RXDl相连,用于接收数据,然后根据需要再对接收的卡号信息进行处理。刷卡的原理前面2.2.4章节中已经有所介绍,这里不再重复。此模块要求固定的9600bps串口通信速率,刷卡时将RF卡对准在天线前方即可,当D17接收到卡片数据时,Pin4脚BEEP/LED输出高电平,Q16导通,LED灯闪烁一次,同时蜂鸣器响提示刷卡。3.4电源管理模块本系统所涉及到的电压总共有:电池(3.75V),5v(采集头,刷卡模块,语音模块),3.3V(其他模块)和2.5V(CPU核电压)三种,因此电源管理部分电路的设计思路如下:电源管理包括四个部分,一个是源供电电压,由电池(或者USB接口)提供,一个是由电池升压至系统所需要的稳定5V供给,此部分通过DC—DC升压芯片模块LTl308A实现。第三部分是通过LOO(线性电压调节器)电源芯片,由5V分别转出3。3V和2.5V稳定的供电电压供整个电路使用。第四部分涉及到电池的USB充电问题,此块采用MAXl508芯片实现。另外还包括了系统开关机的实现方式,由于涉及到USB和电池两种供电方式,因此电源管理部分还涉及到电池和USB接口的切换供电问题。这里我们重点讲解系统开关机和供电方式切换的实现方法,这部分电路如图3.10所示:图3.10开关机和供电方式切换电路图Fi93・10PowerSupplySwitchCircuitDiagram如图3.10所示,其中S9为总电源开关(触点式)。SHDN和POwERDET网络连接至CPU的GPIO口,用于程序控制。NAND网络连接DC.DC升压芯片的使能端(高电平使能,低电平关断),VBAT连接电池正极,USB5V网络连接USB接口正极,Qo和Q4为两个PMOS管。此部分电路功能为:开关S9按下,系统开机,当未插入USB接口时采用电池供电,而连接时,系统采用USB供电,当S9再次按下时系统断电关机。具体的实现过程为:开机时开关s9按下,TESTI点由高变低,致使Qo导通,Nm、rD网络为高,DC.DC升压芯片工作,系统开始供电。此时程序运转,CPU给SHDN管脚高电平信号,促使NPN三极管Q6导通,此时即使按键抬起TESTl点仍为低电平,维持Qo的导通,系统持续供电。关机时按键s9再次按下,POWERDET网络由CPU检测电平由高变低,这时再给予SHDN网络低电平,致使Q6截至,则按键抬起后无论是Qo还是Q4均截至,系统断电。电池和USB供电的切换体现在Qo和O.4的导通上,未插入USB时通过Qo的导通与否来控制NAND网络,当插上USB后,Q0截至,通过Qq的导通与否来控制NAND网络,此时系统即由电池供电切换为USB供电。3.5存储模块存储模块主要包括SDRAM和FLASH两部分。SDRAM选用64Mb的HY57V641620HG芯片,NorFlash选用16Mb大小的SST39VFl601芯片。SDRAM和FLASH与CPU的连接如下图3.11所示。S3C44BOXSST39VFl60lADDR<20:l’A<19:0>D^1A<15:舾DQ<IS:0>积蜘-10E概栅nWEnWE图3-11FLASH与CPU连接电路Fi93—1IFLASHandCPUInterfaceFlash的数据接口为DQ<15:o>,为16位数据宽度。这里注意到处理器的地址总线为ADDR<20:1>,而FLASH的地址总线为ADDR<19:0>。这是由于S3C44BOX是按照字节编址的,而FLASH是以16位半字为一个存储单元,因此,处理器的地址“左移”了一位,与FLASH地址线错开,采用ADDRl与A0相连。由前面介绍的CPU地址空间的映射关系,FLASH作为程序启动位置映射在处理器的Bank0区域,因此它的片选线与CPU的nGCS0相连。图3.12为CPU与SDRAM的电路连接图,可以看出S3C44BOX具有与SDRAM控制信号线一一对应的接口信号,因此S3CC4BOX扩展SDRAM存储器是十分方便的。¥3C4480XSDRAMADDRnlDAT^J5-0DQM<I:0>DQM<Im'ScLK瓤:●cEnSCSOd㈨ⅡSC^S图3.12SDKAM与CPU连接电路Fi93—12SDRAMandCPUInterfacejE基銮通太堂亟±堂焦论塞丕统哩住退让3.6USB接口模块USB接口采用CH341芯片,实现模拟串口到USB接口的转换。即在计算机端多出一个USB设备,但是在下位机端CH341芯片仍然使用串口通讯。这里需要说明的是模拟串口在逻辑功能方面的使用方法与普通计算机串口相同。区别在于CH341提供的是仿真串13,在首次安装CH341串口驱动时,CH341串口号由WINDOWS自动分配(通常从COM3开始分配),在WINDOWS2000/XP系统下,CH341串口号与当前所在USB端口有关,由首次安装时分配,WINDOWS记忆各USB端I=lCH341的串口号,也可以在串口属性中通过高级选项指定串口号。3.7语音模块语音芯片选用AP8921A。此芯片内置512Kb的EEPROM,可以存放12组共21S语音片段,完全可以满足本设备语音提示功能的需要。实际使用时需要我们录制WAV格式的语音片段,烧录进芯片内部.然后通过处理器控制来片选相应的语音段落。AP8921A芯片内部分为两种触发方式:按键触发和CPU触发.我们选用CPU触发模式,将语音数据控制管脚s1-S4,和SBT连接至CPU的GPIO口,用于控制不同段落的语音。AP8921A芯片的语音数据的传送波形如图3.13所示:一≮至[>-≮至!卜_<丰叵)—≮亟3卜n广]广]n::::一匕堑巫]筮受坦巫豳巫:::图3-13语音芯片CPU并行触发模式波形围Fi93-13AP8921ACPUParallelTriggerMode这里,s1…s4代表不同组语音数据存放的地址,SBT为触发管脚,COUT为语音信号输出管脚,可以连接扬声器。由图3.14可以看出,当SBT信号为高电平时,由CPU设置s1…s4的不同值来控制输出哪组语音数据,并维持语音片段传送完毕。sl…s4对12组语音数据的对应关系相见下表3.10所示。机阶段分别制作了六段语音文件用于测试,分别为:‘请输入指纹’,‘请刷卡’,‘成功’,‘重来’,‘返回’,‘错误’,其它组信息为空。表3.3语音片段与地址对应关系表语音片段组GROUPGROUPGROUPSl10O01OS2OlO011S3OO10O1S4O001O01:‘请输入指纹’2:‘请刷卡’3:‘成功’GROUP4:‘重来’GRoUP5:‘错误7GROUP6:‘返回’3.8加密模块本文加密模块采用美信的DS2460芯片,即硬件加密方式。DS2460是带EEPROM的SHA.1(安全散列算法)协处理器。它内部包括SHA引擎,用于执行芯片内部的SHA-1算法。24Byte的用户EEPROM可以存储3个主机密钥。112字节的用户EEPROM,可以存储终端设备的特征数据。12C接121,用于与处理器进行信息交互。它的加密机制如图3.14所示:图3.14DS2460随机质询.响应机制Fi93—14DS2460EncryptionFlowchart如图3.14所示,首先,系统公共密钥和DS2460内每颗芯片固定的64位的ROMID一起经由SHA.1算法生成器件的唯一密钥,这一密钥要事先烧写入jE赢銮逗去堂亟±堂焦监塞丕统缝住毽让DS2460内部的用户EEPROM内保存。在进行认证时,首先程序产生一组47Byte的随机数,这组随机数有两部分作用:第一,送入DS2462芯片内部,在芯片内与预先烧写的密钥一起经SHA-1引擎计算出一组20字节的匹配信息MAC[20]回传给处理器用于比较。第二,在处理器内部由随机数和己知的密钥一起经过SHA一1算法也生成一组MAC值。从DS2460内传送回来的MAC值如果和CPU内计算生成的MAC值一致,则认证通过,否则视为非法数据。4系统软件设计上一章介绍了各个模块的工作原理,本章将介绍系统软件设计。整个软件包括了各模块的软件实现流程和算法的移植两部分。软件设计中一个重要的思想就是采用模块化设计,把一个大的任务分解成若干个小任务,分别编制实现这些小任务的子程序,然后将子程序按照总体要求组装起来,就可以实现这个大任务了。这种思路对于可重复使用的子程序显得尤为优越,因为不仅程序结构清晰,而且节约程序存储空间。4.1总体框架系统的整体流程图如下图4_1所示:厅、、、。—————..../◇母.卣一◇恒固是崮图4_1主程序流程图Fi94-1MainFlowchart指纹识别模块的主要操作过程为:首先系统开机,程序初始化,进入低功耗等待状态。身份认证时系统设计分为两种模式:注册模式和登录模式。注册模式是人员的登记注册。在系统数据库中添加新的卡号和人员的指纹数据。卡号对应于人员的编号,指纹数据根据算法要求,一枚注册的指纹总共需要采集三次,每次均提取它们的特征点信息,并通过特征合成的方法得到一个合成的模板,将此模板作为新用户的特征信息存入数据库内。注册结束后仍返回低功耗等待状态。登录模式是人员的身份认证过程,首先仍是RF卡号的采集,卡号校验成功后进入指纹采集过程,用户采集一次指纹并提取该指纹的特征点信息,然后与FLASH所存储的数据库中的指纹信息进行逐一比对,此时允许用户最多比对三次,三次后无论成功与否都将本次的比对结果存储记录。4.2各模块流程4.2.1指纹采集程序在3.3章节已经讲述了指纹采集的原理,这里重点讲解一下程序的实现过程。图4-2所示为采集的流程图。广神\、——————/ni习1.........................J区量丑、《系多当(直∈≥兰!)图4-2指纹采集流程图Fi94-2FingerprintAcquisitionFlowchart程序开始进入指纹采集状态,然后系统初始化,初始化包括两个部分,即传感器初始化和DMA初始化。OV7620传感器的初始化是由CPU通过12c接口进行配置的,设置需要采集的图像大小和时钟参数。这里OV7620为i2c从设备,因此需要指定其读写的地址,这是通过对其CS<2:0>管脚进行设置的,由芯片资料查得CS<2:0>管脚的不同连接对应的读写地址如下表4.1所示:表4-1OV7620从设备12c读写地址Tabl04-IOV7620i2cSlaveAddressDCS<2:o>00000101001lloolOl1lO11l42464a4e52565a5e43474b4f53575b5f这里均为16进制形式,实际测量CS<2:0>的管脚均为低电平,即CS<2:胗为000,对应写地址为0x42;读地址为:0X43。实际我们配置的图像大小为320*280,这是通过写OV7620的寄存器0X17-0XIA来实现的。寄存器0X17为水平窗口开始,寄存器0X18为水平窗口结束,寄存器0X19为垂直窗口开始,寄存器0XIA为垂直窗口结束,我们以水平窗口为例,如表4.2所示为寄存器0X17和0X18的缺省设置:表4-2OV7620水平窗口大小寄存器0X17HS7HS6HS5HS4HS3HS2HSlHSODefaultO01Oll1lOXl8HE7HE6HE5HE4HE3HE2HElHEODefaultl1OO1l11这里每一位代表四个像素点,寄存器0X17。的初始值为640,配置范围为<2C.D2>,并且应该小于下面的寄存器0X18所设置的值,即水平窗口结束位置。同样,寄存器0X18的配置范围为<2D—D2>,并且应该大于上面的寄存器0X17所设置的值,即水平窗口开始位置。我们设置图像大小为320*280,因此水平窗口大小为320个像素,这里通过IeC写入寄存器0X17值为0X55,flP<HS7.HS0>依次为01010101,转化为十迸制数是85,写入寄存器0x18值为0XA5,tiP<HE7.HE0>依次为10000101,即十进制数165,因此水平窗口大小为(165.85)*4=320。垂直窗口道理相同,这里不再叙述。DMA初始化需要设嚣DMA的相应寄存器。如数据传输的源地址、目的地址和DMA传输计数器的值。数据传输的源地址为锁存器地址,锁存器作为外部存储器映射于riGS0地址空间,因此其地址为0X200001。目的地址为SDRAM,即我IW订teDIReadID们程序分配的用于存储图像的数组。具体设置如下所示,这里zDIsRc0为源地址寄存器,ZDIDES0为目的地址寄存器,ZDICNT0为DMA的计数器寄存器,可以设置DMA请求源、传输协议、每次传输的数据位数、传输的像素总数等。由于前面我们设置的图像大小为320*280,因此图像像素总数为320+280=89600。rZDISRC0=(U32)0x2000001I(O<<30)I(0x3<<28);//设置DMA传输的源地址,其中0x2000001就是对应锁存器地址rZDIDES0=(U32)imagedatal((U32)2“30)I(1<电8);∥设置目的地址rZDICNT0=2458001(0x0<<30)I(0x0<<28)I(0x1<<26)1(0x0<<24)I(Ox3<<22)l(OxI<<21)I(o<<20);//设置传输字节数这里U32为程序定义的数据类型,表示Unsignedint。初始化后即可按照3.2章节所讲述的时钟顺序来读取图像数据。首先系统检测帧同步信号,表示一帧图像数据的传输开始,然后等待DMA请求,前面已经讲过,DMA请求源nXDREQ0是通过传感器时钟信号HREF(行同步信号)和PCL,K(像素时钟)经过与非后获得的,DMA传输采用3.2.3章节介绍的8bit的握手协议,即一次读写两个像素点。传输结束的标志也有两个:即D.MA传输结束,表现为计数器递减到0产生中断,另一个为帧同步信号(VsYNc)再次到来,表示一帧图像的传输结束,程序是通过这句话来判定的:while((isZdma0Done--一-O)&&((-rPDATC)&0x4000));//DMA传输结束判断其中isZdma0Done为DMA传输结束中断标志位,初始值为1,传输结束后进入中断函数,值变为0。rPDATC为复用的I/0端口,其第14位复用为VSYNC(帧同步信号),因此我们检测这一管脚的电平状态来判断一帧的结束。采集好的图像数据暂时放入内存中,供后续的指纹算法进行预处理和图像的匹配认证,然后将比对结果存入FIash中。4.2.2RF读卡程序关于读卡的原理在3.4章节中已有所叙述,这里只介绍一下程序的实现过程。刷卡模块从天线解析下来的输出数据格式如下:分别包括头码02+10位数据码+校验码+尾码03(二进制),总共13位ASCII数据,如表4.3所示。表4-3刷卡模块RS232模式数据格式图Tabl04—3RFCardReceiverDataFormat实际传送的是数据的HEX值,因此还要将ASCII码对应的字符解析为16进制数据。例如:卡片号码为62E3086CED,传送的HEX值如下表4-4所示:表4_4卡片数据传输值对照Table4.4RFCardTransmitData36H632H245HE33H330H038H836H643HC45HE44HD10/匣ASCH数据l代表字符4s4408则MTP.K4射频模块输出的完整的二进制文档为:0236324533303S364303,校验和Checksum的计算计算方法如下公式(3)所示,这里XOI"代表异或运算。Checksum=(62H)xor(E3H)xor(08H)xor(6ClOxor(ED[-D=08H…(4)经研究,10位的ASCII数据中只有7.11位表示每张卡的独立信息,即卡号,其它为用于标识的公共信息,因此在存储时我们只需提取这4位卡号数据信息保存即可。图4.3所示为读卡程序的流程图:岛i卤④◇含wllile(((c=Uart_Getchl0)!=Ox03)){囫GetchlO表示从串口1逐位接收数据图禾3RF卡号采集流程图Fi94-3RFCardCollectionFlowchart首先经由接收端RXDI读取天线接收的卡号数据信息,接收程序如下所示://c=Uart当遇到0X03尾码时,表示卡号接收接收da妇【i】=c;//将卡号保存如daca口中,韭塞至堑太堂硒±堂焦边塞丕蕴趑住篮让H斗:)信息读取校验完毕后按照公式(4)的方法进行校验,通过后再将ASCII码字符转换为16进制卡号数据,并从中提取有用的4位卡号信息,关于ASCII码的转换过程可参见表4-5所示:表4_5ASCII码转换表传送HEx值Ox300x3lOx320x330x34Ox35Ox36ox37Ox38Ox390x410x420x430x440x450x46对应字符值0123456789ABCDEF16进制数据转换0x00x10x2Ox30x40x50x60x70x80x90xA0xB0xCoxD0xE0xF前面已经讲过,lO位的卡号数据中只有7—11位为每张卡片的唯一信息表示,其他为厂家的公共信息,因此这里我们提取7.11数据进行存储操作,程序执行语句如下所示:这里data0<3:0>为ASCII码转换后的卡号信息,card为存储的卡号。card=(data0[3]<<12)+(data0[2]<<8)+(data0[1]<<4)+data0[0];4.2.3FLASH读写程序当指纹比对结束,卡号采集也完毕后,需要将本次的考勤结果存储下来,以便上传至上位机进行管理统计分析。这是通过将有用的数据信息存入NORFLASH来实现的。FLASH芯片我们选用的是1M*16bit的SST39VFl601,具有达100000次的擦写周期。并可支持扇区擦除、块擦除和整片擦除等多种编程方式。芯片选用48脚的TSOP封装,大小为(12mm*20mm)。SST39VFl601的读写和擦除都有严格的指令顺序,详见表4.6所示:表4.6Flash读写操作流程Cb■¨■●_Ist陆WriteadtA止lrl2■dh_埘BHmBrollWrlaeCyd4AddrlData25山B—WrUeC,'eleAddrlDat,2‘也B_钢_}-∞Wfh(孙Aadrlwm(独/uldrlw她Qd£AddrlD●n2AAHD■t吐D蚶AOHD■劬眦ProI"mSedDnEⅢBIoek-Em球5555H2^^^H55H5555HⅥ”5555HmMHAAH5555HA^II2A^AH55H5555H80H2AMH2A^AH55HS^X4加H50H5555HMHA^}l2AMH2^^^H55H5555H∞H帅H5555H55HBAx4Chip-Ermc5555H55H5555H5555HA^|I2AAAH55H5555HIOH我们以FLASH存储为例来说明,即表中Word-Program字编程部分。程序流程如图¨所示:f写入敢据:0xXXAAHl地址:0x5555H0I写:入瞳6羲1:据:0;x2∞AA∞AH5H卜7镒勰。H00卜盒盏,蕃慧爹等待翻转BIT图4-4Flash弓操作流程Fig4-.4FlashWord-ProgramFlow图4-5Togglebit检测操作流程图Fi94-5TogglebitWaitOperatiom字编程是我们需要向FLASH内存储数据的部分,SST39VFl601的写操作是一个字接一个字的方式进行的。在写入之前,扇区中如果有数据(0),则必须首先进行充分地擦除。字编程共分为4步,首先在第一个总线周期向指定地址0x5555写入数据0xAA,在第二个总线周期向指定地址0x2AAA写入数据0x55H,在第三个总线周期向指定地址0x5555写入数据OxAOH,最后在第四个总线周期内向FLASH任意地址,即我们存储程序或者数据的位置内存入数据。SsT39VFl601提供Togglebit(对应DQ6引脚)来进行内部操作状态的检测。在内部写入或者擦除的过程中,任何对DQ6的读操作都会产生~个不断翻转的l和0。但内部写入或者擦除完成时,DQ6将停止翻转,Togglebit检测流程如图4.5所示。FLASH写操作函数SSTflashintwriteuai()如下所示:SST_flash_write_unit(U32addr,U16data){SST_Writeflash(0x5555,0xAA);SST_Writcflash(0x2AAA,Ox55);SSTSSTWriteflash(0x5555,0xA0);Wfiteflash(addr,data);return(Waifforendofpr90);)在写入操作的最后,有一个判断写入是否完成的函数Waiffor_endofpr90。此函数是采用前面介绍的T099lebit(翻转位)的方式检测DQ6脚的输出。写入操作是以字为单位进行的,因此在需要进行多字(16位)写入时,只需循环调用写操作函数SSTflashwriteuni()即可。SST39VFl601的擦写包括扇区擦除、块擦除和整片擦除操作。扇区是统一的2K*16b大小,块是统一的32K*16b大小,擦写的步骤也严格按照表4.6的顺序进行,与字编程类似,这里不再详细介绍。4.3移植介绍由于我们的程序是采取模块化设计,因此算法的开发和设备的开发是同时进行的,这样可以大大提高产品的开发速度,也基本符合嵌入式产品的开发趋势。这样在进入样机阶段,就需要算法和设备的一个整合过程,也即涉及设备总体设定的程序流程和指纹识别的算法的移植。上节中介绍了FLASH存储的过程,事实上,FLASH的存储包括两个部分,一个是数据段存储,一个是程序段存储。数据段即我们要存储的一些指纹图像信数据、比对结果、卡号等相关信息。而程序段的存储则需要将指纹识别的算法结合移植到我们的设备的控制程序中,使之能够配合设备的运行。这一节我们将面介绍一下算法移植的实现。指纹识别算法的实现包括两个部分,一个是图像的预处理,另外一个是图像的匹配过程。在具体的移植过程中,除了考虑到和其他底层程序的兼容性外,还涉及到两个比较重要的问题:(1)程序总体的流程,包括算法和其他模块的配合以及系统的使用方案。(2)由于指纹图像处理的数据量比较大,因此需考虑到内存分配的问题。指纹识别程序包括两种模式:即登录模式和注册模式,平时设备开机即默认进入登录模式,等待输入人员的指纹信息,当按键按下时进入注册模式,登记新人员的认证信息。注册模式即采集指纹图像数据,保存其特征点信息,建立指纹库,也就是在应用过程中我们的人员登记过程。登录模式是指采集指纹图像,提取特征点数据,和库中的指纹库进行比对,然后存储匹配的结果,也即我们所说的考勤过程。具体的程序流程如下图4.6所示:曲巨丑—.回~曰…回_母《要圈…回圆—_圜—怔马…{堕习一H区丑一目—囤圉一回一-回图4-6算法流程Fi94-6AlgorithmFlowChart先看看算法的执行过程:注册模式中,根据算法的需要,在注册时一次需采集相同的三枚指纹,然后处理生成一个综合的指纹模板,存入系统。这样做的目的是为了确保采集的指纹信息可靠,有用的信息量即特征点信息量大,有利于后续的比对。由图4.6中可以看出,每次采集一枚指纹图像后,都要经过质量评估.图像处理-特征提取这三步过程,即在执行比对前先对图像数据进行一个考核处理的过程。在质量评估阶段实行打分制,当灰度值小于200是认为是无效的图像数据,要求重新采集。而图像处理阶段即将从设备采集来的图像进行噪声去除,将其变成衣服清晰的点线图,供后续处理。这主要包括方向滤波、二值化、细线化三个步骤。特征提取一般分为两个阶段:提取特征点和特征点后处理。特征点是指纹4l认证的唯一标识,从采集图像中提取唯一准确的特征点信息内容是指纹识别的一个重要步骤。注册模式时每次采集相同人员的三枚指纹图像,均提取其特征点信息,并通过特征重新合成的方法生成更精确的特征点信息存入指纹库。登录模式的前几步和注册模式相同,也要经过指纹图像采集、质量评估、图像预处理、特征点提取等阶段,然后与指纹库中的信息进行匹配。匹配的核心思想是:通过某些坐标变换(如平移、旋转、伸缩变换),消除由于采集时指纹位移、旋转和畸变对特征点位置造成的影响:然后对比坐标变换后指纹特征点的相关信息(位置、类型、角度等)。算法需要处理的数据量很大,为了节约系统资源,在算法处理程序的每一步都包含内存的分配和释放,以保证内存的合理利用。从采集仪采集的图像大小为320*280,为了提高算法的执行时间,首先进行了图像的缩放,即通过抽样方式将图像缩小为256*256大小,提高了预处理的时间。4.4数据上传除了了可以在设备上进行指纹的注册和匹配外,系统还提供了数据上传的功能,使之与上位机进行通信,实现信息的管理和统计考勤记录。这是通过串口通信的方式实现的。系统提供了USB2.0模拟串口功能,通过Sscom32软件读取FLASH内存储的记录信息。下面仅以输出采集的指纹图像为例来说明,采集的图像首先保存在内存的iIllagcdata【]数组中,具体程序如下所示:Uart_Printf(”按1w’键显示256级图像数据,其他键退出…u”);∥串口打印信息萨uartGccchO;,,串口接收函数。等待从键盘获得数据采集指令//按w键采集数据i《c一-w’{for(i--O;i<(num/Xaxis);i++)//按行输出指纹数据{forO=O;j<(Xaxis-1)j++)UartPrintf(”o/at,”,imagedata[i‘Xaxis+j】);//imagedata[】Uart_Printf(”%d;\Il",imagedata[i+Xaxis+j】);)UartPrintf(”rhctotalnumberofdatais%dkn”,ll哪);)5系统调试与结果5.1调试环境本文的试验环境为:硬件的原理图与PCB(PrintedCircuitBoard)的设计是基于Protel99SE软件完成的,软件的调试是基于ADSl.2集成开发环境完成的。硬件的调试是通过JTAG接口方式,并用flashpgm2.2.4软件进行程序的烧录。调试结果的查看是通过Sscom32串口调试工具完成的。5.2调试方法和过程5.2.1PCB制作硬件设计完成后,需要基于Protel99SE软件进行原理图和PCB的绘制,以完成硬件平台的制作。如图5.1所示为整个PCB的设计流程。图5-1PCB板制作流程Fi95一IPCBDesignHow由于本系统所用到的元器件比较多,电路板的尺寸根据结构也有具体的限定要求,另外S3C44BOX的主频为66MHz,SDRAM的时钟频率更是高达100MHz43jE塞銮亟太堂亟±堂焦硷室丕蕴通试皇绮墨以上,因此无论是从系统的稳定性还是电路板的尺寸上考虑,都应选择多层板的布局。因此采用了4层板的布局,并且除了接插件和特殊元器件外(如RF接收模块),所有的元器件均采用贴片式封装。在原理图设计完成后,关键的部分就是高质量的完成PCB布线,以实现稳定的硬件平台。布线不只是相同网络的线连接,其质量好坏直接影响到所设计目标的性能,甚至功能。S3C44BOX的片内工作频率为66MHz,SDRAM的时钟频率更是高达100MHz以上,通常会产生较强电磁场效应,影响相邻信号线或产生感生信号,随之而引入的各种噪声问题也变得越来越突出。因此,在PCB设计过程中,应该遵循一些高速电路的基本设计原则,包括抗干扰设计、电磁兼容性(EMC)分析、信号完整性(si)分析等fJ5】。本系统采用了以下一些方法来避免和解决上述问题:(1)元器件全部采用贴片式封装贴片式元器件体积较小、引脚很短,寄生的电容电感都会显著减小,可以降低传输延迟和封装噪声,因此较插件式元器件具有更好的抗干扰性和稳定性,另外也有助于减小电路板的尺寸和满足自动化生产的需要。(2)采用4层板堆叠结构,提高系统的稳定性多层板较双面板具有更好的稳定性,本系统采用4层板结构,其中顶层和底层为信号层,中间分别为地层和电源层。布线时尽量保持地平面的完整性,对于电源层,由于系统中3.3V器件比较多,因此电源层定义为3.3V,而5V和2.8V网络尽量采用短而粗的电源走线,并且不同层之间采用垂直走线方式避免串扰。(3)采用模块化布局,将模拟和数字电路分开模块化的布局不仅可以方便PCB布线,另外还可以有效防止干扰。除了要将模数分开布局外,其他部分电路也应该以各功能电路的核心元件为中心,围绕它来进行外围元件的布局。例如LTl308A电源芯片,电感和二极管等相关元器件对模块性能有很大的影响,因此对布局摆放位置有严格的要求,因此通常按照DEMO板推荐的布局方式进行摆放。(4)在芯片的电源/地引脚附近放置去耦电容在直流电源回路中,负载的变化会引起电源噪声。当电路从一个状态转换为另一种状态时,就会在电源线上产生一个很大的尖峰电流,形成瞬变的噪声电压。配置去耦电容可以抑制因负载变化而产生的噪声,减少开关噪声在板上的传播并抑制噪声对其它芯片的干扰。具体做法是在电源输入端跨接一个10-1000uF的电解电容器以滤除低频噪声,为每个集成电路芯片配置一个O。01uF.0。luF的陶瓷电容器以滤除高频噪声,特别是对抗噪声能力弱、关断时电压变化大的SDRAM器件在电源和地之间更要连接去藕电容。(5)合理的布线规则为了抑制导线之间的串扰,布线时应尽量避免长距离的平等走线,尽可能拉开线与线之间的距离,信号线与地线及电源线尽可能不交叉。在一些对干扰十分敏感的信号线之间设置一根接地线,可以有效地抑制串扰,如对SDRAM的时钟先进行包地处理。另外导线宽度不要突变、导线的拐角应尽量为钝角、禁止环状走线等,对于晶振和高速的信号线应尽量保持导线长度相同,并且走线尽量短。5.2.2调试过程PCB板制作好之后,(详见附录A),便进入硬件调试阶段。硬件的调试步骤一般包括如下几步:静态调试、单元调试和整机测试。(1)PCB板的静态测试PCB板的静态测试是指在焊接元器件之前,首先要检查制作好的电路板无短路、断路或者连接错误等情况,排除电路板在加工、焊接过程中可能出现的问题。(2)单元调试通常一个比较大的嵌入式系统硬件电路都应该分单元模块进行焊接、调试,当调通一个模块后再进行下一个模块的调试工作,避免遇到问题时无从检查。根据制定的调试方法安排的单元调试的步骤如图5.2所示:图5-2单元调试步骤Fi95-2UnitDebuggingStep这里重点介绍~下电源、CPU、指纹采集和刷卡模块的调试方法。由于系统中每个单元模块都需要接入电源,因此应该首先焊接调试系统的电源模块,以保证各单元工作正常。系统电源电路的调试是整个硬件电路调试成功的关键。依据电路图正确焊接DC—DC升压电路和LDO模块相关元器件,由于开关机部分电路的SHDN和POWERDET需要CPU电路的支持,因此放在CPU部分调试。这里直接给予Dc.DC模块的LTl308A芯片的NAND管脚高电平,调出系统需要的5V、3.3v、2.8V。由于系统所带负载电流很大,这里的电感和二极管都要合适的型号,否则容易烧坏元器件。电感选择了功率电感,最大允许电流为630mA,肖特基二极管管选用了5819,最大允许电流为IA,可满足电路需要。电源部分顺利无误后可以向下调串口和CPU模块,这包括USB转串口芯片CH341、CPU及外围电路、SDRAM和FLASH以及外围电路,开关机部分电路,检查好焊接无误后,上电测试个芯片输入电压是否正常,然后连接JTAG转接器,通过flashpgm2.2.4软件进行程序的烧录。烧录前需配置OCD文件,即配置系统的硬件环境,包括CPU以及FLASH型号,生成的二进制文件类型(这里为ELF格式)等,然后将程序烧写入FLASH。烧写成功后通过Sscom32串口调试工具查看程序的输出结果,Sscom32也需要进行相关设置,包括串13号,这里由于是使用模拟串口,因此要根据插入USB接口的设备号来进行选择,通常为COM3或者COM4。通信波特率应该与程序的设置一致,这里为9600,数据位为8,停止位为l。串口的收发正常后,即可通过此软件方便地查看程序的运行结果。CPU和串口调试通过后即可向下调试其他模块,以指纹采集模块为例,如图3-7所示正确连接指纹采集头和CPU接口电路后,这里要确保采集接口连接的线序准确,不同的采集头对应的接口定义不同,具体可相见采集头的接口说明,否则会导致采集图像紊乱甚至烧坏采集头。连接正确后即可通过JTAG将编译好的采集程序烧写至FLASH,通过示波器测量VSYNC,HREF和PCLK,时序正常后,由程序按ESC键采集指纹图像。然后通过串口将采集的256级灰度数字图像上传至上位机,通过matlab软件查看采集结果。指纹采集图像正常后可向下调试刷卡模块,如图3-8所示正确连接电路后测试各点电源是否正常。然后将编译好的刷卡程序通过JTAG烧写至FLASH。在3.4章节已经介绍过刷卡的原理和流程,将卡片对准线圈后,如果模块运行正常,则其第四脚输出高电平,LED指示灯亮并且蜂鸣器响提示接收到卡片数据。本设备在调试过程中出现出现模块数据接收正常,但是串口无接收数据显示的状况,详细检查后发现是模块数据输出端连接网络标识为RXD0,即CPU的串口0接收端,但是电路板上连接在了TXD0发送端,改正后数据接收和显示均正常。其他模块的调试过程类似,这里不再一一介绍。(3)整机调试各模块单独调试通过后即可进行整机调试。整机调试包括整个软硬件环境的联合测试。在单元模块调试通过后,需要配合指纹识别算法进行整体程序和硬件的测试工作,这一阶段主要是验证各模块在联合调试环境下是否存在功能或者配置上的冲突问题。5.3运行结果本文的自动指纹识别系统包括两个组成部分:指纹识别的硬件平台和指纹识别算法。硬件平台上构建了4层PCB板的结构,实现了指纹采集、RF卡信息采集、数据存储、语音提示、信息加密等功能。指纹采集部分部分通过光学传感器实现了高质量的指纹图像采集,系统设定每次采集一帧256级灰度,320*280=89600个像素点大小的指纹图像,以此为算法提供的原始处理图像,采集结果如图5.3和5-4所示:图5-3指纹采集示例I{fi像1Fi95・3FingerprintImageSampleI图5.4指纹采集示例图像2FigS-4FingerprintImageSample2RF卡信息采集部分通过解析从天线接收的卡号数据格式,通过串口接收数据,从中提取出了4位独立的卡号信息,作为身份认证的一部分。数据存储部分,系统选定IM*16b的FLASH存储空间,这里的16b指FLASH以半字为一个存储单元。通过程序设定前512K为程序段,后512K为数据段,数据段地址从0x80000开始。后512K空间又分为256K的注册指纹库存储空间和256K比对结果的存储空间,每一枚指纹仅存储提取的特征点信息,共2K空间,因此系统可以存储100人左右的指纹库。比对结果的存储空间从0xe0000开始,存储方法为:卡号(2字节)+时间(16字节)+指纹比对结果(2字节)。语音提示部分总共录制了六段WAV格式的语音信息,存储于语音芯片的EEPROM内,分别为:‘请输入指纹’,‘请刷卡’,‘成功’,‘重来’,‘返回’,‘错误’,用于设备操作阶段的语音提示功能,并按照触发时序通过CPU的Io端口读取相应的语音段落。算法方面的性能评价主要包括两个指标:拒识率(FRR:falserejeetrate)和误识率(FAR:糊鞴acceptedrate)。FAR越高安全性越差,FRR越高易用性越差。本文移植的基于特征点指纹识别算法的FRR=0.105,FAR=0.00022。通过指纹采集头采集的图像在算法各阶段的时问时间性能参数如下表5.1所示:表5.1时间性能分析时间性能分析均值滤波灰度拉伸预处理方向滤波二值化细线化总共特征点提取单次比对时间(1:1)总共所用时间(s)O.10.190.5O.2O.31.29O.020.025约2s从表5.1可以看出,本设备的指纹比对总时间为2s左右,已经达到了市场上同类型其他方案指纹识别产品的性能指标,但是在价格和功耗上却占有极大的优势。从以上的实验结果中我们可以看出,算法和硬件平台得到了较好的配合,注册和匹配均取得了令人满意的结果,并且系统还提供了RFID认证、语音识别、信息加密等多种功能,因此是一款性价比优良的解决方案。6总结和展望本文作为嵌入式指纹识别系统的一部分,主要完成了以下工作:(1)回顾了指纹识别系统和嵌入式系统的发展状况,并针对目前主流的嵌入式指纹识别系统的硬件平台做了简单介绍,详述了包括处理器、传感器和其它相关器件的功能特点。(2)完成了基于¥amsung公司的ARM7处理器(¥3C44BOX)的指纹识别设备的硬件设计和底层软件设计,实现了指纹识别和RFID技术相结合的身份认证系统。(3)根据系统的功能和设计要求,实现了高质量的指纹图像采集、RFID信息采集、数据存储、语音提示、信息加密、数据上传等功能。(4)完成了指纹识别算法的移植,实现了单机的指纹注册和匹配功能。(5)对高速PCB设计中的抗干扰方法和调试过程进行了研究。指纹图像的质量对系统性能的影响很大,指纹识别系统中有很大一部分工作是需要对采集的图像进行预处理和增强,如果能在源头解决图像的质量问题,将大大提高系统的性能。目前大多数指纹采集设备存在着对干、湿、较脏或者磨损较为严重的手指适应性差,以及在指纹采集时存在的图像变形问题。研究结果表明,指纹的结构在真皮层有着完整和稳定的表现,如果能实现在真皮层采集指纹,就可以避免上述问题。通过非接触式方式采集指纹可以有效地解决指纹录入时的变形问题。另外,多种生物识别技术的融合也是身份认证的一种发展方向。目前,指纹识别技术正朝嵌入式硅片、小面积、低成本的方向发展。随着移动性要求的增长,指纹识别系统所面临的主要挑战是,如何在PDA或其它手持移动设备上嵌入指纹识别功能,并使得这一应用系统具有开放式体系结构和强劲的实时处理能力,以实现一种简便、安全、可靠的身份认证和安全保障解决方案,这也是以后嵌入式指纹识别系统的研究方向。参考文献Ⅲ闭嘲黄林波.基于ARM的指纹识别模块的研究与开发[硕士学位论文】.哈尔滨.哈尔滨理工大学,2005.1—17叶雪军.基于指纹识别技术的门禁系统研究【硕士学位论文】.武汉.华中科技大学.2005.1-6甘汪雨.自动指纹识别系统的研究与应用设计【硕士学位论文】.广州.广东工业大学.2005,2—3杨俊.指纹IC卡手持终端的设计与实现[硕士学位论文】.南京冻南大学.2004.7—18嗍吼嘲忉网例孙紫鹏.基丁.三星ARM¥3X2410的指纹识别系统[硕士学位论文】.哈尔滨.哈尔滨工程大学.2006.1.3.64.70基于ARM微处理器的嵌入式指纹识别系统设计【硕士学位论文】.吉林.东北电力大学.2006.4,I-4顾崧.基于DSP自动指纹识别系统硬件平台的设计与实现【硕士学位论文】.成都.电子科技大学.2005.2.6晏平华.以太网指纹门禁系统联网设计与实现【硕士学位论文】.成都.四川大学.2005.40-42张立民.基于嵌入式系统的指纹门禁的研究【硕士学位论文】.天津.南开大学.2004.1.5,21—24㈣㈣㈦m邱波.基于非接触式指纹IC卡的身份认证系统设计【硕士学位论文】.上海.上海大学.2005,8.t2胥静,嵌入式系统设计与开发实例详解.北京航空航天大学出版社.2005.1.42—54金敏.周翔.金梁.嵌入式系统组成、原理与设计编程.人民邮电出版社.2006.8.1.12.58-63沈文斌.嵌入式硬件系统设计与开发实例详解.电子工业出版社.2005.11.3-25.147—167谭浩强.C语言程序设计.清华大学出版社.1999.12赵晶.Protel99高级应用.人民邮电出版社.2000.11杜春雷.ARM体系结构与编程.清华人学出版社.2003.2.1.10周立功.ARM嵌入式系统软件开发实例,北京航空航天大学出版社.2004畔Ⅲ叫够呻眇(美)JohnCatsoulis.徐君明许铁军黄年松.嵌入式硬件设计.中国电力出版社.2004.6.SamsungElectronicsCo..Ltd.S3C44BOXUSER’SMANUAL,2I-¥3-C2440A-072004,2004OmnivisionTechnology,lnc,0V7620ProductSpecification-Rev.I.2(5/13/00)SiliconStorageTechnology,Inc.SST39VFl601datasheet.2003HynixTechnology,lncHY57V641620HGdatasheet—RevO.5.2001.6AplusIntegratedCircuitsInc,AP8921Adamsheec-Var1.0.2006.9http://www.alldatasheet.com∞Ⅲ瞄瞄阱瞵蒋开伟.基于MSP430F435的血糖仪研究与设计【硕士学位论文】.北京.北京交通大学.2006.12.9—10嘶支华巢佰崇陈雪丰.基于ARM的指纹识别平台设计.地理空间信息.2005,6第.3卷第3期.23-24WilliamKennedy.季欣楠.国际生物识别技术及其发展趋势.中国公共安全.2005.2.119.121阿瞄眇哪m杨若冰.指纹识别的历史及与其它生物识别的比较.中国防伪报道.2005.47—50李全利.王虎.是仲阳.嵌入式指纹识别系统效率的研究.自动化技术与应用.2007.第26卷第4期.4l—“徐荣珍李从心李加文.基于ARMTrDMI处理罂的嵌入式系统启动流程.计算机工程.2006.1.第32卷第2期f251-253.h..t.t..o..:././..w...w....w.....2...1..i.e.....c..o.一rn51附录APCB板图jE虚銮亟太堂亟±堂僮论塞往者简压作者简历李佳音.女.生于1983年lO月10日.蒙古族.教育经历:2005年9月一2007年3月北京交通大学通信与信息系统专业硕士学位2001年9月一2005年7月北京交通大学通信工程专业学士学位攻读硕士学位期间所发表的学术论文:1李佳音荆涛李兴华.基于ARM7的指纹考勤机设计.电子产品世界.2007.10第232期.107—108.已发表