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