陳鈺聞 巨永鋒 沈佳俊 杜 凱
(長安大學電子與控制工程學院)
智能鎖具在工廠、軍械庫、機要室、醫院、智能建筑、銀行、賓館、車場、學校及快遞等領域廣泛運用。傳統的機械鎖、卡片鑰匙式電子鎖及電子密碼鎖等存在一些問題,如機械鎖必須使用機械鑰匙開門,卡片鑰匙式電子鎖需要卡片作為鑰匙開門,而且這兩類鎖都存在易復制、易被他人解鎖和易丟失的問題;同樣,傳統電子密碼鎖也存在密碼容易被盜等缺點。為此,筆者基于STM32F103ZET6單片機設計了一種以指紋和密碼共同控制的指紋密碼鎖,將指紋的唯一性和多樣性特征與現代科技相結合,使信息安全、經濟安全、人身安全的保障相較于傳統的鎖具更加可靠、多樣和便捷。
基于STM32F103ZET6單片機的指紋密碼鎖主要由總控制器、指紋模塊、密碼輸入模塊、顯示模塊、執行機構、聲光報警模塊、字庫存儲模塊及其他擴展模塊等組成(圖1)。通過總控制器控制指紋模塊,實現指紋的識別;指紋模塊實現指紋的采集和保存功能;密碼輸入模塊實現密碼的輸入、修改和保存,達到控制電磁鎖的目的;顯示模塊用于實時顯示設備的工作狀態;觸摸屏用于實現錄取和刪除指紋的功能,也可以提醒使用者進行下一步操作;聲光報警模塊的主要作用是實現信號傳遞;執行機構是電磁鎖,通過總控制器對指紋模塊和密碼輸入模塊進行控制,實現電磁鎖的打開與關閉功能;字庫存儲模塊主要指SRAM和SD卡,用于液晶顯示漢字;其他擴展模塊包括電源、繼電器等,起到提供電源、控制電路等作用。

圖1 指紋密碼鎖組成結構框圖
系統硬件結構設計包括電源模塊、指紋模塊、4×4矩陣鍵盤、顯示模塊、存儲器模塊、執行機構及其他擴展模塊等。
電源輸入部分采用USB接口供電,以提高其適應環境的能力。輸入部分為+5V,輸出部分有+5、+3.3V,其中+5V供系統模塊使用,+3.3V屬于外部擴展,便于系統與其他系統配合,提高本設計的兼容性與廣泛的適應性。該模塊采用AMS1117-3.3芯片,將+5V轉換為+3.3V。系統電源模塊如圖2所示。

圖2 系統電源模塊
ATK-AS608是高性能的光學指紋識別模塊,芯片內置DSP運算單元,集成了指紋識別算法,能高效快速地采集圖像并識別指紋特征[1]。模塊性能穩定、功能完善,兼具指紋采集、指紋登記、指紋比對及指紋搜索等功能[2]。模塊本身配備了串口、USB通信等接口,用戶不需要研究復雜的圖像處理過程和指紋識別算法,只需按照串口和USB通信協議便可控制模塊。模塊可應用于指紋鎖、各種考勤機、保險箱柜及指紋門禁系統等場合。
密碼輸入模塊主要由矩陣鍵盤組成,矩陣鍵盤原理如圖3所示。

圖3 矩陣鍵盤原理
矩陣鍵盤是整個系統密碼輸入的核心部分。數字1、2、3、4、5、6、7、8、9、0分別用按鍵S1、S2、S3、S5、S6、S7、S9、S10、S11、S14表示;S16為進入鍵(密碼更改后使用);S4為退出鍵;S8為進入管理員界面按鍵;S12為模式選擇鍵;S13為取消鍵;S15為確認鍵。
為了在系統運行過程中實時顯示其工作狀態,并考慮人性化設計要求,本設計加入顯示模塊,選用ATK-4.3TFTLCD電容式觸摸屏模塊[3],將單片機處理后的指紋采集情況和密碼輸入結果用于人機交互顯示到TFTLCD液晶顯示模塊上。TFTLCD液晶顯示模塊如圖4所示。
存儲器模塊主要由SD卡和SRAM兩部分組成。SD卡是基于Flash的存儲卡,支持SPI和SDIO兩種模式。主機依次分別訪問每個卡,每個卡的CID寄存器中已預編程了一個唯一的卡標識號,用以區分不同的卡[4]。

圖4 TFTLCD液晶顯示模塊
本設計中,考慮到設計本身的意義和自身條件的限制,決定采用12V小型電磁鎖,該鎖結構簡單緊湊、重量輕、體積小且安全可靠,其主要特性如下:
使用電壓 12~24V(DC)
允許電流 0.8~1.2A
功耗 9.6~28.8W
通電動作時間 不大于1s
允許連續接通時間 不大于10s
本設計中,選用STM32F103ZET6單片機作為總控制器。選用藍色LED作為電源指示燈,用紅色和綠色LED分別表示信號指示燈。指紋輸入、指紋錄取和指紋刪除過程采用有源蜂鳴器報警,起到提示的作用,并方便操作。繼電器選擇3.3V SONGLE型。三極管選擇8550PNP型。
系統軟件全部采用模塊化設計,整個系統的控制程序分為主函數、功能函數和驅動函數3部分。各模塊都單獨調試,調試無誤后再整合在一起組成整個控制系統軟件。程序編輯采用模塊化設計,可方便后期維護,對于代碼的優化也有很大的益處,在整個系統的調試過程中,也可以很快地修改對應功能的程序。指紋模塊在總控制器的控制下進入自動指紋識別狀態,在指紋識別成功的情況下輸入密碼,如果密碼輸入正確則電磁鎖打開,否則電磁鎖打開失敗。
系統運行流程如圖5所示,首先由總控制器判斷各模塊工作是否正常;然后液晶屏顯示虛擬鍵盤可進行指紋錄取和刪除功能,如果不需要則進入下一步,如果需要錄取或者刪除指紋則在觸摸屏上按下“錄取”或“刪除”鍵,完成指紋的錄取或者刪除過程;之后進入密碼輸入階段;最后判斷密碼是否修改。其中,指紋模塊和密碼輸入模塊的運行流程如圖6所示。

圖5 系統運行流程

圖6 指紋模塊和密碼輸入模塊運行流程
在軟件編程和程序設計過程中,本設計用STM32F103ZET6單片機內部基礎資源USART2實現串口控制功能,采用AS608指紋模塊與STM32F103ZET6單片機相連實現指紋的錄入,采用TFTLCD液晶觸摸屏實現人機交互功能,使用SD卡的SPI通信方式實現錄入指紋的存儲。本系統實現了以單片機為總控制器,以光學式指紋識別模塊為指紋采集模塊,以矩陣鍵盤作為密碼輸入設備,采用TFTLCD觸摸屏進行人機交互界面的指紋密碼鎖系統。已經錄入指紋的手指識別情況如圖7所示,錄取指紋成功和錄取指紋失敗的情況如圖8所示。

圖7 已經錄入指紋的手指識別界面

圖8 錄取指紋失敗和錄取指紋成功的界面
在設計過程中,有意識地規避了試驗儀設計存在的缺點,為指紋密碼鎖整體性能的穩定提供了保證。
按鍵掃描過程中,按鍵所要表達的信息并未完全正確表現出來,查看硬件電路圖正確后,改變了相應的C語言程序,使得結果符合預期。
在總體程序編寫完成以后,通過編譯,會發現程序中有錯誤或者警告。根據提示,完成語法的修改,直到編譯沒有錯誤為止。
以PCB功能板為基礎進行功能驗證時,由于PCB功能板電磁鎖設計部分引線接錯,使得程序無法在PCB功能板上顯示出功能。通過更改PCB功能板的接線,最終實現了各個功能的顯示。
基于單片機的指紋密碼鎖的硬件設計,實現了對各模塊的選擇、模塊的調試、元件的選定、原理圖繪制、PCB創建、元器件焊接及板子調試等工作;軟件部分通過總控制器對指紋傳感器的工作方式進行控制,利用矩陣鍵盤進行密碼的輸入調試,實現觸摸屏的人機交互,最終利用總控制器對繼電器的控制實現了門鎖打開功能,但關閉功能還有待改進。需要說明的是,本設計還有改進的空間,可以加入報警模塊、非法闖入檢測模塊和面部識別模塊,實現對外來非法進入的報警。本設計應用范圍廣,可安全、便捷、有效地滿足客戶需求。