新闻中心

EEPW首页 > 模拟技术 > 设计应用 > 一种新型SoPC自动指纹识别系统设计

一种新型SoPC自动指纹识别系统设计

作者:时间:2011-01-03来源:网络收藏

目前,基于FPGA的系统主要有纯硬件方式实现[1]和在以Nios II为CPU的软核中实现[2-4]两种方式。以纯硬件方式实现虽然速度较快,但由于指纹处理算法比较复杂,实现困难,同时算法精度差,设计周期长;而以下载到FPGA的软核Nios II为控制模块,具有灵活的设计方式,并具备软硬件在系统可编程的功能,较大程度上提高了系统速度,但是该方案中软硬件处理交替进行,涉及到软硬件之间频繁的指纹数据传输,限制了系统的速度,同时增加了系统的复杂度。

本文提出了一种基于的新型结构的设计方案。具有以下特点:

(1)根据对算法的分析和优化,在软、硬件结合的基础上将软件设计和硬件设计分开,把指纹识别系统中耗时较大的图像预处理部分用硬件来实现,而耗时较少的特征提取、匹配和操作控制等部分则在NiosⅡ软核中实现。从而使得系统结构明晰,处理性能得到提升。

(2)用一块SRAM作指纹处理中间数据的缓存。指纹图像前期处理以硬件实现,中间数据缓存于SRAM中;指纹图像后期处理软件从SRAM中将所有数据读入NiosⅡ的数据存储器。这样的存储设计使得软件处理和硬件处理之间不涉及大量的数据流传输,使软硬件数据接口简单,数据流的控制更加简单易行,同时避免了频繁的软硬件数据传输带来的时间消耗。

(3)在软硬件处理结合的基础上使指纹处理时间大大降低,1.5 s内可以完成一幅指纹图像的预处理,3 s内可以完成一幅指纹图像的比对。

1 设计思路

1.1 指纹系统结构

从整个指纹处理系统的角度来考虑,根据各算法处理特性仔细地划分系统子模块。通过对指纹处理算法的分析发现,指纹的预处理部分使用到多次数据循环运算,运算量较大而且单一,使用硬件实现明显降低时间消耗,所以选择对指纹的预处理部分实行整体硬件化;对于指纹匹配部分,运算量相对较少但算法复杂多样,使用软件算法相对比较简单而且可以达到很高的精度,所以使用Nios II软件算法来实现。选择预处理部分整体硬件化,匹配部分整体软件化的另外一个好处是软硬件处理不需要进行频繁的数据交换传输,节省时间的同时降低了系统的复杂度。

如图1所示,系统工作流程主要分为指纹硬件采集、指纹图像硬件预处理和指纹软件匹配。其中SRAM作为指纹数据的缓存设备,Flash做为指纹特征数据的存储设备,对指纹数据的处理步骤按照箭头所指示的方向进行。

本文引用地址:http://www.eepw.com.cn/article/187665.htm


1.2 NiosⅡ软件功能

Nios II作为主要控制模块,通过Avalon总线协调指纹处理各个子模块的运行。其中预处理硬件模块由于处理中各算法步骤顺序执行,所以以一个整体挂在Avalon总线上,方便模块的控制。指纹图像预处理后的特征提取匹配使用NiosⅡ软件实现,指纹数据储存于程序的数据存储器中,按照软件处理流程调用各个函数进行处理。为了方便观察调试结果,在Avalon上挂有VGA和LCD显示,每一步算法完成后调用VGA显示查看处理结果,使用LCD提示处理步骤。

1.3 硬件优化技术

针对FPGA算术运算中的乘法、除法易出现的时序问题,对浮点数运算、开方算法、反正切算法等耗费大量资源的通用性问题,特别做了如下优化:

(1)乘除法均采用Quartus自带的IP核进行运算,IP核采用流水线结构,减少系统中时序不满足情况的发生,提高系统的稳定性;

(2)浮点数运算均通过扩大倍数后转为定点数再进行运算,可以在降低运算复杂度的同时降低时间消耗;

(3)开方算法采用不恢复余数开方算法实现,只涉及加减和移位,处理时间只有输入位宽的1/2,可降低系统消耗,减少处理时间;

(4)反正切运算采用CORDIC算法,采用状态机结构,通过反复迭代实现,算法简单。


上一页 1 2 下一页

评论


相关推荐

技术专区

关闭