基于Nios的掌纹鉴别系统设计与实现

发布者:PositiveEnergy最新更新时间:2006-05-30 来源: 单片机及嵌入式系统应用关键字:模块  鉴别  图像  函数 手机看文章 扫描二维码
随时随地手机看文章

引 言
  
  在信息化的当今世界,信息安全不管是对企业还是个人都越来越重要。生物特征鉴别在信息安全身份认证领域占据着重要地位[1]。传统的指纹鉴别系统已经商用化,但由于指纹特征十分细小,对于采集图像设备的分辨率要求很高.导致设备成本居高不下。另外,大约有4%的人由于指纹磨损而提取不出指纹特征(如一些老年人和体力劳动者)[2],所以人们把目光投向了分辨率要求不高有可能实现低成本与大范围应用的掌纹鉴别领域。

  掌纹识别和鉴别是1998年才出现的新兴生物特征识别技术,经过几年的研究已经达到了商用的要求(在低分辨率条件下识别率高于99%[1])。掌纹鉴别的适用范围广泛,从特定领域来说,可以广泛应用在银行、法院、刑侦、监狱等需要保密性要求比较高的部门,从大众领域来说,住宅小区和生产车间是重要的应用场台。上述应用场台除了要求本身算法的可靠性外,还要求识别设备小型化,便携化以及可升级性.所以摆脱PC的束缚,在嵌人式系统上实现掌纹鉴别更加具有实际应用价值,也势必会将掌纹鉴别推向更广阔的应用领域,然而在当前还没有嵌入式掌纹鉴别系统问世。

  Nlos是Altera公司推出的一款采用流水线技术、单指令流的32位RISC软核处理器,并针对Altera公司的可编程逻辑器件和片上可编程系统的思想做了相应优化[3,4]AlIera公司提供的SoPC Builder不仅可以创建和配置用户的Ni0s,还可以添加自定义用户指令。这使得Nios可以很容易的与用户逻辑结合,构成功能更加强大的SoC系统。本文提出了基于Nios软核处理器的掌纹鉴别系统设计方案,并最终实际完成了该系统。

1 系统结构及功能概述

  从逻辑功能来看,作为一个完整的掌纹鉴别系统应该具备以下两个基本功能:鉴别和注册。鉴别功能即根据用户的lD和采集到的掌纹图像判定用户身份是否与声明的ID相符。如果当前用户是合法的,则记录本次登录,如果当前用户是不合法的,则向系统管理员报告。注册功能即将新用户的掌纹特征添加到掌纹特征库,并给此用户一个新的ID。

  为了实现鉴别和注册功能,将系统分为以下几个模块:图像采集模块、鉴别处理模块、输入输出模块和通信模块。其中,鉴别处理模块是整个系统的核心,它既要完成掌纹鉴别算法的运算,还要对其它的模块进行控制和监测。系统的结构框图如图l所示


  图像采集模块主要包括摄像头和外扩SRAM。由于手掌凹凸不平及受压力不同时,导致的形变较大,所以采集掌纹图像,一般不使用像采集指纹时使用的扫描设备。而如果采用数码相机,系统的体积和成本必然上升,丧失了莫优越性。笔者采用OmniVvision公司的OV7649摄像头作为图像采集设备,OV7649是30万像素的CMOS数字摄像头,体积极小,价格便宜,分辨率足以达到掌纹鉴别的要求。因为OV7649输出为8位数据宽度,所以SRAM采用了与OV7649的数据宽度相同的IDT7lV424,用来作为存储掌纹图像的缓冲区。

  鉴别处理模块采用的FPGA选择Altera公司的APEX20K200F,配置了256KB的SRAM及1MB的Flash,另外我们还添置了32MB的SDRAM. SRAM和SDRAM用来为Ni0s运行程序和存储相关数据,Flash用来存储提取好的掌纹样本特征。选择Nios软核CPU作为核心处理模块主要考虑到它为设计带来了高的集成度和灵活性,这样再对设计方案作更改时比较方便,而且核心算法如果用Nios的用户指令实现,那么运算速度将会得到很大提高。AIIera也提供了一些免费的IP核,包括常用的UART、SRAM、F1ash和SDRAM控制器。这样在S0PCBuilder里很容易定制好自己需要的Nios处理器,假如想更改其中的某些部分只需在S0PC Builder里重新配置即可。实践证明,选择Nios软核处理器给后续的工作带来很多便利。

  输入输出模块和通信模块结构相对简单.前者包括一些按键和1块16×2的汉字LCD,用来提示用户操作和显示系统相关信息,后者采用的是西门子的slml00-tcp无线通信模块。这样可保证系统的报告直接可以发到系统管理员的手机上.同时也为连接1naternaet提供了条件,这样系统的扩展性就得以增强了。

2 系统的硬件设计

  系统硬件结构如图2所示.可以看到在l片FPGA中包含了Nios处理器、SRAM控制器、SDRAM控制器、Flash控制器、uART以及摄像头和外扩SRAM控制器、2维DCT变换的用户逻辑模块。这正体现了Nios的优势,将很多资源集中在FPGA中为设计PCB带来了便利,而且对系统的更改也变得非常容易,只要重新在FPGA中添加不同的模块就可以了。笔者分别设计了2块PCB,分别是图像采集板和无线通信模块,工作的重点主要在以下两个方面。

(1)Nios与OV7649的工作协调机制


  OV7649控制信号线使用的是oMniVisn公司的SCCB总线。SCCB总线包括SIO_C和SIO_D两条信号线,分别代表时钟和串行数据I/O,无论是传输控制命令还是读写数据,都是由不同的时序来区分不同的操作。笔者并没有用Nios直接与OV7649相连.而是独立用VHDL编写了一个控制模块。这样做的原因主要有两方面:第一,OV7649输出的像素同步时钟频率为24MHz,同时以30帧/s的速率输出分辨率为640×480的图像数据,如此高的数据率直接用Nios提取其中一帧图像是不好实现的,因此必须编写提取图像写入外扩sRAM的VHDL模块,直接用FPGA将掌纹图像数据写入外扩SRAM;第二,Nios只占用了FPGA资源的三分之一左右,完全可以利用剩下的资源,这样编写C代码的时候就不必考虑SCCB总线的时序。对于Nios来说,图像采集只需发启动和配置命令就可以实现.然后等待控制模块的完成信号返回,直接到外扩SRAM取数据即可。

  摄像头控制模块首先对摄像头进行初始化配置。初始设定为 自动增益控制、自动白平衡、VGA格式(640 x80)、30帧/s、YuV 4:2:2数字视频信号输出、设置默认的图像对比度、亮度及饱和度。然后接收OV7649产生的数字视频信号、控制信号和状态信号,即把帧同步信号VREF、行同步信号HREF、复位信号RST、像素时钟信号PCLK等引脚连接到FPGA,根据这些信号将数据写入外扩SRAM。图3和图4是OV7649输出的各种同步信号的时序图。

(2)外扩SRAM的读写控制


  如前所述,开发板上配有256KB的SRAM和IMB的Flash。因为提取的每帧掌纹图像至少为320×40×2=150KB.同时图像处理的相关代码和掌纹样本库也有相当的容量,所以还需要外扩1MB的SRAM作为存储采集图像的缓冲区。为了和摄像头的数据宽度匹配,外扩的SRAM选用了IDT7lV424,作为FPGA从OV7649输出视频中提取一帧图像的存储器。这2片SRAM必须达到以下要求 在采集图像时为FPGA中的摄像头控制模块迅速将图像数据写入,其余时间则将资源释放,被Ni0s统一管理。为此,一方面根据输出视频数据的高速时钟信号利用FPGA的资源编写了VHDL模块;另一方面,根据SOPC Builder提供的配置文件修改.写出了控制IDT71424的IP,并将其集成到SOPC Builder中。





3 系统的软件设计

(1)软件开发环境与用户指令


  Nios的软件开发环境叫做Nios SDK SHELL,它提供了一个基于命令行娄似于Nnix的界面,用户在此环境下可以和Nios进行通信。我们需要先将编写好的.c文件用nios-builder命令生成srec文件。这个过程是由Nlos SDKSHELL调用GNUpro编译器来完成,GNUpro负责完成C代码和相关的头文件及库函数的编译、链接等工作。编译通过后就可以用nios-run命令将生成的.srec文件通过串口下载到N1os上运行。在SOPC Builder中配置好Nios后,会得到为用户生成的CPU_SDK文件夹,其中有个名为excalibur.h的头文件,它包括Nios所有资源的地址映射和一些库函数。

 


  用户指令是Nios的最大特点之一,也是硬核处理器无法提供给用户的。使用好用户指令可以给系统速度带来极大的提升。掌纹鉴别算法有很多种,对掌纹特征提取通常包括提取掌纹几何特征、变换域特征和代数统计特征三大娄。在本系统的设计过程中,对算法的选择主要是从如何发挥Nios的优势出发,争取能在系统的实时性、可靠性及软硬件结合三方面拽到一个平衡点。对掌垃图像进行DCT变换是这个处理过程中运算量最大的部分,同时这也恰恰是利用用户指令的机会。2维DCT的处理模块是在1维DCT的基础上加以改善得到的,并且在SOPC Builder中添加为用户指令。用户指令的引人为系统速度带来极大的提升。首先在SOPC Builder配置Nios时,分别使用MSEP和MuL两种乘法,运行C代码实现,然后又用2维DCT的用户指令来做相同图像的处理对比.下文会有具体的测试数据。

(2)代码流程分析


  参照图5所示,现在开始分析流程图中各操作的具体步骤。



  用nr_installuserisr(na_button_pio_irq,palm_isr,(int)pi0)函数来建立一个用户中断服务,对按键中断响应进入中断服务程序palm_isr.然后向摄像头控制模块发送指令,需要用的函数有

vold mitSCCBMPodule()
void WriteSCCB(unsigned char id_addr,unsigned char sub addr,unsigend char data);
unsigned char ReadSCCB(unsigned char id_addr,un-signed char sub_addr)
void EndSCCBModule();

  首先用initSCCBModule函数对摄像头控制模块初始化,然后用WriteSCCB函数写入需要的摄像头配置.EndSCCBModule表示结束配置,还可以用RemdSCCB来读取摄像头的寄存器配置,检查与吸入的配置是否相同。检测到摄像头控制模块的完成信号,就可以从外扩SRAM读取数据了。接着对图像数据做一些预处理,包括提取图像的Y分量并找到掌纹的感兴趣区域。然后提取掌纹特征,这部分的运算量主要集中在DCT变换,需要使用用户指令nm_det_2.在用户指令执行完毕后,既是对特征的处理,并将处理结果显示。对于提取的掌纹特征如果需要写入Flash储存起来,那就需要调用

int nr_flash erase sector(unsigned short*flash base,unsigned short*sector address)
int nr_flash write(unsigned short*lash base unsigned short*address,unsigned short value)

  无线通信模块需要与Nios的串口连接,用AT命令来控制打电话、发短信和访问Internet。需要调用的串口控制函数是voidnr txstring(char*s)和int nr_rxchar(vpid)这两个函数就是发送AT命令和接收无线模块返回的状态信息。

4 测试与分析

  实验主要分为两个部分:正确鉴别率测试(如表1所列)和鉴别时间测试(如表2所列)。

 

 



  从表1的数据来分析,可以看出在样本数不大的范围内随着阈值为130时得到了96.7%的正确鉴别率.对于在Nios平台下的掌纹鉴别来说这个结果是完全可以接受的,但是此时对扩展测试集有3.3%的错误接受率。笔者取的扩展测试集规模与样本数相同,假设将此系统用于住宅小区门禁系统,这就意味着此小区区外的31名人员中有1个可能能够进人该小区。为了保证安全性笔者将阈值减小至100,系统对扩展测试集的鉴别效果相当好,样本之外的掌纹不会错识为样本库中的掌纹,付出的代价就是正确鉴别率下降为93.5%。众所周知,嵌入式处理器的运算能力有限,所以对特征提取时间比较关注,这也是系统能否迈向实用化的关键之一。表2是系统实时性的测试,从中可以看出在配置Nios时选用不同的乘法器(MSTEP是Nios的标准乘法器,MUL是Nios的全硬件乘法器)运算时间有所缩短,而使用用户指令对运算的加速效果相当明显,以上数据是使用函数hr_timer_milliseconds测试得到的。

结 语

  本文所设计的“基于Nios的掌纹鉴别系统”,虽然这只能算是一个掌纹鉴别系统的雏形,但是完全可以完整地实现掌纹鉴别功能。由于本设计基于Nios软核处理器,因此具有安装简单,使用方便的特点,用户使用并不需要任何特殊的技能或培训。另外,整个掌纹的采集与处理过程也将非常舒适与快速,增大了产品的适用范围。在设计过程中,将整个系统分为核心处理子系统、图像采集和存储子系统、通信子系统、显示子系统和供电子系统,尽量做到这些子系统可以进行独立或者部分独立的调试。由于采用这种设计思路,系统从硬件结构上相当灵活,因此该设计完全可以针对不同的具体应用场合加以定制和优化。各个子系统在硬件结构上是模块化的,而所有这些子系统的控制器全部集成在一片FPGA中,高集成度带来的不仅是成本下降,还有便利性和灵活性。Nios软核处理器的引入不仅使整个系统做到了真正的软硬件可裁减.更加把这种新的设计理念带入到嵌入式系统开发中。

  基于Nios的系统设计是传统嵌入式设计和FPGA设计的综合,而凸现Nios软核处理器的特性几乎全部需要HDL的支持。可使用IP的数量和HDL的造诣将直接决定系统的品质。在本设计中将两者相结台,对高速信号的处理和算法涉及到的大量运算采用VHDL来实现,而系统的总体控制及资源管理由Nios负责。在Ni0s为我们找到了高集成度与模块化设计理想结合的问时,本设计方案也给Nios提供了最佳的应用场合。

关键字:模块  鉴别  图像  函数 引用地址:基于Nios的掌纹鉴别系统设计与实现

上一篇:利用单芯片MCU提高照明系统能源效率
下一篇:基于嵌入式控制器的电站废水处理的控制系统

推荐阅读最新更新时间:2024-03-30 21:21

基于A5191HRT和AD421的HART协议通信模块的设计与实现
  引言   HART(Highway Addressable Remote Transducer,可寻址远程传感器高速通道)通信协议由美国Rose-mount公司于20世纪80年代中期推出,之后又进行了修订和增补,作为开放标准由HART通信基金会HCF向全世界发布,主要用于现场智能仪表和控制室系统间进行数字通信。由于兼容传统的4~20mA模拟系统的HART通信协议具有诸多优点,发展至今,它已被世界上三分之二以上的现场设备所采用,成为智能工业控制领域事实上的国际标准。   在研制某智能现场仪表的过程中,使用单片HART调制解调器A5191HRT和数模转换器AD421设计实现了其中的HART协议远程通信模块,具有高精度、低功耗、
[单片机]
基于A5191HRT和AD421的HART协议通信<font color='red'>模块</font>的设计与实现
Vicor 最新 48V 电源模块创新技术亮相ODCC 峰会
ODCC 峰会是中国主要的数据中心盛会,将领先的云计算及高性能计算专家齐聚一堂,共同讨论高级先进技术和行业挑战。在今年的活动中,Vicor 将展示其最新的 AC 及 HVDC 至 48V 和 48V 至负载的电源模块,这些模块为当今最具挑战性的数据中心电源问题提供了解决方案。 服务器机架电源需求随高级人工智能运算的加入而急剧增加。为此Vicor 开发了可降低配电损耗并提高效率的 48V 解决方案。 此外,Vicor 还将展示其双向 48V 至 12V 及稳压 48V 至 12V 模块的最新产品,包括新一代普及型 NBM2317 固定比率转换器和 DCM3717 稳压转换器(采用 37x17 毫米封装,支持高达 900W 的
[电源管理]
Vicor 最新 48V 电源<font color='red'>模块</font>创新技术亮相ODCC 峰会
基于多DSP的在线可重构数字图像并行处理系统设计
  随着多媒体 图像处理 应用的迅速发展,体积小、重量轻、结构灵活、处理能力强的嵌入式数字 图像处理 系统在工业、医学等方面都有越来越广泛的需求。实时性高、计算复杂、数据量大是 图像处理 系统面临的重大挑战。并行计算是提高处理速度最有效的技术之一,图像并行处理技术为提高图像处理效率提供了广阔的空间。图像并行处理包括并行算法和多处理器并行硬件系统,图像处理并行算法的执行效率依赖于多处理器系统的硬件结构。通常,一种并行结构只适合于一类并行算法的映射。   20世纪90年代至今,图像并行处理技术一直是图像处理领域研究的热点之一。参考文献分别对并行处理结构及其实现方法进行了探讨,提出了流水结构、分列并行等很有价值的硬件并行结构框架。目前,
[嵌入式]
基于多DSP的在线可重构数字<font color='red'>图像</font>并行处理系统设计
贸泽备货Laird Connectivity Sterling-LWB+ Wi-Fi与蓝牙模块 助力物联网应用
贸泽备货Laird Connectivity Sterling-LWB+ Wi-Fi与蓝牙模块 ,助力新一代物联网应用 2022年4月7日 – 专注于引入新品的全球半导体和电子元器件授权分销商贸泽电子 (Mouser Electronics) 即日起开始分销 Laird Connectivity的新款Sterling-LWB+模块。此Wi-Fi 4 (802.11b/g/n) 与蓝牙5.2低功耗器件专为下一代物联网 (IoT) 产品设计,如电池供电的医疗设备、工业物联网传感器 、耐用型手持设备及其他连接解决方案。 贸泽电子分销的 Laird Connectivity Sterling-LWB+模块采用英飞凌AIROC
[网络通信]
贸泽备货Laird Connectivity Sterling-LWB+ Wi-Fi与蓝牙<font color='red'>模块</font> 助力物联网应用
几种单片机的中断函数写法
写单片机程 序,中断是免不了的。我比较喜欢用C写单片机程序,简单而且可读性高,当然程序效率没有汇编的高。目前写过51单片机跟AVR单片机的C程序,最近在看 MSP430的书。用C写不同的单片机程序其实都是大同小异,因此能对不熟悉的单片机也能很快上手写程序。不过中断函数的写法,各个编译器往往都会有些差 别。 最早写的C程序是51单片机的,用的编译器自然是大名鼎鼎的keil c了。Keil的功能还是非常强劲的,不仅能编译,还有软件仿真调试与硬件调试的功能。由于条件简陋,没用过什么仿真器,一直都是靠软件仿真调试程序的。 Keil 中的中断函数一般格式如下: void 函数名() interrupt n using n
[单片机]
通信网络测试仪表中CAP软件模块的研究
1 引 言 通信网络测试仪中的信令分析,针对的是协议栈一系列的传输层和应用层协议。仪表协议分析的基础,要能够实现对所接收到的网络数据进行译码解析,并在此功能上进行更高级的统计追踪功能。在进行协议分析时,鉴于协议之间消息格式和处理机制的不同,以及软件模块化的实现要求,采取以单个协议进行模块封装的办法是更有效的,其好处在于能够忽略协议问功能和格式的细微差别,对单个协议的分析方法也能在很大程度上推广到其他协议。 本文研究的主要内容是CAP消息的分析,一方面描述如何根据协议标准中规定的协议消息结构进行解码,另一方面结合实际情况探讨CAP消息的统计及呼叫数据记录合成等功能。 2 CAP协议概述 智能网是通信技术和计算机技术相融合的经
[测试测量]
高频电源模块缓冲电路优化探讨
摘要:高频电源模块的噪声主要来自功率变换和输出整流滤波电路。ZVZCS PWM全桥变换器实现了开关管的软开关,但其输出整流二极管不是工作在软开关状态,输出整流二极管在换流时,变换器的副边存在寄生振荡。本文讨论其产生原因及抑制办法。 关键词:高频;尖峰;探讨 1 副边整流二极管的反向恢复过程     实际上已导通的二极管在突然加上反向电压的一段时间内,电流下降到零以后,它并不立刻停止导通,还处于反向低阻状态。此时在反向电压作用下,载流子进入复合过程,于是在反方向继续流过电流;当载流子复合完毕,反向电流才迅速衰减到零。这个阶段就是二极管的反向恢复过程,如图1所示。     在反向电流衰减过程中,电路产生强烈的过渡过程,它在
[电源管理]
高频电源<font color='red'>模块</font>缓冲电路优化探讨
Panasonic 蓝牙®5.0低能耗模块,IIoT和智能家居应用的理想选择
全球电子元器件与开发服务分销商e络盟宣布发售Panasonic PAN1780蓝牙®低功耗模块,这是一款基于Nordic nRF52840单芯片控制器的蓝牙®5.0低能耗(LE)模块。 该模块采用紧凑型设计,尺寸仅为15.6mm x 8.7mm x 2mm,且使用符合蓝牙®MESH规范协议栈的蓝牙5.0,是智慧城市基础设施中物联网设备、工业mesh网络或工业4.0环境中机器人应用的理想选择: · Cortex®M4F处理器、256kB RAM和内置1MB闪存消除了对外部处理器的需求,从而降低了复杂性,并节省了空间和成本。 · 超低电流消耗使该模块成为电池供电设备的理想选择。 · 高达8 dBm
[嵌入式]
Panasonic 蓝牙®5.0低能耗<font color='red'>模块</font>,IIoT和智能家居应用的理想选择
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
最新工业控制文章
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved