張金剛,林喜榮,戴曉清,李建榮
(1.清華大學(xué) 深圳研究生院,廣東 深圳 518055;2.廣東省陽(yáng)江市納安科技有限公司,廣東 陽(yáng)江 529500)
隨著半導(dǎo)體工藝的進(jìn)步,指紋圖像的采集變得越來(lái)越容易,這就加快了指紋識(shí)別系統(tǒng)的應(yīng)用和推廣。目前指紋識(shí)別系統(tǒng)主要采用具有高速數(shù)據(jù)運(yùn)算能力的DSP或者基于ARM核的處理器芯片來(lái)完成算法處理和識(shí)別,高性能芯片的應(yīng)用不可避免地將系統(tǒng)的整體功耗限制在了一定的水平上,影響了系統(tǒng)在需要電池供電的便攜式設(shè)備中的應(yīng)用。因此,在保證指紋識(shí)別系統(tǒng)高效、準(zhǔn)確的基礎(chǔ)上,大幅降低系統(tǒng)功耗將會(huì)大大增加系統(tǒng)的應(yīng)用范圍及在電池供電下的連續(xù)使用時(shí)間,解決指紋識(shí)別系統(tǒng)推廣和普及的一個(gè)技術(shù)瓶頸[1-4]。
本文提出一種雙控制核心的系統(tǒng)架構(gòu)來(lái)實(shí)現(xiàn)指紋識(shí)別系統(tǒng)的高性能和低功耗之間的矛盾,以基于ARM核的ML67Q5250實(shí)現(xiàn)指紋采集、圖像處理以及識(shí)別算法,以超低功耗的MSP430F149的單片機(jī)[5-6]控制外圍設(shè)備,保證系統(tǒng)在待機(jī)狀態(tài)下的低功耗。
ML67Q5250是日本沖電氣(OKI)公司開(kāi)發(fā)的一款指紋處理與認(rèn)證專(zhuān)用芯片。該芯片采用ARM7TDMI核心,既具有強(qiáng)大的運(yùn)算能力,也具備ARM系列豐富的控制功能。它的主要性能特點(diǎn)及優(yōu)勢(shì)如下:
1)32位RISC CPU(ARM7TDMI),時(shí)鐘頻率可編程為1 MHz,6 MHz,16 MHz,32 MHz。
2)具有16 kbyte片內(nèi)RAM供CPU運(yùn)行使用,內(nèi)部集成64 kbyte程序ROM。
3)內(nèi)部集成指紋識(shí)別加速器,在32 MHz時(shí)鐘下,1∶1認(rèn)證時(shí)間小于0.8 s。
4)內(nèi)置JTAG接口,方便在線調(diào)試。
5)供電電壓3.3 V,內(nèi)核工作電壓2.5 V,工作電流100 mA,待機(jī)電流30 μA。
6)支持多種接口,具有2個(gè)全速SPI通道,1個(gè)全雙工通用異步收發(fā)器SIO(UART),一個(gè)8位同步串行接口SSIO,1個(gè)USB2.0全速設(shè)備控制器,可以連接多種劃擦式和面接觸式指紋傳感器。
MSP430F149[5]是TI公司開(kāi)發(fā)的一款具備超低功耗的16位微控制器,具有5級(jí)節(jié)能模式。它的主要性能特點(diǎn)及優(yōu)勢(shì)如下:
1)強(qiáng)大的處理能力。16位RISC單片機(jī),在8 MHz晶體驅(qū)動(dòng)下,實(shí)現(xiàn)125 ns的指令周期。
2)靈活的時(shí)鐘系統(tǒng)。I/O和CPU采用不用的時(shí)鐘系統(tǒng),高速時(shí)鐘(MCLK)滿(mǎn)足CPU高速運(yùn)行,低速時(shí)鐘(ACLK,SMCLK)滿(mǎn)足低速外設(shè)及低功耗需求。
3)超低功耗。供電范圍1.8~3.6 V,在活動(dòng)模式下功耗為200 μA@1 MHz,2.2 V,待機(jī)模式下功耗為0.6 μA。
4)豐富的片上外圍模塊。包括看門(mén)狗(WDT)、定時(shí)器A、定時(shí)器B、基本定時(shí)器、2個(gè)通用異步串口收發(fā)器、1個(gè)12位A/D、16個(gè)可實(shí)現(xiàn)方向控制及中斷功能的并行輸入輸出端口等,可以滿(mǎn)足對(duì)多種外設(shè)的支持。
系統(tǒng)結(jié)構(gòu)如圖1所示,分成指紋識(shí)別模塊和外設(shè)主控系統(tǒng)這2個(gè)獨(dú)立的模塊。指紋識(shí)別模塊以ML67Q5250為主控中心可以實(shí)現(xiàn)指紋圖像的采集、預(yù)處理、特征提取和匹配等指紋識(shí)別的全部功能;MSP430F149作為外設(shè)主控中心負(fù)責(zé)系統(tǒng)的輸入、輸出、存儲(chǔ)及執(zhí)行機(jī)構(gòu)。2個(gè)功能模塊通過(guò)改進(jìn)的SPI協(xié)議進(jìn)行通信,ML67Q5250將指紋識(shí)別的結(jié)果發(fā)送給MSP430F149,MSP430F149再將指紋識(shí)別結(jié)果轉(zhuǎn)化為對(duì)執(zhí)行機(jī)構(gòu)的控制,不同的執(zhí)行機(jī)構(gòu)接口可以實(shí)現(xiàn)多種應(yīng)用。如果將電機(jī)作為執(zhí)行機(jī)構(gòu)可以實(shí)現(xiàn)指紋鎖、指紋保險(xiǎn)箱等,如果將指紋識(shí)別結(jié)果作為加密密鑰,則可以實(shí)現(xiàn)指紋文檔加密的功能等。

ML67Q5250具有多種接口,可以兼容多種指紋傳感器,在程序設(shè)計(jì)上,針對(duì)不同類(lèi)型的傳感器,需要開(kāi)發(fā)相應(yīng)的不同驅(qū)動(dòng)程序。驅(qū)動(dòng)程序的主要工作包括初始化傳感器、控制傳感器采集指紋圖像、將圖像轉(zhuǎn)化為ML67Q5250要求的標(biāo)準(zhǔn)格式,最后將數(shù)據(jù)傳送給ML67Q5250。
實(shí)驗(yàn)中,為了兼容多種傳感器,系統(tǒng)設(shè)計(jì)了一個(gè)集成接口,如圖2所示,可以在不更改硬件結(jié)構(gòu)的基礎(chǔ)上同時(shí)兼容4種傳感器,分別是美國(guó)AuthenTec公司生產(chǎn)的劃擦式電容傳感器AES2510,面接觸式電容傳感器AES3400和AFS8600,以及瑞典FingerPrints公司推出的面接觸式電容傳感器FPC1011C。

為了方便開(kāi)發(fā)不同傳感器驅(qū)動(dòng)及系統(tǒng)擴(kuò)展的需求,指紋識(shí)別模塊硬件結(jié)構(gòu)及程序架構(gòu)采用了分層及模組化設(shè)計(jì),如圖3所示。

圖3中,傳感器驅(qū)動(dòng)是指紋圖像傳感器的驅(qū)動(dòng),需要根據(jù)不同的傳感器編寫(xiě);指紋硬件加速驅(qū)動(dòng)主要實(shí)現(xiàn)從指紋圖像生成模板及指紋特征模板匹配的功能;指紋認(rèn)證引擎提供了指紋認(rèn)證的方案,實(shí)現(xiàn)指紋的注冊(cè)、認(rèn)證和刪除等功能。具體實(shí)現(xiàn)功能包括:
1)初始化必要的硬件設(shè)備、初始化指紋模塊驅(qū)動(dòng)庫(kù)。
2)進(jìn)入主狀態(tài)機(jī)循環(huán),如圖4所示。
3)響應(yīng)MSP430的控制信號(hào),完成主狀態(tài)機(jī)循環(huán)的狀態(tài)切換。
4)輸出指示狀態(tài)及結(jié)果給MSP430。

2.2.1 液晶基礎(chǔ)驅(qū)動(dòng)程序
顯示功能的實(shí)現(xiàn)采用一塊128×64的點(diǎn)陣液晶屏(LCD)與MSP430F149通過(guò)6800總線連接。液晶的驅(qū)動(dòng)及顯示控制采用分層設(shè)計(jì)思想,如圖5所示。

LCD基礎(chǔ)驅(qū)動(dòng)程序由3個(gè)功能層組成,其中驅(qū)動(dòng)層的任務(wù)在于根據(jù)實(shí)際的硬件連接對(duì)使用到的端口進(jìn)行定義及配置,并負(fù)責(zé)MSP430F149與液晶模塊進(jìn)行數(shù)據(jù)傳輸?shù)娜蝿?wù),包括初始化模塊、讀寫(xiě)控制指令、寫(xiě)數(shù)據(jù)、讀數(shù)據(jù)、LCD復(fù)位等子函數(shù)功能;功能函數(shù)層提供了供用戶(hù)應(yīng)用程序中調(diào)用的液晶顯示驅(qū)動(dòng)的API接口函數(shù),如寫(xiě)ASCII字符、寫(xiě)漢字字符、刪除字符、畫(huà)特殊符號(hào)等功能函數(shù);應(yīng)用層可以根據(jù)具體的應(yīng)用環(huán)境調(diào)用API接口函數(shù)編寫(xiě)相應(yīng)的用戶(hù)程序,如本系統(tǒng)的人機(jī)交互多級(jí)菜單界面就在該層中編寫(xiě)。
2.2.2 人機(jī)交互多級(jí)菜單界面
人機(jī)交互設(shè)計(jì)的重點(diǎn)在于界面的多級(jí)顯示、滾屏、光標(biāo)的管理以及參數(shù)的交互設(shè)置及保存等,這些功能主要通過(guò)3個(gè)控制按鍵(向上、向下、確定)來(lái)實(shí)現(xiàn)。
滾屏功能的實(shí)現(xiàn)采用了一種“序標(biāo)設(shè)計(jì)法”,設(shè)置了3 個(gè)序號(hào)標(biāo)志量 First_Index,Active_Index,Temp_Index,其中First_Index指示當(dāng)前處在顯示屏中最前面的菜單項(xiàng)序號(hào),Active_Index指示當(dāng)前指向的菜單項(xiàng),即當(dāng)前活動(dòng)的菜單項(xiàng)序號(hào),Temp_Index是一個(gè)中間變量,作用在于當(dāng)菜單項(xiàng)過(guò)多,超出一屏能顯示的范圍時(shí),能滾動(dòng)顯示多出菜單項(xiàng)。
多級(jí)菜單的實(shí)現(xiàn)采用了一種層標(biāo)設(shè)計(jì)法,設(shè)置了層標(biāo)志量Floor,初始值為0,根據(jù)菜單的級(jí)數(shù)加1或減1,再結(jié)合Active_Index標(biāo)志量便可以準(zhǔn)確進(jìn)入相應(yīng)的子菜單項(xiàng),從而能夠?qū)崿F(xiàn)多級(jí)顯示。
參數(shù)的交互設(shè)置及保存方法是系統(tǒng)在內(nèi)存中的特定區(qū)域開(kāi)辟了一塊緩沖區(qū),用來(lái)存放參量數(shù)據(jù)。當(dāng)更改參量值時(shí),LCD從此緩沖區(qū)讀取數(shù)據(jù)到LCD的顯示RAM中,同時(shí)MCU將參量值保存到存儲(chǔ)系統(tǒng)E2PROM對(duì)應(yīng)的地址中去;當(dāng)需要顯示參量值時(shí),MCU將E2PROM中的數(shù)據(jù)讀出到緩沖區(qū)中,再被LCD讀取并顯示出來(lái)。
2.2.3 小結(jié)
基于分層設(shè)計(jì)思想的液晶基礎(chǔ)驅(qū)動(dòng)架構(gòu)只須更改底層驅(qū)動(dòng)的配置文件,功能函數(shù)層和應(yīng)用層不用任何改動(dòng),就可以移植到不同的LCD上;基于序標(biāo)和層標(biāo)設(shè)計(jì)法的多級(jí)菜單可以輕松擴(kuò)展到任意級(jí),便可滿(mǎn)足不同實(shí)際應(yīng)用系統(tǒng)的使用。
為滿(mǎn)足不同應(yīng)用場(chǎng)合的需求及系統(tǒng)擴(kuò)展的要求,鍵盤(pán)輸入系統(tǒng)要求能輸入阿拉伯?dāng)?shù)字、26個(gè)英文字母及簡(jiǎn)單符號(hào)等功能,為節(jié)省按鍵數(shù)量,系統(tǒng)模擬手機(jī)鍵盤(pán)的輸入方式,采用數(shù)字和字母復(fù)合輸入,如圖6所示,右下角的“*”號(hào)鍵為輸入法切換鍵,可以切換數(shù)字或字母輸入方式。
數(shù)字輸入方式下每個(gè)按鍵代表一個(gè)數(shù)字。字母輸入方式下,每個(gè)按鍵代表3~4個(gè)字母,需要切換顯示,具體的功能分析如下:
1)首次按下按鍵,顯示該按鍵對(duì)應(yīng)的第1個(gè)字母。
2)在一定時(shí)間內(nèi)連續(xù)第2次按下按鍵,切換成該按鍵對(duì)應(yīng)的第2個(gè)字母。
3)在一定時(shí)間內(nèi)連續(xù)第3次按下按鍵,切換成該按鍵對(duì)應(yīng)的第3個(gè)字母,直到該按鍵對(duì)應(yīng)字母全部切換完,然后從頭開(kāi)始。
4)超出一定的時(shí)間間隔再按下相同按鍵,則保持當(dāng)前字母顯示,光標(biāo)切換到下一個(gè)位置開(kāi)始新一個(gè)字母顯示。

圖6 復(fù)合鍵盤(pán)結(jié)構(gòu)
5)2次分別按下不同按鍵,則保持第1次按鍵字母顯示,光標(biāo)切換到下一個(gè)位置,開(kāi)始第2次按鍵所代表字母的顯示。
6)長(zhǎng)按功能,當(dāng)一個(gè)按鍵按住不放超過(guò)一定時(shí)間則顯示該按鍵對(duì)應(yīng)的數(shù)字。
通過(guò)分析按鍵按下所產(chǎn)生的電平圖如圖7所示,設(shè)置相應(yīng)的標(biāo)志量及定時(shí)器可以實(shí)現(xiàn)上述功能。完成一次按鍵操作的電平變化是由高到低,再由低到高,可設(shè)置標(biāo)志量KEYEVENT標(biāo)志此事件,完成上述的第1項(xiàng)功能;在按鍵按下的瞬間,電平由高變低,此時(shí)啟動(dòng)定時(shí)器TIM?ER0,并設(shè)置標(biāo)志量Key_Down記錄此事件,定時(shí)器TIM?ER0每隔20 ms監(jiān)測(cè)一次按鍵值。若超過(guò)1 s(TIMER?OUT0)按鍵還處于按下?tīng)顟B(tài),則判斷按鍵為“長(zhǎng)按”,完成上述的第6項(xiàng)功能;若1 s的時(shí)間內(nèi)按鍵抬起,則此時(shí)停止定時(shí)器TIMER0,開(kāi)啟定時(shí)器TIMER1,等待下一次按鍵的按下。若超過(guò)0.75 s(TIMEROUT1)無(wú)按鍵按下,則按上述第4項(xiàng)功能實(shí)現(xiàn)輸入及顯示;若在0.75 s內(nèi)監(jiān)測(cè)到有第2次按鍵按下,若2次按鍵值不同,則按上述第5項(xiàng)功能實(shí)現(xiàn)輸入及顯示,若2次按鍵值相同,則按上述第2、第3項(xiàng)功能實(shí)現(xiàn)輸入及顯示。至此完成按鍵字母輸入方式的全部功能,且TIMEROUT0和TIMEROUT1值可以根據(jù)具體應(yīng)用情況具體設(shè)置,滿(mǎn)足實(shí)際應(yīng)用情況,實(shí)驗(yàn)測(cè)試該方法實(shí)現(xiàn)的按鍵輸入穩(wěn)定準(zhǔn)確,符合多數(shù)用戶(hù)的使用習(xí)慣。

圖7 按鍵電平分析圖
采用分層及分模塊設(shè)計(jì)的程序結(jié)構(gòu)使得本系統(tǒng)方便針對(duì)不同應(yīng)用環(huán)境擴(kuò)展相應(yīng)功能,在實(shí)例中,寫(xiě)入指紋門(mén)鎖控制程序,執(zhí)行機(jī)構(gòu)配備為微型減速直流電機(jī),即可模擬指紋門(mén)鎖的工作狀況,并可進(jìn)行相應(yīng)的功耗測(cè)試。
在用戶(hù)注冊(cè)的過(guò)程中,在不開(kāi)啟液晶屏背光的情況下,根據(jù)耗電量的不同,將注冊(cè)過(guò)程分成系統(tǒng)休眠環(huán)節(jié)、啟動(dòng)等待注冊(cè)環(huán)節(jié)、采集指紋環(huán)節(jié)和注冊(cè)成功環(huán)節(jié),分別用HI,WI,CI,SI代表各環(huán)節(jié)的電流值,測(cè)試數(shù)據(jù)如表1所示。
在用戶(hù)驗(yàn)證過(guò)程中,在不開(kāi)啟液晶屏背光的情況下,根據(jù)耗電量的不同,將驗(yàn)證環(huán)節(jié)分成系統(tǒng)休眠環(huán)節(jié)、啟動(dòng)等待驗(yàn)證環(huán)節(jié)、采集指紋環(huán)節(jié)、驗(yàn)證成功電機(jī)轉(zhuǎn)動(dòng)環(huán)節(jié),分別用HI2,WI2,CI2,SI2代表各環(huán)節(jié)的電流值,測(cè)試數(shù)據(jù)如表2所示。

表1 用戶(hù)注冊(cè)各環(huán)節(jié)電流值

表2 用戶(hù)驗(yàn)證各環(huán)節(jié)電流值
在上述過(guò)程中若開(kāi)啟液晶屏背光,則電流值會(huì)增加55~60 mA。
在不開(kāi)啟液晶背光的情況下,以每次開(kāi)鎖耗時(shí)6 s,每天開(kāi)鎖6次計(jì)算,該指紋識(shí)別門(mén)鎖系統(tǒng)一天的耗電量約為1.669 mA·h。用普通5號(hào)干電池供電,1節(jié)電量以1 500 mA·h計(jì)算,1節(jié)干電池可支持指紋系統(tǒng)運(yùn)行898天,近兩年半的時(shí)間。
若開(kāi)鎖時(shí)開(kāi)啟液晶背光,還是以每次開(kāi)鎖耗時(shí)6 s,每天開(kāi)鎖6次計(jì)算,該指紋識(shí)別門(mén)鎖系統(tǒng)一天的耗電量約為2.244 mA·h。用普通5號(hào)干電池供電,1節(jié)電量以1 500 mA·h計(jì)算,1節(jié)干電池可支持指紋系統(tǒng)運(yùn)行668天,近22個(gè)月的時(shí)間。
從實(shí)驗(yàn)結(jié)果可以看出,雙控制核心的系統(tǒng)架構(gòu)極大降低了系統(tǒng)在待機(jī)狀態(tài)下的電流消耗,同時(shí)在指紋采集、處理和識(shí)別的過(guò)程中,減少了ML67Q5250對(duì)外設(shè)的控制,而將控制功能轉(zhuǎn)移到功耗更低的MSP430中,使得指紋認(rèn)證處理的電流消耗進(jìn)一步降低,從而極大延長(zhǎng)了電池供電指紋識(shí)別系統(tǒng)的使用時(shí)間。
[1]KUCHEN M.Models for fingerprint pattern formation[J].Forensic Science International,2007(171):85-96.
[2]林喜榮,潘鵬,于政濤,等.一種基于DSP技術(shù)的指紋鑒別系統(tǒng)的實(shí)驗(yàn)研究[EB/OL].[2010-01-15].http://cacp.ilib.cn/p-h044085~263549~1.html.
[3]祝軍生.基于ARM的自動(dòng)指紋識(shí)別系統(tǒng)的設(shè)計(jì)[J].電子設(shè)計(jì)應(yīng)用,2008(10):81-84.
[4]王新升,林喜榮,戴曉清,等.新型指紋識(shí)別芯片的原理及應(yīng)用[J].電視技術(shù),2009,33(S2):217-219.
[5]費(fèi)文坤,陶維青.基于MSP430F149單片機(jī)的人機(jī)界面設(shè)計(jì)[J].微計(jì)算機(jī)信息,2009,25(1-2):116-118.
[6]沈建華,楊艷琴.MSP430系列超低功耗單片機(jī)原理與系統(tǒng)設(shè)計(jì)[M].北京:北京航空航天大學(xué)出版社,2008.