戴 彥
(唐山學院 智能與信息工程學院,河北 唐山 063020)
?
基于FPGA的電子密碼鎖設計
戴彥
(唐山學院 智能與信息工程學院,河北 唐山 063020)
摘要:基于FPGA設計的電子密碼鎖,運用EDA技術自頂向下的方法,采用硬件描述語言VHDL實現了密碼鎖的解鎖、密碼修改、報警提示及液晶顯示功能。硬件測試結果表明,密碼鎖功能豐富、操作簡單、安全性高、易于維護和升級。
關鍵詞:密碼鎖;FPGA;VHDL;EDA技術
當前,傳統機械鎖的安全性能已經不能滿足用戶需求,電子密碼鎖由于其保密性好、安全系數高,受到廣大用戶的青睞[1]。
筆者基于FPGA設計的電子密碼鎖,用FPGA構造系統,所有算法完全由硬件電路來實現,使得系統的工作可靠性大為提高。由于FPGA具有現場可編程功能,當設計需要更改時,只需更改FPGA中的控制電路和接口電路,利用EDA工具將更新后的設計下載到FPGA中即可,無需更改外部電路的設計,大大提高了設計的效率,同時使電子密碼鎖具有更高的安全性和可靠性[2]。
1電子密碼鎖的系統設計
本系統設計主要包括硬件設計和軟件設計兩部分。基于QuartusII軟件開發平臺,使用VHDL語言,運用自頂向下的設計方法,根據整個系統性能的描述和要求,密碼鎖主控模塊包含5個模塊設計:控制器模塊、計數器模塊、寄存器模塊、比較器模塊、編碼器模塊。其結構框圖如圖1所示。

圖1 電子密碼鎖結構框圖
2電子密碼鎖的模塊設計
2.1控制器模塊設計
控制器模塊采用有限狀態機設計[3-5],將系統分為7個狀態,即開鎖狀態(outlock)、安鎖狀態(inlock)、輸入密碼狀態(ps_input)、密碼初驗正確狀態(ps_right)、密碼初驗錯誤狀態(ps_wrong)、報警狀態(alarm)及修改密碼狀態(ps_change)。狀態轉換圖如圖2所示。

圖2 控制器模塊狀態轉換圖
系統初始狀態是安鎖狀態。當系統復位有效時,進入安鎖狀態。當系統處于開鎖狀態,輸入ps_ch信號時,系統進入修改密碼狀態;若輸入lock信號,進入安鎖狀態,鎖閉合;在安鎖狀態,輸入start信號,進入輸入密碼狀態;在輸入密碼狀態,由ps_i密碼脈沖作為計數時鐘,計數值輸出作為寄存器地址,當計數器記到3時,返回計數滿信號cin,如果密碼內容和長度均正確,進入密碼初驗正確狀態,如果密碼錯誤,進入密碼初驗錯誤狀態;在密碼初驗正確狀態,輸入確認信號enter時,進入開鎖狀態;在密碼初驗錯誤狀態,輸入確認信號enter時,進入報警狀態;在報警狀態,warn信號等于1,如果輸入清除報警信號off_al,則進入安鎖狀態。
2.2計數器模塊設計
本系統所設計的計數器是一個單向計數器,帶有異步清零端和計數滿指示端,模值為4。此模塊作用有兩個:計數值輸出作為寄存器的地址輸入;計數滿指示送入控制模塊,表示密碼長度是否滿足。
2.3寄存器模塊設計
寄存器模塊的功能是存儲密碼。寄存器模塊中有4個寄存器,可存儲4個BCD碼形式的密碼數據。如果要擴展密碼的長度,先要增加寄存器的個數,此外,計數器模塊的模值也要相應地增加。
2.4比較器模塊設計
在數字密碼中,比較器模塊的功能是對編碼器模塊的輸出和寄存器模塊的輸出進行比較,然后將比較的結果送入到控制器模塊。比較的具體工作原理是:當比較結果相等時,cmp_r的輸出為1;當比較結果不相等時,cmp_r的輸出為0。
2.5編碼器模塊設計
在數字密碼器中,有0-9共10個鍵,可以用10位二進制數表示,而寄存器中數據存儲格式為BCD碼,所以需要轉換。編碼器模塊的主要功能是將10位二進制數編碼為BCD碼,然后將編碼結果送入到比較器模塊和寄存器模塊。此外,編碼器還需要將輸入的跳變檢測出來,將密碼脈沖ps_i送入到控制模塊。
3電子密碼鎖功能仿真與分析
3.1仿真波形
EDA仿真軟件的使用可有效地驗證系統功能,發現并糾正存在的錯誤,識別數據沖突等設計缺陷,從而幫助設計者完善設計方案,消除組合邏輯電路中的競爭和冒險,并優化系統速度[6-7]。
密碼鎖頂層模塊修改密碼狀態仿真如圖3所示。當按下“ps_ch”鍵,進入修改密碼狀態(ps_chang狀態變為高電平),由“key_in”輸入4位密碼,按確認“enter”鍵。密碼被修改,新密碼即為剛輸入的密碼。

圖3 密碼修改功能仿真波形
密碼鎖頂層模塊報警狀態仿真如圖4所示。當按下“lock”鍵,進入上鎖狀態(inlock狀態變為高電平,key變為高電平),按下“start”鍵進入輸入密碼狀態(ps_input狀態變為高電平),由“key_in”輸入4位密碼,輸入的密碼與鎖的密碼不相同,進入密碼錯誤狀態(ps_wrong變為高電平),按確認“enter”鍵,進入報警狀態(alarm變為高電平)。

圖4 報警功能仿真波形
密碼鎖頂層模塊開鎖狀態仿真如圖5所示。當按下“lock”鍵,進入上鎖狀態(inlock狀態變為高電平,key變為高電平),按下“start”鍵進入輸入密碼狀態(ps_input狀態變為高電平),由“key_in”輸入4位密碼,輸入的密碼與鎖的密碼相同,進入密碼正確狀態(ps_right變為高電平),按確認“enter”鍵,進入開鎖狀態(outlock變為低電平,key由高電平變為低電平)。

圖5 密碼鎖開鎖仿真波形
3.2結果分析
通過仿真后,進行硬件測試。在閉鎖時,若輸入密碼正確,密碼鎖打開,此時可以重置或修改密碼;
若輸入錯誤,顯示密碼錯誤信息,蜂鳴器報警,此時可以通過鍵盤按鍵來關閉警報,系統運行正常。硬件測試結果表明,密碼鎖達到設計要求,且為設計升級留下了空間。
4結論
本文基于FPGA的電子密碼鎖的設計方案和實現方法,可以實現密碼鎖4位密碼的修改、重置、開鎖、報警功能,滿足日常生活的需要,且系統體積小,結構簡單,安全性高,保密性強,成本低,便于維護和升級,有良好的應用前景。
參考文獻:
[1]頡洪睿,孫丹丹,魏學軍.基于CPLD的智能密碼鎖設計與實現[J].實驗室研究與探索,2015,34(11):99-102.[2]楊彪,韓升,孫碩,等.基于FPGA的數字密碼鎖[J].電子技術與軟件工程,2015(2):217-218.
[3]宋澤明,陳文楷.基于VHDL的有限狀態機設計[J].北京工業大學學報,2005,31(1):21-24.
[4]單長虹.用VHDL設計有限狀態機的方法.[J].電子技術應用,2001,27(7):11-13.
[5]董秀潔,楊艷,周游.FPGA/CPLD選型與設計優化[J].化工自動化及儀表,2009,36(3):60-63.
[6]秦磊華,王小蘭.EDA仿真在組成原理設計性實驗中的應用[J].實驗室研究與探索,2009,28(4):79-82.
[7]董秀潔,楊艷,周游.FPGA/CPLD選型與設計優化[J].化工自動化儀表,2009,36(3):60-63.
(責任編校:夏玉玲)
The FPGA-Based Design of Electronic Combination Locks
DAI Yan
(College of Intelligence and Information Engineering, Tangshan University, Tangshan 063020, China)
Abstract:Based on FPGA, the author of this paper has designed a kind of digital combination lock with the top-down design EDA method and VHDL to unlock the combination lock,sett the password,warn failures and display with LCD. The results show that the combination lock has the advantages of rich functions, easy operation, high security, great reliability, and effortless maintenance and upgrade.
Key Words:password lock; FPGA; VHDL; EDA
中圖分類號:TP271+.5
文獻標志碼:A
文章編號:1672-349X(2016)03-0038-03
DOI:10.16160/j.cnki.tsxyxb.2016.03.012
戴彥(1982-),女,河北唐山人,講師,碩士,主要從事計算機控制研究。