4位數(shù)字密碼鎖畢業(yè)設計_第1頁
4位數(shù)字密碼鎖畢業(yè)設計_第2頁
4位數(shù)字密碼鎖畢業(yè)設計_第3頁
4位數(shù)字密碼鎖畢業(yè)設計_第4頁
4位數(shù)字密碼鎖畢業(yè)設計_第5頁
已閱讀5頁,還剩25頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

華中科技大學文華學院畢業(yè)設計(論文)題目:4位數(shù)字密碼鎖設計(密碼設置及驗證電路)學生姓名:學號:學部(系):信息科學與技術學部專業(yè)年級:08通信工程指導教師:陳超原職稱或學位:年05月31日目錄1緒論 51.1設計內容 51.2設計規(guī)定 52系統(tǒng)設計 52.1模塊劃分 52.1系統(tǒng)原理框圖 53功能模塊的實現(xiàn) 63.1時序電路 63.2密碼設置 73.3密碼輸入 73.4密碼驗證 84軟件仿真 95數(shù)字邏輯系統(tǒng)簡介 105.1QuartusII軟件簡介 105.2硬件描述語言 115.2.1VHDL語言 115.2.2Verilog語言 126結論 13附錄 141時序電路 142密碼設置輸入 163密碼驗證 17參照文獻 19謝辭 20

摘要:本設計運用FPGA作為關鍵控制板,用Verilog硬件描述語言進行編程,運用計算機軟硬件控制技術,設計一種基于FPGA的數(shù)字密碼鎖,能實現(xiàn)密碼設定(假如密碼沒設定則默認密碼為0000),密碼輸入及驗證,當密碼輸入錯誤時報警或則指示燈亮;反之,密碼輸入對的時,此外一種指示燈亮。將程序下載到Altera企業(yè)的Cyclone系列目的芯片EP2C5T144C8上調試通過,并觀測實際現(xiàn)象,滿足設計規(guī)定。關鍵詞:FPGAVerilog數(shù)字密碼鎖AbstractThedesignusingtheFPGAasthecoreofthecontrolpanel,Veriloghardwaredescriptionlanguageforprogramming,Computerhardwareandsoftwarecontroltechnology,designanFPGA-baseddigitalcodelock,Setthepassword(ifthepasswordisnotsetthenthedefaultpasswordis000000),Passwordinputandverification,Alarmorthelightwhenthepasswordinputerror;Onthecontrary,enterthecorrectpassword,alight.ProgramdownloadedtothetargetchipEP2C5T144C8Altera’sCycloneseriesthroughdebugging,andtoobservetheactualphenomenon,tomeetthedesignrequirements.Keywords:FPGAVerilogDigitalcodelock引言伴隨人們生活水平的提高,怎樣實現(xiàn)家庭防盜這一問題也變得尤其的突出,老式的機械鎖由于其構造的簡樸,被撬的事件屢見不鮮,電子鎖由于其保密性高,使用靈活性好,安全系數(shù)高,受到了廣大顧客的青睞,電子密碼鎖的使用體現(xiàn)了人們消費水平、保安意識和科技水平的提高,并且防止了攜帶甚至丟失鑰匙的麻煩。目前設計密碼鎖的措施諸多,例如用老式的PCB板設計、用PLC設計或者用單片機設計等等。而用Verilog可以愈加迅速、靈活地設計出符合多種規(guī)定的密碼鎖,優(yōu)于其他設計措施。Verilog是一種符合IEEE原則的硬件描述語言,其最大的特點是借鑒高級程序設計語言的功能特性,對電路的行為與構造進行高度抽象化、規(guī)范化的形式描述,并對設計的不一樣層次、不一樣領域的模型驗證與綜合優(yōu)化等處理,是設計過程延伸到高度自動化。1緒論1.1設計內容設計一種4位數(shù)字密碼鎖子系統(tǒng)1.2設計規(guī)定可以預設4位密碼;具有密碼輸入及檢測功能;運用MAXplus對所設計的電路進行仿真并分析成果。2系統(tǒng)設計本設計中,F(xiàn)PGA系統(tǒng)采用硬件描述語言Verilog按模塊化方式進行設計,并將各模塊集成于FPGA芯片中,然后通過QuartusII9.0軟件開發(fā)平臺對設計文獻自動完畢邏輯編譯、邏輯化簡、綜合及優(yōu)化、邏輯布局布線、邏輯仿真,最終對FPGA芯片進行編程,實現(xiàn)系統(tǒng)的設計規(guī)定。2.1模塊劃分密碼鎖的的構成重要由密碼輸入、密碼設置,此外密碼鎖必須可以保留已設置的密碼,因而需要一種寄存器來保留密碼,同步由于控制電路和報警電路要用到不一樣的時鐘,因而需要一種時序產生電路來生成需要的不一樣信號,采用分頻措施實現(xiàn)。2.1系統(tǒng)原理框圖根據(jù)密碼鎖的電路特點,選用的是試驗箱的模式6電路,根據(jù)電路功能,在這里設計的密碼鎖以4位2進制代碼作為密碼的電子密碼鎖。其原理框圖如下圖2.1所示:報警電路時序產生電路報警電路時序產生電路比較控制比較控制密碼輸入開鎖信號密碼輸入開鎖信號寄存器(保留設置的密碼)寄存器(保留設置的密碼)密碼設置密碼設置圖2.1電子密碼鎖原理框圖3功能模塊的實現(xiàn)該模塊重要是完畢密碼設置,密碼輸入,密碼驗證功能。3.1時序電路在密碼鎖的電路中,輸入計時、報警計時需要的1HZ的時鐘脈沖信號,而驅動蜂鳴器工作需要的很高頻率的脈沖信號,因而這里采用輸入一種高頻脈沖(1024HZ)信號來驅動蜂鳴器,采用分頻的措施得到1HZ的計時脈沖。process(clk_1k) variablecnt1:integer:=0; begin ifrising_edge(clk_1k)then ifcnt1=512then clk_1<=notclk_1; cnt1:=0; elsecnt1:=cnt1+1; endif; endif; endprocess;程序闡明:clk_1k為輸入的1024HZ高頻脈沖,cnt為分頻得到的1HZ計時脈沖。3.2密碼設置為了安全性,密碼鎖必須可以反復的設定密碼,在設定密碼鎖后,應當設置一種寄存器來存儲設定的密碼。process(rst,password,enter_p)is begin ifrst='0'then ifenter_p='1'then ram<=password; en1<='1'; endif; endif; endprocess;程序闡明:rst低電平時所有的模塊復位,只有密碼設置模塊工作;password為設置密碼時的輸入端,ram就是存儲密碼的寄存器;enter_p為在這里為密碼設置使能端,高電平有效。密碼設置的仿真波形如下圖,由圖中可以清晰地看到在enter_p高電平時寄存器ram中得到了輸入的密碼1001。3.3密碼輸入密碼輸入部分規(guī)定在密碼開始輸入時進行計時,超時了規(guī)定報警,因此在密碼輸入時設置一種計時使能信號en2,密碼開始輸入時使能信號en2有效,控制電路的計時器開始計時;并且在密碼確認鍵按下之前,電路不能對輸入密碼和已設置密碼進行比較,因此需要設置一種寄存器,來存儲輸入的數(shù)據(jù),當確認鍵按下時,就將寄存器里的數(shù)據(jù)送給控制部分進行比較。process(rst,enter_c,en1,code) begin ifrst='1'then ifen1='1'then ifenter_c='1'then code_tmp<=code; en2<='1'; endif; elsecode_tmp<="0000";en2<='0'; endif; elsecode_tmp<="0000";en2<='0'; endif; endprocess;密碼輸入電路圖如下圖3.2圖3.1密碼輸入電路此密碼輸入電路使用74HC14710線-4線優(yōu)先編碼器,由于147只有9個輸入端,因此加入了數(shù)碼0的按鍵,當輸入端有鍵被按下時,輸出端輸出該鍵的BCD碼的反碼,并且GS/輸出為0,代表有鍵被按下。GS/用于控制密碼存儲控制電路的移位。該電路有密碼確認按鍵、密碼修改按鍵和輸入清除按鈕,密碼確認按鍵和密碼修改按鍵的作用是密碼輸入完畢時,對控制電路的移位電路清零。密碼確認按鈕還接密碼驗證電路中的三態(tài)輸出門,還連接密碼驗證電路中的JK觸發(fā)器的清零端,用于對這個觸發(fā)器的清零。輸出清除按鍵按下時本次輸入清零。密碼輸入(修改)電路中的按鍵按下去都自動彈上來,也就是說按鍵只有被按下時才連接低電平,否則接高電平。3.4密碼驗證該模塊中采用自定義存儲器RAM進行密碼的存儲,重要使用case語句和if_else語句進行程序的銜接。密碼驗證電路圖如下圖3.2圖3.2密碼驗證電路密碼驗證電路用16個異或門構成,每個異或門的輸入來自密碼存儲電路的輸入密碼存儲芯片和預設密碼存儲芯片,比較輸入密碼與否和預設密碼相似,再加上與非門電路,判斷所有輸入與否為1,為1則表達輸入對的,否則錯誤。密碼輸入電路中確實認按鈕控制比較成果輸出的三態(tài)門,輸入四位密碼后,按下確認鍵,驗證后的成果輸出至開鎖報警電路。密碼修改按鍵連接JK觸發(fā)器的CLK,修改密碼流程是:輸入預設密碼——按下修改密碼按鍵——輸入新密碼——按下密碼確認按鍵,修改結束。在輸入新密碼后在按下密碼確認按鍵使JK觸發(fā)器清零,清零后使得預設密碼存儲芯片不再存儲輸入密碼。JK觸發(fā)器的正向輸出端接報警電路,假如密碼輸入錯誤就會報警。4軟件仿真rst低電平時所有的模塊復位,只有密碼設置模塊工作;password為設置密碼時的輸入端,ram就是存儲密碼的寄存器;enter_p為在這里為密碼設置使能端,高電平有效。密碼設置的仿真波形如下圖,由圖中可以清晰地看到在enter_p高電平時寄存器ram中得到了輸入的密碼1001。圖4.1密碼設置仿真波形rst置高,設置密碼模塊不工作,其他部分正常工作,en1為高時代表密碼設置完畢,密碼鎖開始工作;enter_c是密碼輸入使能信號,高電平時表達開始密碼輸入,此時code_tmp中開始存儲輸入的數(shù)據(jù),計時使能信號en2也變成高電平。密碼輸入仿真波形如下,由圖中可清晰的看到在enter_c為高時,寄存器code_tmp中存儲了輸入的數(shù)據(jù)code(系統(tǒng)仿真時有10ns的延時)圖4.2密碼輸入仿真波形5數(shù)字邏輯系統(tǒng)簡介5.1QuartusII軟件簡介QuartusII是Altera企業(yè)在2二十一世紀初推出的可編程邏輯器件的集成開發(fā)軟件,這個軟件是該企業(yè)前一代可編程邏輯器件集成開發(fā)軟件MAX+PLUSII的更新?lián)Q代產品。QuartusII集成開發(fā)軟件支持可編程邏輯器件開發(fā)的整個過程,它提供一種與器件無關的設計環(huán)境。軟件界面友好,使設計者能以便地進行設計輸入、設計處理和器件編程。QuartusII集成開發(fā)軟件提供了完整的多平臺設計環(huán)境,能滿足多種特定設計的需要。QuartusII設計工具支持VHDL、VerilogHDL硬件描述語言的設計流程。它也是在片可編程系統(tǒng)(SystemonaProgrammableChip,SOPC)的綜合設計環(huán)境。此外,QuartusII集成開發(fā)軟件也可以運用第三方軟件的成果,并支持第三方軟件的工作。為加緊應用系統(tǒng)的開發(fā),QuartusII集成開發(fā)軟件包括許多十分有用的參數(shù)化模塊庫(LibraryofParameterizedModules,LPM),它們是復雜或高級系統(tǒng)構建的重要構成部分,在數(shù)字系統(tǒng)設計中被大量使用。當然這些模塊也可以與顧客設計文獻一起使用。Altera提供的LPM函數(shù)均基于Altera企業(yè)器件的構造做了優(yōu)化設計,在設計中合理地調用LPM不僅可以加緊設計進程,還可以提高系統(tǒng)性能。有些LPM宏功能模塊的使用必須依賴于某些Altera企業(yè)特定器件的硬件功能,如各類存儲器模塊、DSP模塊、LVDS驅動器模塊、PLL及SERDES和DDIO模塊等,這在使用中需要注意。5.2硬件描述語言5.2.1VHDL語言VHDL重要用于描述數(shù)字系統(tǒng)的構造,行為,功能和接口。除了具有許多具有硬件特性的語句外,VHDL的語言形式和描述風格與句法是十分類似于一般的計算機高級語言。VHDL的程序構造特點是將一項工程設計,或稱設計實體(可以是一種元件,一種電路模塊或一種系統(tǒng))提成外部(或稱可視部分,及端口)和內部(或稱不可視部分),既波及實體的內部功能和算法完畢部分。在對一種設計實體定義了外部界面后,一旦其內部開發(fā)完畢后,其他的設計就可以直接調用這個實體。這種將設計實體提成內外部分的概念是VHDL系統(tǒng)設計的基本點。特點:VHDL語言可以成為原則化的硬件描述語言并獲得廣泛應用,它自身必然具有諸多其他硬件描述語言所不具有的長處。歸納起來,VHDL語言重要具有如下長處:(1)VHDL語言功能強大,設計方式多樣VHDL語言具有強大的語言構造,只需采用簡樸明確的VHDL語言程序就可以描述十分復雜的硬件電路。同步,它還具有多層次的電路設計描述功能。此外,VHDL語言可以同步支持同步電路、異步電路和隨機電路的設計實現(xiàn),這是其他硬件描述語言所不能比擬的。VHDL語言設計措施靈活多樣,既支持自頂向下的設計方式,也支持自底向上的設計措施;既支持模塊化設計措施,也支持層次化設計措施。(2)VHDL語言具有強大的硬件描述能力VHDL語言具有多層次的電路設計描述功能,既可描述系統(tǒng)級電路,也可以描述門級電路;描述方式既可以采用行為描述、寄存器傳播描述或者構造描述,也可以采用三者的混合描述方式。同步,VHDL語言也支持慣性延遲和傳播延遲,這樣可以精確地建立硬件電路的模型。VHDL語言的強大描述能力還體目前它具有豐富的數(shù)據(jù)類型。VHDL語言既支持原則定義的數(shù)據(jù)類型,也支持顧客定義的數(shù)據(jù)類型,這樣便會給硬件描述帶來較大的自由度。(3)VHDL語言具有很強的移植能力VHDL語言很強的移植能力重要體目前:對于同一種硬件電路的VHDL語言描述,它可以從一種模擬器移植到另一種模擬器上、從一種綜合器移植到另一種綜合器上或者從一種工作平臺移植到另一種工作平臺上去執(zhí)行。(4)VHDL語言的設計描述與器件無關采用VHDL語言描述硬件電路時,設計人員并不需要首先考慮選擇進行設計的器件。這樣做的好處是可以使設計人員集中精力進行電路設計的優(yōu)化,而不需要考慮其他的問題。當硬件電路的設計描述完畢后來,VHDL語言容許采用多種不一樣的器件構造來實現(xiàn)。(5)VHDL語言程序易于共享和復用VHDL語言采用基于庫(library)的設計措施。在設計過程中,設計人員可以建立多種可再次運用的模塊,一種大規(guī)模的硬件電路的設計不也許從門級電路開始一步步地進行設計,而是某些模塊的累加。這些模塊可以預先設計或者使用此前設計中的存檔模塊,將這些模塊寄存在庫中,就可以在后來的設計中進行復用。由于VHDL語言是一種描述、模擬、綜合、優(yōu)化和布線的原則硬件描述語言,因此它可以使設計成果在設計人員之間以便地進行交流和共享,從而減小硬件電路設計的工作量,縮短開發(fā)周期。5.2.2Verilog語言VerilogHDL是目前應用最為廣泛的硬件描述語言.VerilogHDL可以用來進行多種層次的邏輯設計,也可以進行數(shù)字系統(tǒng)的邏輯綜合,仿真驗證和時序分析等。VerilogHDL適合算法級,寄存器級,邏輯級,開關級、系統(tǒng)級和版圖級等各個層次的設計和描述.VerilogHDL進行設計最大的長處是其工藝無關性.這使得工程師在功能設計,邏輯驗證階段可以不必過多考慮門級及工藝實現(xiàn)的詳細細節(jié),只需根據(jù)系統(tǒng)設計的規(guī)定施加不一樣的約束條件,即可設計出實際電路.VerilogHDL是一種硬件描述語言(hardwaredescriptionlanguage),為了制作數(shù)字電路而用來描述ASICs和FPGA的設計之用。Verilog的設計者想要以C編程語言為基礎設計一種語言,可以使工程師比較輕易學習。Verilog是由en:GatewayDesignAutomation企業(yè)于大概1984年開始發(fā)展。GatewayDesignAutomation企業(yè)后來被CadenceDesignSystems于1990年所購并。目前Cadence對于Gateway企業(yè)的Verilog和Verilog-XL模擬器擁有所有的財產權。選擇VHDL還是verilogHDL?這是一種初學者最常見的問題。其實兩種語言的差異并不大,他們的描述能力也是類似的。掌握其中一種語言后來,可以通過短期的學習,較快的學會另一種語言。選擇何種語言重要還是看周圍人群的使用習慣,這樣可以以便后來的學習交流。當然,假如您是專用集成電路(ASIC)設計人員,則必須首先掌握verilog,由于在IC設計領域,90%以上的企業(yè)都是采用verilog進行IC設計。對于PLD/FPGA設計者而言,兩種語言可以自由選擇。6結論在滿足本設計規(guī)定后,基于該系統(tǒng)的硬件以固定,不過由于使用FPGA做主控制模塊,而FPGA是現(xiàn)場可編程器件,以及其可用I/O口諸多未用,因此還可以做深入拓展,例如可以用12864或者1602做顯示,還可以外加個蜂鳴器做報警器等等。按照畢業(yè)設計規(guī)定,采用以上環(huán)節(jié)完畢設計任務,到達了設計規(guī)定的需要,重點對硬件、軟件的構成進行了分項、模塊化設計,在這次課程設計中,同學之間互相協(xié)助,有什么不懂的大家在一起商議,發(fā)現(xiàn)我們所學的知識實在是有限,不過我們可以充足運用網絡的優(yōu)勢去查閱資料。最終,課程設計中波及到的電路圖,本想用圖片制作工具繪制,但還是水平有限,最終只能自己動手手工找圖,就是效率太低也太累,后來要好好學習有關的圖片制作。在整個設計過程中我認識到了許多東西,也培養(yǎng)了獨立思索和設計的能力,樹立了對知識應用的信心,相信會對此后的學習工作和生活有非常大的協(xié)助,使自己充足體會到了在設計過程中的成功喜悅。雖然這個設計做的不怎么好,不過在設計過程中所學到的東西是這次課程設計的最大收獲和財富,使我終身受益。附錄1時序電路libraryieee;useieee.std_logic_1164.all;useieee.std_logic_arith.all;useieee.std_logic_unsigned.all;entityexp19isport(Clk:instd_logic;--時鐘信號Rst:instd_logic;--復位信號Kr:instd_logic_vector(3downto0);--鍵盤行Kc:bufferstd_logic_vector(3downto0);--鍵盤列SPK:outstd_logic;--揚聲器輸出KEY_State:outstd_logic;--按鍵指示Door:bufferstd_logic;--門狀態(tài)Display:outstd_logic_vector(7downto0);--七段碼管顯示SEG_SEL:bufferstd_logic_vector(2downto0));--七段碼管片選endexp19;architecturebehaveofexp19issignalkeyr,keyc:std_logic_vector(3downto0);signalkcount:std_logic_vector(2downto0);signalkflag1,kflag2:std_logic;signalbuff1,buff2,buff3,buff4,buff5,buff6:integerrange0to15;signalpush_num:integerrange0to15;--按鍵次數(shù)signalDisp_Temp:integerrange0to15;signalDisp_Decode:std_logic_vector(7downto0);signalSEC1,SEC10:integerrange0to9;signalClk_Count1:std_logic_vector(3downto0);--1KHz時鐘分頻計數(shù)器signalClk_Count2:std_logic_vector(9downto0);--2Hz時鐘分頻計數(shù)器signalClk1KHz:std_logic;signalClk2Hz:std_logic;signalClk1Hz:std_logic;signalError_Num:integerrange0to3;signalError_Flag:std_logic;signalError_Count:std_logic_vector(2downto0);signalMusic_Count:std_logic_vector(2downto0);beginprocess(Clk)beginif(Clk'eventandClk='1')thenif(Clk_Count1<10)thenClk_Count1<=Clk_Count1+1;elseClk_Count1<="0001";endif;endif;endprocess;Clk1KHz<=Clk_Count1(2);process(Clk1KHz)beginif(Clk1KHz'eventandClk1KHz='1')thenif(Clk_Count2<1000)thenClk_Count2<=Clk_Count2+1;elseClk_Count2<="";endif;endif;endprocess;Clk2Hz<=Clk_Count2(9);process(Clk2Hz)beginif(Clk2Hz'eventandClk2Hz='1')thenClk1Hz<=notClk1Hz;endif;endprocess;2密碼設置輸入process(rst,password,enter_p)is begin ifrst='0'then ifenter_p='1'then ram<=password; en1<='1'; endif; endif; endprocess;process(rst,enter_c,en1,code) begin ifrst='1'then ifen1='1'then ifenter_c='1'then code_tmp<=code; en2<='1'; endif; elsecode_tmp<="0000";en2<='0'; endif; elsecode_tmp<="0000";en2<='0'; endif; endprocess;3密碼驗證process(Clk1KHz,Rst)--密碼校驗beginif(Rst='0')thenDoor<='0';Error_Num<=0;Error_Flag<='0';elsif(Clk1KHz'eventandClk1KHz='1')thenif(push_num=5andError_Num<3)then--修改此處的值可修改門的密碼,此處密碼為1234if(buff1=1andbuff2=2andbuff3=3andbuff4=4)thenDoor<='1';elseDoor<='0';endif;elsif(push_num=4andError_Num<1)thenif(Door='0')thenError_Flag<='1';Error_Num<=Error_Num+1;elseError_Flag<='0';Error_Num<=0;endif;elsif(Error_Count=4)thenError_Flag<='

溫馨提示

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

評論

0/150

提交評論