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