基于單片機的指紋密碼鎖的設計
Abstract — The paper designs a fingerprint identification combination lock based on Proteus and Keilc. Based on the STC89C52 MCU as the control core, the combination lock compares and distinguishes the fingerprint information collected by the fingerprint identification module with the fingerprint information in the storage module, displays the identification result through the LCD module, and controls the motor to realize the operations of unlocking, locking, alarming and so on.
Index Terms — IC application, Microprocessor, electronic code lock, fingerprint identification.
0 引言
現代社會科技不斷發展進步,大眾對于生活品質的要求也在日漸提升。就安全而言,鎖從古至今都是保護個人財產安全的屏障。數字密碼鎖雖然不需要用戶攜帶實體鑰匙,但也要求人們記住一串字符,也會有遺忘密碼以及密碼被竊取的可能。而指紋識別密碼鎖就能完美的解決上述鎖具的各種問題。指紋作為每個人特有且獨一無二的生物信息是完全可以成為一不會丟失不會被盜竊的鑰匙的。指紋密碼鎖所具備的無機械鑰匙、不需要數字密碼等優點足以取代過去的鎖具,同時現代科技的電子集成技術與快速可靠算法也進一步促進指紋識別的發展。相信指紋識別鎖將會替代傳統的鎖具成為人們便捷生活的一部分。
1 指紋識別原理
指紋識別技術的核心自然需要由指紋說起。指紋其實是人類皮膚上因表皮凸起而產生的紋路。在人類基因遺傳的影響下,指紋成為絕對不會重復的一項身體信息。用以區別指紋的指紋特征可以分為局部特征以及總體特征兩個類別。指紋總體特征是指用人類通過觀察可以分辨的特征,包括指紋的基本紋型、核心點、紋數及式樣線等整體的特征。指紋上的節點則是指紋局部特征的判斷依據。也許會存在兩枚總體特征相同的指紋,但是其局部特征是絕對不會完全一致的[3]。所以我們在指紋識別時更多地依據局部特征如小橋、三角點、分叉點以及端點等細節特征點來辨別。我們常用的指紋識別系統一般用到的也是局部特征里的端點和分叉點這兩項細節特征。而局部特征中其他的特征則可以通過分叉點和端點之間的組合表現出來。
光學式指紋采集設備、硅芯片式以及超聲波式這三種是目前被廣泛使用的指紋采集設備。本設計中使用到的就是光學式指紋采集設備。通過指紋識別模塊的光學組件,就可以取得一枚清晰的指紋。采集到的指紋圖像經相應的算法處理提取出指紋的局部特征就是用于存儲的指紋信息了。本設計中的指紋識別模塊提取出大小為 256 字節的指紋特征,將兩個指紋特征信息合成為一個完整的大小為512 字節的指紋模板文件來進行后續指紋信息的存儲、對比以及查找等操作。
2 系統總體設計
2.1 系統工作流程
系統的設計圍繞單片機展開,該指紋密碼鎖使用 STC89C52 單片機作為控制核心,接收來自指紋模塊與按鍵模塊的信息后,通過控制繼電器來實現開鎖,鎖定等功能。同時液晶顯示模塊會根據單片機的反饋給出相應的操作提示以幫助用戶更好的使用設備。
系統設計思路中將指紋密碼鎖的功能實現分到指紋識別模式以及管理員模式兩部分中。
進入指紋識別模式后液晶顯示模塊會提示用戶:“按下按鍵 B 開始指紋認證”,在接收到按鍵按下的信息后單片機控制液晶屏顯示:“開始指紋認證”,此時就能按下手指開始識別指紋。當指紋信息與指紋庫中信息比對成功后單片機控制繼電器動作,成功開鎖。指紋識別不成功時單片機會控制顯示模塊反饋:“指紋識別錯誤,按任意鍵繼續”繼電器不響應,開鎖失敗。
按下按鍵 A 后輸入管理員密碼,初次使用時未設置管理員密碼則輸入初始密碼在確認密碼正確后就能進入管理員模式了。管理員模式相當于指紋密碼鎖的后臺管理系統。指紋庫中的指紋存入、指紋刪除以及管理員密碼的設置與修改等功能都需要在管理員模式里實現。
2.2 系統程序工作分析
系統的軟件設計分為兩部分,一部分針對指紋識別模塊的應用程序設計另一部分是為液晶顯示模塊、按鍵模塊而設計。系統程序設計將分別就指紋識別模塊和按鍵模塊進行 C 語言的編譯以建立相應的子程序。在單片機軟件開發環境下對單片機進行編譯,本設計使用的是 Keil5,它的優點是由其編譯好的源程序可以和在 Proteus 中繪制的原理圖進行聯合仿真。在需要調試時將編譯好的文件下載到單片機中。單片機上電后,主程序首先會進行初始化工作,各個模塊的初始化工作完成后單片機開始監測系統電路。當有按鍵按下時,檢測到電位變化的單片機會在確認按鍵點位來執行相應的操作。
2.3 主程序流程
根據上述主程序需要完成的任務繪制主程序流程。
3 系統硬件電路設計
根據系統總體設計部分的對于指紋密碼鎖的構思使用 Proteus 繪制出電子密碼的仿真原理。
3.1 指紋識別模塊電路設計
本設計使用的是型號為 ZFM-60 的指紋模塊。ZFM-60 指紋模塊主要由型號為 AS606 的 DSP 芯片和封裝在外圍的 CMOS 芯片以及光學頭、通信連接線、穩壓芯片、Flash 芯片組成。
指紋模塊的具體工作流程:指紋錄入模式時,首先由 CMOS 芯片采集指紋圖像,此過程為指紋掃描過程。之后使用相應的算法將指紋圖像進行模糊處理生成指紋信息,將指紋信息存入 Flash 芯片中保存指紋特征。指紋識別模式時,指紋圖像掃描、生成指紋特征與錄入模式時相同,再將采集到的指紋特征與 Flash 芯片中儲存的數據對比,便能識別指紋是否正確。
3.2 存儲模塊電路設計
本設計的存儲模塊主要需要存儲的密碼有前文提到的指紋特征以及后面會出現的鍵盤輸入密碼。而指紋特征與管理員密碼則需要通過不同的設計來實現存儲。從指紋識別模塊獲取到的指紋特征信息在經過整合以及相關程序的處理后就能傳到系統的存儲芯片中。
電子密碼鎖中存在的管理員模式則需要鍵盤輸入的管理員密碼來進入,這里就需要針對性的設計鍵盤輸入密碼的存儲電路。在管理員密碼識別模式下,單片機會將鍵盤輸入的密碼信息與數據庫中記錄的密碼數據比對。
只有確認密碼一致才能進入管理員模式。系統進入管理員模式后可以進行密碼修改的設置,此時輸入想要設置的密碼,系統將會調用密碼存儲程序與數據庫程序把密碼存儲到數據庫中。
3.3 鍵盤輸入模塊電路設計
按鍵輸入模塊采用的是矩陣按鍵。按鍵的閉合狀態是通過電壓來反饋到單片機的。
本設計將高電平定義為按鍵斷開的信息,低電平設為閉合,單片機在接收到高低電平的反饋后就能確認按鍵有沒有被按下。
本設計使用的是 4 行 4 列的矩陣鍵盤通過逐行掃描法來檢測按鍵。矩陣式的鍵盤由行線與列線組成,行線與列線的交叉處是放置按鍵的位。按鍵按下時該按鍵點位所處的行線與列線被接通此時電路會發生電平變化。電路的電平變化反饋到單片機就能確認被按下的按鍵的點位了。
將行線設為輸出口并輸出低電平同時將列線設為輸入口。通過讀取列線上的電平狀態來判斷是否有按鍵按下并能得知被按下的鍵盤位于哪一列。在確認有按鍵按下時依次將按下按鍵的那一列的每根行線設為輸出口并逐個輸出低電平此時其他的列線輸出高電平,單片機開始檢測電平,以此判斷鍵盤按下的行線,行線列線交叉點就是被按下的鍵盤點位。
3.4 復位電路設計
單片機在開機時將 CPU 及其他功能部件恢復到被設定好初始狀態就是單片機的復位。復位電路起到的作用就是將存儲模塊以及寄存器重置為事設定好的值,使單片機能從這個狀態開始工作。
單片機的復位電路需要在復位引腳上外接點容、電阻以達到單片機的上電復位的需求。只有持續時間超過系統的時鐘振蕩周期建立時間加上兩個機器周期時間的高電平狀態時單片機才會判定復位有效并產生復位。單片機在上電瞬間 RC 電路充電,RST 引腳端會產生正脈沖,此時 RST 引腳端保持兩個周期以上的高電平,單片機就能有效復位。本設計中選用了 10μF 的電容以及 10 kΩ的電阻作為復位電路的電容與電阻。
4 系統仿真與功能實現
使用 Proteus 繪制出符合設計需求的電路仿真圖,并采用 Keilc Vision5 來編譯單片機源程序。在 Keil 中用 C 語言編譯好源程序后開始聯合仿真。分別打開位于 Proteus 中的原理圖和 Keil 中的工程文件將 Keil 中的可執行文件下載到 Proteus 里,單擊 Keil 菜單 Debug 中的 GO 選項就可以啟動 Proteus 中的連續仿真運行了。單擊 Keil 菜單中 Debug 中的 Stop Running 就可以終止仿真過程了。在聯合仿真過程中不能在 Proteus 里停止程序運行以防引起系統出錯提示。在聯合仿真未提示出錯后就可以進行程序的寫入。本設計使用了宏晶 STC 單片機 STC-ISP V6.86R 軟件來下載程序并寫入。打開 STC-ISP 軟件選擇本設計的單片機型號設置好端口與波特率,選擇已經過仿真無誤的源程序點擊下載/編程按鍵等到軟件提示后就可以給單片機上電了,此時程序的寫入就完成了。在組裝完成的指紋密碼鎖上電后開始功能測試。按下按鍵 A 并輸入初始管理員密碼“000000”進入管理員模塊,進行指紋錄入、刪除和管理員密碼修改等功能測試,功能基本實現。按下按鍵 B 進入指紋識別模式,根據剛存入的指紋信息進行指紋識別功能測試,測試證實本設計實現了指紋識別功能。
5 結語
本文從鎖具便捷性的角度出發,設計了以 STC89C52 單片機為控制核心,以 ZFM60 指紋模塊、LCD 液晶顯示屏和鍵盤輸入模塊、存儲模塊、繼電器等部件組成的指紋密碼鎖。該指紋密碼鎖能實現通過指紋識別結果控制繼電器開鎖關鎖功能,同時具備管理員模式來完成指紋錄入、修改、刪除等后臺管理功能。本設計實現了預期的功能,當然也有許多需要進一步完善的部分可以根據用戶的需求來改進創新。指紋密碼鎖作為一種便捷高效的鎖具形式也是值得市場去開發的。
責任編輯:pj
-
集成電路
+關注
關注
5388文章
11561瀏覽量
362000 -
單片機
+關注
關注
6037文章
44563瀏覽量
635859
發布評論請先 登錄
相關推薦
評論