本帖最后由 jie4567 于 2010-8-19 17:24 编辑
嵌入式指纹处理模块设计与实现
一、引言
人体的指纹由于具有长期不变性、稳定性和难于伪造等特点,已经成为现代生物识别技术的首选,自动指纹识别系统(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语言编程,可较为容易的实现该系统所需的逻辑功能。
表1 映射到I/O空间的外围设备编址
| 功能/名称
| 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
| |
|