指纹的不变性和唯一性使指纹识别技术成为目前应用最广泛的身份验证。近年来随着最新信息处理技术的发展、算法理论的研究以及计算机硬件的高集成和低成本,指纹识别的可靠性不断提高,实用范围不断扩大。由于识别系统数据量较大且要求尽快传入上位机进行处理,所以合理设计数据传输通道成为设计的一个重点。
通用串行总线USB(Universal Serial Bus)是一种新型接口技术。它是由Intel、Microsoft等公司为解决日益增加的外设与有限的主板插槽与端口之间的矛盾而制定的一种串行通信标准。USB具有以下特点:(1)有较高的传输速率。USBl.1支持全速和低速两种方式,全速速率为12Mbps,低速速率为1.5Mbps;USB2.0除支持USBl.1的两种速度方式外,还增加了速率可达480Mbps的高速方式。(2)使用方便灵活。USB支持即插即用和热插拔,允许在任何时候连接和断开外设。当外设被连接时,系统会自动检测到外设并准备使用。(3)易于扩展。通过根集线器可携带127个设备真正实现多个外设共用一个接口。此外,USB还有可靠性高、成本低、功耗小等优点,倍受欢迎。
1 整体方案选择
由于指纹图像处理技术对实时性要求高、运算量要求大,所以采用通用的数字处理芯片。DSP的高速运算性能使其在数字信号的处理上有着独一无二的优势。但数字信号的数据量非常庞大,需要一种方便、高速的接口实现与PC机的接插。 本文给出一种基于DSP(TMS320VC5402)平台的低成本高速USB接口方案。它采用Philips公司的PDIUSBDl2接口芯片,实现DSP指纹图像采集处理与PC机的高速数据传输。本系统涵盖了图像采集、处理、存储、传输等数字图像处理技术,图1所示。
图1 硬件原理框架图
通过图像传感器获得指纹图像及数字化输出,将图像数据传递给中央处理芯片DSP。DSP对图像进行实时处理,如:滤波、图像的平滑锐化、二值化、特征点提取等,同时将处理结果通过USB输出到上位机。在整个指纹图像采集处理系统中,DSP主要有三个方面的作用:通过其I2C总线对OV6620的对比度、亮度、锐度等各项参数进行设置;对指纹图像进行数字处理;按照USB的规范应答,提供设备识别,固化PDIUSBDl2,与上位机通信。
2 系统硬件方案选择与设计
2.1 图像传感器
CMOS图像传感器是近几年发展较快的新型图像传感器,可以将像素阵列与外围支持电路集成在同一块芯片上,是一个完整的图像系统。与CCD产品相比较其功耗小、体积小、成本低。
在采集系统中,使用OV6620作为图像采集芯片。OV6620是Omni Vision公司开发的CMOS黑白图像采集芯片。该芯片将CMOS光感应核与外围支持电路集成在一起。输出的视频为黑白图像。技术参数:分辨率352x288,速度30帧/秒。
2.2 数字信号处理芯片
本系统中采用了TI公司推出的高性能数字信号处理器TMS320VC5402。其采用程序空间与数据空间完全独立的哈佛总线结构,指令的执行采用流水线结构,内部有一到多个处理内核,带有片上硬件乘法器,其指令执行速度最快为几十纳秒,处理能力为100MIPS。这些为DSP在高速大数据量的数据采集处理系统中提供了广阔的应用空间。片内共有8条总线(4条程序存储器总线、1条数据存储器总线和3条地址总线)、片上存储器和片上外围电路等硬件,有高度专业化的指令系统,具有功耗低、高度并行等优点。
2.3 USB接口芯片
世界上很多半导体公司参与了USB芯片的开发,形成了多种产品系列。如Intel 8*930AX/HX、Cypress FX2高速USB微控制器、National Semiconductor的USBN9602/9603。对于基于DSP平台的USB接口设计,综合考虑了几种方案之后,决定采用一个不带MCU内核的USB接口芯片PDIUSBDl2,再加上简单的外围电路和时序调整电路。主要因为其满足项目性能需求,且使用外接CPU,成本非常低。
PDIUSBDl2是Philips公司推出的一款特点突出的USB接口芯片。完全遵从USBl.1协议,其内部集成有串行接口引擎(SIE)、320字节多结构FIFO存储器、收发器(Transceiver)和电压调节器。它可以工作在5V或者3.3V的工作电压下;具有8位数据总线,且有完全自治的DMA传输操作。它还具有可控制的软件连接(SoftConnect)功能,可以保证在微控制器可靠初始化之后再连接上USB总线。多中断模式实现批量和同步传输,在批量和同步模式下可实现1MB/S的数据传输率。PDIUSBDl2高集成度、高可靠性和宽范围工作条件的特点,可以非常方便地兼容大部分DSP的工作环境。
3 软件设计
3.1 固件设计
固件编程(firmware programming)是USB数据传输系统中终端设备程序设计的重要部分,微处理器通过固件程序与计算机进行数据交换。由于采用不带MCU内核的USB接口芯片,所以关于USBl.1协议规范的实现都必须靠DSP(TMS320VC5402)控制PDIUSBDl2芯片完成:在DSP(TMS320VC5402)的平台上编写程序,以完成USBl.1规范所要求的标准请求及用户根据产品需要自己定义的请求。
当设备连接到主机后,主机通过给PDIUSBDl2的端点0发送包含标准USB请求的控制传输(即Setup包),PDIUSBDl2产生一个中断给MCU(1NT0),MCU通过读PDIUSBDl2的中断寄存器和最后一次传输状态寄存器来对每一个请求做出响应,并通过PDIUSBDl2的端点0回送请求信息。主机从返回的信息中读取描述数据(包括设备描述符、配置描述符、接口描述符、端点描述符、字符串描述符),分配和载入一个设备驱动程序并对设备进行配置。设备配置完成后,就可以使用配置中支持的端点传输数据。固件程序结构如图2所示。
图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通过I2C总线操作对OV6620进行设置,然后进入指纹图像采集阶段。在该阶段,TMS320VC5402处于空闲状态,CPLD占用数据总线,
将数据直接存储到图像RAM中。采集完一帧指纹图像后由CPLD发握手信号,通知DSP进人数据处理阶段。在该阶段,TMS320VC5402先将图像RAM中的数据分块搬运到用户RAM中,进行图像预处理、特征点提取等运算,最后通过USB将结果输出给上位机。上位机调出指纹数据库,并将提取的结果与指纹特征库中的数据进行比对,从而与库中特征指纹进行指纹匹配识别。
DSP算法具体如下:(1)预滤波。方向滤波:设计了一个水平模板,然后将水平模板旋转到所需增强的方向进行滤波。(2)二值化。背景分离:采用标准差阈值跟踪法,图像的指纹部分由黑白相间的纹理组成,灰度变化很大,具有较大的标准差,而背景部分灰度分布比较平坦,标准差小。因此计算以各点为中心的一组像素的标准差,当标准差大于某一门限时,就可以确定该点为前景,否则为背景。(3)计算方向图:采用基于法线向量的方法,其中还涉及到方向场的平滑锐化。(4)特征点提取:采用了脊线跟踪法,其基本思想是直接对图像进行脊线跟踪,在跟踪过程中检测特征点。
整个软件流程如图3所示。
图3 软件流程图