微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于TMS320DM6437的虹膜采集和识别系统设计

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

时间:10-22 来源:互联网 点击:

功能即可满足需要。

2.3 存储器模块

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

2.4 硬件预设

在运行整个视频采集系统之前,需要对芯片的引脚进行定义,根据需求来决定芯片各引脚的作用和输出的信号类型。芯片引脚定义通过设置芯片内部PINMUX1、PINMUX2寄存器来确定,所以首先需要运行芯片初始化函数。然后进行前端处理,用来配置CCDC为10位Raw Bayer模式接口,接收来自数字摄像头的裸数据,同时定义了虹膜图像的分辨率为720×576。接着设置CCDC的视频输出分辨率以及数据路径流向预览器。设置接口接收来自CC—DC的10位Raw Bayer模式图像数据,在缓冲器接口模块中选择图像数据流为外部存储器DDR2,指定图像存储地址和偏移地址。继而通过I2C总线来配置CMOS摄像头,需要对PLL设置寄存器进行配置,设置好的时钟信号则作为像素输出时钟使用。还需要设置图像格式寄存器和一些控制寄存器,用于模拟信号和数字信号的增益、黑电平校正和数字偏移的更正。这些寄存器的设置可以使我们得到更理想的图像。

最后进行后端处理,用来配置视频处理后端(VPBE)。VPBE中的图像存储器读取地址就是VPFE中的图像存储地址。设置输出信号为NTSC制的复合视频信号(CVBS信号)。在虹膜采集系统中对摄像头的分辨率设置为720×576,观察采集到的图像,帧数稳定、色彩均衡,能够满足要求。当需要改变分辨率的时候,只需改变程序中相应的寄存器设置,硬件无需变更,降低了开发成本。

3 系统软件设计

在本系统中,片上的软件有:图像采集驱动程序、Codec Engine应用软件和网络模块(NDK)软件程序。总体框架图如图2所示。

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

3.1 图像采集驱动程序

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

紧接上文步骤,DSP/BIOS启动图像处理主线程,然后主线程使用FVID的API函数获取传感器发来的图像。接着用FVID_crcat函数创建通道,返回句柄,将其作为函数FVID_control的参数,根据不同的命令字符串对接口进行配置。下一步使用FVID_alloc和FVID_queue两个函数向驱动申请3个数据帧,编入buffer队列。然后用FVID_dequeue函数释放队列中的首个buffer,作为FVID_exchange函数的起始参数。之后进入while循环,利用FVID_exchange函数实现图像数据的实时更新。

3.2 Codec Engine应用软件

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/Red Hat Enterprise Linux 3 (SMP)

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

3.3 网络模块软件程序

本系统采用C6000系列DSP的官方网络开发套件NDK。它基于TCP/IP协议,网络接口较为丰富,使用灵活方便。各部分模块名称以及功能如表2所列。

NDK由5大模块组成,其各种网络功能的实现都利用了Socket接口。在本系统

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top