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