《基于SOPC技术与NIOS II软核处理器实现嵌入式指纹识别系统的设计.docx》由会员分享,可在线阅读,更多相关《基于SOPC技术与NIOS II软核处理器实现嵌入式指纹识别系统的设计.docx(4页珍藏版)》请在第一文库网上搜索。
1、基于SOPC技术与NIOSII软核处理器实现嵌入式指纹识别系统的设计引言随着科学技术的发展,指纹识别已经成为目前最为实用、应用最为广泛的生物识别技术,尤其在民用生物识别技术中。指纹识别技术已经在金融、医疗、公安、门禁系统等领域得到了广泛的应用。传统的指纹识别系统都是基于PC机的,这种系统具有识别速度快、样本存储量大、软件设计技术成熟等优点。但是,基于PC机的指纹识别系统由于价格昂贵、移动性能差、功耗高等缺点限制了其应用的进一步扩大。自二十世纪末以来,半导体技术和嵌入式技术的快速发展,为人们设计廉价的便携式指纹识别系统提供了一个技术上的实现平台。本文介绍了一种基于MIE弛公司推出的SOPC(Sy
2、stemonaProgrammab1eChip,片上可编程系统)技术的指纹识别系统的设计方案。该系统以A1TERA公司的CyC1OneH系列FPGA和N1OSn软核处理器为核心,并采用富士通公司的MBF200指纹采集甚左设计,是一种简单实用的嵌入式指纹识别系统。1、指纹识别系统原理指纹识别系统一般由指纹图像采集、指纹图像预处理、指纹特征提取、指纹特征匹配、特征数据库等几部分组成。指纹识别系统的原理框图如图1所示。该系统首先由指纹采集设备采集到指纹图像并将其转化为数字图像;然后对指纹数字图像进行预处理,再通过图像增强、分割、平滑、细化等处理过程得到便于指纹特征提取的数字图像:接着提取细化后的图像
3、细节特征点;最后将提取到的特征与特征数据库中的特征数据进行匹配,并输出识别结果。用1指蚊识别系统植图2、系统硬件设计2.1SOPC技术与NIOSII软核处理器SOPC(SystemonaProgrammab1eChip,片上可编程系统)是A1TERA公司提出来的一种灵活、高效的SOC解决平台。它将处理器、存储器、I/O口、1vDS、CDR等系统设计所需要的功能模块集成到一个P1D器件上,从而构建成一个可编程的片上系统。基于SOPC技术的系统设计十分灵活,用户可以根据自己的实际要求,并利用IPCOre资源组合构建出不同的应用系统,从而实现软硬件协同设计。NIOSII软核处理器是A1TERA公司于
4、2004年推出的通用32位空CPU,它能满足任何应用32位嵌入式微处理器的需要.用户可以获得超过200DMIPS的性能。NIOSII软核处理器具有32位处理器的基本结构单元(32位指令大小,32位数据和地址路径,32位通用蜜谴和32个外部中断源),设计者可以根据系统需求的变化来调整燧式系统的特性,以选择满足性能和成本的最佳方案。NiosII系列可支持用户自定义指令,而N1OSIIA1U则直接与用户自定义的指令逻辑相连。由于设计者能为系统中使用的每个NiOSII处理器创建多达256个专用指令,因此,设计者能够调整系统硬件以增强对实时软件篁法的处理能力。A1TERA公司同时还推出了NiOSII集成
5、开发环境(IDE)和一些常用的免费IP核,以方便设计者的软件开发。另外,设计者使用A1tera公司QUar1USII开发软件中的SOPCBUi1der系统开发工具还能够很容易地创建专用的处理器系统,并能够根据系统的需求添加NioSII处理器核的数量。2.2系统硬件结构一般的指纹识别系统主要由指纹采集模块、系统核心模块、数据存储模块和输出显示模块等几部分组成。其系统硬件结构框图如图2所示。处理溟柿心系统核心模块仍处理寿模快定时SN1OSD处理器系统硬件姑构框图ISRAMIF1ASH1肥*:埃W1CDI.:11出,H0青图2本系统中的采集模块采用富士通公司的MBF200指纹传感器芯片,该芯片的分辩
6、率高达500di(dotsperinch),并带有8bit数据接1I,可以采集300X256大小的指纹数字图像。MBF200芯片提供有三种接口(SPI、USB和MCU)方式,本系统中采用MCU方式,其内置的标准8位微处理器总线使其性能大大加强。MBF200的工作流程分为两部分:首先是初始化参数的设置,即使MBF200设置相应的参数,然后选择其工作方式;其次是采用查询等待方式采集指纹数据。由于系统每次采集的指纹图像数据量达几十KB,故在系统核心模块中集成了一个硬逻辑协处理器。这个协处理器负责查询指纹芯片的状态和指纹图像数据采集存储任务。该协处理器是用硬件描述语言设计的一个有限状态机,其状态机模型
7、如图3所示。系统复位后,协处理器将进入空闲状态并等待主处理器的复位值号;当正确接收到主处理器的复位信号后,协处理器进入查询状态;查询状态主要查询指纹芯片的中断状态位,当查询到有效中断状态位后,系统将进人数据采集存储状态;在数据采集存储状态,协处理器从指纹芯片读出数据并保存在系统的存储区SRAM中,读完整个指纹图像后即向NK)SH处理器发出中断信号并重新进入空闲状态,以等待主处理器复位。本系统的核心模块是在A1TERA公司的Cy-c1oneII2C35上实现的,相应的软件开发套件包括QUartUSII5.0和N1oSII5.0集成开发环境(IDE)。Cyc1oneII系列FPGA是A1TERA公
8、司最断推出的低成本、高性价比的通刚FPG,Cyc1oneII2C35具有32,216个1E单元、105个M4KRAM块、35个嵌入式乘法器,完全可以满足系统的性能要求。通过QUartUSI1中的软件工具SoPCBUiIcIer可实现N1oSII处理器的创建和各种IP模块的管理和配置,以构建系统的核心模块。图2中,根据系统的实际要求由SoPCBUiICIer配置的处理器核心包括N1oSII处理器、指纹卡PI0、协处理器PIO、va1onTri-AtateBridgeUART模块和1CDP1o等模块。配置好这些模块后,便可进行系统生成。SOPCBUi1der在系统生成过程中可生成HD1源文件和BD
9、F文件。SOPCBUi1der为定制的N1oSII核心模块创建的一个符号(Symbo1)就存放在BDF文件中,用户可以在QUartUS软件中使用该符号。本系统核心模块是使用Quartus的符号表文件编译生成的。数据存储模块包括512KB的SRAM和4MB的F1ASH。SRAM用来存放采集到的指纹图象数据和程序运行时的临时数据。4MB的F1ASH则用于存放系统应用程序和特征数据库。系统的识别结果可以通过1CD输出。3、系统软件的设计系统软件可利用C语言在N1OSII集成开发境下开发。NiosII集成开发环境(IDE)是NiOSII软核处理器的主要开发工具,包括编辑、编译和程序调试。NiosIII
10、DE为软件开发提供了一个集成的设计开发环境。它有一个包括工程管理、源代码开发和基于JTAG调试功能的图形界面(GUD,故可大大简化复杂的NiosII处理器设计。指纹识别算法流程主要包括背景分割、方向图计算及方向滤波、二值化、细化、特征提取和特征匹配等。采集的指纹图像容易受到各种因素的影响而使图像质量变差,比如手指按压的方向和力度、皮肤的干湿程度、传感器的特征差异等。因此,指纹识别算法首先要对指纹图象进行处理,以把有用的前景信息和背景区分开。本系统算法采用方差法进行图像分割。然后采用基于块方向图计算的方向滤波。接着利用动态阀值法进行二值化处理,以把指纹灰度图像转化为仅用0、1表示的二值图像。对二值化后的二值图像进行细化可得到骨架图象。接下来的特征提取阶段是用模板匹配的方法获取细节特征点(端点、分叉点)的位置、方向和类型信息。最后和特征匹配则采用基于细节特征点匹配的算法。4、结束语本文给出了一种基于SOPC的指纹识别系统的设计方案。使用SOPC技术进行系统设计具有开发周期短、设计灵活、可把若干外部模块综合设计到一片高密度FPGA中等优点,同时设计更小巧、成本更低、更便于系统升级。虽然目前SoPC技术还处于推广阶段,但国内外己经有很多高校和公司进行了实际应用方面的研究。因此,我们有理由相信,SoPC技术在不久的将来一定会有更广阔的应用空间!责任gt