引言
可用于身份識(shí)別的人體特征有聲音、面容、虹膜、指紋等,其中,指紋由于防偽性好、易于被識(shí)別、識(shí)別方法易于實(shí)現(xiàn)而被廣泛應(yīng)用,尤其是在需要門(mén)禁的場(chǎng)合。常見(jiàn)的指紋門(mén)禁系統(tǒng)由指紋采集傳感器、指紋庫(kù)、人機(jī)交互模塊等部分構(gòu)成,其中指紋庫(kù)起著驗(yàn)證指紋的作用。指紋庫(kù)的維護(hù),如增加、刪除指紋等操作有兩種實(shí)現(xiàn)方式。曹潤(rùn)強(qiáng)等采用通過(guò)上位機(jī)修改指紋庫(kù)信息后,使用有線或無(wú)線方式同步指紋庫(kù)數(shù)據(jù)到門(mén)禁系統(tǒng)的方法,該方法由于使用了PC機(jī),人機(jī)交互友善;但缺點(diǎn)是PC機(jī)需要和門(mén)禁系統(tǒng)通過(guò)線纜連接或者使用短距離無(wú)線通信,增加了系統(tǒng)布設(shè)難度,降低了可靠性;馬馨雅采用在門(mén)禁系統(tǒng)上設(shè)計(jì)人機(jī)交互部件的方法,使門(mén)禁系統(tǒng)具備獨(dú)立工作能力;但缺點(diǎn)是門(mén)禁系統(tǒng)的人機(jī)交互模塊由于軟硬件資源有限,增加、刪除指紋的過(guò)程復(fù)雜,界面不友善。
針對(duì)上述兩種方案的缺陷,本文結(jié)合這兩個(gè)方案的優(yōu)點(diǎn),提出在門(mén)禁系統(tǒng)上增加Wi-Fi模塊,使用手機(jī)通過(guò)Wi-Fi對(duì)指紋庫(kù)進(jìn)行維護(hù)的方案。
1系統(tǒng)構(gòu)成方案
該門(mén)禁系統(tǒng)以單片機(jī)為核心,通過(guò)串口與指紋傳感器連接實(shí)現(xiàn)雙向通信,獲取指紋數(shù)據(jù);通過(guò)Wi-Fi模塊利用手機(jī)App維護(hù)指紋庫(kù);單片機(jī)通過(guò)GPIo接口產(chǎn)生PeM信號(hào)控制舵機(jī)運(yùn)動(dòng)開(kāi)鎖;單片機(jī)通過(guò)Wi-Fi模塊與手機(jī)實(shí)現(xiàn)雙向通信。電源部分電路則對(duì)板上所有系統(tǒng)進(jìn)行供電。
該方案使用手機(jī)替代顯示器鍵盤(pán)等硬件,既增加了指紋鎖人機(jī)交互的友善度,又簡(jiǎn)化了硬件設(shè)計(jì),其硬件結(jié)構(gòu)圖如圖1所示。
2硬件選型
單片機(jī)的選型應(yīng)綜合考慮存儲(chǔ)系統(tǒng)大小、外圍引腳種類及數(shù)量、CPU運(yùn)算性能以及調(diào)試便利性等指標(biāo)是否滿足設(shè)計(jì)需求。該系統(tǒng)由于需要處理指紋數(shù)據(jù),控制舵機(jī)開(kāi)鎖,使用Wi-Fi模塊通信,故選用sTM32F103C8單片機(jī)作為核心處理器。該單片機(jī)具備64KFLAsH、20K內(nèi)存,72M最高工作頻率,6個(gè)GPIo端口,3路串口,因此具備支持門(mén)禁系統(tǒng)正常工作的能力。
As608指紋傳感器具有體積小、功耗低、接口簡(jiǎn)單的特點(diǎn)。該模塊具有一個(gè)通信串口,單片機(jī)可通過(guò)該串口采集指紋信息。此外,該模塊提供一個(gè)eAK信號(hào)引腳,當(dāng)指紋模塊檢測(cè)到有手指接觸的時(shí)候,該引腳產(chǎn)生高電平,可用于觸發(fā)單片機(jī)處理指紋采集動(dòng)作。
Wi-Fi模塊作為該門(mén)禁系統(tǒng)中的通信模塊,需要具備連接移動(dòng)設(shè)備,并傳輸數(shù)據(jù)的功能。EsP8266支持802.11b/g/n等標(biāo)準(zhǔn)協(xié)議,內(nèi)置LeIP協(xié)議棧,同時(shí)具備一個(gè)串口,可滿足門(mén)禁系統(tǒng)的通信要求。
完成硬件設(shè)計(jì)后的門(mén)禁系統(tǒng)實(shí)物圖如圖2所示。
圖2 門(mén)禁系統(tǒng)實(shí)物圖
3單片機(jī)程序設(shè)計(jì)
3.1操作系統(tǒng)選擇
軟件系統(tǒng)按照運(yùn)行平臺(tái)不同可分為單片機(jī)端程序和手機(jī)端程序,單片機(jī)端程序負(fù)責(zé)采集、驗(yàn)證指紋,控制鎖頭開(kāi)啟,根據(jù)手機(jī)App指令對(duì)指紋庫(kù)進(jìn)行維護(hù)。手機(jī)端程序負(fù)責(zé)將錄入或刪除的指紋信息傳輸?shù)絾纹瑱C(jī)上,并顯示指紋庫(kù)的已錄入名單。同時(shí),單片機(jī)端需同時(shí)處理多項(xiàng)任務(wù),因此需要使用操作系統(tǒng)。UCos3是一個(gè)可以基于RoM運(yùn)行的、可裁剪、搶占式、實(shí)時(shí)多任務(wù)內(nèi)核,它可支持的任務(wù)數(shù)無(wú)上限,提供信號(hào)量、消息隊(duì)列等功能。該操作系統(tǒng)可對(duì)門(mén)禁系統(tǒng)提供多任務(wù)同步運(yùn)行的環(huán)境。在操作系統(tǒng)的基礎(chǔ)上,可按任務(wù)編寫(xiě)應(yīng)用程序。
3.2任務(wù)模塊設(shè)計(jì)
在具備操作系統(tǒng)的基礎(chǔ)上可將門(mén)禁軟件分為如下任務(wù)模塊:指紋錄入任務(wù)如圖3中(a)所示,指紋刪除任務(wù)如圖3中(b)所示,指紋驗(yàn)證任務(wù)如圖3中(c)所示。
一旦單片機(jī)接收到錄入或刪除指紋指令,就會(huì)分別觸發(fā)指紋錄入任務(wù)或者指紋刪除任務(wù)運(yùn)行一次。指紋驗(yàn)證任務(wù)由指紋模塊的wAK信號(hào)經(jīng)由單片機(jī)中斷觸發(fā)執(zhí)行。
指紋錄入任務(wù)在接收到App端輸入的新增人員信息后,為保證錄入指紋質(zhì)量,會(huì)發(fā)起三次指紋錄入,只有三次錄入的指紋一致,錄入任務(wù)才會(huì)繼續(xù)執(zhí)行,將人員信息和指紋信息配套存入sTM32內(nèi)部FLAsH,否則錄入任務(wù)中止。
指紋刪除任務(wù)則根據(jù)App輸入的人員信息查詢是否存在指定人員指紋,成功則刪除該條指紋記錄,否則中止刪除指紋。
指紋驗(yàn)證任務(wù)是根據(jù)采集到的指紋和指紋庫(kù)中的指紋進(jìn)行對(duì)比,如果一致,則返回成功,不一致則返回失敗。
3.3指紋庫(kù)設(shè)計(jì)
由于指紋數(shù)據(jù)包含人員信息、指紋信息,且要求存儲(chǔ)數(shù)量達(dá)到100,因此需要構(gòu)建一個(gè)指紋庫(kù)。該指紋庫(kù)要求斷電后不被清空,故需存在FLAsH上。sTM32F103C8內(nèi)部自帶64K字節(jié)FLAsH,程序代碼只占用了前46K空間,因此可將全部人員及指紋信息存儲(chǔ)在第63K至64K地址范圍內(nèi)。
單片機(jī)FLAsH訪問(wèn)壽命遠(yuǎn)小于內(nèi)存,因此在內(nèi)存中建立與FLAsH第63K至64K地址上數(shù)據(jù)一致的鏡像數(shù)據(jù),每次發(fā)生指紋驗(yàn)證事件,讀指紋庫(kù)數(shù)據(jù)都只讀內(nèi)存中的鏡像數(shù)據(jù)。只有發(fā)生指紋錄入或者刪除指紋數(shù)據(jù),才會(huì)修改內(nèi)存中的指紋庫(kù)鏡像數(shù)據(jù)。一旦內(nèi)存與FLAsH中數(shù)據(jù)不一致,程序運(yùn)行一次數(shù)據(jù)同步,將鏡像庫(kù)中的數(shù)據(jù)寫(xiě)入FLAsH。引入該機(jī)制,可大量減少對(duì)FLAsH的訪問(wèn)次數(shù),延長(zhǎng)FLAsH壽命。
4手機(jī)端App設(shè)計(jì)
手機(jī)端App運(yùn)行在安卓系統(tǒng)上,因此開(kāi)發(fā)使用JAVA語(yǔ)言,并且使用Androidstudio完成軟件編寫(xiě)。由于JAVA語(yǔ)言具有面向?qū)ο筇匦?手機(jī)端App按照功能分為如下類:通信類、人員名單顯示類、新增/刪除庫(kù)中指定人員類等。
通信模塊負(fù)責(zé)通過(guò)手機(jī)wi-Fi與單片機(jī)端EsP8266模塊進(jìn)行通信,通信方式可采用UDP以及TCP,該門(mén)禁系統(tǒng)無(wú)高實(shí)時(shí)要求,但要求高可靠度,因此選擇面向連接的TCP協(xié)議傳輸。
指紋庫(kù)人員名單顯示模塊向單片機(jī)端發(fā)起指紋庫(kù)訪問(wèn)請(qǐng)求,獲取當(dāng)前指紋庫(kù)人員信息,并通過(guò)App界面(圖4)顯示。該模塊在App啟動(dòng)時(shí)或指紋庫(kù)數(shù)據(jù)變化時(shí)運(yùn)行一次。
新增/刪除人員模塊運(yùn)行會(huì)將App界面(圖4)人員信息編輯框中所輸入的人員名字傳輸至單片機(jī)端,然后向單片機(jī)發(fā)起新增或刪除人員指令,以完成新增、刪除人員的操作。
5結(jié)論
本文從現(xiàn)有指紋鎖存在的問(wèn)題入手,結(jié)合常用的兩種指紋鎖設(shè)計(jì)方案,引入手機(jī)wi-Fi,提出新的優(yōu)化方案。該指紋鎖方案與現(xiàn)有技術(shù)相比具有以下優(yōu)點(diǎn):
(1)充分利用手機(jī)資源作為人機(jī)交互工具,人機(jī)交互過(guò)程便利友善:
(2)無(wú)需使用計(jì)算機(jī)參與門(mén)禁系統(tǒng)工作,降低了系統(tǒng)實(shí)施的難度,提高了門(mén)禁系統(tǒng)的可靠性:
(3)使用單片機(jī)自帶存儲(chǔ)空間作為指紋庫(kù)存儲(chǔ)介質(zhì),在簡(jiǎn)化設(shè)計(jì)的基礎(chǔ)上,避免了因外部存儲(chǔ)介質(zhì)失效造成的門(mén)禁癱瘓風(fēng)險(xiǎn)。