基于FPGA的電子密碼鎖設(shè)計(jì)_第1頁(yè)
基于FPGA的電子密碼鎖設(shè)計(jì)_第2頁(yè)
基于FPGA的電子密碼鎖設(shè)計(jì)_第3頁(yè)
基于FPGA的電子密碼鎖設(shè)計(jì)_第4頁(yè)
基于FPGA的電子密碼鎖設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩2頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、一、前言電子密碼鎖的使用體現(xiàn)了人們的消費(fèi)水平、保安意識(shí)和科技水平的提高,而且避免了攜帶甚至丟失鑰匙的麻煩。目前設(shè)計(jì)密碼鎖的方法很多,例如傳統(tǒng)的PCB板設(shè)計(jì)、用PLC設(shè)計(jì)或者單片機(jī)設(shè)計(jì)等等。而用VHDL可以更加快速、靈活地設(shè)計(jì)出符合各種要求的密碼鎖,優(yōu)于其他設(shè)計(jì)方法。VHDL是一種符合IEEE標(biāo)準(zhǔn)的硬件描述語(yǔ)言,其最大的特點(diǎn)是借鑒高級(jí)程序語(yǔ)言的功能特性,對(duì)電路的行為與結(jié)構(gòu)進(jìn)行高度的抽象化、規(guī)范化的形式描述,并對(duì)設(shè)計(jì)的不同層次、不同領(lǐng)域的模擬驗(yàn)證與綜合優(yōu)化等處理,使設(shè)計(jì)過(guò)程延到高度自動(dòng)化。二、方案設(shè)計(jì) 密碼鎖的的構(gòu)成主要由密碼輸入、密碼設(shè)置、比較控制和報(bào)警部分組成,此外密碼鎖必須能夠保存已設(shè)置的密

2、碼,因而需要一個(gè)寄存器來(lái)保存密碼,同時(shí)由于控制電路和報(bào)警電路要用到不同的時(shí)鐘,因而需要一個(gè)時(shí)序產(chǎn)生電路來(lái)生成需要的不同信號(hào),采用分頻方法實(shí)現(xiàn)。 根據(jù)密碼鎖的電路特點(diǎn),選用的是實(shí)驗(yàn)箱的模式6電路,根據(jù)電路功能,在這里設(shè)計(jì)的密碼鎖以4位2進(jìn)制代碼作為密碼的電子密碼鎖。其原理框圖如下所示: 報(bào)警電路時(shí)序產(chǎn)生電路比較控制密碼輸入開(kāi)鎖信號(hào)寄存器(保存設(shè)置的密碼)密碼設(shè)置圖一、電子密碼鎖原理框圖三、功能模塊的實(shí)現(xiàn)1、時(shí)序電路 在密碼鎖的電路中,輸入計(jì)時(shí)、報(bào)警計(jì)時(shí)需要的1HZ的時(shí)鐘脈沖信號(hào),而驅(qū)動(dòng)蜂鳴器工作需要的很高頻率的脈沖信號(hào),因而這里采用輸入一個(gè)高頻脈沖(1024HZ)信號(hào)來(lái)驅(qū)動(dòng)蜂鳴器,采用分頻的方法

3、得到1HZ的計(jì)時(shí)脈沖,程序如下:process(clk_1k) variable cnt1:integer:=0;beginif rising_edge(clk_1k) thenif cnt1=512 thenclk_1<=not clk_1;cnt1:=0;else cnt1:=cnt1+1;end if;end if;end process;程序說(shuō)明:clk_1k為輸入的1024HZ高頻脈沖,cnt為分頻得到的1HZ計(jì)時(shí)脈沖。2、密碼設(shè)置為了安全性,密碼鎖必須能夠重復(fù)的設(shè)定密碼,在設(shè)定密碼鎖后,應(yīng)該設(shè)置一個(gè)寄存器來(lái)存儲(chǔ)設(shè)定的密碼,程序如下:process(rst,password,e

4、nter_p) is beginif rst='0' thenif enter_p='1' thenram<=password;en1<='1'end if;end if;end process;程序說(shuō)明:rst低電平時(shí)所有的模塊復(fù)位,只有密碼設(shè)置模塊工作;password為設(shè)置密碼時(shí)的輸入端,ram就是存儲(chǔ)密碼的寄存器;enter_p為在這里為密碼設(shè)置使能端,高電平有效。 密碼設(shè)置的仿真波形如下圖,由圖中可以清楚地看到在enter_p高電平時(shí)寄存器ram中得到了輸入的密碼1001。 圖二、密碼設(shè)置仿真波形3、 密碼輸入 密碼輸入部分

5、要求在密碼開(kāi)始輸入時(shí)進(jìn)行計(jì)時(shí),超時(shí)了要求報(bào)警,因此在 密碼輸入時(shí)設(shè)置一個(gè)計(jì)時(shí)使能信號(hào)en2,密碼開(kāi)始輸入時(shí)使能信號(hào)en2有效,控制電路的計(jì)時(shí)器開(kāi)始計(jì)時(shí);而且在密碼確認(rèn)鍵按下之前,電路不能對(duì)輸入密碼和已設(shè)置密碼進(jìn)行比較,因此需要設(shè)置一個(gè)寄存器,來(lái)存儲(chǔ)輸入的數(shù)據(jù),當(dāng)確認(rèn)鍵按下時(shí),就將寄存器里的數(shù)據(jù)送給控制部分進(jìn)行比較。程序如下: process(rst,enter_c,en1,code) begin if rst='1' thenif en1='1' thenif enter_c='1' thencode_tmp<=code;en2<=&

6、#39;1'end if; else code_tmp<="0000"en2<='0'end if; else code_tmp<="0000"en2<='0'end if;end process; 程序說(shuō)明: rst置高,設(shè)置密碼模塊不工作,其他部分正常工作,en1為高時(shí)代表密碼設(shè)置完畢,密碼鎖開(kāi)始工作;enter_c是密碼輸入使能信號(hào),高電平時(shí)表示開(kāi)始密碼輸入,此時(shí)code_tmp中開(kāi)始存儲(chǔ)輸入的數(shù)據(jù),計(jì)時(shí)使能信號(hào)en2也變成高電平。 密碼輸入仿真波形如下,由圖中可清楚的看到在enter

7、_c為高時(shí),寄存器code_tmp中存儲(chǔ)了輸入的數(shù)據(jù)code(系統(tǒng)仿真時(shí)有10ns的延時(shí))。 圖三、密碼輸入仿真波形4、 控制部分此部分是密碼鎖設(shè)計(jì)的核心模塊,它實(shí)現(xiàn)密碼鎖的邏輯功能。開(kāi)鎖代碼為4位二進(jìn)制數(shù),當(dāng)輸入代碼的位數(shù)和位值與鎖內(nèi)設(shè)置的密碼一致,且在規(guī)定時(shí)間內(nèi)開(kāi)鎖,方可打開(kāi),并且點(diǎn)亮開(kāi)鎖指示燈led_g;否則,系統(tǒng)進(jìn)入“錯(cuò)誤”狀態(tài),并且發(fā)出警報(bào)。警報(bào)的方式為蜂鳴器發(fā)出警報(bào),指示燈led_r閃爍。直到30秒過(guò)后或者按下復(fù)位鍵,經(jīng)行下一次密碼輸入。模塊源程序:process(rst,clk_1,en2) variable lock:std_logic:='0'variable

8、 cnt3:integer:=0;beginif rst='0' thenlock:='0'cnt3:=0;sp_en<='0'led_g<='0'led_r<='0'elseif rising_edge(clk_1) thenif lock='0' thenif en2='1' thenif cnt3=5 thensp_en<='1'led_g<='0'led_r<='1'cnt3:=0;lock:

9、='1'else if code_en='1' then if ram=code_tmp thensp_en<='0'led_g<='1'led_r<='0'lock:='1' else sp_en<='1' led_g<='0'led_r<='1' end if;end if;cnt3:=cnt3+1;end if;end if;else cnt3:=0;end if;end if;end if;end proce

10、ss; 程序說(shuō)明:、lock為自鎖信號(hào),lock為1時(shí),系統(tǒng)進(jìn)入自鎖狀態(tài),不再工作。、Cnt3為密碼輸入計(jì)時(shí)信號(hào),en2為1(即開(kāi)始輸入密碼)時(shí)開(kāi)始計(jì)時(shí),當(dāng)超過(guò)5秒而沒(méi)有輸入正確密碼時(shí),系統(tǒng)自鎖并報(bào)警。、code_en為密碼確認(rèn)鍵,此鍵按下時(shí),系統(tǒng)開(kāi)始將輸入的密碼和設(shè)置的密碼進(jìn)行比較,若二者一致則發(fā)出開(kāi)鎖信號(hào),若不一致則發(fā)出報(bào)警信號(hào),系統(tǒng)進(jìn)入自鎖狀態(tài)。5、 報(bào)警電路報(bào)警電路的作用就是在密碼輸入錯(cuò)誤或者輸入超時(shí)的情況下經(jīng)行報(bào)警,蜂鳴器發(fā)出聲音,并且警報(bào)燈不停閃爍,直到復(fù)位鍵按下或者計(jì)時(shí)30s結(jié)束。源程序如下: process(rst,sp_en,clk_1,clk_1k) variable tm

11、p_en1:std_logic:='0'variable cnt4:integer:=1; beginif rst='1' thenif rising_edge(clk_1) thenif sp_en='1' and cnt4>0 thenif cnt4=31 thencnt4:=0;tmp_en1:='0'else cnt4:=cnt4+1; tmp_en1:='1'end if;end if;end if;else tmp_en1:='0'cnt4:=1;end if;speaker<

12、;=tmp_en1 and clk_1k;led_f<=tmp_en1 and clk_1; end process;程序說(shuō)明:Cnt4是一個(gè)30進(jìn)制計(jì)數(shù)器,對(duì)報(bào)警時(shí)間進(jìn)行計(jì)時(shí)。 Sp_en是控制電路發(fā)出的報(bào)警信號(hào)。四、 軟件仿真將完整的程序在Quartus軟件下進(jìn)行編譯,通過(guò)之后進(jìn)行波形仿真,觀察仿真波形看是否實(shí)現(xiàn)了密碼鎖的邏輯功能,下面是在密碼輸入正確、密碼輸入超時(shí)和密碼輸入錯(cuò)誤時(shí)的仿真波形圖。圖四、密碼輸入正確仿真波形 如圖所示,首先在rst為0時(shí)將密碼設(shè)為1001,然后輸入密碼1001,當(dāng)確認(rèn)鍵code_en按下時(shí),系統(tǒng)判斷密碼正確,輸出一個(gè)開(kāi)鎖信號(hào),開(kāi)鎖指示燈led_g點(diǎn)亮。圖五、密碼輸入錯(cuò)誤仿真波形 如圖,密碼設(shè)置仍然為1001,但輸入一個(gè)錯(cuò)誤的密碼1000,當(dāng)密碼確認(rèn)按下時(shí),系統(tǒng)發(fā)出錯(cuò)誤警報(bào),蜂鳴器Speaker發(fā)出響聲,報(bào)警燈led_f閃爍。圖六、出入超時(shí)仿真波形 如圖,密碼設(shè)置不變,依舊是1001,但是密碼輸入按鍵enter_c按下,輸入密碼后不按下確認(rèn)鍵,五秒過(guò)后,系統(tǒng)判斷密碼輸入超時(shí),此時(shí)輸出超時(shí)警報(bào),蜂鳴器報(bào)警,led_g點(diǎn)亮,led_f閃爍。五、 心得體會(huì)這次的課程設(shè)計(jì)安排在了假期以后,上學(xué)期的VHDL語(yǔ)言已經(jīng)有些生疏了,這給編程帶來(lái)了一些難度,但是經(jīng)過(guò)復(fù)習(xí)還是重新熟悉了編程的方法和技巧。在寫(xiě)程序的時(shí)候有時(shí)候不注意仿真,犯了

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論