基于DSP的虹膜采集和识别系统的设计

时间:2022-05-01 03:41:18

基于DSP的虹膜采集和识别系统的设计

摘 要

虹膜识别技术被认为是最有前途的生物认证技术之一,并且已经广泛应用于金融、电子商务、国防等尖端领域。本课题基于TI公司的TMS320DM6437设计了一款实时的虹膜采集和识别平台,介绍了系统的框架,并分析了相关的软件设计,如Codec Engine软件框架和网络传输。

【关键词】虹膜识别 TMS320DM6437 Codec Engine

1 系统整体简介

该系统通过CMOS摄像头采集人眼虹膜图像,解码后交由TMS320DM6437进行处理,然后图像处理子系统调用算法处理,继而把处理结果传输给PC。系统主要由四个部分组成:虹膜图像采集、虹膜图像处理、存储器、以及数据传输部分。CMOS图像传感器负责采集虹膜图像,采集的数据由CPLD分配地址存储在RAM中;当一帧图像采集完毕后,CPLD产生外部中断信号,将存储在SRAM中的字节位图拷贝至SDRAM等待DSP处理。采用闪存存储程序代码和虹膜特征库。整个系统中,DSP要完成数字图像处理工作以及控制其他外部设备。CPLD主要是来实现系统的控制逻辑。

2 主要硬件简介

2.1 核心处理器

系统采取TMS320DM6437数字信号处理器作为核心处理器,它是TI公司推出的主频600MHz、32位定点DSP达芬奇技术的处理器,采用2级CaChe存储器体系结构,片上具有64通道增强型DMA控制器EDMA,有利于图像数据的高效传输和格式变换。它有8个并行处理单元,采用甚长指令字结构体系,有强大的处理能力。它还集成了一些外设接口,包括图像处理子系统、以太网接口、I2C接口、DDR2接口和EMIF接口等。

2.2 网络模块

根据7层OSI网络模型的定义,网络接口工作在其物理层和数据链路层。在DM6437片上带有EMAC\MDIO接口,即提供数据链路层控制,所以选择网卡芯片时只需要有物理层相关功能即可满足需要。

2.3 存储器模块

系统存储主要依靠DDR2存储器,它拥有两倍于DDR内存的预读取能力,也就是DDR2内存每个时钟能够以4倍于外部总线的速度读\写数据,并且能以内部控制总线4倍的速度运行。采用了专用的DDR2存储控制器接口拓展了64MB的DDR2 SDRAM,为图像处理应用提供了高吞吐率、高容量存储带宽,而且可以继续根据需要扩展到256MB。

2.4 硬件预设

在运行整个视频采集系统之前,需要对芯片的管脚进行定义,根据需求来决定芯片各管脚的作用和输出的信号类型。然后进行前端处理,用来配置CCDC为10-bit Raw Bayer模式接口,接收来自数字摄像头的裸数据,同时定义了虹膜图像的分辨率为720x576。接着设置CCDC的视频输出分辨率以及数据路径流向预览器。设置接口接受来自CC-DC的10-bit Raw Bayer模式图像数据,在缓冲器接口模块中选择图像数据流为外部存储器DDR2,指定图像存储地址和偏移地址。最后进行后端处理,在虹膜采集系统中对摄像头的分辨率设置为720x576,采集到的图像帧数稳定、色彩均衡,能够满足要求。

3 系统软件设计

在本系统中,片上的软件有:图像处理驱动程序开发、Codec Engine应用软件和网络模块(NDK)的程序软件。

将系统上电执行初始化,运行到main函数,然后对相关寄存器的复用引脚和外设接口等进行配置。芯片工作后根据main函数的设置启动任务线程。Main函数返回后,由DSP\BIOS对程序控制进程进行调度,包括内存管理、中断处理和任务管理等。本系统包括PreviewTask和TskNdkStackTest两个静态配置的任务线程,前者负责对图像处理驱动模块和Codec Engine框架进行初始化,实时获取虹膜图像、处理算法的执行还有最终结果的输出,是整个系统的主线程;后者负责网络模块的运行。

3.1 图像采集驱动软件

驱动软件是程序和硬件之间的桥梁,是软件设计中不可或缺的一部分。该驱动程序主要是用于前端的图像采集端,后端则将处理结果通过网络传输至PC。TI公司开发了专门的驱动接口函数,函数名均以“FVID”为默认字头。

启动图像处理主线程,紧接着用FVID_creat函数创建通道,返回句柄。然后使用FVID_alloc和FVID_queue两个函数向驱动申请3个数据帧,编入buffer队列。继而用FVID_dequeue函数释放队列中的首个buffer,作为FVID_exchange函数的起始参数。最终进入while循环,利用FVID_exchange函数实现图像数据的实时更新。

3.2 Codec Engine 软件程序

该软件是TI公司为达芬奇系列DSP设计专门推出的一个标准软件框架,能够极大的简化软件人员的工作量。它是介于应用层和信号处理层之间的软件模块。它需要和以下软件模块和工具配合使用:

Framework Components 1.20.02 xDAIS 5.21 /XDC Tools 2.93.01 /C6x Code Generation Tools version 6.0.8 /DSP/BIOS 5.31.05 /MontaVista Linux v4.0

使用Codec Engine软件,首先使用初始化函数CERuntime_init(),然后采用Core Engine APIs创建Engine对象并调试。继而通过VISA接口创建算法对象,通过不同的数据模式和接口函数调用符合XDM标准的算法库。

3.3 网络传输软件程序

系统采用C6000系列官方网络开发套件NDK。它基于TCP/IP协议,网络接口丰富,使用灵活方便。

网络工具模块程序利用NDK为系统设置一个IP地址,在网页窗口输入DSP的网口IP地址,进入DSP端的HTTP服务器,从而实现远程实时监控。用户可以通过PC端的软件给DSP发送控制指令来实现不同操作。

作者单位

太原科技大学电子信息工程学院 山西省太原市 030024

上一篇:多普勒雷达资料三维变分直接同化方法研究 下一篇:浅论完善楼宇自动化控制系统设计