FPGA實現(xiàn)的數(shù)字密碼鎖
本文介紹了一種以FPGA為基礎(chǔ)的數(shù)字密碼鎖。采用自頂向下的數(shù)字系統(tǒng)設(shè)計方法,將數(shù)字密碼鎖系統(tǒng)分解為若干子系統(tǒng),并且進一步細(xì)劃為若干模塊,然后用硬件描述語言VHDL來設(shè)計這些模塊,同時進行硬件測試。測試結(jié)果表明該數(shù)字密碼鎖能夠校驗10位十進制數(shù)字密碼,且可以預(yù)置密碼,設(shè)有斷電保護裝置,解碼有效指示等相應(yīng)功能。
本文引用地址:http://2s4d.com/article/276731.htm1功能概述
(1)密碼鎖的工作時鐘由外部晶振提供,時鐘頻率為50MHz,運算速度高,工作性能穩(wěn)定。
(2)密碼的設(shè)置和輸入由外接鍵盤完成,控制電路的安全系數(shù)高,操作方便;
(3)密碼數(shù)字可以由鎖的所有者隨意設(shè)置,并可更改,增強了用戶體驗。密碼修改必須符合預(yù)設(shè)規(guī)則,否則無法修改密碼。
(4)開鎖時,不限制密碼的輸入位數(shù)(1到10位皆可以),減少了密碼被破解的概率(約為10億分之一的破解率),密碼鎖的保密能力高。
(5)清除密碼鍵的設(shè)定,可以快速清除全部密碼,提高了對突發(fā)事件的適應(yīng)能力。
(6)對輸入的數(shù)字密碼既能直接顯示,又能轉(zhuǎn)換為星號,防治偷窺,增強保密性。
(7)全部密碼輸入后,正確時密碼鎖將開啟,顯示屏出現(xiàn):Input Right!指示燈變亮。錯誤時,顯示屏出現(xiàn):Input Failed!指示燈變滅。
(8)設(shè)有斷電保護裝置,保證電路不會因掉電失去所修改的密碼,而回到最初的密碼值,增強密碼的穩(wěn)定性。
2系統(tǒng)結(jié)構(gòu)
本系統(tǒng)設(shè)計主要包括硬件設(shè)計和軟件設(shè)計兩部分,均采用模塊化設(shè)計。其中硬件設(shè)計主要包括中央控制模塊、微控制器、顯示模塊、輸入模塊、外圍電路等內(nèi)容。軟件設(shè)計包括狀態(tài)控制模塊,邏輯控制模塊,液晶顯示驅(qū)動模塊,EPROM驅(qū)動模塊,掃描輸入模塊等構(gòu)成。系統(tǒng)結(jié)構(gòu)框架圖如圖1所示。
圖1:系統(tǒng)結(jié)構(gòu)框架圖
設(shè)計采用模塊化編程方式,整個程序由液晶LCD1602模塊(LCD1602.v)、矩陣鍵盤模塊(Matrix_Keys.v)、存儲芯片AT24C02模塊(AT24C_XX.v)和頂層邏輯功能模塊(password.v)組成。頂層邏輯功能模塊(password.v)調(diào)用其他3個模塊完成頂層功能的設(shè)計。如圖2所示。
圖2:矩陣鍵盤原理圖
3底層設(shè)計
3.1輸入模塊
由于鍵盤按鍵數(shù)量較多,為了減少I/O口的占用,本設(shè)計將按鍵排列成矩陣形式。在矩陣式鍵盤中,每條水平線和垂直線在交叉處不直接連通,而是通過一個按鍵加以連接。這樣,8個端口就可以構(gòu)成3*5=15個按鍵,實際上我們只用14個按鍵就足以解決密碼問題,比之直接將端口線用于鍵盤多出了一倍,而且線數(shù)越多,區(qū)別越明顯,比如再多加一條線就可以構(gòu)成20鍵的鍵盤,而直接用端口線則只能多出一鍵(9鍵)。故在需要的鍵數(shù)比較多時,采用矩陣法來做鍵盤是更合理的方案。
3.2顯示模塊與外圍電路
本設(shè)計選用了LCD1602作為顯示模塊的核心,可以方便地顯示所需的數(shù)字和提示語,具有界面人性化、功耗低、速度快、節(jié)約控制器資源等優(yōu)點。外圍電路主要是一個受控制器控制的LED,由于表示鎖的開啟與關(guān)閉。
3.3存儲模塊
本設(shè)計使用存儲芯片AT24C02作為密碼的外部存儲器。二線制串行EEPROM—24C02是低工作電壓的2K位串行電可擦除只讀存儲器,內(nèi)部組織為256個字節(jié),每個字節(jié)8位,該芯片被廣泛應(yīng)用于低電壓及低功耗的工商業(yè)領(lǐng)域。設(shè)計使用I2C協(xié)議實現(xiàn)控制器與存儲器的聯(lián)結(jié),實現(xiàn)密碼保存,并保證密碼不會因斷電丟失。
4工作方式
本系統(tǒng)利用上述系統(tǒng)模塊作為硬件基礎(chǔ),使用VHDL語言編寫程序,實現(xiàn)了五大主要功能:
(1)確認(rèn)密碼:通過掃描矩陣鍵盤,判斷用戶輸入內(nèi)容,將鍵入的數(shù)碼與密碼存儲器中的密碼進行比較,判斷密碼的正誤,并控制密碼鎖的開關(guān);
(2)清除密碼:輸入密碼過程中發(fā)生按鍵失誤,可以通過選擇清除鍵清除當(dāng)前全部的密碼,方便重新輸入;
(3)密碼保護:通過顯示切換鍵,可以切換顯示模式。在顯示數(shù)字模式下,顯示屏即顯示輸入的數(shù)字,方便用戶操作;在保護模式下,顯示的密碼用“*”表示,防止外界偷窺,提高安全性能;
(4)修改密碼:當(dāng)密碼鎖處于打開狀態(tài)時,默認(rèn)識別當(dāng)前用戶為鎖的持有者,允許修改密碼。但修改密碼必須符合密碼鎖內(nèi)設(shè)的“潛在規(guī)則”,否則無法完成修改,防止密碼鎖被破壞;
(5)斷電保護:設(shè)置電路保護結(jié)構(gòu),保證電路不會因掉電失去所修改的密碼,而回到最初的密碼值。
其工作流程圖如圖3.
圖3:工作流程圖
5仿真與調(diào)試
在設(shè)計過程中,首先針對各個模塊,使用Quartus II等軟件進行仿真,然后將程序燒錄進行硬件調(diào)試。最后,將整個系統(tǒng)程序進行全編譯,進行整個系統(tǒng)的軟件仿真,仿真通過后進行整個系統(tǒng)的硬件調(diào)。
6核心特點
本設(shè)計開創(chuàng)性地提出了修改密碼“潛在規(guī)則”的概念,即在修改密碼時,新密碼必須滿足密碼鎖制作時預(yù)設(shè)的潛在規(guī)則,否則無法成功修改密碼,例如:潛在規(guī)則為密碼必須為七位數(shù),則在修改密碼時若輸入為五位數(shù)則會提示密碼修改失敗。本設(shè)計的意義在于,當(dāng)入侵者通過非法手段獲取正確密碼并開鎖后,如果短時間內(nèi)不能發(fā)現(xiàn)潛在規(guī)則,就不得不放棄修改密碼,防止用戶利益二次受損。另外潛在規(guī)則的設(shè)計方式還可以為密碼所有位數(shù)和等于N,必須為偶數(shù)等等,每一種潛在規(guī)則都有對應(yīng)的說明書,所以即使批量生產(chǎn)也不存在潛在規(guī)則被破解的問題。此外,用戶在忘記密碼時可以根據(jù)說明書,聯(lián)系潛在規(guī)則回憶密碼。另外,密碼鎖支持1~10位任意位10進制數(shù)作為密碼,遠(yuǎn)大于一般密碼鎖,靈活性極高,可組合出約11億種密碼組合,從概率學(xué)上講,隨機破解密碼為不可能事件。
fpga相關(guān)文章:fpga是什么
晶振相關(guān)文章:晶振原理
評論