版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
基于VHDL的電子密碼鎖仿真設(shè)計目錄中文摘要 IV關(guān)鍵詞 IVAbstract VKeywords V第一章 引言 11.1 設(shè)計目的 11.2 設(shè)計意義 11.3 設(shè)計要求 21.4 相關(guān)領(lǐng)域概述 31.4.1QuartusII簡介 31.4.2CPLD簡介 4第二章 開發(fā)方案與論證 52.1開發(fā)方案 52.1.1并行開發(fā)方案 52.1.2串行開發(fā)方案 62.2方案論證 6第三章 電路模塊功能設(shè)計 93.1受控電路 93.1.1鍵盤編碼電路模塊 93.1.2按鍵消抖電路模塊 103.1.3密碼比較電路模塊 113.1.4密碼比較計數(shù)器電路模塊 113.1.5密碼預(yù)置電路模塊 123.1.6錯誤報警電路模塊 123.1.7觸發(fā)器電路模塊 133.2控制器電路 13第四章 詳細(xì)設(shè)計與模塊仿真 174.1受控電路源程序與仿真 174.1.1鍵盤編碼電路模塊 174.1.2按鍵消抖電路模塊 184.1.3密碼比較電路模塊 194.1.4比較計數(shù)器 194.1.5密碼預(yù)置電路模塊 204.1.5錯誤報警電路模塊 214.1.6輸出電路模塊 224.2控制器電路源程序與仿真 224.3頂層文件的設(shè)計與實現(xiàn) 274.3.1編碼預(yù)置模塊 274.3.2頂層文件設(shè)計 28第五章 設(shè)計結(jié)果 315.1仿真測試 315.1.1仿真測試波形 315.1.2邏輯測試 33第六章總結(jié)與展望 356.1密碼鎖系統(tǒng)應(yīng)用場合 356.2密碼鎖系統(tǒng)未來發(fā)展 356.3總結(jié) 36參考文獻(xiàn) 37致謝 38附錄 39附錄AVHDL源代碼 39A-1編碼器 39A-2比較器 41A-3比較計數(shù)器 41A-4密碼預(yù)置 42A-5報警計數(shù)器 43A-6觸發(fā)器 44A-7輸入 45附錄B控制器邏輯圖 47基于VHDL的電子密碼鎖設(shè)計與仿真中文摘要隨著社會物質(zhì)財富的不斷積累,安全防盜以成為社會問題。而鎖自古以來就是人們防盜的首選。要既能防盜又要實用方便。在當(dāng)下技術(shù)環(huán)境下數(shù)字鎖成為一種趨勢。本設(shè)計采用EDA技術(shù)設(shè)計一個防盜數(shù)字密碼鎖,欲解決此問題。在QuartusII環(huán)境下采用VHDL硬件描述語言設(shè)計電子密碼鎖,闡述了其工作原理,給出了具體的電路圖和仿真波形。該密碼鎖具有體積小、功耗低、保密性強(qiáng)、錯誤累積報警等功能??蓱?yīng)用于住宅、保險箱等需要防盜的場所,實用性較強(qiáng)。采用VHDL描述,產(chǎn)品的擴(kuò)展性強(qiáng),很容易于最新技術(shù)結(jié)合形成功能更加強(qiáng)大的系統(tǒng)。本系統(tǒng)采用矩陣鍵盤輸入。密碼由8位十進(jìn)制數(shù)組成,密碼多一位少一位都算錯誤,安全性有足夠保障。并且當(dāng)錯誤開鎖次數(shù)達(dá)到3次報警器將鳴叫,形成一個連鎖防盜系統(tǒng)。在錯誤尚未發(fā)生時,可通過復(fù)位回到密碼輸入狀態(tài),體現(xiàn)人性化的設(shè)計。在報警時,警報的切斷只能由保安室或?qū)嵱谜卟荒芙佑|的地方控制,為無關(guān)操作人員增加了心理威懾作用。關(guān)鍵詞:QuartusII,VHDL,密碼鎖,電路仿真DesignandsimulationofdigitalcodedlockbasedonVHDLAbstractWiththeaccumulationofsocialmaterialwealth,thepreventionofthieveshasbecomeasocialproblem.Lockisalwaysthefirstchoicewhenpeopledealwiththieves.Itrequireslocknotonlytobeagainstwiththeft,butalsopracticalandconvenient.Underthecircumstanceofcurrenttechnology,numberspadlockisbecomingatrendamonglocks.ThisdesignmakesuseofEDAtechnologytodesignaburglardigitalcombinationlocktopreventfromthieves.ThisdesignwilluseVHDL(HardwareDescriptionLanguage)underthecircumstanceofQuartusIItoexpounditsworkingprincipleandprovidecircuitdiagramandsimulationwaveform.Thiscodedlockhasthecharacteristicofsmallsize,lowconsumption,highsecurityandthefunctionoferroraccumulationalarmetc.Thiskindoflockispracticalbecauseitcanbeusedinresidence,proofboxandotherplaceswherehavetheneedofpreventfromthieves.Thelockusematrixkeyboardtoinput.It’shasenoughsbecauseitspasswordconstitutesof8decimalnumbersanditwouldbewrongifthenumberismorethan8orlessthan8.It’shumanizationbecausetherewillbealarmifthereare3timeserrorswheninputthepassword.Thealarmcanonlybecutbypublicsecurityorwherebeyondthievestouch,whichwillmakethievesmoreafeard.Keywords:QuartusII,VHDL,codedlock,circuitsimulation引言隨著社會物質(zhì)財富的日益增長,安全防盜已成為社會問題。而鎖自古以來就是把守門戶的鐵將軍,人們對它要求甚高,既要安全可靠地防盜,又要使用方便,這也是制鎖者長期以來研制的主題。數(shù)字密碼鎖是實際生活中運用廣泛的一種數(shù)字電路,主要功能是對某些操作進(jìn)行加密保護(hù),目的是避免無權(quán)人員使用某些設(shè)施或者進(jìn)行越權(quán)操作。本章首先介紹本設(shè)計的目的、設(shè)計意義以及設(shè)計要求。然后簡述相關(guān)領(lǐng)域的發(fā)展。設(shè)計目的硬件描述VHDL語言,描述能力強(qiáng)、覆蓋面廣、抽象能力強(qiáng),采用VHDL建立硬件模型可以從繁瑣的元件設(shè)計轉(zhuǎn)向功能設(shè)計。用VHDL可以快速方便地設(shè)計出符合各種要求的數(shù)字密碼鎖,而且操作簡單,密碼的位數(shù)可適當(dāng)增該,增強(qiáng)其安全性,且很容易做成ASIC芯片,設(shè)計過程達(dá)到高度自動化,設(shè)計完成后可在Quartus=2\*ROMANII環(huán)境下進(jìn)行電路的模擬仿真。使設(shè)計成本盡可能降低。本次設(shè)計為開發(fā)一款體積小,功耗低,操作簡易便于修改維護(hù),具有良好應(yīng)用前景的數(shù)字密碼鎖。設(shè)計意義在日常生活中和工作中,住宅的安全,單位的文件,和一些個人資料的保存。人們往往采用上鎖的方法來解決。如果采用傳統(tǒng)的機(jī)械鎖,人們往往需要攜帶很多鑰匙,既不方便,鑰匙的丟失還會使安全性大打折扣。隨著物質(zhì)財富的積累和科學(xué)技術(shù)的發(fā)展,人們對鎖的要求越來越高。密碼鎖代替機(jī)械鎖成為一種趨勢。密碼鎖具有安全性高、低成本、低功耗、易于操作,等等優(yōu)點。在安保領(lǐng)域,有防盜報警功能的電子密碼鎖逐漸取代了傳統(tǒng)機(jī)械密碼鎖。機(jī)械密碼鎖結(jié)構(gòu)的復(fù)雜度和密碼位數(shù)成正比成本高且安全性能差。而電子密碼鎖無論在技術(shù)上還是性能上都優(yōu)于機(jī)械密碼鎖。當(dāng)然,特定的使用環(huán)境除外。隨著大規(guī)模集成電路技術(shù)的發(fā)展,特別是硬件描述語言(VHDL),出現(xiàn)了用微型智能密碼鎖,它是除了具有電子密碼鎖的功能外,還擁有了智能化管理,專家分析系統(tǒng),從而使密碼鎖的作用,比如高安全性、可靠性,應(yīng)用日益廣泛的應(yīng)用。人們對安全的重視和科學(xué)技術(shù)的發(fā)展,許多電子智能鎖如,指紋識別、IC識別等已經(jīng)出現(xiàn)在國內(nèi)外。但是這些產(chǎn)品的特點需要一個特別的指紋或有效卡,成本相對較高不益于普及使用。針對當(dāng)前技術(shù)和水平、市場接納、電子密碼鎖是這類電子防盜產(chǎn)品的主流。設(shè)計要求根據(jù)實際需求數(shù)字密碼鎖應(yīng)具有以下功能:采用8位十進(jìn)制數(shù)字作為內(nèi)置密碼,修改密碼必須重構(gòu)邏輯。系統(tǒng)通電后必須給密碼鎖上鎖,即按上鎖鍵SETUP,表示密碼鎖準(zhǔn)備就緒,可以接受外部輸入的密碼數(shù)字,這時用來指示密碼鎖工作情況的指示燈和揚聲器處于不工作狀態(tài),系統(tǒng)處于上鎖等待密碼輸入狀態(tài)。開鎖。開鎖操作過程如下:I按下復(fù)位鍵START,此時系統(tǒng)各部分處于初始狀態(tài)。II輸入密碼,一次鍵入8個十進(jìn)制數(shù)字。III按下開鎖鍵OPEN,若密碼正確,鎖被打開(用綠燈LD點亮表示);若密碼不正確,鎖不被打開(綠燈LD不亮)不提示錯誤(用紅燈HD表示)。IV使用者按錯號碼,可在按開鎖鍵OPEN以前按復(fù)位鍵START消除輸入,重新輸入密碼。V開門成功事物處理完畢后,必須按下上鎖鍵SETUP,是系統(tǒng)進(jìn)入就緒狀態(tài)。VI所有輸入采用鍵盤輸入。報警功能。系統(tǒng)允許錯誤開門2次,當(dāng)?shù)?次錯誤開門將報警。在報警狀態(tài),上鎖鍵SETUP、復(fù)位鍵START、開門鍵OPEN、數(shù)字鍵0~9應(yīng)不起作用,需用另一內(nèi)部設(shè)置鍵解除鎖定(ISETUP),該按鍵在實際應(yīng)用中可放置在保安室或其他使用者不能接觸的地方。在本設(shè)計中為描述方便,將內(nèi)置與鍵盤中。相關(guān)領(lǐng)域概述本節(jié)將對電子密碼鎖的開發(fā)環(huán)境QuartusII和最后的實現(xiàn)環(huán)境CPLD進(jìn)行簡要介紹。1.4.1QuartusII簡介本設(shè)計是基于QuartusII9.0的,在此對它作一些介紹。QuartusII[12]是Altera提供的FPGA/CPLD開發(fā)集成環(huán)境,Altera是世界上最大的可編程邏輯器件供應(yīng)商之一。QuartusII在21世紀(jì)初推出,是Altera前一代FPGA/CPLD集成開發(fā)環(huán)境MAX+PLUSII的更新?lián)Q代產(chǎn)品,其界面友好,使用便捷。QuartusII提供了一種與結(jié)構(gòu)無關(guān)的設(shè)計環(huán)境,使設(shè)計者能方便地進(jìn)行設(shè)計輸入、快速處理和器件編程。Altera的QuartusII提供了完整的多平臺設(shè)計環(huán)境,能滿足各種特定設(shè)計的需要,也是單芯片可編程系統(tǒng)(SOPC)設(shè)計的綜合性環(huán)境和SOPC開發(fā)的基本設(shè)計工具,并為AlteraDSP開發(fā)包進(jìn)行系統(tǒng)模型設(shè)計提供了集成綜合環(huán)境。QuartusII設(shè)計工具完全支持VHDL、Verilog的設(shè)計流程,其內(nèi)部嵌有VHDL、Verilog邏輯綜合器。QuartusII也可以利用第三方的綜合工具,如LeonardoSpectrum、SynplifyPro、FPGACompilerII,并能直接調(diào)用這些工具。同樣,QuartusII具有仿真功能,同時也支持第三方仿真工具,如ModelSim。此外,QuartusII與MATLAB和DSPBuilder結(jié)合,可以進(jìn)行基于FPGA的DSP系統(tǒng)開發(fā)和數(shù)字通信模塊的開發(fā)。QuartusII包括模塊化得編譯器。編譯器包括的功能模塊由分析/綜合器(Analysis&Synthesis)、適配器(Fitter)、裝配器(Assembler)、時序分析器(TimingAnalyzer)、設(shè)計輔助模塊(DesignAssistant)、EDA網(wǎng)表文件生成器(EDANetlistWriter)、編輯數(shù)據(jù)接口(CompilerDatabaseInterface)等。可以通過選擇StartCompiler來運行所有的編譯器模塊,也可以通過選擇Start單獨運行各個模塊。還可以通過選擇CompilerTool(Tools菜單),在CompilerTool窗口中運行該模塊來啟動編譯器模塊。在CompilerTool窗口中,可以打開該模塊的設(shè)置文件或報告文件,或打開其他相關(guān)窗口。QuartusII編譯器支持的硬件描述語言有VHDL、Verilog和AHDL。QuartusII支持層次化設(shè)計,可以在一個新的編輯輸入環(huán)境中對使用不同輸入設(shè)計方式完成的模塊(元件)進(jìn)行調(diào)用,從而解決了原理圖與HDL混合輸入設(shè)計的問題。在設(shè)計輸入之后,QuartusII的編譯器將給出設(shè)計輸入的錯誤報告??梢允褂肣uartusII帶有的RTLViewer觀察綜合后的RTL圖。1.4.2CPLD簡介CPLD(ComplexProgrammableLogicDevice)復(fù)雜可編程邏輯器件[12],是從PAL和GAL器件發(fā)展出來的器件,相對而言規(guī)模大,結(jié)構(gòu)復(fù)雜,屬于大規(guī)模集成電路范圍。早期的CPLD大多采用EPROM編程技術(shù),其編程過程與簡單PLD一樣,每次編程需要在專用或通過設(shè)備上運行。后來采用E2PROM和閃爍存儲器技術(shù),使CPLD具有了“在系統(tǒng)可編程(ISP)”特性。所謂在系統(tǒng)可編程是指未編程的ISP器件可以直接焊接在印制電路板上,然后通過計算機(jī)的數(shù)據(jù)傳輸端口和專用的編程電纜對焊接在電路板上的ISP器件直接多次編程,從而使器件具有所需要的邏輯功能。這種編程不需要使用專用的編程器,因為已將原來屬于編程器的編程電路和升壓電路集成在ISP器件內(nèi)部。ISP技術(shù)使得調(diào)試過程不需要反復(fù)撥插芯片,從而不會產(chǎn)生引腳彎曲變形現(xiàn)象,提高了可靠性,而且可以隨時對焊接在電路板上的ISP器件的邏輯功能進(jìn)行修改,從而加快了數(shù)字系統(tǒng)的調(diào)試過程。目前。ISP已成為系統(tǒng)在線遠(yuǎn)程升級的技術(shù)手段。目前,絕大多數(shù)FPGA器件具有ISP功能。例如,Altera公司的MAX7000S(5V)、MAX7000A(3.3V)和MAX7000B(2.5V)系列,Xilinx公司的XC9500系列以及Lattice公司的CPLD器件等。開發(fā)方案與論證本章將首先介紹數(shù)字鎖兩種不同的開發(fā)方案,從方案的原理,實現(xiàn)的成本進(jìn)行比較。然后論證本設(shè)計采用的方案——串行方案。2.1開發(fā)方案 開發(fā)方案有串行開發(fā)方案和并行開發(fā)方案下面分別介紹2.1.1并行開發(fā)方案并行開發(fā)方案,密碼采用并行輸入方式。密碼輸入完畢后再一次性比較。原理圖如圖2.1所示。圖2.1并行開發(fā)原理圖 數(shù)據(jù)通過鍵盤輸入,消抖后編碼存入數(shù)據(jù)緩沖器。在控制器的控制下與預(yù)存密碼進(jìn)行比較正確則開啟密碼鎖。達(dá)到錯誤次數(shù)報警。2.1.2串行開發(fā)方案 串行開發(fā)方案,密碼采用串行輸入。邊輸入,邊比較。多撥、少撥均視為錯誤。原理圖如圖2.2所示。圖2.2串行開發(fā)原理圖 數(shù)據(jù)通過鍵盤輸入,消抖后編碼。在控制器的控制下與預(yù)存密碼進(jìn)行比較正確則開啟密碼。否則視為錯誤開啟,達(dá)到錯誤次數(shù)報警。2.2方案論證 串行開發(fā)所需硬件資源少,本設(shè)計采用串行開發(fā)方案。 依據(jù)上述對數(shù)字鎖系統(tǒng)的功能要求,其系統(tǒng)整體框圖如圖2.3所示,它將系統(tǒng)劃分為控制器和受控電路兩部分,受控電路由消抖電路模塊、編碼器、比較器、密碼預(yù)置、計數(shù)器、觸發(fā)器等模塊組成。數(shù)字密碼鎖控制系統(tǒng)的輸入信號包括:數(shù)字密碼鍵盤0~9,上鎖鍵STEUP,復(fù)位鍵START,解除鎖定鍵ISETUP,開鎖鍵OPEN;輸出信號包括:開門指示燈LD,錯誤指示燈HD,報警器BG。數(shù)字鎖的密碼采用3x4鍵盤輸入,由于3x4鍵盤輸出為行線/列線信號,所以首先經(jīng)編碼器編碼(圖中kr,kc為總線信號)將行線/列線信號變?yōu)橄鄳?yīng)0~9的8421BCD碼并與原存儲于系統(tǒng)中的密碼相比較,因而需要有一個4位等值比較器,并將比較結(jié)果DEP反饋給控制器。圖2.3數(shù)字密碼鎖系統(tǒng)電路整體框圖編碼器模塊的作用是將鍵盤輸入的信號編成BCD碼,并且每鍵入一個數(shù)碼,應(yīng)向控制器送一個脈沖DATA_IN表示有數(shù)據(jù)輸入。比較器模塊的作用是將輸入的密碼和內(nèi)置密碼進(jìn)行比較,并將結(jié)果DEP反饋給控制器。密碼預(yù)置模塊的作用是預(yù)置內(nèi)部密碼,因為內(nèi)部預(yù)置密碼采用8位十進(jìn)制數(shù),且用BCD碼表示,需32個輸入端送入,所以可選用32選4數(shù)據(jù)選擇電路來選擇密碼。由于密碼是串行輸入,依次分別于一個預(yù)置碼進(jìn)行比較,因為8個十進(jìn)制預(yù)置碼是提前預(yù)置好的,所以還需要一個計數(shù)器來選擇目前要比較第幾個數(shù)據(jù)。32選4數(shù)據(jù)選擇器的3位地址碼用一個模8計數(shù)器控制??刂破飨蛴嫈?shù)器提供一個清零信號RESET_CNP和時鐘信號CNP,每次通過鍵盤輸入一個密碼數(shù)字,控制器向計數(shù)器提供一個時鐘脈沖CNP,使計數(shù)器加1,當(dāng)計數(shù)器到8時,說明8個密碼數(shù)字已經(jīng)比較完畢,此時計數(shù)器產(chǎn)生進(jìn)位信號CO8反饋給控制器,控制器進(jìn)入待啟動狀態(tài)或預(yù)警狀態(tài)。由于輸入都采用鍵盤輸入,其按下時刻和持續(xù)時間長短是隨機(jī)的,且存在因簧片反彈引起的電平抖動現(xiàn)象。必須在每個開關(guān)后面安排一個消抖同步模塊,以保證系統(tǒng)能真確捕捉到輸入脈沖。消抖同步模塊的作用是保證系統(tǒng)能捕捉到輸入脈沖,并保證沒按一次鍵只形成一個寬度等于系統(tǒng)時鐘周期的脈沖。報警計數(shù)器模塊的作用是,每一次開啟錯誤,控制器向報警計數(shù)器提供一個時鐘信號HD,使計數(shù)器加1,當(dāng)計數(shù)器到3時,說明錯誤次數(shù)達(dá)到3次,模3進(jìn)位信號CO3反饋給控制器,控制器發(fā)出報警信號BG。解除鎖定或正確開門后控制器向報警計數(shù)器發(fā)出清零信號ISETUP,使計數(shù)器清零。控制器模塊在密碼系統(tǒng)每收到一個輸入的密碼數(shù)字時,應(yīng)向比較計數(shù)器發(fā)出一個時鐘信號CNP。當(dāng)密碼系統(tǒng)在按下開鎖鍵OPEN前收到第9個時鐘信號時,應(yīng)裝入預(yù)警狀態(tài),等待按下開鎖鍵OPEN后發(fā)出錯誤信號HD。因此,密碼鎖系統(tǒng)沒輸入一個密碼數(shù)字,應(yīng)向控制器送入一個脈沖DATA_IN,顯然此信號也應(yīng)同步,即形成寬度只占一個系統(tǒng)時鐘的脈沖。密碼鎖系統(tǒng)的輸出有開鎖指示燈LD(綠燈)、錯誤指示燈HD(紅燈)和揚聲器。LD和HD由觸發(fā)器控制??刂破鞣謩e向觸發(fā)器提供一個置位信號S_LD、S_HD,按下上鎖鍵時向觸發(fā)器提供一個復(fù)位信號RESET_L,用來控制綠燈LD、紅燈HD工作。電路模塊功能設(shè)計數(shù)字密碼鎖系統(tǒng)電路設(shè)計采用自頂而下的設(shè)計方法。自頂而下設(shè)計方法的主要思想是對數(shù)字系統(tǒng)分模塊,分層次進(jìn)行設(shè)計,這樣可以將復(fù)雜的設(shè)計劃分成若干個相對簡單的模塊,不同的模塊可完成數(shù)字系統(tǒng)中某一部分的具體功能,從而使電路設(shè)計大為簡化。本章對個模塊進(jìn)行功能設(shè)計,即各模塊的功能描述。將分受控電路和控制電路兩部分描述。3.1受控電路受控電路的主要版塊有,鍵盤編碼電路模塊、消抖電路模塊、比較器模塊、密碼預(yù)置木塊、比較計數(shù)器模塊和報警計數(shù)模塊3.1.1鍵盤編碼電路模塊 數(shù)字密碼鎖控制系統(tǒng)的輸入信號包括:數(shù)字密碼鍵盤0~9,復(fù)位鍵START,開鎖鍵OPEN,上鎖鍵SETUP,功能鍵ISETUP。 4*4矩陣式鍵盤完全能滿足上述要求,且經(jīng)濟(jì)美觀。根據(jù)需要,鍵盤布局如圖3.1所示。圖3.1鍵盤按鍵布局 根據(jù)4*4矩陣式鍵盤特點,采用行列式編碼方式。為減少硬件的開銷,只對數(shù)字0~9進(jìn)行編碼。行線kc送高電平(1111),列線kr送低電平(000)。當(dāng)沒有按鍵時,行線和列線是斷開的。當(dāng)有按鍵時,行線和列線信號將相應(yīng)有所改變,據(jù)此,可對此類信號進(jìn)行編碼,達(dá)到識別的目的。鍵盤的輸入原理如圖3.2所示。圖3.2鍵盤編碼原理3.1.2按鍵消抖電路模塊 由于本設(shè)計采用的是鍵盤輸入,按鍵時手部的抖動,輸入信號就會產(chǎn)生不穩(wěn)定脈沖。如果信號不加以處理就可能會導(dǎo)致錯誤的信號識別。因此每個輸入端就各需要一個消抖電路。也就是說,輸入信號波形有抖動,但經(jīng)過消抖之后,其輸出也為正規(guī)的矩形波。 如圖3.3所示的信號波形,在正常信號的上升沿和下降沿含有一些隨即干擾信號,或隨即抖動。為了去除這些抖動干擾脈沖,可采用如圖3.4所示電路來實現(xiàn)這個目標(biāo)。 圖3.3信號上升與下降沿都含有隨機(jī)干擾抖動信號 圖3.4所示電路有2個上升沿D觸發(fā)器和一個2輸入與門構(gòu)成。設(shè)key_in是輸入信號,clk是消抖電路本身的工作時鐘。2個D觸發(fā)器連接成同步時序方式,即將他們的輸入端都連在一起。輸入信號以移位串行方式向前傳遞。信號的輸出口是key_out。 當(dāng)信號輸入電路后,能在key_out輸出脈沖信號的條件是,必須2個D觸發(fā)器的輸出端都同為1,從而2輸入與門來輸出高電平。由于干擾信號是一群寬度狹窄的隨機(jī)信號,在串入是,很難同時時與門輸出為1,而只有正常信號才有足夠的寬度通過此電路,從而起到“濾波”功能。圖3.4消抖電路3.1.3密碼比較電路模塊 密碼驗證用于將編碼器轉(zhuǎn)化后的8421BCD碼與預(yù)置密碼進(jìn)行比較。因此只需要比較兩組數(shù)據(jù)是否相等,不需要知道誰大誰小,所以采用等值比較器。設(shè)比較器的4個輸入端為y0~y3,輸出端為f0~f3,當(dāng)比較兩數(shù)正確時輸出一個dep有效信號“1”給控制器,否則輸出為“0”。如圖3.5所示。圖3.5密碼驗證3.1.4密碼比較計數(shù)器電路模塊本設(shè)計采用串行輸入,所以還得有計數(shù)器,用于判斷密碼比較到第幾個數(shù)字和密碼是否輸入完畢。計數(shù)器是一種累積脈沖的邏輯部件,clr為復(fù)位信號,高電平有效。當(dāng)復(fù)位信號clr為低電平時,脈沖信號clk每來一個脈沖就計數(shù)一次,模8進(jìn)位信號co8用于判斷密碼是否輸入完畢,q[i]用于判斷目前比較到第幾個數(shù)字。設(shè)計如圖3.6所示。圖3.6密碼比較計數(shù)器3.1.5密碼預(yù)置電路模塊 密碼預(yù)置電路用于設(shè)置密碼,本系統(tǒng)密碼采用內(nèi)置方式。修改密碼需重夠邏輯。密碼預(yù)置需能判斷需比較第幾位密碼。系統(tǒng)內(nèi)置8位密碼用8421BCD碼表示則需要4位輸出y0~y3。q[i]接收由密碼比較計數(shù)器發(fā)來的信號用于判斷比較第幾位密碼。設(shè)計如圖3.7所示。圖3.7密碼預(yù)置3.1.6錯誤報警電路模塊 在實際運用中,增加報警功能有他的必要。本系統(tǒng)采用3次錯誤報警設(shè)置。那么就需要一個模3計數(shù)器。同密碼比較計數(shù)器原理基本一樣。clr為復(fù)位信號,高電平有效。當(dāng)復(fù)位信號clr為低電平時,脈沖信號clk每來一個脈沖計數(shù)一次,模3進(jìn)位信號co3用于判斷錯誤次數(shù)是否達(dá)到上限。設(shè)計如圖3.8所示。圖3.8報警計數(shù)器3.1.7觸發(fā)器電路模塊觸發(fā)器是一個門輸出電路,用LD表示密碼鎖打開,HD表示開啟過程出錯??刂破飨蛟撃K提供置數(shù)和復(fù)位信號(低電平有效),用于驅(qū)動兩個指示燈和門電路工作。當(dāng)復(fù)位信號RESET_L有效時,指示燈LD和HD熄滅。RESET_L為脈沖信號,門狀態(tài)是一個連續(xù)狀態(tài),所以采用非門信號作為輸出。設(shè)計圖如圖3.9所示。圖3.9觸發(fā)器3.2控制器電路 控制器是整個電子密碼鎖的核心。根據(jù)設(shè)計要求,可知控制器共有6個狀態(tài),即待鎖狀態(tài)A、上鎖狀態(tài)B、輸入密碼狀態(tài)C、待啟動裝袋D、預(yù)警狀態(tài)E和報警狀態(tài)F。控制器模塊工作狀態(tài)流程圖(簡稱ASM圖)如圖3.10所示。矩形框:工作狀態(tài)菱形框:分支條件平行四邊形框:條件輸出開門鍵(OPEN)上鎖(SETUP)解除鎖定(ISETUP)上鎖(STATR)圖3.10控制器工作狀態(tài)流程圖待鎖狀態(tài)A待鎖狀態(tài)是指密碼鎖系統(tǒng)處于打開、報警后的狀態(tài)。此時數(shù)字鎖尚未“鎖好”,還未進(jìn)入正常運行,因此系統(tǒng)不接受除上鎖鍵(SETUP)或解除鎖定鍵(ISETUP)外的任何輸入信號。當(dāng)按下上鎖鍵后,系統(tǒng)將進(jìn)入上鎖狀態(tài),且將開門標(biāo)志燈LD、錯誤燈HD熄滅,警報器聲音切斷,因而需輸入RESET_L復(fù)位信號。在圖3-10待鎖狀態(tài)的流程中,當(dāng)SETUP=1時進(jìn)入第二狀態(tài),START=0時維持原狀態(tài);當(dāng)SETUP=1時輸出RESET_L復(fù)位信號。至于en使能信號,是用來控制數(shù)據(jù)輸入信號DATA_IN、開門信號OPEN輸入的,在本狀態(tài)皆應(yīng)無效且條件上鎖SETUP無關(guān),是一種無條件輸出,因而標(biāo)在算法狀態(tài)框旁邊,并用箭頭↓表示無效。上鎖狀態(tài)B系統(tǒng)的第二狀態(tài)實在按下上鎖鍵SETUP以后,數(shù)字鎖已“鎖好”,系統(tǒng)正常運行,等待執(zhí)行開鎖狀態(tài)。當(dāng)按下START時,將轉(zhuǎn)入開鎖狀態(tài),開鎖程序開始執(zhí)行,等待輸入密碼數(shù)字,此時應(yīng)將計數(shù)器清零,故在第二工作狀態(tài)中有一條輸出框,輸出比較計數(shù)器清零信號RESER_CNP。輸入密碼狀態(tài)C進(jìn)入此狀態(tài)時,en使能信號變?yōu)橛行г试S輸入密碼數(shù)字0~9或按下開鎖鍵OPEN,故而在狀態(tài)框旁邊標(biāo)有en↑。該狀態(tài)每收到一個信號應(yīng)線判斷是密碼數(shù)據(jù)信號DATA_IN還是開鎖信號OPEN。如果是開鎖信號OPEN則不符合開鎖程序,應(yīng)發(fā)出開鎖錯誤信號,級發(fā)出紅燈信號HD;若是密碼信號,則控制器應(yīng)向計數(shù)器發(fā)出時鐘信號CNP,若DEP=0,意味著輸入密碼不對,應(yīng)轉(zhuǎn)入預(yù)警狀態(tài)E,否則檢查計數(shù)器狀態(tài)是否已計到8,若模8信號CO8有效則表示已接受到8個正確密碼,可轉(zhuǎn)入下一狀態(tài)待啟動狀態(tài),否則返回本狀態(tài),繼續(xù)接受其他密碼。在轉(zhuǎn)移到預(yù)警狀態(tài)E或待啟動狀態(tài)D以前,如果收到復(fù)位信號SATRA,控制器發(fā)出比較計數(shù)器清零信號RESET_CNP,使計數(shù)器清零,則前面收到的密碼無效,重新進(jìn)行輸入密碼操作。待啟動狀態(tài)D在待啟動狀態(tài),這時控制器將判斷按鍵輸入的是密碼數(shù)字信號還是開鎖信號,若是開鎖信號OPEN,則發(fā)出綠燈信號LD,使綠燈點亮,啟動開門續(xù)電器;若是數(shù)字密碼信號,則進(jìn)入預(yù)警狀態(tài)。在待啟動狀態(tài)下,在接受信號以前如果按動復(fù)位鍵START,則控制器將發(fā)出比較計數(shù)器清零信號RESET_CNP并回到輸入密碼狀態(tài)。預(yù)警狀態(tài)E在預(yù)警狀態(tài),此時若按復(fù)位鍵,系統(tǒng)發(fā)出比較計數(shù)器清零信號RESET_CNP后,并使控制器回到輸入密碼狀態(tài)。若按下開鎖鍵OPEN,使紅燈HD點亮,并向報警計數(shù)器發(fā)出時鐘信號。錯誤狀態(tài)F在此狀態(tài),每亮一次紅燈HD,計數(shù)加1,按復(fù)位鍵SATRA返回到密碼輸入狀態(tài)C。當(dāng)計數(shù)器CO3有效為高電平時進(jìn)入報警狀態(tài)。報警狀態(tài)G當(dāng)報警計數(shù)器CO3有效,此時報警器鳴叫,須按解除鎖定鍵I_SETUP方回到上鎖狀態(tài)。詳細(xì)設(shè)計與模塊仿真本章主要解決各功能模塊的VHDL實現(xiàn)和其功能的仿真測試。4.1受控電路源程序與仿真受控電路在控制器的控制下完成相應(yīng)的電路功能,在第三章我們完成了電路的功能設(shè)計,接下來將對各模塊進(jìn)行VHDL實現(xiàn)以及相應(yīng)功能的仿真測試,測試是否達(dá)到設(shè)計要求。4.1.1鍵盤編碼電路模塊 該電路模塊主要完成的是鍵盤的編碼。VHDL源程序見附錄A-1。 編碼器電路的仿真波形如圖4.1所示。從波形圖可以看出,en是使能端,高電平有效,它由控制器的輸出控制。當(dāng)en=0是,輸出為0;當(dāng)en為高電平時,可以進(jìn)行編碼。當(dāng)en=1時,按下相應(yīng)的按鍵,輸出即為輸入數(shù)據(jù)對應(yīng)的8421BCD碼。dout端由于用來記錄輸入數(shù)據(jù)的個數(shù),因此無論輸入是否有效,只要有輸入dout端就會產(chǎn)生高電平輸出,以記錄輸入數(shù)據(jù)的個數(shù)。dout信號經(jīng)消抖同步后送到控制器data_in輸入端。圖4.1編碼器電路模塊的仿真波形 通過VHDL源代碼很容易得邏輯電路圖如4.2所示。圖4.2編碼器電路模塊邏輯電路4.1.2按鍵消抖電路模塊本部分采用所用都是基本元件,宜采用圖形設(shè)計輸入方式,如圖3-4所示。這里不在熬述。 消抖電路模塊仿真波形如圖4.3所示。由波形圖可以看出,在一個上升沿檢測到有按鍵時則不管這一時鐘周期內(nèi)有多少次抖動,只輸出一個時鐘周期寬度的脈沖信號。并且當(dāng)按鍵一直持續(xù)多少個時鐘周期時,輸出信號仍為一個時鐘周期寬度的單脈沖。圖4.3消抖電路仿真波形 消抖電路邏輯電路圖如圖4.4所示.圖4.4消抖電路邏輯電路4.1.3密碼比較電路模塊密碼驗證就是一個等值比較電路,將編碼器轉(zhuǎn)化后的8421BCD碼與預(yù)置密碼進(jìn)行比較。VHDL源程序鍵附錄A-2。 比較器電路模塊仿真波形如圖4.5所示。從比較器仿真波形可以看出,當(dāng)兩組數(shù)據(jù)y[3..0]與f[3..0]相等時輸出端dep輸出有效信號高電平給控制器,否則輸出低電平。圖4.5比較器仿真波形 比較器邏輯電路如圖4.6所示。圖4.6比較器邏輯電路4.1.4比較計數(shù)器因為是串行輸入,密碼比較還需要一個計數(shù)器器。VHDL源程序見附錄A-3。 比較計數(shù)器電路模塊的仿真波形如圖4.7所示。從波形圖可以看出,當(dāng)復(fù)位信號clr為低電平時,時鐘脈沖輸入clk在上升沿有效,輸出端q[2..0]進(jìn)行8進(jìn)制計數(shù),并且當(dāng)計數(shù)到8個數(shù)時,進(jìn)位信號CO8轉(zhuǎn)為高電平,表明密碼輸入完畢,可以開啟密碼鎖。圖4.7比較計數(shù)器仿真波形 比較計數(shù)器邏輯電路圖如圖4.8所示。圖4.8比較計數(shù)器邏輯電路4.1.5密碼預(yù)置電路模塊 本設(shè)計采用內(nèi)置密碼設(shè)置,修改密碼需重構(gòu)邏輯。這里設(shè)定密碼為八位數(shù)12345678,同時密碼預(yù)置部分還需要判斷比較到第幾個數(shù)字。信號通過比較計數(shù)器獲得。VHDL源程序見附錄A-4。 密碼預(yù)置電路模塊仿真波形如圖4.9所示。從波形可以看出,從比較計數(shù)器過來的信號q[2..0]能正確的控制預(yù)置密碼的輸出。圖4.9密碼預(yù)置電路仿真波形 密碼預(yù)置電路模塊邏輯電路圖如圖4.10所示。圖4.10密碼預(yù)置邏輯電路4.1.5錯誤報警電路模塊當(dāng)開門錯誤達(dá)到3次時,報警器將鳴叫。因此需要一個模3計數(shù)器。VHDL源程序見附錄A-5。報警計數(shù)器電路模塊的仿真波形如圖4.11所示。從波形圖可以看出,當(dāng)復(fù)位信號clr為低電平時,時鐘脈沖輸入clk在上升沿有效,輸出端q[1..0]進(jìn)行1進(jìn)制計數(shù),并且當(dāng)計數(shù)到3個數(shù)時,進(jìn)位信號co3轉(zhuǎn)為高電平,表明錯誤次數(shù)達(dá)到上限,開始報警。圖4.11報警計數(shù)器仿真波形 報警計數(shù)器電路模塊邏輯電路圖如圖4.12所示。圖4.12報警計數(shù)器邏輯電路4.1.6輸出電路模塊 輸出電路主要是一個門狀態(tài)電路,采用兩個RS觸發(fā)器輸出控制驅(qū)動電路。VHDL源程序見附錄A-6。 觸發(fā)器模塊仿真波形如圖4.13所示,在圖中z1為控制器端輸出的原始信號,將與其相反的qb信號加上非門為紅燈和綠燈的驅(qū)動信號。圖4.13觸發(fā)器模塊的仿真波形 觸發(fā)器模塊的邏輯電路如圖4.14所示。圖4.14觸發(fā)器模塊邏輯電路4.2控制器電路源程序與仿真 控制器是系統(tǒng)的最核心部分,對系統(tǒng)各模塊的輸入輸出進(jìn)行邏輯綜合,從而達(dá)到設(shè)計要求??刂破魇且粋€時序邏輯電路,是根據(jù)控制器詳細(xì)工作流程圖來設(shè)計。根據(jù)3.2工作流程圖,可得出如圖4.15MDS狀態(tài)圖。 圖4-15說明如下: 1:SETUP2:SETUP3:SATRA4:START6:OPEN?START8:OPEN?10:OPEN11:DATA_IN?13:DATA_IN?START14:DATA_IN15:17:START?OPEN18:CO3?21:ISETUP22:ISETUP圖4.15控制器MDS圖采用一對一的方式,用7個觸發(fā)器QA、QB、QC、QD、QE、QF、QG表示7個狀態(tài),則7個觸發(fā)器的激勵方程分別為QAQBQCQDQEQFQG各有關(guān)輸出為 EN=Q RESET_L=SETUP RESET_CNP= CNP= HD=OPEN? LD=在編寫源程序時采用VHDL的數(shù)據(jù)流描述方式,根據(jù)得出的各狀態(tài)方程編寫程序??刂破鱒HDL源程序如下:libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entitykong_zhi_qiis port(clk,setup,start,isetup,iopen,data_in,co8,co3,dep:instd_logic; reset_l:outstd_logic;--定義信號燈清零信號 ld:outstd_logic;--定義綠色信號燈 hd:outstd_logic;--定義紅色信號燈 cnp:outstd_logic;--計數(shù)器脈沖信號 reset_cnp:outstd_logic;--計數(shù)器清零信號 en:outstd_logic;--鍵盤使能信號 qa,qb,qc,qd,qe,qf,qg:outstd_logic);--控制器狀態(tài)信號,用于測試endkong_zhi_qi;architecturebehaveofkong_zhi_qiissignalqa1,qb1,qc1,qd1,qe1,qf1,qg1:std_logic; begin process(clk) begin if(clk'eventandclk='1')then qa1<=(notsetupandqa1)or(iopenand(notdata_in)and(notstart)andqd1)or((notqa1)and(notqb1)and(notqc1)and(notqd1)and(notqe1)and(notqf1)and(notqg1));--待鎖狀態(tài)A qb1<=(setupandqa1)or((notstart)andqb1)or(isetupandqg1);--待鎖狀態(tài)B qc1<=(startandqb1)or(qd1and(notdata_in)andstart)or(qe1andstart)or((notco3)andstartandqf1)or((notiopen)and(notstart)and(notdata_in)andqc1)or((notiopen)andstartandqc1)or((notiopen)and(notstart)anddata_inanddepand(notco8)andqc1);--輸入密碼狀態(tài)C qd1<=((notiopen)and(notstart)anddata_inanddepandco8andqc1)or((notdata_in)and(notstart)and(notiopen)andqd1);--待啟動狀態(tài)D qe1<=((notiopen)and(notstart)anddata_inand(notdep)andqc1)or(data_inandqd1)or((notstart)and(notiopen)andqe1);--預(yù)警狀態(tài)E qf1<=((notstart)andiopenandqe1)or(iopenandqc1)or((notstart)and(notco3)andqf1);--錯誤狀態(tài)F qg1<=(co3andqf1)or((notisetup)andqg1);--報警狀態(tài)G reset_cnp<=(qb1andstart)or(qc1and(notiopen)andstart)or(qd1and(notdata_in)andstart)or(qe1andstart)or(qf1and(notco3)andstart); en<=qc1orqd1orqe1orqf1; reset_l<=(setupandqa1)or(isetupandqg1); cnp<=data_inandqc1and(notiopen)and(notstart); hd<=(iopenandqc1)or(iopenandqe1and(notstart)); ld<=qd1andiopenand(notdata_in)and(notstart); endif; endprocess; qa<=qa1; qb<=qb1; qc<=qc1; qd<=qd1; qe<=qe1; qf<=qf1; qg<=qg1;endbehave; 控制器模塊仿真波形如圖4.16所示。圖4.16控制器仿真波形 從圖4.15系統(tǒng)的詳細(xì)波形可以看出,當(dāng)?shù)谝粋€時間脈沖clk到來時待鎖狀態(tài)qa變?yōu)楦唠娖?,按下上鎖鍵setup后馬上進(jìn)入上鎖狀態(tài)qb,接著按下復(fù)位鍵start進(jìn)入密碼輸入狀態(tài)qc,此時一次鍵入預(yù)置密碼12345678,從數(shù)據(jù)輸入信號data_in可以看到?jīng)]輸入一位數(shù)字就有信號輸入,并且比較結(jié)果dep變?yōu)楦唠娖秸f明密碼輸入正確,當(dāng)計數(shù)器時鐘信號cnp計夠8個數(shù)字時,模8進(jìn)位信號co8和待啟動狀態(tài)qd同時變?yōu)楦唠娖?,此時按下開門鍵open門打開,同時開啟指示燈ld變?yōu)楦唠娖?,系統(tǒng)進(jìn)入待鎖狀態(tài)qa,如圖4.15狀態(tài)1。然后系統(tǒng)依次按上鎖鍵setup和復(fù)位鍵start重新進(jìn)行輸入。如圖4.15狀態(tài)2,這是輸入第八位密碼錯誤,接著開鎖,從波形圖可以看出開門錯誤指示燈hd變?yōu)楦唠娖?。?fù)位后再次鍵入正確密碼,開門正確,如圖4.15狀態(tài)3。圖4.15狀態(tài)4是模擬當(dāng)錯誤次數(shù)達(dá)到3次后系統(tǒng)進(jìn)入報警狀態(tài)qf此時出ISETUP外所有按鍵無效,此時只有按解除鎖定鍵ISETUP才能回到上鎖狀態(tài)。 控制器邏輯圖見附錄B。4.3頂層文件的設(shè)計與實現(xiàn) 頂層文件采用圖形化設(shè)計方式,將前面各模塊調(diào)入連接構(gòu)成。為減少系統(tǒng)圖形界面的復(fù)雜性,首先設(shè)計編碼預(yù)置模塊,然后再設(shè)計頂層文件。4.3.1編碼預(yù)置模塊 該模塊由編碼器、比較器、比較計數(shù)器和密碼預(yù)置構(gòu)成。為了仿真方便再加入一個輸入模塊(實際中可去除)。該輸入模塊VHDL源程序見附錄A-7。 編碼預(yù)置模塊原理圖如圖4.17所示。圖4.17編碼預(yù)置模塊元件設(shè)計將編碼預(yù)置模塊元件化將得到如圖4.18所示編碼預(yù)置模塊元件。方便頂層文件調(diào)用。圖4.18編碼預(yù)置模塊元件4.3.2頂層文件設(shè)計 將前面設(shè)計好的各模塊調(diào)入連接如圖4.19所示。4x4鍵盤上的每個輸入端首先通過消抖后進(jìn)入系統(tǒng),編碼預(yù)置模塊出來的信號dout也通過消抖電路后送入控制器。各消抖模塊與控制器工作在同一時鐘下。以期達(dá)到系統(tǒng)的同步。開門信號OPEN和控制器使能信號en通過一個與門后送入控制器,以確定開門動作實在鍵盤輸入有效的情況下進(jìn)行。其他個輸入、輸出端按系統(tǒng)AMS圖進(jìn)行鏈接。為了仿真測試的方便,可將控制器狀態(tài)輸出端qa~qg端也接一個輸出,以便于在仿真測試中觀察控制器所處狀態(tài),確定系統(tǒng)是否正確。 頂層文件的仿真波形將在5.1給出?,F(xiàn)先給出邏輯圖如圖4.20所示。設(shè)計結(jié)果本章將對完成的數(shù)字鎖結(jié)果進(jìn)行展示,主要有功能仿真和邏輯測試。5.1仿真測試 仿真測試主要對密碼鎖系統(tǒng)進(jìn)行功能測試和邏輯測試。測試系統(tǒng)功能是否達(dá)到設(shè)計要求,邏輯線路是否執(zhí)行正確。5.1.1仿真測試波形功能測試,是直接對VHDL、原理圖描述或其他描述形式的邏輯功能進(jìn)行測試模擬,以了解其實現(xiàn)的功能是否滿足設(shè)計要求的過程。仿真波形不涉及任何具體器件的硬件特性。不經(jīng)歷適配階段,在設(shè)計項目編輯編譯后即可進(jìn)入門級仿真器進(jìn)行模擬測試。直接進(jìn)行功能仿真的好處是設(shè)計耗時短、對硬件庫、綜合器沒有任何要求。(1)一次開門正確 按下列順序鍵入按鍵值:上鎖→復(fù)位→鍵入密碼→開門。仿真波形如圖5.1所示。從波形圖可以看出。未上鎖是系統(tǒng)處于待鎖狀態(tài)A(圖中qa為高點平);當(dāng)上鎖后系統(tǒng)馬上轉(zhuǎn)到待鎖狀態(tài)B(圖中qb為高電平,同時qa轉(zhuǎn)為低電平);隨后按下復(fù)位鍵,系統(tǒng)進(jìn)入輸入密碼狀態(tài)C(qc轉(zhuǎn)為高點平),同時發(fā)出reset_cnp清零信號給比較計數(shù)器。En是能裝置為高電平允許鍵入密碼。在C狀態(tài),每收到一位密碼,發(fā)出一次cnp計數(shù),當(dāng)正確比較脈沖dep為高電平時,繼續(xù)C狀態(tài)。系統(tǒng)當(dāng)正確收到八位密碼后,比較計數(shù)器發(fā)來CO8有效信號(高電平),同時dep有效,系統(tǒng)轉(zhuǎn)到待啟動狀態(tài)D(qd為高點平,同時qc轉(zhuǎn)為低電平)。在此狀態(tài)系統(tǒng)收到開門信號open,門開啟綠燈ld點亮,同時系統(tǒng)回到待鎖狀態(tài)A。(2)鍵入密碼發(fā)現(xiàn)錯誤,復(fù)位后正確輸入 按下列順序鍵入按鍵值:上鎖→復(fù)位→鍵入錯誤密碼→復(fù)位→鍵入正確密碼→開門。仿真波形如圖5.2所示。從波形圖可以看出,當(dāng)系統(tǒng)收到密碼信息時由于比較器給出dep為電平,系統(tǒng)判斷密碼輸入錯誤,系統(tǒng)進(jìn)入預(yù)警狀態(tài)E(qe為高點平)。這時復(fù)位,系統(tǒng)再次進(jìn)入輸入密碼狀態(tài)C,后面波形同5.1狀態(tài)。圖5.1正確開門狀態(tài)仿真波形圖5.2先鍵入錯誤密碼復(fù)位后再鍵入正確密碼仿真波形(3)3次開門出錯。 按下列順序鍵入按鍵值:上鎖→復(fù)位→鍵入錯誤密碼→開門→復(fù)位→鍵入錯誤密碼→開門→復(fù)位→鍵入錯誤密碼→開門。仿真波形如圖5.3所示。從波形圖可以看出,每次錯誤開門系統(tǒng)都會進(jìn)入錯誤狀態(tài)F(qf為高電平)復(fù)位后再次進(jìn)入密碼輸入狀態(tài)C,當(dāng)報警計數(shù)器CO8有效(高電平)表示錯誤次數(shù)達(dá)到上限,這時系統(tǒng)進(jìn)入報警狀態(tài)G,不在接受除解除鎖定鍵外的任何輸入。Baojing轉(zhuǎn)為高電平,警報器鳴叫。圖5.3三次開門錯誤報警波形圖5.1.2邏輯測試 借鑒軟件工程的知識,本環(huán)節(jié)對數(shù)字密碼鎖系統(tǒng)進(jìn)行白盒測試。測試各語句是否都能執(zhí)行,而不考慮是否正確執(zhí)行。 本設(shè)計將采用基本路徑測試方法。根據(jù)3-10流程圖可得如下測試路徑。路徑1:待鎖狀態(tài)A→上鎖NO;路徑2:待鎖狀態(tài)A→上鎖YES→待鎖狀態(tài)B→復(fù)位NO;路徑3:待鎖狀態(tài)A→上鎖YES→待鎖狀態(tài)B→復(fù)位YES→輸入密碼狀態(tài)C→開門YES→錯誤狀態(tài)F;路徑4:待鎖狀態(tài)A→上鎖YES→待鎖狀態(tài)B→復(fù)位YES→輸入密碼狀態(tài)C→開門NO→復(fù)位YES;路徑5:待鎖狀態(tài)A→上鎖YES→待鎖狀態(tài)B→復(fù)位YES→輸入密碼狀態(tài)C→開門NO→復(fù)位NO→輸入密碼NO;路徑6:待鎖狀態(tài)A→上鎖YES→待鎖狀態(tài)B→復(fù)位YES→輸入密碼狀態(tài)C→開門NO→復(fù)位NO→輸入錯誤密碼;路徑7:待鎖狀態(tài)A→上鎖YES→待鎖狀態(tài)B→復(fù)位YES→輸入密碼狀態(tài)C→開門NO→復(fù)位NO→輸入正確密碼;路徑8:待鎖狀態(tài)A→上鎖YES→待鎖狀態(tài)B→復(fù)位YES→輸入密碼狀態(tài)C→開門NO→復(fù)位NO→輸入正確密碼→待啟動狀態(tài)D→輸入密碼YES→預(yù)警狀態(tài)E→復(fù)位YES;路徑9:待鎖狀態(tài)A→上鎖YES→待鎖狀態(tài)B→復(fù)位YES→輸入密碼狀態(tài)C→開門NO→復(fù)位NO→輸入正確密碼→待啟動狀態(tài)D→輸入密碼YES→預(yù)警狀態(tài)E→復(fù)位NO→開門NO;路徑10:待鎖狀態(tài)A→上鎖YES→待鎖狀態(tài)B→復(fù)位YES→輸入密碼狀態(tài)C→開門NO→復(fù)位NO→輸入正確密碼→待啟動狀態(tài)D→輸入密碼YES→預(yù)警狀態(tài)E→復(fù)位NO→開門YES→錯誤狀態(tài)F;路勁11:待鎖狀態(tài)A→上鎖YES→待鎖狀態(tài)B→復(fù)位YES→輸入密碼狀態(tài)C→開門NO→復(fù)位NO→輸入正確密碼→待啟動狀態(tài)D→復(fù)位YES;路徑12:待鎖狀態(tài)A→上鎖YES→待鎖狀態(tài)B→復(fù)位YES→輸入密碼狀態(tài)C→開門NO→復(fù)位NO→輸入正確密碼→待啟動狀態(tài)D→復(fù)位NO→開門NO;路徑13:待鎖狀態(tài)A→上鎖YES→待鎖狀態(tài)B→復(fù)位YES→輸入密碼狀態(tài)C→開門NO→復(fù)位NO→輸入正確密碼→待啟動狀態(tài)D→復(fù)位NO→開門YES;路徑14:錯誤狀態(tài)F不超過3次→復(fù)位NO;路徑15:錯誤狀態(tài)F不超過3次→復(fù)位YES;路徑16:錯誤狀態(tài)F達(dá)到3次→解除鎖定NO;路徑17:錯誤狀態(tài)F達(dá)到3次→解除鎖定YES;限于篇幅,具體測試過程省略。通過測試,確保每條路徑都至少執(zhí)行了一遍,測試系統(tǒng)內(nèi)部動作是否按照設(shè)計的規(guī)定正常進(jìn)行。測試結(jié)果顯示,系統(tǒng)內(nèi)部動作是按照設(shè)計規(guī)定正常進(jìn)行。第六章總結(jié)與展望社會在發(fā)展,產(chǎn)品也要發(fā)展,本章將對數(shù)字鎖得應(yīng)用場合和發(fā)展方向進(jìn)行一下展望。6.1密碼鎖系統(tǒng)應(yīng)用場合 根據(jù)不同的應(yīng)用場景,本系統(tǒng)稍作更改可適應(yīng)多種場合。如果系統(tǒng)用于樓道系統(tǒng),那么可根據(jù)不同用戶設(shè)置不同密碼,實現(xiàn)同門不同密。比如:對每個用戶設(shè)置身份識別碼,根據(jù)不同身份系統(tǒng)將調(diào)用不同密碼。如果系統(tǒng)需要經(jīng)常修改密碼,可在系統(tǒng)密碼設(shè)計部分加入FlashMemory實現(xiàn)動態(tài)存儲密碼功能,以實現(xiàn)不同的需求。如果系統(tǒng)用于保險柜,可將報警計數(shù)器更改為1次報警增加安全系數(shù)。如果系統(tǒng)用于高檔家庭住宅,可將鍵盤部門改用觸摸屏編碼,增加時尚氣息。當(dāng)然還有很多應(yīng)用場合,在這里不在熬述。6.2密碼鎖系統(tǒng)未來發(fā)展 隨著科技的飛躍發(fā)展,越來越多的新技術(shù)誕生。必然給各行業(yè)帶來不同的機(jī)遇。同樣密碼鎖也一樣。下面就這方面簡述如下:IC卡密碼鎖IC卡(又稱智能卡)具有存儲量打、數(shù)據(jù)保密性好、抗干擾能力強(qiáng)、存儲可靠、讀卡設(shè)備簡單、操作速度快、脫機(jī)工作能力強(qiáng)等優(yōu)點。目前在金融、稅務(wù)、交通、醫(yī)療等各個領(lǐng)域都有廣泛的應(yīng)用。IC卡電子密碼鎖目前已是成熟的產(chǎn)品,在酒店系統(tǒng)有廣泛的應(yīng)用。指紋密碼鎖指紋在這個世界上很難找到一樣的,所以就把指紋識別技術(shù)運用到密碼鎖上,保密性強(qiáng),易用。但由于算法過于復(fù)雜目前主要應(yīng)用于軍隊,金融等高保密性行業(yè)。虹膜密碼鎖虹膜識別是目前比較新的識別技術(shù),人眼虹膜也同指紋一樣是獨一無二的。并且不指紋更加不容易被復(fù)制。將人體虹膜作為密碼將是一種有效可行的方法。目前虹膜識別技術(shù)還在發(fā)展階段,將來必然是密碼鎖的又一發(fā)展方向。6.3總結(jié) 本設(shè)計設(shè)計了一個八位數(shù)字密碼鎖,使用Altera公司的QuartusII開發(fā)軟件,硬件描述語言是VHDL。此八位數(shù)字密碼鎖具有如下幾個特點: (1)“復(fù)位”鍵清零,“上鎖”鍵上鎖,“開門”鍵開鎖,“解除鎖定”鍵解除警報?!敖獬i定”鍵可設(shè)置在安全的地方,保安室或使用者一時無法接觸的地方。 (2)密碼采用串行輸入,只有密碼位數(shù)正確,且都正確的情況下密碼才有效。 (3)連續(xù)開鎖三次錯誤后,報警系統(tǒng)啟動。三次的設(shè)計擁有不錯的“容錯”功能,并有抗暴力破解能力。 (4)報警系統(tǒng)一旦啟動,除“解除鎖定”鍵外,所有的功能鍵都將無效。這是通過“解除鎖定”可關(guān)閉報警系統(tǒng)。 本設(shè)計所設(shè)計的電子密碼鎖功能與性能方面來說還是比較簡單的。由于本人知識的局限性,不能全方面考量實際中的一切問題,難免有所疏忽、遺漏。 通過本次設(shè)計,全面的鍛煉了我的分析問題能力,解決問題能力。這將對我今后的工作產(chǎn)生莫大的影響。同時在理論方面,又上了一個臺階。參考文獻(xiàn)[1]邊計年,薛宏熙譯.用VHDL設(shè)計電子線路[M].北京:清華大學(xué)出版社,2000.[2]黃正謹(jǐn),徐堅等.CPLD系統(tǒng)設(shè)計技術(shù)入門與應(yīng)用.北京:電子工業(yè)出版社,2002.[3]康華光.電子技術(shù)基礎(chǔ)(第四版)[M].北京:高等教育出版社,1998.[4]梁宗善.新型集成塊應(yīng)用[M].武漢:華中理工大出版社,2004.[5]王振紅.VHDL數(shù)字電路設(shè)計與應(yīng)用實踐教程[M].北京:機(jī)械工業(yè)出版社,2002.[6]譚會生.EDA技術(shù)綜合應(yīng)用事例與分析[M].西安:西安電子科技大學(xué)出版社,2000.[7]西.VHDL與復(fù)雜數(shù)字系統(tǒng)設(shè)計[M].西安:西安電子科技大學(xué)出版社,2003.[8]侯伯亨,顧新.VHDL硬件描述語言與數(shù)字邏輯電路設(shè)計[M].西安:西安電子科技大學(xué)出版社,2004.[9]譚會生,瞿隧春.EDA技術(shù)綜合應(yīng)用實例與分析[M].西安:西安電子科技大學(xué)出版社,2004.[10]王道憲.CPLD/FPGA可編程邏輯器件應(yīng)用與開發(fā)[M].北京:國防工業(yè)出版社,2005.[11]曾繁態(tài),等著.EDA工程概論[M].北京:清華大學(xué)出版社,2003.[12]潘松,黃繼業(yè).EDA技術(shù)與VHDL[M].北京:清華大學(xué)出版社,2009.[13]顏昌銀.嵌入式多電平逆變技術(shù)的研究[D].哈爾濱:哈爾濱工程大學(xué),2008.[14]劉夫江.基于單片機(jī)和CPLD的等精度數(shù)字頻率計設(shè)計[D].山東:山東大學(xué),2007.[15]潘志浪.基于FPGA的DDS信號源的設(shè)計[D].武漢:武漢理工大學(xué),2007.[16]申國政.基于FPGA的雷達(dá)激勵器信號發(fā)生器的研究[D].哈爾濱:哈爾濱工業(yè)大學(xué),2007.[17]王軍.集成保護(hù)中數(shù)據(jù)同步采集的研究與實現(xiàn)[D].北京:北京交通大學(xué),2008.[18]張旭方.軟啟動數(shù)字觸發(fā)器研究[D].武漢:武漢理工大學(xué),2008.[19]HuangJiwu.TheFeaturesofMicrocontrollerAT89C52andTechniqueofPortConnectionwithI2CSeriesBus[J].WUHANUNIVERSITYJOURNALOFNATURALSCIENCES.2000.(4):461-463.[20]PoloskyMA,CarciaEJ,AllenJJ.Surfacemicromachinedcounter2meshinggearsdiscriminationdevices.SAND29820256C.1998.致謝畢業(yè)設(shè)計是大學(xué)生活的最后一個課題,在感受收獲的喜悅的同時,心中更是充滿了感激之情。由衷的感謝導(dǎo)師對我的指導(dǎo)。設(shè)計從開題到定稿,都離不開欒老師的悉心教導(dǎo)。設(shè)計既是一個開發(fā)過程也是一個學(xué)習(xí)過程,在此過程中我受益匪淺。感謝學(xué)院的全體老師們在大學(xué)四年來對我的教導(dǎo),感謝他們在學(xué)習(xí)和生活中給予我的關(guān)心和幫助!感謝我的家人!感謝父母多年的養(yǎng)育之恩!感謝他們對我各方面的關(guān)心、鼓勵和支持!真心感謝所有給予我?guī)椭椭С值膸熼L和朋友們!在此,請允許我說聲“謝謝!謝謝你們!”。附錄附錄AVHDL源代碼A-1編碼器LIBRARYieee;USEieee.std_logic_1164.all;USEieee.std_logic_unsigned.all;useieee.std_logic_arith.all;ENTITYjian_panIS PORT(en:INstd_logic; kr:INstd_logic_vector(3DOWNTO0); kc:INstd_logic_vector(2DOWNTO0); dout:OUTstd_logic; data:OUTstd_logic_vector(3DOWNTO0));ENDjian_pan;ARCHITECTUREoneOFjian_panISBEGIN PROCESS(en,kr,kc) BEGIN if(en='0')then dout<='0'; elsif(en='1')then if(kr="1111")then dout<='0'; data<="0000"; else dout<='1'; endif; if(kr="1110")then casekcis when"010"=>data<="1010";--0 whenothers=>null; endcase; elsif(kr="1101")then casekcis when"100"=>data<="0001";--1 when"010"=>data<="0010";--2 when"001"=>data<="0011";--3 whenothers=>null; endcase; elsif(kr="1011")then casekcis when"100"=>data<="0100";--4 when"010"=>data<="0101";--5 when"001"=>data<="0110";--6 whenothers=>null; endcase; elsif(kr="0111")then casekcis when"100"=>data<="0111";--7 when"010"=>data<="1000";--8 when"001"=>data<="1001";--9 whenothers=>null; endcase; endif; endif; endPROCESS;ENDone;A-2比較器Libraryieee;useieee.std_logic_1164.all;entitybi_jiao_qiis port(f,y:inbit_vector(3downto0); dep:outbit);endbi_jiao_qi;architectureoneofbi_jiao_qiis begin process(f,y) begin iff=ythen dep<='1'; else dep<='0'; endif; endprocess;endone;A-3比較計數(shù)器LIBRARYieee;USEieee.std_logic_1164.all;USEieee.std_logic_unsigned.all;ENTITYbi_jiao_ji_shu_qiISPORT(clk,clr:INstd_logic;--clr為復(fù)位信號高電平有效clk為計數(shù)脈沖 q:OUTstd_logic_vector(2DOWNTO0); co8:OUTstd_logic);ENDbi_jiao_ji_shu_qi;ARCHITECTUREoneOFbi_jiao_ji_shu_qiISSIGNALtmp:std_logic_vector(2DOWNTO0);BEGIN PROCESS(clk,clr) BEGIN IF(clr='1')THEN tmp<="000";co8<='0'; ELSIF(clk'eventANDclk='1')THEN IF(tmp="111")THEN co8<='1';tmp<="000"; ELSE tmp<=tmp+'1'; ENDIF; ENDIF; q<=tmp; ENDPROCESS;ENDone;A-4密碼預(yù)置libraryieee;use
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《家庭護(hù)士》課件
- 2023-2024學(xué)年福建省福州市福清市高一(下)期中地理試卷
- 高速公路施工總承包合同段春節(jié)節(jié)后復(fù)工工作計劃及保障措施
- 2024年山東省日照市公開招聘警務(wù)輔助人員輔警筆試自考題2卷含答案
- 2024年福建省福州市公開招聘警務(wù)輔助人員輔警筆試自考題2卷含答案
- 2024年四川省眉山市公開招聘警務(wù)輔助人員輔警筆試自考題2卷含答案
- 2021年貴州省安順市公開招聘警務(wù)輔助人員輔警筆試自考題1卷含答案
- 湖南省張家界市(2024年-2025年小學(xué)六年級語文)部編版摸底考試(上學(xué)期)試卷及答案
- 2024年ATM機(jī)項目資金需求報告代可行性研究報告
- 2025年P(guān)S鋁合金板項目立項申請報告模板
- 三相同步發(fā)電機(jī)的基本工作原理
- 青年干部成長成才成功
- GB/T 29636-2023疑似毒品中甲基苯丙胺檢驗
- 2023年全國中小學(xué)思政課教師網(wǎng)絡(luò)培訓(xùn)研修總結(jié)心得體會
- 老年人能力評估標(biāo)準(zhǔn)表
- 卷內(nèi)目錄及卷內(nèi)備考表
- 國開大學(xué)2023年01月11110《工程地質(zhì)》期末考試答案
- 2023春國家開放大學(xué)-02272數(shù)據(jù)結(jié)構(gòu)(本)-期末考試題帶答案
- 模擬電子技術(shù)課程設(shè)計報告
- Nikon Z6 Z7 數(shù)碼微單攝影技巧大全
- 成都市金牛區(qū)八年級上學(xué)期期末考試語文試題
評論
0/150
提交評論