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