具有遠(yuǎn)程開啟功能的指紋應(yīng)用系統(tǒng)設(shè)計
摘要:設(shè)計了一個能用于門鎖和保險箱的指紋識別與控制系統(tǒng)。系統(tǒng)以MSP430F149為主控芯片,F(xiàn)SC7002為指紋處理芯片,兼具密碼和指紋兩種開啟方式。還設(shè)計了一個可選的遠(yuǎn)程開啟和報警模塊。模塊采用MG323作為通信芯片,通過GSM網(wǎng)絡(luò)實現(xiàn)了遠(yuǎn)程信息的傳輸。開發(fā)了基于Android系統(tǒng)的遠(yuǎn)程開啟軟件,軟件采用DES對傳輸信息進(jìn)行加密,提高了信息傳輸?shù)陌踩浴?br />
關(guān)鍵詞:指紋識別;MSP430F149;MG323;Android;遠(yuǎn)程開啟
引言
指紋識別是一種有效的身份識別技術(shù)。隨著光電技術(shù)和半導(dǎo)體技術(shù)的發(fā)展,自動指紋識別技術(shù)越來越多地被應(yīng)用到人們的日常生活之中。指紋鎖和指紋保險箱是指紋識別應(yīng)用中比較重要的產(chǎn)品。與指紋門禁不同,應(yīng)用于鎖具中的指紋系統(tǒng)一般采用電池供電,具有功耗低、體積小等特點(diǎn)。本文設(shè)計和實現(xiàn)了一個功耗低、人機(jī)界面良好的指紋識別應(yīng)用系統(tǒng),系統(tǒng)可以應(yīng)用于門鎖和保險箱。
在實際生活中,經(jīng)常碰到人在異地,但是需要別人進(jìn)門或者取用保險箱里財物的情況。以前常用的做法是提前將鑰匙借給別人或者臨時告訴別人密碼,這樣的做法增加了安全隱患,一旦以后出了問題,誰也說不清。本文在基本指紋識別系統(tǒng)之上增加了一個可選的遠(yuǎn)程開啟模塊,用戶可以通過手機(jī)進(jìn)行遠(yuǎn)程開啟操作,解決了上述問題。
1 系統(tǒng)硬件結(jié)構(gòu)設(shè)計
1.1 系統(tǒng)功能設(shè)計
根據(jù)背景需求和目標(biāo),整個應(yīng)用系統(tǒng)可分為3部分:主控制模塊、指紋處理模塊和遠(yuǎn)程通信模塊,它們的功能如下:指紋處理模塊負(fù)責(zé)對指紋的采集、指紋圖像的特征提取和存儲,以及指紋特征的匹配;遠(yuǎn)程通信模塊負(fù)責(zé)應(yīng)用系統(tǒng)和遠(yuǎn)程通信設(shè)備之間的信息交換;主控制模塊負(fù)責(zé)系統(tǒng)的人機(jī)交互、邏輯控制、功能管理,還負(fù)責(zé)對整個系統(tǒng)的電源管理分配。外圍設(shè)備與機(jī)構(gòu),是指與指紋鎖或者保險箱相關(guān)的電機(jī)、振動傳感器等。主控制模塊通過UART接口對指紋處理模塊和遠(yuǎn)程通信模塊進(jìn)行控制操作。
1.2 主控制模塊
主控制模塊選用MSP430F149作為主控芯片。MSP430F149是美國TI公司開發(fā)的一款16位RISC微控制器,它的低功耗特點(diǎn)能夠滿足我們的要求。主控制模塊需要完成的功能有控制電源供電、按鍵輸入、液晶顯示、電壓檢測、電機(jī)驅(qū)動、時間信息芯片等。
MSP430F149使用8 MHz晶振作為主工作頻率,另外還有1個輔助晶振32768 Hz接在XIN和XOUT端,作為串口的波特率發(fā)生器產(chǎn)生源。
系統(tǒng)選用臺灣悠景公司的UG-2864HSWEG01作為顯示屏。UG-2864HSWEG01是一款128×64像素的單色OLED顯示屏,OLED擁有能耗低、體積輕薄、響應(yīng)速度快等優(yōu)點(diǎn),十分適合電池系統(tǒng)。UG-2864HSWEG01面板顯示有兩種供電模式:外部供電和內(nèi)部升壓供電方式。當(dāng)使用外部電源給面板供電時,需要9 V電源;使用內(nèi)部DC/DC轉(zhuǎn)換器時外部需要接3.5~4.2 V電源,實際使用時外部接3.3 V也能正常顯示。考慮到本系統(tǒng)的實際情況,采用內(nèi)部升壓供電方式。UG-2864HSWEG01有多種方式與主控MCU通信,具體通過設(shè)置BS0、BS1和BS2引腳來選擇。本系統(tǒng)中選用8080并行接口方式與MSP430F149通信,通過設(shè)置BS0=0、BS1=1、BS2=1來實現(xiàn)。
本系統(tǒng)中的鍵盤由一個3x4的矩陣鍵盤和4個獨(dú)立按鍵組成,分別是數(shù)字鍵“0”~“9”、“*”、“#”、“取消”、“向上”、“向下”、“確認(rèn)”,由于MSP430F149只有P1口和P2口有端口中斷源,因此將矩陣鍵盤的3個行信號和4個獨(dú)立功能按鍵放置在P1口。
系統(tǒng)選用的EEPROM為AT24C08,時間芯片為DS1302,兩者均支持I2C總線協(xié)議。MSP430使用I/O模擬I2C總線協(xié)議與它通信。主控制模塊使用MSP430F149的UART0與指紋處理模塊通信,UART1與遠(yuǎn)程通信模塊通信。
為了延長系統(tǒng)電池的使用壽命,系統(tǒng)采用自動下電方式,在待機(jī)時直接隔斷電源。使用了一個P溝道場效應(yīng)管FDN336,其關(guān)斷時DS漏電流為1μA左右,電源控制電路如圖1所示。當(dāng)鍵盤按鍵按下時,信號KEY_wakeup將接地拉低,此時,由于電阻的分壓作用,場效應(yīng)管GS兩極的電壓約為-5~-4.5 V,場效應(yīng)管導(dǎo)通,系統(tǒng)上電。系統(tǒng)上電后,MSP430F149立即將信號POWER_EN置高,三極管9013接通,系統(tǒng)維持上電。MSP 430F149處理完相關(guān)操作后,將信號POWER_EN置低,三極管阻斷,場效應(yīng)管GS兩極的電壓為0,F(xiàn)DN336截止,系統(tǒng)自動下電。
1.3 指紋識別模塊
指紋識別模塊選擇FSC7002作為指紋識別處理芯片。FSC7002是成都方程式電子有限公司開發(fā)的專用指紋識別芯片,內(nèi)含一個8位FMCU8KB嵌入式微控制器以及FID116KMG指紋識別處理模塊,并且兼容多種指紋傳感器。FSC7002內(nèi)置微控制器與8051系列兼容,易于開發(fā),通過UART可方便地對其進(jìn)行指令控制。
綜合成本因素,本系統(tǒng)選用現(xiàn)成的基于FSC7002的指紋識別模塊BLH9003D。它是一種一體化的光學(xué)指紋處理模塊,它將光學(xué)傳感器和指紋處理器集成在一起,使得指紋識別模塊的體積、成本和開發(fā)成本都大大降低。BLH9003D內(nèi)置感應(yīng)芯片,對手指的按捺可進(jìn)行自動識別,并將識別結(jié)果通過信號通知控制方,當(dāng)無手指按捺時輸出低電平,有手指按捺時輸出高電平。
1.4 遠(yuǎn)程通信模塊
遠(yuǎn)程通信模塊采用華為公司的MG323作為GSM的收發(fā)模塊。MG323模塊是華為公司推出的一款工業(yè)級的GSM/GPRS模塊,電源電壓3.3~4.8 V(推薦值3.8 V),平均待機(jī)電流47μA。MG323提供一個UART接口和標(biāo)準(zhǔn)SIM卡接口,短消息模式支持TEXT和PDU。MG323不僅支持GSM協(xié)議,還支持GPRS協(xié)議,并且內(nèi)置TCP/IP協(xié)議棧,為將來進(jìn)一步開發(fā)提供了空間。MG323的接口電路如圖2所示,MG323的UART口定義是針對MCU而言的,故而它與MSP430的連接不用交叉。MG323必須采用額外的電池供電,主控系統(tǒng)通過GSM_EN信號來控制遠(yuǎn)程通信模塊的電源通斷。
2 系統(tǒng)軟件設(shè)計
2.1 系統(tǒng)軟件層次結(jié)構(gòu)
MSP430F149內(nèi)置2 KB內(nèi)存,不太適合使用操作系統(tǒng),因此本系統(tǒng)在軟件設(shè)計上采用前后臺系統(tǒng)和狀態(tài)機(jī)相結(jié)合的方式。在整體上,系統(tǒng)軟件分為硬件驅(qū)動層,功能函數(shù)層和應(yīng)用程序?qū)?,如圖3所示。
2.2 主應(yīng)用程序
主應(yīng)用程序完成指紋鎖具的所有功能,圖4表示的是主應(yīng)用程序流程的示意圖。當(dāng)系統(tǒng)啟動時,首先進(jìn)行一系列的初始化,然后根據(jù)系統(tǒng)設(shè)置選擇默認(rèn)的開啟方式,之后根據(jù)按鍵的不同,或切換開啟方式,或進(jìn)入管理模式,或進(jìn)入遠(yuǎn)程開啟模式。
系統(tǒng)分為密碼開啟和指紋密碼開啟兩種方式,密碼開啟只允許密碼開啟,指紋密碼開啟既可以用指紋開啟也可以用密碼開啟。之所以分2種開啟方式,是因為密碼開啟方式十分省電,實際使用中可能有的用戶為了省電而使用這種方式。用戶使用管理功能來維護(hù)鎖具,包括系統(tǒng)信息的設(shè)置,用戶信息的建立、刪除和修改,遠(yuǎn)程開啟和報警功能的設(shè)置等。管理功能使用菜單來進(jìn)行人機(jī)交互,只有管理員才能使用管理功能。
2.3 用戶信息結(jié)構(gòu)
用戶數(shù)據(jù)信息存儲的是用戶的具體信息,包括用戶名字、用戶對應(yīng)的指紋ID、開啟密碼、用戶創(chuàng)建時間以及用戶屬性,總共長度為24個字節(jié)。用戶創(chuàng)建時間表示用戶創(chuàng)建的具體時間或者用戶最近的修改時間,采用BCD碼用7個字節(jié)表示,分別是秒、分、時、日、月、星期、年具體格式和DS1302對外輸出的格式相同。用戶屬性property使用1個字節(jié)記錄了用戶的權(quán)限級別、用戶的有效期和用戶默認(rèn)驗證方式。系統(tǒng)通過用戶創(chuàng)建時間和用戶有效期判斷用戶是否到期失效。用戶數(shù)據(jù)的結(jié)構(gòu)定義如下:
2.4 指紋模塊通信協(xié)議
控制模塊和指紋處理器FSC7002通過UART接口通信,它們之間的通信遵循一定的協(xié)議。FSC7002提供了一個標(biāo)準(zhǔn)通信協(xié)議,本文直接采用了這個協(xié)議。上位機(jī)(MSP430F49)向下位機(jī)(FSC7002)發(fā)送的指令,采用指令包的形式進(jìn)行。指令包的長度為8字節(jié),其格式如下所示。
下位機(jī)收到指令包后,將有關(guān)指令執(zhí)行情況與結(jié)果采用應(yīng)答包的形式上報給上位機(jī)。下位機(jī)只對符合自身地址碼的指令包做出應(yīng)答,其他地址的指令包不會給予應(yīng)答;對于不符合協(xié)議要求的指令碼,下位機(jī)也不會應(yīng)答。應(yīng)答包的長度是不定的,應(yīng)答包將返回它應(yīng)答的指令碼,以及此指令碼的執(zhí)行結(jié)果代碼,還會返回一些必要的參數(shù)。應(yīng)答包的格式如下所示。
控制模塊(上位機(jī))和指紋處理模塊(下位機(jī))不停地通過指令包和應(yīng)答包的傳送,完成一系列的功能任務(wù)。
3 遠(yuǎn)程報警和開啟
3.1 遠(yuǎn)程報警
遠(yuǎn)程報警是指當(dāng)傳感器檢測到侵入或者輸入報警密碼時,系統(tǒng)向預(yù)先設(shè)置的手機(jī)號碼發(fā)送報警信息。所謂報警密碼是指預(yù)先設(shè)置的一組密碼,使用這組密碼同樣也能開啟鎖具,但是在開啟的同時,它將啟動遠(yuǎn)程通信模塊,并向遠(yuǎn)程手機(jī)發(fā)送報警的信息。報警密碼主要用在被挾持開鎖的情況下,既能保證人身安全,又能有一定的反制措施。
3.2 遠(yuǎn)程開啟
遠(yuǎn)程開啟是指使用手機(jī)發(fā)送開機(jī)指令,在遠(yuǎn)距離情況下開啟門鎖或者保險箱。遠(yuǎn)程開啟功能的一大安全漏洞是使用GSM短信方式并不安全,因此本系統(tǒng)中對傳輸?shù)臄?shù)據(jù)進(jìn)行了安全加密,使得安全性大大提升,加密算法使用256位DES加密。
遠(yuǎn)程開啟功能包括鎖具部分和用戶手機(jī)部分,兩部分必須相互配合才能完成預(yù)期目標(biāo)。鎖具部分在前述章節(jié)建立的基礎(chǔ)上開發(fā)完成,用戶手機(jī)部分使用Android平臺作為開發(fā)對象。遠(yuǎn)程開啟功能包括注冊流程和遠(yuǎn)程開啟流程,分別如圖5和圖6所示。
由于MSP430F149沒有隨機(jī)數(shù)生成器,因此使用內(nèi)部的計時器,對用戶按鍵間隔計時,使用這個間隔時間作為隨機(jī)數(shù)種子。
3.3 基于Android的遠(yuǎn)程開啟程序設(shè)計
本文基于Android平臺,針對指紋鎖遠(yuǎn)程開啟的應(yīng)用需求,采用DES算法加密通信數(shù)據(jù),設(shè)計了符合安全要求的指紋鎖手機(jī)端軟件。
手機(jī)端軟件主要實現(xiàn)3個功能:遠(yuǎn)程開啟、注冊、刪除。軟件的總體結(jié)構(gòu)如圖7所示。
注冊:手機(jī)端軟件接收鎖體短信,將鎖體名稱、密鑰和短信來源號碼保存到數(shù)據(jù)庫。
開啟:獲取用戶輸入的隨機(jī)數(shù)和密碼,用隨機(jī)數(shù)和保存的密鑰對密碼進(jìn)行加密,發(fā)送到指紋鎖對應(yīng)的號碼。
刪除:手機(jī)端軟件刪除對應(yīng)鎖體的信息,包括保存的密鑰。
軟件中涉及短信接收和短信發(fā)送,必須在項目配置文件中添加SEND_SMS和RECEIVE_SMS權(quán)限。
接收系統(tǒng)廣播,需要向系統(tǒng)申請廣播接收者權(quán)限。申請的方式有靜態(tài)和動態(tài)兩種。靜態(tài)方式在軟件的項目配置文件聲明即可。靜態(tài)方式下,軟件在整個運(yùn)行過程中都將響應(yīng)系統(tǒng)廣播。動態(tài)方式是在需要的時候使用registerReceivei方法向系統(tǒng)申請權(quán)限,在結(jié)束的時候使用unregisterReceiver方法注銷即可,本文中采用動態(tài)方式。接收到短信的系統(tǒng)廣播為android.provider.Telephony.SMSRECEIVED,用它生成過濾器IntentFilter類,即可使軟件只對該廣播進(jìn)行響應(yīng)。
發(fā)送短信功能通過短信服務(wù)SmsManager類實現(xiàn)。該類中sendTextMessage方法即可控制手機(jī)硬件,實現(xiàn)短信的發(fā)送。
結(jié)語
本文設(shè)計的指紋識別和控制系統(tǒng)(不包括遠(yuǎn)程通信模塊)使用4節(jié)1.5 V干電池串聯(lián)供電。經(jīng)測試,在使用指紋按捺感應(yīng)啟動功能的前提下,待機(jī)功耗為10.4μA,密碼識別過程功耗為8.9 mA,指紋識別過程功耗為131.2mA。系統(tǒng)主要功耗指標(biāo)已達(dá)到商業(yè)水平,具有較高的實
用價值。