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





