指纹图像采集器采集用户指纹图像,并将其转换为二进制数据输出,指纹图像的质量将直接影响系统的整体性能。指纹图像处理模块对指纹数据进行预处理、后处理,提取代表这些数据的特征,作为以后的比对模板登记到数据库,在匹配时,采集待鉴定用户指纹数据,提取特征后与数据库中的模板进行比对,决定两者是否匹配,然后做出“是或否”的判断。结果输出则根据前面指纹比对的情况,显示比对结果输出相应的显示控制信号。
3 自动指纹识别系统硬件设计
自动指纹识别系统是基于图像处理和模式识别理论的基础上设计的软件和硬件结合的系统,该系统是个对实时性要求较高的图像信号处理系统。根据指纹识别算法的要求与各个安全控制领域中应用的需求,系统硬件设计必须考虑以下条件:
① 系统需具有便捷的实时图像输入设备;
② 指纹图像数据量大,系统必须有处理大数据量的能力;
③ 识别算法复杂度相对较大,系统必须具备处理复杂运算的结构;
④ 算法识别过程运算量大,系统需具备快速运算的能力,满足实时性的要求;
⑤ 具有较大的图像数据存储空间;
⑥ 具有灵活方便的人机接口、通信等功能;
⑦ 对系统的体积、功耗、稳定性有严格的要求。
基于以上要求,采用了基于DSP处理器与CPLD的嵌入式系统设计方法。系统的整体架构如图2。
下面将对系统主要模块的核心元器件及其设计思路进行介绍。
3.1处理器子系统设计
系统核心处理器为美国德州仪器(TI)公司的高性能16bit定点DSP芯片TMS320VC5416,该款芯片具有良好的性能价格比,适应图像处理、通信等实时嵌入式应用的需要。它具有很高的灵活性和运行速度,使用改进的哈佛结构(1组程序存储器总线、3组数据存储器总线、4组地址总线),160MHz的最高运行频率、增强型CPU、40 位 ALU、128K x 16位片内 RAM存储器、16K x 16位片内 ROM存储器、低功耗特性(采用3.3V和1.6V的双电压供电,可工作在三种低功耗状态)、以及丰富的片内外设(包括三个McBSP、六信道DMA 控制器、一个 8/16 位主机端口接口及两个 16 位计时器、片内可编程PLL),为系统功能扩展提供了丰富的资源,能够很好的满足嵌入式自动指纹识别系统的要求。
3.2系统存储器设计
DSP的存储器由三个独立可选择空间组成:程序、数据和I/O空间,对外部存储器或I/O
的访问通过外部总线进行,独立的空间选择信号 、 和 允许进行物理上分开的空间选择。接口的外部ready信号和软件产生的等待状态,允许处理器与各种不同速度的存储器或低速的I/O设备相连,接口的保持模式使得外部设备能控制C5416的总线,这样外部设备就能访问程序、数据和I/O空间的资源。本系统采用的外部存储器方案是,选用型号为AM29LV400B的FLASH存储器存放需固化的程序代码与使用过程中需保存的用户指纹特征模板,选用IS61LV25616存储临时的指纹图像数据与使用频率高的常量。
3.2.1 AM29LV400B FLASH存储器
AM29LV400B存储器容量为256K×16bit,在线读写时间为55ns,满足系统启动引导程序时的7个等待周期的访问速度要求,可以达到系统要求存储的指纹特征模板(>512枚)与访问日志(1024条)以及实时性的要求,Am29LV400B具有以下主要特点:
① 支持单电源操作,可分为满负荷电压供电(2.7V~3.6V)和电压范围可调节(3.0V~3.6V)供电两种方式。满幅度电压供电方式主要用于电池供电的应用中,而电压范围可调节供电方式直接与3.3V的高性能DSP接口,简化了系统的电源要求。
② 最快的存取速度高达55ns,实时性好;
③ 灵活的块结构支持整片擦除、块擦除。。
④ 块保护功能,具有防止对任何区段进行编程或擦除的硬件保护机制。
⑤ 具有擦除暂停/擦除恢复功能。
⑥ Ready/Busy#管脚,可以通过硬件方法检测编程/擦除操作的状态。
3.2.2 IS61LV25616 SRAM存储器
该片SRAM存储器的存储容量为256K×16bit,可存储3枚以上指纹图像,低功耗,3.3V工作电压,访问速度可达8ns,其快速访问特性可满足C5416的160MHz的最高工作频率。
3.2.3 存储器设计
TMS320VC5416有23根地址线可以用来进行对程序空间寻址,可以直接对8M字的空间进行寻址。本系统中使用的SRAM和FLASH的存储总量为512K,所以只需使用20根地址线,利用高位地址A19来区分FLASH和SRAM,为了对存储器进行统一的逻辑控制,其片选、中断、复位、读写使能等逻辑将由CPLD完成。且由于本系统所使用的FLASH只能按32K进行寻址,所以将DSP地址线中低15位直接与FLASH中A0-A14相连,15位地址线其寻址空间刚好为32K,地址高3位通过CPLD来控制寻址。
3.3逻辑控制电路设计
系统采用CPLD(复杂可编程逻辑器件)作为接口和逻辑控制器件,内部集成地址发生器和与DSP的握手信号,主要完成整个系统的逻辑电路设计,如片选、中断、通用I/O的配置等,在此选用Altera公司的MAX3000系列中的EPM3128ATC100-10,主要是因为MAX300A系列是3.3V低成本的CPLD,结构基本与MAX7000系列基本一样,且不存在混压的问题,而且其可擦写次数可达上万次,方便程序调试,且MAX300A系列功耗低,适合于嵌入式系统。选用的EPM3218ATC100-10具有128个宏单元,80用户I/O管脚数,具有2500个可用门和ISP,管脚间延迟快至10ns,计数器速度可高达100MHz,可以很好的满足系统的需要。
3.4指纹采集电路
FPS200指纹传感器是一种触摸式CMOS传感器件,其传感区域为1.28cm×1.50cm,256×300传感阵列,500dpi分辨率,内置有8位模数转换器,可直接输出数字化图像信号,用8位表征一个像素点,一幅指纹图像需要75KB的存储空间,且有微处理器总线、SPI总线和USB总线三种接口模式可供选择,并可以方便的定义所需传感阵列的区域,工作电压为3.3V~5V。本指纹鉴定系统采用了传感器的微处理器总线(MCU)模式,传感器的8位数据线由CPLD将指纹图像直接存到SRAM中,并在采集完一幅图像后通知DSP数据准备好,其逻辑控制部分也接入CPLD由其控制。
指纹图像采集流程大致如下:先初始化FPS200各寄存器,向相应的寄存器写入控制字,设置采集指纹的参数,主要是设置DCR、DTR、PGC 这几个寄存器;查询等待,当指纹被FPS200自动采集进入数据寄存器时,就把指纹数据存入到指定的存储空间。图3即为该嵌入式系统指纹采集部分采得的两幅指纹图像。图像质量较好,完全能满足后续指纹算法的要求。
3.5通信接口电路
本系统使用MAX3111E连接DSP与PC机,MAX3111E是一种兼容于SPI/MICROWIRE接口的UART,将全功能通用异步收发器(UART)与带有±15kV ESD保护的2收/2发RS-232收发器、电荷泵电容集成于单片28脚IC内,适用于小尺寸、低成本、低功耗等应用。在CPLD中通过VHDL编程控制分频比可获得通用的300baud~230kbaud的波特率。MAX3111E内部UART与RS232收发器能够独立工作。
TMS320VC5416 DSP提供了3个高速、全双工的McBSP缓冲串口,并且可以工作在与SPI模式协议兼容的时钟停止模式下,很容易实现与MAX3111E接口连接.McBSP主要包括数据通路和控制通路两部分,通过7个引脚与外部器件相连,接口信号包括与接收数据总线相连的接收引脚DR;与McBSP相连发送数据的发送引脚DX;发送时钟引脚CLKX;接收时钟引脚CLKR;发送帧同步FSX;接收帧同步FSR。
3.6人机接口电路
人机接口主要包括两个部分:小键盘与LCD显示器。键盘和LCD都是I/O器件,分别占用两个I/O空间的地址,通过对地址的译码产生使能控制LCD和键盘。键盘上有16个按键,用10kΩ电阻拉高,组成4*4的键盘阵列,输出的逻辑电平与CPLD的I/O相连,通过编写VHDL程序来控制键值的读入。LCD用于显示界面信息,本系统使用YXD-12864B3图形液晶显示模块,由CPLD控制与DSP通信和相应信息的显示。
4 自动指纹识别系统软件设计
自动指纹识别系统的最终目标是要实现一个完整、独立的系统,同时还要作为嵌入式的指纹识别模块结合PC机或单片机进行二次开发使用,以适应不同的应用场合的需要。系统软件设计的基本任务是要完成对指纹图像的采集、传输、处理及控制等的程序实现。各部分程序实现后,还需将它们有机的结合起来,方能实现系统所需的功能。本文对底层软件系统的总体设计框架如图4所示。