三位密碼鎖實驗報告_第1頁
三位密碼鎖實驗報告_第2頁
三位密碼鎖實驗報告_第3頁
三位密碼鎖實驗報告_第4頁
三位密碼鎖實驗報告_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 數(shù)字系統(tǒng)設(shè)計實習(xí)(訓(xùn))報告評語 等級: 評閱人: 職稱: 年 月 日 河 南 工 程 學(xué) 院實習(xí)(訓(xùn))報告實習(xí)目的(內(nèi)容):電子密碼鎖 實習(xí)時間: 自 6 月 17 日至 6 月 28 日共12天實習(xí)地點:三號實驗樓A307實習(xí)單位: 指導(dǎo)老師: 翁嘉民 系主任: 目錄1. 引言 52. 設(shè)計思想 62.1系統(tǒng)原理框圖2.2總體實現(xiàn)原理3. 芯片主控設(shè)計 73.1系統(tǒng)設(shè)計方案3.2FPGA有限狀態(tài)機(jī)3.3設(shè)計流程3.4狀態(tài)編碼3.5密碼的輸入3.6密碼記錄與比較3.7密碼的顯示4. 引腳鎖定 11 5. 程序仿真 136. 方框圖 147. 心得體會 18基于Verilog HDL的FPGA

2、的電子密碼鎖的設(shè)計報告摘要:基于FPGA設(shè)計的電子密碼鎖是一個小型的數(shù)字系統(tǒng),與普通機(jī)械鎖相比,具有許多獨特的優(yōu)點:保密性好,防盜性強,可以不用鑰匙,記住密碼即可開鎖等。目前使用的電子密碼鎖大部分是基于單片機(jī)技術(shù),以單片機(jī)為主要器件。在實際應(yīng)用中,程序容易跑飛,系統(tǒng)的可靠性較差。本文介紹的一種基于現(xiàn)場可編輯門陣列FPGA器件的電子密碼鎖的設(shè)計方法,采用VHDL語言對系統(tǒng)進(jìn)行描述,并在EP3C10E144C8上實現(xiàn)。通過仿真調(diào)試,利用可編程邏輯器件FPGA的電子密碼鎖的設(shè)計基本達(dá)到了預(yù)期目的。當(dāng)然,該系統(tǒng)在一些細(xì)節(jié)的設(shè)計上還需要不斷地完善和改進(jìn),特別是對系統(tǒng)的擴(kuò)展有很好的使用系統(tǒng)和設(shè)計的價值。一

3、、引言數(shù)字電路主要是基于兩個信號(我們可以簡單的說是有電壓和無電壓),用數(shù)字信號完成對數(shù)字量進(jìn)行算術(shù)運算和邏輯運算的電路我們稱之為數(shù)字電路,它具有邏輯運算和邏輯處理等功能,數(shù)字電路可分為組合邏輯電路和時序邏輯電路。1 EDA簡介EDA(Electronics Design Automation)技術(shù)是隨著集成電路和計算機(jī)技術(shù)的飛速發(fā)展應(yīng)運而生的一種高級、快速、有效的電子設(shè)計自動化工具。它是為解決自動控制系統(tǒng)設(shè)計而提出的,從70年代經(jīng)歷了計算機(jī)輔助設(shè)計(CAD),計算機(jī)輔助工程(CAE),電子系統(tǒng)設(shè)計自動化(ESDA)3個階段。前兩個階段的EDA產(chǎn)品都只是個別或部分的解決了電子產(chǎn)品設(shè)計中的工程問

4、題;第三代EDA工具根據(jù)工程設(shè)計中的瓶頸和矛盾對設(shè)計數(shù)據(jù)庫實現(xiàn)了統(tǒng)一管理,并提出了并行設(shè)計環(huán)境概念,提供了獨立于工藝和廠家的系統(tǒng)級的設(shè)計工具。EDA關(guān)鍵技術(shù)之一就是采用硬件描述語言對硬件電路進(jìn)行描述,且具有系統(tǒng)級仿真和綜合能力。目前應(yīng)用比較廣泛的硬件描述語言就是Verilog HDL。2 Verilog HDL簡介Verilog HDL和VHDL一樣,是目前大規(guī)模集成電路設(shè)計中最具代表性、使用最廣泛的硬件描述語言之一。Verilog HDL具有如下特點:(1) 能夠在不同的抽象層次上,如系統(tǒng)級、行為級、RTL級、門級和開關(guān)級,對設(shè)計系統(tǒng)進(jìn)行精確而簡練的描述。(2)能夠在每個抽象層次的描述上對設(shè)

5、計進(jìn)行仿真驗證,及時發(fā)現(xiàn)及時發(fā)現(xiàn)可能存在的錯誤,縮短設(shè)計周期,并保存整個設(shè)計過程的正確性。(3)由于代碼描述與工藝過程實現(xiàn)無關(guān),便于設(shè)計標(biāo)準(zhǔn)化,提高設(shè)計的可重用性。如國有C語言的編程基礎(chǔ)經(jīng)驗,只需很短的時間就能學(xué)會和掌握Verilog HDL,因此,Verilog HDL可以作為學(xué)習(xí)HDL設(shè)計方法的入門和基礎(chǔ)。本設(shè)計名稱為密碼鎖,共有六個模塊,分別為,按鍵去抖、輸入密碼、顯示模塊、比較模塊、狀態(tài)轉(zhuǎn)換模塊、輸出控制。最終由總程序來實現(xiàn)所需功能。設(shè)計所要實現(xiàn)的功能為:1 手動用8個撥碼開關(guān)設(shè)計三位密碼(0-5)或開鎖。2 當(dāng)輸入密碼開鎖,當(dāng)密碼輸入正確時,指示燈亮,表示開鎖成功。3 當(dāng)密碼輸入錯誤

6、時,燈亮(非同一個燈),表示開鎖失敗。二、設(shè)計思想2.1 系統(tǒng)原理框圖本系統(tǒng)由主控芯片(FPGA),鍵盤,顯示電路,報警電路和開/關(guān)門電路組成,而主控芯片又可分為按鍵處理部分,控制部分和譯碼顯示部分。系統(tǒng)原理框圖如圖2.1所示:鍵盤按鍵處理主控部分譯碼顯示顯示開/關(guān)門電路報警電路FPGA2.2 總體實現(xiàn)原理 本系統(tǒng)有8個按鍵,K0,K1,K2,K3,K4,K5代表數(shù)字0-9共10個數(shù)字和1個確認(rèn)鍵,1個復(fù)位鍵。密碼長度為四位,并且固化在鎖內(nèi),輸入正確密碼后,按確認(rèn)鍵即可開門,本系統(tǒng)設(shè)置為LED D8燈亮。在輸入密碼的過程中,當(dāng)用戶鍵入錯誤密碼時,報警燈LED D1燈亮。按下復(fù)位鍵,可使報警停止

7、,同時清除所有密碼顯示。三、芯片主控設(shè)計3.1系統(tǒng)設(shè)計方案本電路的主要控制部分和接口輸入部分都是在FPGA內(nèi)部通過Verilog HDL語言實現(xiàn)的,所以FPGA模塊為本設(shè)計的核心。根據(jù)系統(tǒng)要求的功能,以及FPGA芯片容量的分級,本論文選用ALTERA公司MAX7000S系列的EP2C35F672C8器件作為主控芯片,它是一種基于乘積項結(jié)構(gòu)的復(fù)雜可編程邏輯器件,它的基本邏輯單元是由一些與、或陣列加上觸發(fā)器構(gòu)成,其中與或陣列完成組合邏輯功能,觸發(fā)器完成時序邏輯。它的邏輯控制靈活,可反復(fù)編程,有利于系統(tǒng)的擴(kuò)展和修改,而且其集成度高,保密性好。作為通用電子密碼鎖,主要由六個部分組成:鍵盤處理電路、輸入

8、密碼電路、顯示部分、比較密碼部分、狀態(tài)轉(zhuǎn)換部分、輸出控制部分。3.2 FPGA有限狀態(tài)機(jī)本設(shè)計是通過FPGA有限狀態(tài)機(jī)來實現(xiàn),設(shè)計有限狀態(tài)機(jī)最開始的工作時要確定電路,包括哪些狀態(tài),比如某個電路包括四個狀態(tài),S0,S1,S2,S3。然后對所有狀態(tài)給出一個狀態(tài)編碼,比如為狀態(tài)S0賦予編碼00,為狀態(tài)S1賦予編碼01,為狀態(tài)S2賦予編碼10,為狀態(tài)S3賦予編碼11。狀態(tài)編碼是狀態(tài)的標(biāo)識,保存在寄存器當(dāng)中,對于此編碼形式,只需一個2位的寄存器就可以了。FSM Encoding Style 主要有:Binary Encoding One Hot Encoding Gray Encoding 狀態(tài)機(jī)可以認(rèn)

9、為是組合邏輯和寄存器邏輯的特殊租戶,它一般包括兩個部分:組合邏輯部分和寄存器邏輯部分。寄存器用于存儲狀態(tài),組合電路用于狀態(tài)譯碼和產(chǎn)生輸出信號。狀態(tài)機(jī)的下一個狀態(tài)及輸出,不僅與輸入信號有關(guān),而且還有寄存器當(dāng)前所處的狀態(tài)有關(guān)。 根據(jù)輸出信號產(chǎn)生方法的不同,狀態(tài)機(jī)可以分成兩類:Mealy型和Moore型。Moore型狀態(tài)機(jī)的輸出只是當(dāng)前狀態(tài)的函數(shù),而Mealy型狀態(tài)機(jī)的輸出則是當(dāng)前狀態(tài)和當(dāng)前輸入狀態(tài)的函數(shù)。其原理如下兩圖:圖3.1Mealy型狀態(tài)機(jī)輸出原理圖3.2 Moore型狀態(tài)機(jī)輸出原理3.3設(shè)計流程本次密碼鎖的設(shè)計,有限狀態(tài)機(jī)應(yīng)該包括以下狀態(tài):密碼為輸入前的等待狀態(tài)、輸入密碼時的等待狀態(tài)、輸入

10、密碼正確時的通過狀態(tài)、輸入密碼錯誤時的警報狀態(tài)。圖3.3 主有效狀態(tài)機(jī)的狀態(tài)轉(zhuǎn)換圖其中當(dāng)密碼輸入時又可包括以下狀態(tài),正常輸入狀態(tài)、異常輸入狀態(tài)(包括命令狀態(tài))、輸入確認(rèn)狀態(tài)。下面的圖(圖是在程序編譯后,tools->Netlist_Vewers->RTL Vewer得到的)表示了密碼輸入的時候的次狀態(tài)機(jī),表示了4個密碼輸入的順序狀態(tài),以及輸入完成后的等待確認(rèn)狀態(tài)。圖3.4次有效狀態(tài)機(jī)的狀態(tài)轉(zhuǎn)換3.4狀態(tài)編碼狀態(tài)編碼主要有二進(jìn)制編碼、格雷編碼和一位獨熱編碼等方式。格雷編碼時,相鄰狀態(tài)每次只有一個比特位產(chǎn)生變化,這樣減少了瞬變的次數(shù),也減少了產(chǎn)生毛刺和一些狀態(tài)的可能。采用一位獨熱編碼,

11、雖然多用了觸發(fā)器,當(dāng)可以有效節(jié)省和簡化組合電路。對于寄存器數(shù)量多而邏輯相對缺乏的FPGA器件來說,采用一位獨熱編碼可以有效提高電路的速度和可靠性,也有利于提高器件資源的利用率。將產(chǎn)生狀態(tài)的組合邏輯電路和用于保存狀態(tài)的寄存器分別寫在不同的always塊中。其中主要包括:輸出控制部分、警報計時部分、鎖打開后的計時部分、比較密碼部分、記錄密碼部分和記錄錯誤次數(shù)的部分。3.5密碼的輸入數(shù)字按鍵輸入的響應(yīng)控制(1) 如果按下數(shù)字鍵,第一個數(shù)字會從顯示器的最左端開始顯示,直到數(shù)輸完四個數(shù)字。(2) 假如要更改輸入的數(shù)字,按清除鍵清除所有輸入的數(shù)字,再重新輸入四位數(shù)。(3) 由于這里設(shè)計的是一個四位的電子密

12、碼鎖,所以當(dāng)輸入的數(shù)字鍵超過四個時,電路不予理會,而且不再顯示第四個以后的數(shù)字。 另外由于按鍵的時候同時會引起狀態(tài)機(jī)的轉(zhuǎn)換,所以如果按鍵的時候?qū)Π存I判斷次數(shù)過多會產(chǎn)生狀態(tài)的過快轉(zhuǎn)換,記錄的密碼和數(shù)碼管的顯示就同時會出現(xiàn)錯誤,因此在按鍵部分加入了消除多重按鍵的程序,只檢測一次按鍵的下降沿,解決了這個問題。/輸入的數(shù)字編碼 09,enter,cancelone=4'b0001, two=4b0010,three=4'b0011,four=4'b0100,five=4'b0101,six=4'b0110,seven=4'b0111,eight=4

13、9;b1000,nine=4'b1001,zero=4'b1000,enter=4'b1010,cancel=4'b1011;可以看到,在復(fù)位以后,輸入第1,2,3,4個密碼(依次為1111)后,passed變成高電平。當(dāng)過了一定的時間后,passed變成低電平,重新計入鍵盤讀入值,進(jìn)行下一輪的密碼辨別。3.6密碼記錄與比較程序設(shè)定了一個寄存器用來記錄輸入的密碼。當(dāng)次有效狀態(tài)機(jī)(即密碼輸入的狀態(tài)機(jī))發(fā)生轉(zhuǎn)換并且有密碼輸入時,程序會記錄下輸入的密碼在寄存器的其中4位里面,最后次有效狀態(tài)轉(zhuǎn)換到確認(rèn)密碼的狀態(tài)時,會將記錄下的密碼與固化在鎖內(nèi)的密碼進(jìn)行對比,正確即將主狀

14、態(tài)機(jī)轉(zhuǎn)換到通過階段,錯誤則將狀態(tài)機(jī)轉(zhuǎn)換到報警階段。其中正確錯誤的狀態(tài)轉(zhuǎn)換是通過控制相應(yīng)的標(biāo)志位實現(xiàn)的。3.7密碼的顯示密碼顯示采用數(shù)碼管動態(tài)掃描顯示,初始時顯示密碼為4位0,當(dāng)輸入密碼后數(shù)碼管的第一位、第二位、第三位、第四位會依次顯示輸入的密碼,錯誤后復(fù)位可以重新輸入。密碼顯示采用的是記錄密碼的寄存器的數(shù)據(jù),顯示掃描的掃描時間設(shè)置為1ms左右,這樣顯示不會出現(xiàn)閃爍或者殘影。四、引腳鎖定1、本設(shè)計中所用的引腳如下:MagicSOPC主板IO引腳分配表時鐘:clk:PIN_B13按鍵LED燈數(shù)碼管顯示2、電子密碼鎖引腳鎖定圖clk0LocationPIN_B13Yesdig7LocationPIN

15、_M4Yesdig6LocationPIN_L3Yesdig5LocationPIN_K4Yesdig4LocationPIN_J3Yesdig3LocationPIN_G4Yesdig2LocationPIN_G3Yesdig1LocationPIN_K5Yesdig0LocationPIN_L6Yesone1LocationPIN_C13Yesfour1LocationPIN_P1Yesfive1LocationPIN_AD13YesresetbLocationPIN_P25Yessix1LocationPIN_AF14Yesthree1LocationPIN_N1Yestwo1Locat

16、ionPIN_D13YesyesLocationPIN_P26Yespassed7LocationPIN_T3Yespassed6LocationPIN_R6Yespassed5LocationPIN_R8Yespassed4LocationPIN_P3Yespassed3LocationPIN_P6Yespassed2LocationPIN_P7Yespassed1LocationPIN_P9Yespassed0LocationPIN_R5Yesseg7LocationPIN_L9Yesseg6LocationPIN_L10Yesseg5LocationPIN_N9Yesseg4Locati

17、onPIN_U10Yesseg3LocationPIN_J6Yesseg2LocationPIN_K6Yesseg1LocationPIN_M3Yesseg0LocationPIN_J8Yes5、 程序仿真6、 模塊方框圖程序中每個always語句對應(yīng)一個方框,其方框如下:實訓(xùn)心得1短暫的兩周實訓(xùn)已在不知不覺中接近了尾聲,本次實訓(xùn)我們做的是電子密碼鎖,雖然我是主力,但每項工作都是在我們的共同參與下完成的。這兩周的實訓(xùn)讓我學(xué)到了很多實用性的知識,不僅讓我更深層次的對課本的理論知識有了深入的理解,而且還讓我對分析事物的邏輯思維能力得到了鍛煉,提高了實際動手能力 。 開始時我們的程序使用的是六個分模

18、塊,但在例化語句的編寫上出現(xiàn)了問題。后來經(jīng)過討論我們決定使用一個整體程序,然而在編寫主控模塊時,我遇到了很大的困難,一直被定時問題所困擾,那就是密碼的輸入與狀態(tài)的循環(huán),本來用的是狀態(tài)機(jī),但由于狀態(tài)機(jī)總是有一個狀態(tài)被綜合掉,而導(dǎo)致仿真波形出不來。然而模塊分好后,時序圖卻一直沒有調(diào)出來,不過高興的是當(dāng)我們的程序下載到試驗箱上的時候,功能還是實現(xiàn)了。即輸入正確密碼時,燈亮,同時開鎖進(jìn)入;而當(dāng)密碼輸入錯誤時,報警并且不能開鎖進(jìn)入。接下來我們需要做的就是增進(jìn)我們密碼鎖的功能了,畢竟我們所需要的是可以直接更改密碼,而不是將密碼固化在鎖內(nèi),這個過程花費了幾天的時間,同時也上網(wǎng)查閱了好多的資料,當(dāng)然也離不開其

19、他同學(xué)對我們的幫助,終于功夫不負(fù)有心人,我們的密碼鎖總算實現(xiàn)了它應(yīng)有的功能。通過本次實訓(xùn),不僅讓我學(xué)到了實用性的知識,更讓我意識到了團(tuán)隊合作的重要性。也讓我意識到只有理論知識是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識與實踐相結(jié)合起來,從理論中得出結(jié)論,才能真正為社會服務(wù),從而提高自己的實際動手能力和獨立思考的能力。同時也非常感謝學(xué)校為我們提供這樣專業(yè)的實踐平臺還有甕老師在兩周實訓(xùn)以來對我們的不斷指導(dǎo)以及同學(xué)們對我們的熱情幫助。實訓(xùn)心得2短暫的兩周實訓(xùn)已經(jīng)過去了,本次EDA實訓(xùn)讓我感覺收獲頗多,在這一周的實訓(xùn)中我們不僅鞏固了以前學(xué)過的知識,而且還學(xué)到了Verilog語言設(shè)計密碼鎖的整個過程,同時也提高了

20、我們的思考能力與實際動手操作能力。下面談一下就這兩周實訓(xùn)中我自己的一些心得體會。兩周的實訓(xùn),讓我們在老師提供的實踐平臺上通過自己的實踐學(xué)到了很多課本上學(xué)不到的寶貴東西,熟悉了對Quartus 軟件的一般項目的操作和學(xué)到了處理簡單問題的基本方法,更重要的是掌握了Verilog語言的基本設(shè)計思路和方法,我想這些會對我今后的學(xué)習(xí)起到很大的助推作用。此外,還要在今后的課本理論知識學(xué)習(xí)過程中要一步一個腳印的扎實學(xué)習(xí),靈活的掌握和運用專業(yè)理論知識這樣才能在以后出去工作的實踐過程中有所成果。本次實訓(xùn)中我們遇到的最大困難就是一直沒能修改密碼,開始時我們一直不明白為什么,但經(jīng)過我們對程序再三的琢磨,終于明白了原

21、因,因為我們使用了狀態(tài)機(jī),所以輸入密碼時總是顯示的前一個狀態(tài)輸入的密碼,而導(dǎo)致密碼修改出現(xiàn)了問題,但經(jīng)過老師對我們的悉心指導(dǎo),我們意識到了自己的錯誤。甕老師多次詢問設(shè)計進(jìn)程,并為我們指點迷津,幫助我們理順設(shè)計思路,精心點撥。甕老師一絲不茍的作風(fēng),嚴(yán)謹(jǐn)求實的態(tài)度,踏踏實實的精神,不僅授我以文,并將積極影響我今后的學(xué)習(xí)和工作。在此誠摯地向甕老師致謝。兩周的實訓(xùn),讓我學(xué)到了好多課本上及課外的知識。深刻體會到了,理論是一回事,真正實踐下來就會很難!由于老師的指導(dǎo),同學(xué)的幫助,以及我們的團(tuán)結(jié)協(xié)作,我們圓滿的完成了設(shè)計!非常感謝在實訓(xùn)期間幫助我們的所有人,尤其是翁老師,多次為我們指點迷津,并幫助我們理順設(shè)

22、計思路,精心點播。 實訓(xùn)心得3通過本次實驗的課程設(shè)計,加深自己對課本知識的理解和鞏固。我感覺有很大的收獲。這次EDA課程設(shè)計歷時兩個星期,在整整兩個星期的日子里,可以說是苦多于甜,但是可以學(xué)到很多很多的東西,同時不僅可以鞏固以前所學(xué)過的知識,而且學(xué)到了很多在書本上所沒有學(xué)到過的知識。通過這次設(shè)計,進(jìn)一步加深了對EDA的了解,讓我對它有了更加濃厚的興趣。實訓(xùn)的目的是要把學(xué)過的東西拿出來用,這兩星期的實訓(xùn)中對于quartus2軟件的使用也更加的得心應(yīng)手,這次實訓(xùn)提高了我們的動手能力、理論聯(lián)系實際的能力、發(fā)現(xiàn)問題分析問題解決問題的能力。實訓(xùn)只要你認(rèn)真做了都是對自己能力一次很大的提高。 實訓(xùn)的第一天我們組三個人就開始對電子密碼鎖的各部分源程序進(jìn)行調(diào)試,在第一天幾乎上沒有啥大的進(jìn)展,一直都在改程序中的錯誤。在不停的重復(fù)的編譯、改錯。拿著資料書檢查出錯的地方,一邊又一遍的校對分析其中的錯誤。在檢查錯誤的過程中發(fā)現(xiàn)其實學(xué)好英語也

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論