一、引言
人体的指纹由于具有长期不变性、稳定性和难于伪造等特点,已经成为现代生物识别技术的首选, 自动指纹识别系统(AFIS)是指集指纹图像的采集、识别并给出身份验证结果为一体的软硬件相结合的系统。目前,自动指纹识别系统可以分为两类:一类是用专门的硬件设备来采集指纹图像,然后将采集到的图像传送给上位机,利用上位机强大的运算能力和海量的指纹特征库,来实现指纹的识别。一类是将指纹的采集与识别在一个嵌入式系统中完成,这类系统通常是用DSP这类具有高速运算能力的器件来构建。由于嵌入式指纹识别系统存在价格低廉、使用灵活方便等优点,越来越受到人们的重视。本文的目的就是要搭建一款低成本的嵌入式指纹处理模块,使其具有独立的指纹图像采集与识别并给出识别结果的能力。
二、模块硬件组成
对于嵌入式指纹处理模块硬件的构建,考虑到整个模块所需实现的功能、成本和处理速度的要求,选用TI公司生产的DSP处理器TMS320VC5402作为整个模块的核心处理芯片,它是TI公司推出的一款性价比极高的DSP处理器,其内部包括4KW 的ROM,16KW 片内DARAM,2个定时器,4个外部中断,外部程序空间可扩展到1MW,并且它可工作在3种低功耗方式(IDLE1,IDLE2,IDLE3),能较好的满足本模块需要。指纹图像采集芯片选择FUJITSU公司推出的新一代固态指纹传感器MBF200。它是一款专为嵌入式系统设计的高性能、低功耗的电容指纹传感器。由于TMS320VC5402掉电不保存程序且一幅经MBF200采集的分辨率为256×300的指纹图像需要75KB存储空间,所以整个模块外扩了容量为256KW 的FLASH和SRAM 各一片用于存储整个系统的程序和指纹图像数据。为了提高模块的可扩展性和适用性,采用USB接口芯片CH375扩展了模块的USB接口,使模块具有了外挂海量存储器和与上位机进行通行的能力。由于TMS320VC5402的16根数据可以作为通用I/O口使用,采用两片8位的总线缓冲器74HC245来实现本模块的ID设置。此外,系统还选用一片Altera生产的全局逻辑控制器EPM3032AE来实现整个模块的逻辑控制。
系统的工作原理可描述如下:通过小键盘输入ID号码,如果用户输入的ID号正确,MBF200采集用户的指纹,利用DSP和CPLD将指纹图像存储到SRAM 中,在数据处理阶段,DSP将SRAM 中的数据分块取到其内部的16KW RAM 中作为指纹图像处理以及识别算法的临时数据,将处理结果与FLASH 中预先采集提取的特征指纹进行匹配,并用LCD显示识别结果。系统的原理框图如图1所示。
1、模块逻辑功能实现
模块逻辑部分主要是为整个系统提供片选信号和读写控制信号,它是整个模块正常工作的核心,本系统选用CPLD芯片EPM3032AE来完成该部分的功能。TMS320VC5402可供访问的存储器空间有3个:1MW 的程序存储空间、64KW的数据空间,64KW 的I/O空间,系统设计时将外扩的256KW的FLASH及SRAM 都映射到数据空间,这两者应分时占据数据空间的,所以访问不同存储器芯片时需要分别为它们安排选通信号,该选通信号可由DSP的数据空间选择信号/DS和TMS320VC5402的通用I/O口信号XF相“或”来实现,即FLASH的片选型号由/DS与XF相“或”产生,SRAM 的片选信号由DS#与XF的“非”相“或”产生。模块上电后,TMS320VC5402的XF引脚输出为高电平,此时由FLASH占用数据空间,“BootLoader”开始运行,Load完成后,编写程序使TMS320VC5402的XF引脚输出低电平使系统放弃FLASH 而选通SRAM,从而使SRAM 占用数据空问。
另外,我们将指纹传感器MBF200、USB接口芯片CH375、LCD 以及小键盘都映射到TMS320VC5402的I/O 空问,要在访问它们时不发生访问冲突,需要对对它们进行编址。采用DSP的数据线A15、A14、A13对映射到DSP的I/O空间外围设备进行编址,具体实现过程如下:在EPM3032AE中设计一个三.八译码器,A15、A14、A13作为输入端,其八个低电平有效的输出端作为各外围设备的片选使能信号,由于系统选用的MBF200、液晶SED1335F、CH375都具有一根地址线A0,用来在功能寄存器和数据寄存器之间切换,所以也需要将DSP的A0接入各外围芯片的A0,让它们分别占用两个地址位。模块中映射到I/O空间的各外围设备的地址如表1所示(在表中的第二栏中未列出的地址线A2.A12可以为任意状态)。在软件编程时,对I/O空间的相应地址的访问,就是对映射到I/O空间各种外围设备的访问,例如对I/O空间0x0000~0x1FFE(注意要保证地址位A0为低电平)的读写,就是对指纹传感器命令寄存器的读写。对于系统各个芯片的读写信号,CPLD 主要完成将TMS320VC5402的MOTOROLA格式的读写信号转化为INTEL格式的读写信号,如Flash及SRAM 的读信号通过DSP的/MSTRB与R/W 信号进行“或”运算得到,Flash及SRAM 的写信号通过DSP 的R/W 信号的非运算后再与/MSTRB进行或运算得到;同理将DSP的/IOSTRB 与R/W进行相类似的逻辑运算便可得到I/O 空间的读写信号。采用Altera公司的Maxplus II软件进行VHDL语言编程,可较为容易的实现该系统所需的逻辑功能。
功能/名称 | A15/A14/A13/A0状态 | I/O空间地址/区域 | 操作 |
MBF200命令寄存器 | 0\0\0\0 | 0x1000-0x1FFE(A0=0) | 8位可读写 |
MBF200数据寄存器 | 0\0\01 | 0x1001-0x1FFF(A0=1) | 8位可读写 |
LCD命令寄存器 | 0\01\0 | 0x3000-0x3FFE(A0=0) | 8位可读写 |
LCD数据寄存器 | 0\011 | 0x3001-0x3FFF(A0=0) | 8位可读写 |
CH375命令寄存器 | 01\0\0 | 0x5000-0x5FFE(A0=0) | 8位可读写 |
CH375数据寄存器 | 0111 | 0x5001-0x5FFF(A0=0) | 8位可读写 |
小键盘数据寄存器 | 10\0x | 0x5001-0x5FFF | 16位可读写 |
2、程序与数据空间的扩展
系统要访问的存储器有三个:TMS320VC5402 内部16KW 的DRAM,系统外扩的256KW 的FLASH和SRAM。对于本系统使用的DSP,其数据空间的寻址范围为64KW,而系统扩展的SRAM 为256KW,怎样对高地址的196KW 的数据空间进行访问, 借鉴TMS320VC5402程序空间分页寻址的方法,对数据空间进行分页寻址,方法如下:将SRAM的16根数据线(D0-D15)、低16位地址线(A0-A15)与TMS320VC5402对应的数据线、地址线直接相连,而将HD0-HD1通过寄存器GPIOCR编程设置成输出作为SRAM 的A16、A17的地址发生信号,即当HD0=0、HD1=0时访问数据空间的第一页,HD0=0、HD1=1时,访问数据空间的第二页,依次类推就把外扩的SRAM 分成容量为64KW 的四页。由于DSP访问其内部的16KW 的DRAM 时,外部地址线保持为高电平, 所以其内部的自带的16KWDRAM 占据了每一页的低16KW 的数据空间,这和程序空间的分页扩展是类似的,这样的数据空间地址分别为:0x4000~0xFFFF(HD1=0、HD0=0)、0x14000~0x1FFFF (HD1=0、HD0=I)、0x24000~0x2FFFF(HD1=1、HD1=0)、0x34000~0x3FFFF (HD1=1、HD1=1),在编程访问时必须首先配置HD0、HD1的相应状态,才能正
确对数据空间进行访问。至于FLASH芯片的与DSP的连接,由于系统运行时用不到FLASH 的高地址空间,所以可将它们的地址线、数据线对应连接就可以了。
3、指纹采集与识别部分硬件设计
该部分主要由TMS320VC5402和指纹传感器MBF200组成。MBF200提供三种接口:
(1)SPI:只需6条线就可以与带SPI接口的微处理器连接;
(2)USB:可作为标准的USB设备来使用;
(3)MCU:MBF200内置的标准8位微处理器总线。
本文采用了MBF200的MCU模式获取指纹图像。它与DSP和CPLD的硬件连接如下:传感器的8位数据线直接与TMS320VC5402 的低8位数据线相连,读写信号线由EPM3032AE控制(具体实现方法见本文逻辑控制部分),通过编程可将采集到的指纹图像数据直接存储到SRAM 四页中的任意一页或两页中, 由于SRAM 每页最多只能提供48KW 的数据空间,为了后续编写指纹识别程序的方便,编写程序设置MBF200的寄存器将采集图像数据控制在48KB以内,本文所采集的指纹图像像素为220×220,存于SRAM的第一页。另外,需要注意的是MBF200的两种起振方式:采用内部多谐振荡器起振,将MBF200的FSET 管脚通过者外接晶体振荡电路,使用外部时钟时通过XTAL1.XTAL2连接晶体电路来产生时钟信号。本文通过设置MBF200寄存器CTRLB的XTALSEL位为低采用第一种起振方式。指纹采集部分的硬件连接如图2所示。
图2 指纹采集部分硬件连接图