微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于USB与DSP的指纹识别系统的设计实现

基于USB与DSP的指纹识别系统的设计实现

时间:11-02 来源:互联网 点击:

芯片,所以关于USBl.1协议规范的实现都必须靠DSP(TMS320VC5402)控制PDIUSBDl2芯片完成:在DSP(TMS320VC5402)的平台上编写程序,以完成USBl.1规范所要求的标准请求及用户根据产品需要自己定义的请求。

当设备连接到主机后,主机通过给PDIUSBDl2的端点0发送包含标准USB请求的控制传输(即Setup包),PDIUSBDl2产生一个中断给MCU(1NT0),MCU通过读PDIUSBDl2的中断寄存器和最后一次传输状态寄存器来对每一个请求做出响应,并通过PDIUSBDl2的端点0回送请求信息。主机从返回的信息中读取描述数据(包括设备描述符、配置描述符、接口描述符、端点描述符、字符串描述符),分配和载入一个设备驱动程序并对设备进行配置。设备配置完成后,就可以使用配置中支持的端点传输数据。固件程序结构如图2所示。

3.2 设备驱动

在Win32系统中,把每一个设备都抽象为文件,此时的应用程序只需通过几个简单的文件操作APl函数,就可以实现与驱动程序中某个设备的通信。

PC机的驱动程序由Philips公司提供。用VC++6.0通过调用API函数,编写PC的应用程序。这样即可实现PC机对DSP(TMS320VC5402)指纹取像系统的控制以及图像的传输。主要使用的API函数是DeviceIOControl()、ReadFile()、WriteFile()。其中DeviceIOControl()用于PC(主机)向DSP图像采集系统发送请求;ReadFile()和WriteFile()分别用于从图像采集系统读出数据以及向图像采集系统写入数据。在设计过程中必须注意的问题是:由于USB接口是主从方式的接口,其一切传输过程都必须通过主机向外设发送请求后才可以开始,所以在使用ReadFile()、WriteFile()读写数据前,必须先通过DeviceIOControl()向图像采集系统发送请求。

3.3 指纹识别流程

系统上电时,TMS320VC5402通过12C总线操作对OV6620进行设置,然后进入指纹图像采集阶段。在该阶段,TMS320VC5402处于空闲状态,CPLD占用数据总线,

将数据直接存储到图像RAM中。采集完一帧指纹图像后由CPLD发握手信号,通知DSP进人数据处理阶段。在该阶段,TMS320VC5402先将图像RAM中的数据分块搬运到用户RAM中,进行图像预处理、特征点提取等运算,最后通过USB将结果输出给上位机。上位机调出指纹数据库,并将提取的结果与指纹特征库中的数据进行比对,从而与库中特征指纹进行指纹匹配识别。

DSP算法具体如下:(1)预滤波。方向滤波:设计了一个水平模板,然后将水平模板旋转到所需增强的方向进行滤波。(2)二值化。背景分离:采用标准差阈值跟踪法,图像的指纹部分由黑白相间的纹理组成,灰度变化很大,具有较大的标准差,而背景部分灰度分布比较平坦,标准差小。因此计算以各点为中心的一组像素的标准差,当标准差大于某一门限时,就可以确定该点为前景,否则为背景。(3)计算方向图:采用基于法线向量的方法,其中还涉及到方向场的平滑锐化。(4)特征点提取:采用了脊线跟踪法,其基本思想是直接对图像进行脊线跟踪,在跟踪过程中检测特征点。

整个软件流程如图3所示。

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

网站地图

Top