APP下载

指纹识别系统的一种低功耗实现方法与应用

2011-06-07张金刚林喜荣戴晓清李建荣

电视技术 2011年17期
关键词:指纹识别低功耗按键

张金刚,林喜荣,戴晓清,李建荣

(1.清华大学 深圳研究生院,广东 深圳 518055;2.广东省阳江市纳安科技有限公司,广东 阳江 529500)

0 引言

随着半导体工艺的进步,指纹图像的采集变得越来越容易,这就加快了指纹识别系统的应用和推广。目前指纹识别系统主要采用具有高速数据运算能力的DSP或者基于ARM核的处理器芯片来完成算法处理和识别,高性能芯片的应用不可避免地将系统的整体功耗限制在了一定的水平上,影响了系统在需要电池供电的便携式设备中的应用。因此,在保证指纹识别系统高效、准确的基础上,大幅降低系统功耗将会大大增加系统的应用范围及在电池供电下的连续使用时间,解决指纹识别系统推广和普及的一个技术瓶颈[1-4]。

本文提出一种双控制核心的系统架构来实现指纹识别系统的高性能和低功耗之间的矛盾,以基于ARM核的ML67Q5250实现指纹采集、图像处理以及识别算法,以超低功耗的MSP430F149的单片机[5-6]控制外围设备,保证系统在待机状态下的低功耗。

1 系统硬件结构设计

1.1 指纹处理与认证芯片ML67Q5250

ML67Q5250是日本冲电气(OKI)公司开发的一款指纹处理与认证专用芯片。该芯片采用ARM7TDMI核心,既具有强大的运算能力,也具备ARM系列丰富的控制功能。它的主要性能特点及优势如下:

1)32位RISC CPU(ARM7TDMI),时钟频率可编程为1 MHz,6 MHz,16 MHz,32 MHz。

2)具有16 kbyte片内RAM供CPU运行使用,内部集成64 kbyte程序ROM。

3)内部集成指纹识别加速器,在32 MHz时钟下,1∶1认证时间小于0.8 s。

4)内置JTAG接口,方便在线调试。

5)供电电压3.3 V,内核工作电压2.5 V,工作电流100 mA,待机电流30 μA。

6)支持多种接口,具有2个全速SPI通道,1个全双工通用异步收发器SIO(UART),一个8位同步串行接口SSIO,1个USB2.0全速设备控制器,可以连接多种划擦式和面接触式指纹传感器。

1.2 外设主控芯片MSP430F149

MSP430F149[5]是TI公司开发的一款具备超低功耗的16位微控制器,具有5级节能模式。它的主要性能特点及优势如下:

1)强大的处理能力。16位RISC单片机,在8 MHz晶体驱动下,实现125 ns的指令周期。

2)灵活的时钟系统。I/O和CPU采用不用的时钟系统,高速时钟(MCLK)满足CPU高速运行,低速时钟(ACLK,SMCLK)满足低速外设及低功耗需求。

3)超低功耗。供电范围1.8~3.6 V,在活动模式下功耗为200 μA@1 MHz,2.2 V,待机模式下功耗为0.6 μA。

4)丰富的片上外围模块。包括看门狗(WDT)、定时器A、定时器B、基本定时器、2个通用异步串口收发器、1个12位A/D、16个可实现方向控制及中断功能的并行输入输出端口等,可以满足对多种外设的支持。

1.3 系统结构设计

系统结构如图1所示,分成指纹识别模块和外设主控系统这2个独立的模块。指纹识别模块以ML67Q5250为主控中心可以实现指纹图像的采集、预处理、特征提取和匹配等指纹识别的全部功能;MSP430F149作为外设主控中心负责系统的输入、输出、存储及执行机构。2个功能模块通过改进的SPI协议进行通信,ML67Q5250将指纹识别的结果发送给MSP430F149,MSP430F149再将指纹识别结果转化为对执行机构的控制,不同的执行机构接口可以实现多种应用。如果将电机作为执行机构可以实现指纹锁、指纹保险箱等,如果将指纹识别结果作为加密密钥,则可以实现指纹文档加密的功能等。

2 系统主要功能模块设计

2.1 指纹识别模块

ML67Q5250具有多种接口,可以兼容多种指纹传感器,在程序设计上,针对不同类型的传感器,需要开发相应的不同驱动程序。驱动程序的主要工作包括初始化传感器、控制传感器采集指纹图像、将图像转化为ML67Q5250要求的标准格式,最后将数据传送给ML67Q5250。

实验中,为了兼容多种传感器,系统设计了一个集成接口,如图2所示,可以在不更改硬件结构的基础上同时兼容4种传感器,分别是美国AuthenTec公司生产的划擦式电容传感器AES2510,面接触式电容传感器AES3400和AFS8600,以及瑞典FingerPrints公司推出的面接触式电容传感器FPC1011C。

为了方便开发不同传感器驱动及系统扩展的需求,指纹识别模块硬件结构及程序架构采用了分层及模组化设计,如图3所示。

图3中,传感器驱动是指纹图像传感器的驱动,需要根据不同的传感器编写;指纹硬件加速驱动主要实现从指纹图像生成模板及指纹特征模板匹配的功能;指纹认证引擎提供了指纹认证的方案,实现指纹的注册、认证和删除等功能。具体实现功能包括:

1)初始化必要的硬件设备、初始化指纹模块驱动库。

2)进入主状态机循环,如图4所示。

3)响应MSP430的控制信号,完成主状态机循环的状态切换。

4)输出指示状态及结果给MSP430。

2.2 显示功能模块

2.2.1 液晶基础驱动程序

显示功能的实现采用一块128×64的点阵液晶屏(LCD)与MSP430F149通过6800总线连接。液晶的驱动及显示控制采用分层设计思想,如图5所示。

LCD基础驱动程序由3个功能层组成,其中驱动层的任务在于根据实际的硬件连接对使用到的端口进行定义及配置,并负责MSP430F149与液晶模块进行数据传输的任务,包括初始化模块、读写控制指令、写数据、读数据、LCD复位等子函数功能;功能函数层提供了供用户应用程序中调用的液晶显示驱动的API接口函数,如写ASCII字符、写汉字字符、删除字符、画特殊符号等功能函数;应用层可以根据具体的应用环境调用API接口函数编写相应的用户程序,如本系统的人机交互多级菜单界面就在该层中编写。

2.2.2 人机交互多级菜单界面

人机交互设计的重点在于界面的多级显示、滚屏、光标的管理以及参数的交互设置及保存等,这些功能主要通过3个控制按键(向上、向下、确定)来实现。

滚屏功能的实现采用了一种“序标设计法”,设置了3 个序号标志量 First_Index,Active_Index,Temp_Index,其中First_Index指示当前处在显示屏中最前面的菜单项序号,Active_Index指示当前指向的菜单项,即当前活动的菜单项序号,Temp_Index是一个中间变量,作用在于当菜单项过多,超出一屏能显示的范围时,能滚动显示多出菜单项。

多级菜单的实现采用了一种层标设计法,设置了层标志量Floor,初始值为0,根据菜单的级数加1或减1,再结合Active_Index标志量便可以准确进入相应的子菜单项,从而能够实现多级显示。

参数的交互设置及保存方法是系统在内存中的特定区域开辟了一块缓冲区,用来存放参量数据。当更改参量值时,LCD从此缓冲区读取数据到LCD的显示RAM中,同时MCU将参量值保存到存储系统E2PROM对应的地址中去;当需要显示参量值时,MCU将E2PROM中的数据读出到缓冲区中,再被LCD读取并显示出来。

2.2.3 小结

基于分层设计思想的液晶基础驱动架构只须更改底层驱动的配置文件,功能函数层和应用层不用任何改动,就可以移植到不同的LCD上;基于序标和层标设计法的多级菜单可以轻松扩展到任意级,便可满足不同实际应用系统的使用。

2.3 键盘输入模块

为满足不同应用场合的需求及系统扩展的要求,键盘输入系统要求能输入阿拉伯数字、26个英文字母及简单符号等功能,为节省按键数量,系统模拟手机键盘的输入方式,采用数字和字母复合输入,如图6所示,右下角的“*”号键为输入法切换键,可以切换数字或字母输入方式。

数字输入方式下每个按键代表一个数字。字母输入方式下,每个按键代表3~4个字母,需要切换显示,具体的功能分析如下:

1)首次按下按键,显示该按键对应的第1个字母。

2)在一定时间内连续第2次按下按键,切换成该按键对应的第2个字母。

3)在一定时间内连续第3次按下按键,切换成该按键对应的第3个字母,直到该按键对应字母全部切换完,然后从头开始。

4)超出一定的时间间隔再按下相同按键,则保持当前字母显示,光标切换到下一个位置开始新一个字母显示。

图6 复合键盘结构

5)2次分别按下不同按键,则保持第1次按键字母显示,光标切换到下一个位置,开始第2次按键所代表字母的显示。

6)长按功能,当一个按键按住不放超过一定时间则显示该按键对应的数字。

通过分析按键按下所产生的电平图如图7所示,设置相应的标志量及定时器可以实现上述功能。完成一次按键操作的电平变化是由高到低,再由低到高,可设置标志量KEYEVENT标志此事件,完成上述的第1项功能;在按键按下的瞬间,电平由高变低,此时启动定时器TIM⁃ER0,并设置标志量Key_Down记录此事件,定时器TIM⁃ER0每隔20 ms监测一次按键值。若超过1 s(TIMER⁃OUT0)按键还处于按下状态,则判断按键为“长按”,完成上述的第6项功能;若1 s的时间内按键抬起,则此时停止定时器TIMER0,开启定时器TIMER1,等待下一次按键的按下。若超过0.75 s(TIMEROUT1)无按键按下,则按上述第4项功能实现输入及显示;若在0.75 s内监测到有第2次按键按下,若2次按键值不同,则按上述第5项功能实现输入及显示,若2次按键值相同,则按上述第2、第3项功能实现输入及显示。至此完成按键字母输入方式的全部功能,且TIMEROUT0和TIMEROUT1值可以根据具体应用情况具体设置,满足实际应用情况,实验测试该方法实现的按键输入稳定准确,符合多数用户的使用习惯。

图7 按键电平分析图

3 系统实例应用及测试总结

采用分层及分模块设计的程序结构使得本系统方便针对不同应用环境扩展相应功能,在实例中,写入指纹门锁控制程序,执行机构配备为微型减速直流电机,即可模拟指纹门锁的工作状况,并可进行相应的功耗测试。

在用户注册的过程中,在不开启液晶屏背光的情况下,根据耗电量的不同,将注册过程分成系统休眠环节、启动等待注册环节、采集指纹环节和注册成功环节,分别用HI,WI,CI,SI代表各环节的电流值,测试数据如表1所示。

在用户验证过程中,在不开启液晶屏背光的情况下,根据耗电量的不同,将验证环节分成系统休眠环节、启动等待验证环节、采集指纹环节、验证成功电机转动环节,分别用HI2,WI2,CI2,SI2代表各环节的电流值,测试数据如表2所示。

表1 用户注册各环节电流值

表2 用户验证各环节电流值

在上述过程中若开启液晶屏背光,则电流值会增加55~60 mA。

在不开启液晶背光的情况下,以每次开锁耗时6 s,每天开锁6次计算,该指纹识别门锁系统一天的耗电量约为1.669 mA·h。用普通5号干电池供电,1节电量以1 500 mA·h计算,1节干电池可支持指纹系统运行898天,近两年半的时间。

若开锁时开启液晶背光,还是以每次开锁耗时6 s,每天开锁6次计算,该指纹识别门锁系统一天的耗电量约为2.244 mA·h。用普通5号干电池供电,1节电量以1 500 mA·h计算,1节干电池可支持指纹系统运行668天,近22个月的时间。

从实验结果可以看出,双控制核心的系统架构极大降低了系统在待机状态下的电流消耗,同时在指纹采集、处理和识别的过程中,减少了ML67Q5250对外设的控制,而将控制功能转移到功耗更低的MSP430中,使得指纹认证处理的电流消耗进一步降低,从而极大延长了电池供电指纹识别系统的使用时间。

[1]KUCHEN M.Models for fingerprint pattern formation[J].Forensic Science International,2007(171):85-96.

[2]林喜荣,潘鹏,于政涛,等.一种基于DSP技术的指纹鉴别系统的实验研究[EB/OL].[2010-01-15].http://cacp.ilib.cn/p-h044085~263549~1.html.

[3]祝军生.基于ARM的自动指纹识别系统的设计[J].电子设计应用,2008(10):81-84.

[4]王新升,林喜荣,戴晓清,等.新型指纹识别芯片的原理及应用[J].电视技术,2009,33(S2):217-219.

[5]费文坤,陶维青.基于MSP430F149单片机的人机界面设计[J].微计算机信息,2009,25(1-2):116-118.

[6]沈建华,杨艳琴.MSP430系列超低功耗单片机原理与系统设计[M].北京:北京航空航天大学出版社,2008.

猜你喜欢

指纹识别低功耗按键
一种高速低功耗比较器设计
基于有限状态机的按键检测程序设计
基于单片机指纹识别电子寄存柜设计
一种用于6LoWPAN的低功耗路由协议
指纹识别技术综述
一种多方向导光按键结构设计
基于大容量指纹识别的实时身份认证系统
基于线阵CCD的指纹识别实验
ADI推出三款超低功耗多通道ADC
IDT针对下一代无线通信推出低功耗IQ调制器