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

下載本文檔

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

文檔簡介

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

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

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

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

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

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

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

8、密碼電路、顯示部分、比較密碼部分、狀態(tài)轉換部分、輸出控制部分。3.2 FPGA有限狀態(tài)機本設計是通過FPGA有限狀態(tài)機來實現,設計有限狀態(tài)機最開始的工作時要確定電路,包括哪些狀態(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)的標識,保存在寄存器當中,對于此編碼形式,只需一個2位的寄存器就可以了。FSM Encoding Style 主要有:Binary Encoding One Hot Encoding Gray Encoding 狀態(tài)機可以認

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

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

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

12、碼鎖,所以當輸入的數字鍵超過四個時,電路不予理會,而且不再顯示第四個以后的數字。 另外由于按鍵的時候同時會引起狀態(tài)機的轉換,所以如果按鍵的時候對按鍵判斷次數過多會產生狀態(tài)的過快轉換,記錄的密碼和數碼管的顯示就同時會出現錯誤,因此在按鍵部分加入了消除多重按鍵的程序,只檢測一次按鍵的下降沿,解決了這個問題。/輸入的數字編碼 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;可以看到,在復位以后,輸入第1,2,3,4個密碼(依次為1111)后,passed變成高電平。當過了一定的時間后,passed變成低電平,重新計入鍵盤讀入值,進行下一輪的密碼辨別。3.6密碼記錄與比較程序設定了一個寄存器用來記錄輸入的密碼。當次有效狀態(tài)機(即密碼輸入的狀態(tài)機)發(fā)生轉換并且有密碼輸入時,程序會記錄下輸入的密碼在寄存器的其中4位里面,最后次有效狀態(tài)轉換到確認密碼的狀態(tài)時,會將記錄下的密碼與固化在鎖內的密碼進行對比,正確即將主狀

14、態(tài)機轉換到通過階段,錯誤則將狀態(tài)機轉換到報警階段。其中正確錯誤的狀態(tài)轉換是通過控制相應的標志位實現的。3.7密碼的顯示密碼顯示采用數碼管動態(tài)掃描顯示,初始時顯示密碼為4位0,當輸入密碼后數碼管的第一位、第二位、第三位、第四位會依次顯示輸入的密碼,錯誤后復位可以重新輸入。密碼顯示采用的是記錄密碼的寄存器的數據,顯示掃描的掃描時間設置為1ms左右,這樣顯示不會出現閃爍或者殘影。四、引腳鎖定1、本設計中所用的引腳如下:MagicSOPC主板IO引腳分配表時鐘:clk:PIN_B13按鍵LED燈數碼管顯示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語句對應一個方框,其方框如下:實訓心得1短暫的兩周實訓已在不知不覺中接近了尾聲,本次實訓我們做的是電子密碼鎖,雖然我是主力,但每項工作都是在我們的共同參與下完成的。這兩周的實訓讓我學到了很多實用性的知識,不僅讓我更深層次的對課本的理論知識有了深入的理解,而且還讓我對分析事物的邏輯思維能力得到了鍛煉,提高了實際動手能力 。 開始時我們的程序使用的是六個分模

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

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

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

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

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

溫馨提示

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

評論

0/150

提交評論