您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 咨询培训 > 基于Nios的指纹识别系统的设计
基于Nios的指纹识别系统1三等奖基于Nios的指纹识别系统大学院校:华中科技大学参赛队员:李临川张尧葛成东指导教师:肖看一.设计概述1.设计背景近年来,随着数字化、信息化、网络化等技术深入发展,人们的生活变得越来越快捷方便,同时对于各种电子系统的安全性要求也越来越高。电子商务、ATM、门禁控制及各种智能卡等都需要一种安全而且易用的个人身份识别技术。传统的“用户ID+密码”的认证方式存在密码遗忘、黑客攻击和被别人窃取等问题,已经渐渐无法适应社会的需要。基于人体生物特征的身份识别技术为我们提供了一种很好的解决方案。生物特征识别技术根据生理特征或行为特征对个人身份进行鉴别,因此它具有更高的安全性和可靠性,同时使用方式也更富于人性化。常见的生物特征包括指纹、掌纹、虹膜、脸像、声音、笔迹、DNA等。综合考虑准确性、永久性、易用性和成本代价,指纹识别技术是一种费效比和安全性都很高的方案,同时技术上也比较成熟,因而在社会上有很广泛的应用。据统计,国内市场上基于生物特征识别的身份认证系统中,指纹识别产品占到90%以上。随着微电子技术的发展,可编程逻辑器件规模越来越大,越来越快,功能越来越强。目前已经有若干种FPGA器件支持嵌入式处理器软核,为基于FPGA的硬件开发提供了更多的选NiosII嵌入式处理器设计大赛2007—优秀作品2择。Nios®II嵌入式处理器是Altera公司开发的一种采用流水线技术、单指令流的RISC嵌入式处理器软核,可以将它嵌入FPGA内部,与用户自定义逻辑结合构成一个基于FPGA的片上系统。与嵌入式硬核相比较,嵌入式软核具有更大的灵活性。而FPGA的高速度,恰恰满足了指纹识别系统对速度的要求。本设计考虑了工作在验证模式下的分散认证的身份识别系统,用户在终端经声明身份(这里简化为输入ID)、输入指纹后进行认证(或注册),由一个主机通过网络管理多个终端,管理员拥有系统管理权。2.针对用户群本系统可以在整合其它服务功能模块后作为一个公共服务系统,其中指纹识别作为关键的身份认证手段;系统也可稍加修改后作为人员管理、安全保护等产品。具体的应用可能有:(1)电子商务:如信用卡消费、E购网络。(2)银行:ATM等。(3)企事业单位人事管理。(4)安全管理:如门禁系统。(5)资格认定:如考试。本系统的主从机网络模式可以有效的实现分散认证、集中管理的工作,因而比较适用与局部范围的认证系统,如果在通信效率和安全上加以改进,可以扩展为大系统。3.应用Nios的优势传统的指纹识别技术大多依靠PC或DSP实现,PC实现图像处理成本高、体积大,速度无优势,DSP虽然处理速度快,但有功能和相关参数固定,灵活性不足的缺点。FPGA应用于指纹识别后,体现出越来越大的优势,它兼顾了处理速度和灵活性,同时有嵌入式系统固有的低成本、便携的优点,因而获得了广泛的应用。Nios作为一种高性能、可配置的软核,又有它独特的优势。它基本用C语言编程,开发周期短,代码可移植,结合用户自定义硬件逻辑,可以并行的完成复杂的图像处理任务,不失FPGA的优势。对本系统来说,相关组件可以很容易整合,图像处理过程中的相关参数可以很方便的调节,这对于实现不同的性能指标,满足不同条件下的用户需求是很有利的。二.功能描述1.实现了可扩展的认证网络:系统为主机与终端模式,采用总线型局域网进行连接,便于集中化管理,并且具有良好的可扩展性。主机管理员只需在“终端管理”选项卡中新增终端,就可以方便地加入新的终端。2.良好的人机交互:采用液晶显示与键盘录入的方式,便于客户的使用。3.指纹采集:通过自制的指纹采集器采集用户的指纹,驱动程序访问SPI接口获取数据。程序设有基于Nios的指纹识别系统3手指自动检测功能,采集指纹时针对手指不同干湿度设置了三套参数,选出效果最好的一幅图像,另外,指纹采集器平时处于休眠状态,采集指纹时才激活,降低了功耗。4.身份验证:终端采集器采集指纹信号,进行图像处理,并提取出指纹特征信息。在注册情况下,主机从终端获得指纹信息,及对应的ID,并存入指纹库中;在登陆情况下,主机返回ID对应的指纹信息,由从机进行比对,并且显示相应的登陆信息。5.信息管理:主机由功能较强的PC担任,运行一套管理程序,其功能包括:用户账户管理,查看或修改注册用户;终端管理,新增终端或修改终端权限;日志查看,浏览系统访问日志;密码修改,修改管理员登录密码。三.性能参数性能参数包括两个方面,指纹图像处理速度和指纹识别正确率。1.指纹图像处理速度:下表列出了采用硬件加速前后指纹图像处理的主要过程耗时及总耗时(硬件加速的具体配置和原理见第五部分“设计方法”)。处理对象为256×300的8位灰度图像。未采用硬件加速耗时采用硬件加速后耗时图像滤波36.40s4.77s纹线细化13.54s2.67s总计54.93s11.57s可以看到,在采用了针对图像处理的硬件加速后,图像处理速度有了很大的提高。2.指纹识别正确率由于本系统的指纹图像处理和比对的算法是针对特定的指纹采集器设计的,故没有在通用指纹库中进行测试,而是随机选取了10个测试者共计约40枚指纹测试系统的指纹识别正确率,具有一定的代表性。经过统计,系统误识率FAR(FalseAcceptRate,即非同一指纹误识为同一指纹概率)在5%以下,拒识率FRR(FalseRejectRate,即同一指纹误识为不同指纹概率)在20%以下。由于识别正确率很大程度上受手指清洁度和干湿度的影响,故以上的结果为系统指纹识别综合性能,没有单独进行算法性能测试。NiosII嵌入式处理器设计大赛2007—优秀作品4四.设计结构1.网络拓扑结构系统以交换机为中心节点进行组网,建立各个终端与主机的连接。2.模块划分:3.硬件设计:Switch主机终端终端…….终端指纹采集处理通信模块管理员模块通信模块从机主机用户服务模块基于Nios的指纹识别系统5从机:主机:由PC担任。4.软件设计:从机:NiosⅡCPUJTAGInterfaceAvalonBUSSPIControllerPIO10M/100MEthernetOnChipRAMTristateBridgeUserLogicSRAM主从通信指纹采集器用户接口TimerFlashCustomerInstructionNiosII嵌入式处理器设计大赛2007—优秀作品6开始设备初始化等待用户登录/注册输入ID、指纹向主机申请获取用户信息返回处理结果登陆/注册?返回主机可用?提示系统维护,暂停登录否是注册登陆指纹特征提取比对ID/指纹特征发送用户信息基于Nios的指纹识别系统7主机:运行模块:选择运行功能禁用管理模块功能从机连接请求广播启动在用终端注册登陆等待从机信息检验ID合法性获取特征数据,更新数据库答复从机返回对应ID特征数据有无注册权限检验ID是否注册更新运行日志开始密码认证登陆运行模块管理模块NiosII嵌入式处理器设计大赛2007—优秀作品8管理模块:五.设计方法1.系统开发流程本系统大部分设计功能是采用Altera的DE2开发板、外围指纹采集电路的电路实现。我们先实现系统各功能模块,最后总装调试。1.参照DE2开发板的部分实例和试验文档,在DE2开发板上实现了Nios软核构建,IDE坏境下的C语言编程以及程序的在线调试和烧录。2.在DE2开发板上利用SOPCBuilder实现了对外围存储器,RS232串口,DM9000A网络接口,PIO接口的访问。3.在DE2开发板上实现了通过扩展PIO口对4×4键盘的访问。4.在DE2开发板上实现了通过SPI核对指纹采集数据的读取。5.完成指纹处理算法,在DE2开发板上实现了自定义外设和自定义指令硬件加速。6.利用购买的指纹采集芯片自行设计并实现了指纹采集电路,实现自动检测手指功能。与此同时开发PC平台的管理员程序,最后联机调试。选择管理功能停止终端工作选择管理选项系统选项注册人员管理终端管理查看日志修改登陆密码更新日志基于Nios的指纹识别系统92.硬件部分Nios软核的配置:1)确定采用DE2开发板上的Cyclone®IIEP2C35FPGA作为主控芯片,所有的功能都是围绕着这块芯片来进行设计的,从硬件上体现了SOPC高度集成的设计思想和设计原则。2)确定50MHzNiosIICPUFast版,支持JTAGlevel3。3)12.5MHzSPI核,完成指纹数据传输。4)加入DM9000A以太网控制芯片,实现以太网物理层功能。5)加入jtag调试模块,以利于系统的在线调试。6)串口通信模块采用38400bps。利用uart我们可以在网络通信还未实现的情况下完成Nios系统和PC机的数据传输,进而在PC机上监测指纹图像处理的过程。7)SRAM,SDRAM和FLASH分别被用来实现程序运行时的内存,和数据的分配空间和程序烧写的空间。8)存储器之间三态桥的连接。9)两个定时器的,可以实现系统中对延时的要求,同时可以测试Nios系统处理指纹数据所需要的时间。10)按键、数码管、LED和16×2字符液晶接口可以很好的实现人机交互。采用SOPCBuilder,我们能够方便的组建一个可裁减、可配置的系统,实现需要的功能。指纹采集器的制作:11)功能设计使用fps200指纹采集芯片采集指纹原始图像数据。该电路必须具有自动手指检测功能,在需要采集指纹且检测到手指时才会通知CPU取数据,然后图像数据通过SPI接口传送到NiosII处理器中。12)原理图设计。在认真研究指纹采集芯片的datasheet之后,我们设计出原理图,实现了SPI接口,并预留MCU和USB接口备用。13)PCB图的制作。最终设计的电路板采用双面pcb板方案。14)电路板的焊接调试。实验验证了指纹采集器的功能,数据采集和传输正确,最后调整指纹采集相关的参数。指纹图像处理硬件加速:在NiosCPU配置为Fast,并且加入fpoint浮点运算指令的情况下,使用C语言实现的图像处理算法仍然耗时50s以上(参见的第三部分“性能参数”),对于一个实时处理的系统是不能承受的。NiosII嵌入式处理器设计大赛2007—优秀作品10提高图像处理效率的方法有两种:一是在FPGA上实现一个DSP处理模块,二是采用针对图像处理的硬件加速。比较这两种方案,DSP实现图像处理效率更高,且不依赖CPU的运算速度,但实现难度很大;图像处理硬件加速相对容易实现,而下面我们将会看到采用硬件加速大幅提高算法执行效率是可行的。指纹图像处理算法有其自身的特点:存在大量重复性的运算,且对每个像素的处理过程是相同的。这样我们只要改进这些最基本运算的执行效率,就能提高整体执行效率。我们将整个指纹处理过程划分为方向图求取、图像滤波、二值化、纹线细化、特征点定位等子过程(具体原理参考下面“软件部分”),分别统计每个子过程的耗时,确定了两个必须加速的子过程,即“图像滤波”(36.4s)和“纹线细化”(13.5s)。图像滤波原理简述:取目标像素周围52个像素数据,分别乘以对应的滤波系数最后累加作为目标点新值,滤波系数从一个方向相关的系数阵列中取出。纯软件方法需要作52次乘法累加,针对图像滤波运算,我们设计了一条自定义指令CI_multi_accumilate,三个时钟周期完成一次乘法累加。加速后图像滤波子过程耗时缩减到4.77s。纹线细化原理简述:取目标像素连同周围15个像素数据,与16个模板比较,确定目标像素是否清除。经过若干次全图扫描,指纹纹线被细化为单像素宽度。纯软件方法需要作16次比较操作,针对纹线细化运算,我们设计了两个自定义外设prematch和user_delete,共计六个时钟周期完成16次比较。加速后纹线细化子过程缩减到2.67s。以太网实现方法:系统以交换机为中心节点进行组网,建立各个终端与主机的连接。由于终端与主机的通信数据量并不是很大,没有复杂的路由,系统没有也不允许与公网有物理连接,但是如果要实现上层的IP协议,就需要使用嵌入式实时操作系统,而我们的从机系统没有必要使用操作系统来进行调度,所以没有采用TCP/IP协议进行组网,而直接采用了MAC--
本文标题:基于Nios的指纹识别系统的设计
链接地址:https://www.777doc.com/doc-2571087 .html