论文部分内容阅读
随着科学技术的发展,指纹识别技术被广泛应用到各种不同的领域,诸如电子商务、犯罪识别、信息安全等众多领域。对于一般的指纹识别系统,其设计要求具有很高的实时性和易用性,因此识别算法应该具有较低的复杂度,较快的运算速度,从而满足实时性的要求。所以有必要根据不同的识别算法采用不同的实现平台,使得指纹识别系统具有较高的可靠性、实时性、有效性等性能要求。SOPC片上可编程系统和嵌入式系统是当前电子设计领域中最热门的概念。在硬件方面本文以指纹识别技术和嵌入式系统技术为理论基础,采用了一种基于NiosⅡ软核的FPGA系统架构方案。同硬核系统相比,NiosⅡ软核在性能上有一定的差距。如果要使用Nios CPU作为运算部件,就必须充分利用用户自定制指令的特性,本文指纹算法中的部分算法就采用了自定义指令,有效利用了FPGA的硬件资源。在指纹图像的采集方面针对MBF200指纹芯片的特点,设计了一套基于FPGA NiosⅡ的MCU指纹采集接口电路和采集软件算法程序,实现了指纹图像的采集。在指纹预处理算法方面主要移植了已有的算法,使算法在FPGA中得以实现,在指纹预处理算法中指纹的方向图计算和Gabor增强都用到了三角函数和浮点运算,如果在NiosⅡ只用软件实现这些算法会占用很多时间,因此本课题通过自定义指令添加了浮点运算并设计了针对三角函数的自定义指令实现了算法的硬件化,使算法速度得到了很大的提高。自定制指令是一个加速软件算法的方法,使用NiosⅡ的自定制指令,可以将一个复杂的标准指令序列简化为一个用硬件实现的单一指令,从而简化系统软件设计并加快系统运行速度。NiosⅡ的自定制指令是与CPU的数据通路中的ALU相连的用户逻辑块。NiosⅡ处理器支持256个具有固定或可变时钟周期操作的专用指令,设计者能用这些指令来加速实际要求严格的代码段。定制指令逻辑和NiosⅡ的连接在SOPC Builder中完成。系统生成时,NiosⅡIDE为每条用户指令产生一个在系统头文件中定义的宏,可以在C或C++应用程序代码中直接调用这个宏。本设计最终实现了一种简易的指纹识别服务系统,提供简单的一对一和一对多比对服务,能够独立工作;也可以将指纹通过串口传给上位机作为指纹采集装置使用。