隨著社會物質財富的日益增長,安全防盜已成為全社會關注的問題。基于EDA技術設計的電子密碼鎖,以其價格便宜、安全可靠、使用方便,受到了人們的普遍關注。而以現場可編程邏輯器件(FPGA)為設計載體,以硬件描述語言(VHDE)為主要表達方式,以QuartusⅡ開發軟件和GW48EDA開發系統為設計工具設計的電子密碼鎖,由于其能夠實現數碼輸入、數碼清除、密碼解除、密碼更改、密碼上鎖和密碼解除等功能,因此,能夠滿足社會對安全防盜的要求。 1 電子密碼鎖的基本功能 電子密碼鎖主要實現的功能包括: (1)數碼輸入:按下一個數字鍵,其對應的數字就顯示在最右邊的數碼管上,同時將先前輸入的所有數字向左移動一位。設計密碼為4位,系統只能顯示前4位輸人的數碼。 (2)數碼清除:當按下清除鍵時,清除前面輸入的所有值,并顯示為“----”。 (3)密碼解除:按下55#鍵,可以將電子密碼鎖的舊密碼解除。 (4)密碼更改:將舊密碼解除之后,可以進行密碼更改。輸入任意四位密碼數字,再按#號就可以將輸入的數碼當作新的密碼。 (5)密碼上鎖:輸入新的密碼之后,按下11#鍵,可以進行密碼上鎖操作。 (6)密碼解鎖:按下99#鍵,再輸入數碼;如果輸入與系統儲存密碼一致,密碼鎖就能開啟;否則不能解鎖。 2 電子密碼鎖的結構原理 2.1 電子密碼鎖的整體結構 電子密碼鎖的整體結構如圖1所示,它包括密碼鎖輸入模塊、控制模塊和顯示模塊等。 2.2 密碼鎖輸入模塊 密碼鎖輸入模塊的電路框圖如圖2所示,它由時序產生電路、鍵盤掃描電路、彈跳消除電路、鍵盤譯碼電路和按鍵存儲電路組成。 時序產生電路用于產生電路中三種不同頻率的工作脈沖波形,包括系統時鐘信號、彈跳消除取樣信號和鍵盤掃描信號。 鍵盤電路可提供鍵盤掃描信號。該信號由ky3~ky0進入鍵盤,其變化的順序為1110-1101-1011-0111-1110……周而復始。掃描信號0111代表掃描的為*、0、#這一排按鍵,當*這個按鍵被按下時,由kx2~kx0讀出的值為011。按鍵位置的數碼關系如表1所列。 彈跳消除電路可避免誤操作發生。由于設計中采用的矩陣式鍵盤是機械開關結構,因此,在開關切換的瞬間,會在接觸點出現信號來回彈跳的現象。為使電子密碼鎖可靠工作,必須加上彈跳消除電路。彈跳消除電路采用軟件延時的方法消除抖動,其仿真波形如圖3所示。從圖3中可以看出,若采樣信號連續兩次或超過兩次檢測到高電平信號,說明按鍵狀態確實發生了變化,此時電路輸出一個時鐘周期的按鍵信號;否則當作抖動處理而不予理會,以此來消除抖動。 對于鍵盤譯碼電路,由于圖2中的鍵盤按鍵分為數字按鍵和功能按鍵,每一個按鍵可負責不同的功能,而鍵盤所產生的輸出(也就是掃描回復信號)卻無法直接拿來用作密碼鎖控制電路的輸入,所以必須由鍵盤譯碼電路來規劃每個按鍵的輸出形式,以便執行相應的動作。 鍵盤存儲電路可將每次掃描產生的新按鍵數據存儲下來,因此新數據可能會覆蓋前面的數據,所以需要一個按鍵存儲電路,以將整個鍵盤掃描完畢的結果記錄下來。 圖4所示是密碼鎖輸入模塊的仿真波形,圖中,數字鍵數據“0、1、2、3、4、5、6、7、8、9”和功能鍵數據“0100、0001”所得到的輸出不同,由此可證明密碼鎖輸入模塊的正確性。 2.3 控制模塊 密碼鎖控制電路是整個電路的控制中心,主要完成對數字鍵輸入和功能鍵輸入的響應和控制。密碼鎖控制電路的仿真波形如圖5所示。從圖5可見,其數字鍵輸入的響應控制過程如下: (1)按下數字鍵,第一個數字會在顯示器的最右端顯示,隨后每按下一個新數字,顯示器上已經存在的數字整體會向左移一位,并將以新的數字顯示出來; (2)若要更改輸入數字,則可按*鍵清除所有輸入的數字,再重新輸入數字。 (3)電子密碼鎖為4位,當輸人超過4位時,電路不予理會,且不顯示第4個以后的數字。 功能按鍵的輸入響應控制功能如下: (1)清除功能:按下*鍵,可清除所有輸入的數字,顯示為“----”。 (2)更改密碼:按下55#鍵,輸入舊密碼(設計中為“0000 ”),再按#鍵,即可解除舊密碼。接著輸入4位數字,再按下#鍵,就可以將4位數字作為新密碼。 (3)密碼上鎖:輸入4位新的密碼數字之后,再按11#鍵,就可以將密碼鎖上鎖。 (4)密碼解鎖:按下99#鍵可輸入密碼解鎖,假如輸入“2345”這個密碼,然后按下#鍵,系統將比較鍵盤輸入的數碼和寄存器中的數碼,如果一致,就會給出一個開鎖信號,密碼鎖開鎖;否則密碼輸入無效。 2.4 顯示模塊 本電子密碼鎖的顯示模塊比較簡單,其作用是將控制模塊的BCD碼輸出轉換為7段顯示編碼,然后驅動數碼管,其仿真波形如圖6所示。 3 電子密碼鎖的整合和驗證 要完成電子密碼鎖的設計,還必須將上述三個功能模塊進行整合。其整合電路圖如圖1所示。 本設計選用杭州康芯電子有限公司生產的GW48EDA系統作為硬件驗證系統,同時選用Altera公司的EPlK30TC144-3作為主控芯片。該芯片是一種基于查找表結構的現場可編程邏輯器件,它的基本邏輯單元是可編程的查找表,能夠實現組合邏輯運算,并可用可編程寄存器實現時序邏輯運算。設計時只需要對電子密碼鎖整體設計中的輸入輸出引腳作引腳鎖定,然后重新編譯和下載,即可進行電子密碼鎖的硬件驗證。實驗表明:本設計能夠實現電子密碼鎖的全部功能。 4 結束語 本文以現場可編程邏輯器件(FPGA)為設計載體,以硬件描述語言(VHDL)為主要表達方式,以QuartusⅡ開發軟件和GW48EDA開發系統為設計工具設計了一種具有密碼輸入、數碼清除、密碼解除、密碼設置和密碼激活等功能的電子密碼鎖。同時闡述電子密碼鎖的工作原理和軟硬件實現方法。對該電子密碼鎖進行時序仿真和硬件驗證的結果表明:該電路能夠實現所要求的功能。由于本設計中的FPGA芯片體積小,功耗低,價格便宜,安全可靠,稍加修改就可以改變密碼的位數,而且維護和升級比較方便,很容易做成ASIC芯片,因而具有較好的應用前景。 |