版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p><b> 電子密碼鎖設計</b></p><p> 摘要 本文介紹一種利用EDA技術和VHDL語言,在MAX+PLUSⅡ環(huán)境下,設計了一種新型的電子密碼鎖。它體積小、功耗低、價格便宜、安全可靠,維護和升級十分方便,具有較好的應用前景。</p><p> 隨著社會物質財富的日益增長,安全防盜已成為全社會問題。人們對鎖的要求越來越高,既要安全可靠地
2、防盜,又要使用方便。彈子鎖由于結構上的局限已難以滿足當前社會管理和防盜要求,特別是在人員經(jīng)常變動的公共場所,如辦公室、賓館等地方。電子密碼鎖由于其自身的優(yōu)勢,越來越受到人們的青睞,但是目前使用的電子密碼鎖大部分是基于單片機用分離元件實現(xiàn)的,其成本較高且可靠性得不到保證。本文采用先進的EDA技術,利用MAX+PLUSⅡ工作平臺和VHDL語言,設計了一種新型的電子密碼鎖。</p><p> 關鍵詞 電子密碼鎖;ED
3、A;VHDL;MAX+PLUSⅡ</p><p><b> 目錄</b></p><p> 1 引 言······················
4、;····························5</p><p> 1.1 系統(tǒng)設計要求···
5、;····································
6、83;5</p><p> 2 EDA技術·······························
7、;·················7</p><p> 2.1 EDA的概念··············
8、;·························· 7</p><p> 2.2 EDA技術的歷史與發(fā)展····
9、;·························· 6</p><p> 2.3 EDA的應用····
10、3;··································· 7</p
11、><p> 2.4 EDA的常用軟件································
12、;···· 7</p><p> 3 系統(tǒng)設計方案與功能實現(xiàn)··························
13、······8</p><p> 3.1密碼鎖輸入模塊·························
14、·······8</p><p> 3.2密碼鎖控制模塊························
15、·········9</p><p> 4 系統(tǒng)仿真······················
16、83;·······················11</p><p> 5 結束語········
17、····································
18、3;···13</p><p> 致謝·····························
19、;························14</p><p> 參考文獻·······
20、3;····································
21、183;····15</p><p> 附錄···························
22、83;·························14</p><p><b> 1引言</b></p><p>
23、; 計算機組成原理與設計是計算機通信與技術專業(yè)本科生的必修課程。在完成理論學習和必要的實驗后,本科學生掌握了它的基本原理和各種基本功能的應用,但對硬件實際應用設計和其完整的用戶程序設計還不清楚,實際動手能力不夠,因此對該課程進行一次課程設計是有必要的。</p><p> 計算機組成原理與設計的課程設計既要讓學生鞏固課本學到的理論,還要讓學生學習硬件電路設計和用戶程序設計,同時學習查閱資料、參考資料的方法。&l
24、t;/p><p> 計算機原理與設計的課程設計主要是通過學生獨立設計方案并自己動手用計算機電路設計軟件,編寫和調試用戶程序,來加深對該課程的認識和理解,充分發(fā)揮我們的個體創(chuàng)新能力。</p><p> 1.1 系統(tǒng)設計要求</p><p> ?。?)密碼輸入:每按下一個數(shù)字鍵,就輸入一個數(shù)值,并在顯示器上顯示出該數(shù)值,同時將先前輸入的數(shù)據(jù)依次左移一個數(shù)字位置。<
25、/p><p> ?。?)密碼清除:每按下清除鍵可清除前面所有的輸入值,清除成“0000”。</p><p> (3)密碼更改:按下更改鍵可將目前的數(shù)碼設定成新的密碼。</p><p> (4)密碼上鎖:按下上鎖鍵可將密碼鎖上鎖。</p><p><b> 2 EDA技術</b></p><p>
26、; 2.1 EDA的概念</p><p> EDA技術是在電子CAD技術基礎上發(fā)展起來的通用軟件系統(tǒng),是指以計算機為工作平臺,融合了應用電子技術、計算機技術、信息處理及智能化技術的最新成果,進行電子產(chǎn)品的自動設計。</p><p> EDA 設計可分為系統(tǒng)級、電路級和物理實現(xiàn)級。物理級設計主要指IC版圖設計,一般由半導體廠家完成;系統(tǒng)級設計主要面對大型復雜的電子產(chǎn)品;而一般民用及教學
27、所涉及基本是電路級設計。我們常用的EDA軟件多屬于電路級設計。電路級設計工作,是在電子工程師接受系統(tǒng)設計任務后,首先確定設計方案,并選擇合適的元器件,然后根據(jù)具體的元器件設計電路原理圖,接著進行第一次仿真。其中包括數(shù)字電路的邏輯模擬、故障分析、模擬電路的交直流分析、瞬態(tài)分析等。這一次仿真主要是檢驗設計方案在功能方面的正確性。</p><p> 仿真通過后,根據(jù)原理圖產(chǎn)生的電氣連接網(wǎng)絡表進行PCB板的自動布局布
28、線,有條件的還可以進行PCB后分析。其中包括熱分析、噪聲及竄擾分析、電磁兼容分析、可靠性分析等,并可將分析后的結果參數(shù)反饋回電路圖,進行第二次仿真,也稱作后仿真。后仿真主要是檢驗PCB板在實際工作環(huán)境中的可行性。</p><p> 2.2 EDA技術的歷史與發(fā)展</p><p> EDA技術發(fā)展歷程大致可分為三個階段。20世紀70年代為計算機輔助設計(CAD)階段,人們開始用計算機取代
29、手工操作進行IC版圖編輯、PCB布局布線。80年代為計算機輔助工程(CAE)階段。與CAD相比,CAE除了有純粹的圖形繪制功能外,又增加了電路功能分析和結構設計,并且通過電氣連接網(wǎng)絡表將兩者結合在一起,實現(xiàn)了工程設計。20世紀90年代為電子系統(tǒng)設計自動化(EDA)階段,同時又出現(xiàn)了計算機輔助工藝(CAPP)、計算機輔助制造(CAM)等。</p><p> 2.3 EDA的應用</p><p&
30、gt; 現(xiàn)在EDA技術應用廣泛,包括在機械、電子、通信、航空航天、化工、礦產(chǎn)、生物、醫(yī)學、軍事等各個領域,都有EDA的應用。目前EDA 技術已在各大公司、科研和教學部門廣泛使用。</p><p> 在產(chǎn)品設計與制造方面,EDA 技術可實現(xiàn)前期的計算機仿真、系統(tǒng)級模擬及測試環(huán)境的仿真、PCB的制作、電路板的焊接、ASIC的設計等。</p><p> 在教學方面,我國高校是從九十年代中期
31、開始EDA教育的,現(xiàn)在幾乎所有理工科類高校都開設了EDA課程。這些課程主要是讓學生了解EDA的基本概念和原理,使用EDA軟件進行電子電路課程的實驗及從事簡單系統(tǒng)的設計。</p><p> 2.4 EDA的常用軟件</p><p> EDA工具層出不窮,目前進入我國并具有廣泛影響的EDA軟件有:multiSIM7(原EWB的最新版本)、PSPICE、OrCAD、PCAD、Protel、V
32、iewlogic、Mentor、Graphics、Synopsys、LSIIogic、Cadence、MicroSim等等。這些工具都有較強的功能,一般可用于幾個方面,例如很多軟件都可以進行電路設計與仿真,同進還可以進行PCB自動布局布線,可輸出多種網(wǎng)表文件與第三方軟件接口。</p><p> 3.系統(tǒng)設計方案與功能實現(xiàn)</p><p> 根據(jù)系統(tǒng)設計要求,系統(tǒng)設計采用自頂向下的設計方
33、法。頂層設計采用原理圖設計方式,系統(tǒng)的整體組裝設計原理圖如圖3-1所示,它由密碼鎖輸入模塊、密碼鎖控制模塊和密碼鎖顯示譯碼模塊三部分組成。</p><p> 圖3-1 系統(tǒng)整體組裝設計原理圖</p><p> 3.1密碼鎖輸入模塊</p><p> 密碼鎖輸入模塊由時序產(chǎn)生電路、鍵盤掃描電路、鍵盤譯碼電路和按鍵存儲電路組成。</p><p&
34、gt;<b> ①時序產(chǎn)生電路</b></p><p> 產(chǎn)生電路中使用的三種不同頻率的工作脈沖波形,即系統(tǒng)時鐘脈沖、彈跳消除取樣信號和鍵盤掃描信號。</p><p><b> ?、阪I盤掃描電路</b></p><p> 掃描電路的作用是提供鍵盤掃描信號,掃描信號變化的順序依次為1110-1101-1011-0111
35、-1110……依序地周而復始。</p><p><b> ?、坻I盤譯碼電路</b></p><p> 上述鍵盤中的按鍵分為數(shù)字按鍵和文字按鍵,每一個按鍵可能負責不同的功能,例如清除鍵、上鎖鍵和解鎖鍵等。數(shù)字按鍵主要是用來輸入數(shù)字的,但是鍵盤所產(chǎn)生的輸出是無法直接拿來用作密碼鎖控制電路的輸入的;另外,不同的按鍵具有不同的功能,所以必須由鍵盤譯碼電路來規(guī)劃每個按鍵的輸出
36、形式,以便執(zhí)行相應的動作。</p><p><b> ?、馨存I存儲電路</b></p><p> 因為每次掃描會產(chǎn)生新的按鍵數(shù)據(jù),可能會覆蓋前面的數(shù)據(jù),所以需要一個按鍵存儲電路,將整個掃描完畢后的結果記錄下來。</p><p> 各按鍵的位置與數(shù)碼關系如表3-2所示。</p><p> 表3-2 按鍵位置與數(shù)碼關系
37、</p><p> 3.2密碼鎖控制模塊</p><p> 密碼鎖的控制電路是整個電路的控制中心,主要完成對數(shù)字按鍵輸入和功能按鍵輸入響應控制。</p><p> 數(shù)字按鍵輸入的響應控制</p><p> ?、?如果按下數(shù)字鍵,第一個數(shù)字會從顯示器的最右端開始顯示,此后每新按下一個數(shù)字時,顯示器上的數(shù)字必須左移一位,以便將新的數(shù)字顯示出
38、來。</p><p> Ⅱ.假如要更改輸入的數(shù)字,可以按倒退按鍵來清除前一個輸入的數(shù)字,或者按清除鍵清除所有輸入的數(shù)字,再重新輸入四位數(shù)。</p><p> ?、?由于這里設計的是一個四位的電子密碼鎖,所以當輸入的數(shù)字鍵超過四個時,電路不予理會,而且不再顯示第四個以后的數(shù)字。</p><p> ?、诠δ馨存I輸入的響應控制</p><p>
39、?、?清除鍵:清除所有的輸入數(shù)字,即作歸零動作。</p><p> ?、?上鎖鍵:按下此鍵時可將密碼鎖的門上鎖(上鎖前必須預先設定一個四位的數(shù)字密碼)。</p><p> ?、?解除鍵:按下此鍵會檢查輸入的密碼是否正確,若密碼正確無誤則解鎖。</p><p> LED顯示程序如下:</p><p> library ieee;</p
40、><p> use ieee.std_logic_1164.all;</p><p> entity led_disp is</p><p><b> port(</b></p><p> datain:in std_logic_vector(3 downto 0);</p><p> da
41、taout:out std_logic_vector(7 downto 0)</p><p><b> );</b></p><p> end led_disp;</p><p> architecture rtl of led_disp is</p><p><b> begin</b>&
42、lt;/p><p> process(datain)</p><p><b> begin</b></p><p> case datain is</p><p> when "1010"=>dataout<="11000000";--0</p>&l
43、t;p> when "0001"=>dataout<="11111001";--1</p><p> when "0010"=>dataout<="10100100";--2</p><p> when "0011"=>dataout<=&qu
44、ot;10110000";--3</p><p> when "0100"=>dataout<="10011001";--4</p><p> when "0101"=>dataout<="10010010";--5</p><p> when &
45、quot;0110"=>dataout<="10000010";--6</p><p> when "0111"=>dataout<="11111000";--7</p><p> when "1000"=>dataout<="10000000&quo
46、t;;--8</p><p> when "1001"=>dataout<="10010000";--9</p><p> when others=>null;</p><p><b> end case;</b></p><p> end process
47、;</p><p><b> end rtl;</b></p><p><b> 4 系統(tǒng)仿真</b></p><p> 該密碼鎖利用MAX PLUSⅡ工作平臺進行編譯和綜合仿真,將程序下載FLEX10K芯片中,同時在EDA試驗箱上進行硬件驗證。本文提出的電子密碼鎖由于采用VHDL語言設計,用一片F(xiàn)PGA實現(xiàn),因而體
48、積小,功耗低,稍加修改就可以改變密碼的位數(shù)和輸入密碼的次數(shù),具有較好的應用前景。但由于結構還比較簡單,有待進一步完善。</p><p> 密碼鎖輸入模塊的仿真,如圖4-1所示。</p><p> 圖4-1 密碼鎖輸入模塊的仿真圖</p><p> 密碼鎖控制模塊的仿真,如圖4-2所示。</p><p> 圖4-2 密碼鎖控制模塊的仿真
49、圖</p><p> 密碼鎖譯碼模塊的仿真,如圖4-3所示。 圖4-3 密碼鎖譯碼模塊的仿真圖</p><p> 電子密碼鎖整個系統(tǒng)的仿真,如圖4-4所示。</p><p> 圖4-4 電子密碼鎖整個系統(tǒng)的仿真圖</p><p><b> 5 結束語</b></p><p&
50、gt; 通過兩星期的緊張工作,最后完成了我的設計任務——基于VHDL語言的智能密碼鎖設計。通過本次課程設計的學習,我深深的體會到設計課的重要性和目的性所在。本次設計課不僅僅培養(yǎng)了我們實際操作能力,也培養(yǎng)了我們靈活運用課本知識,理論聯(lián)系實際,獨立自主的進行設計的能力。它不僅僅是一個學習新知識新方法的好機會,同時也是對我所學知識的一次綜合的檢驗和復習,使我明白了自己的缺陷所在,從而查漏補缺。希望學校以后多安排一些類似的實踐環(huán)節(jié),讓同學們學
51、以致用。</p><p> 在設計中要求我要有耐心和毅力,還要細心,稍有不慎,一個小小的錯誤就會導致結果的不正確,而對錯誤的檢查要求我要有足夠的耐心,通過這次設計和設計中遇到的問題,也積累了一定的經(jīng)驗,對以后從事集成電路設計工作會有一定的幫助。在應用VHDL的過程中讓我真正領會到了其并行運行與其他軟件(C語言)順序執(zhí)行的差別及其在電路設計上的優(yōu)越性。用VHDL硬件描述語言的形式來進行數(shù)字系統(tǒng)的設計方便靈活,利用
52、EDA軟件進行編譯優(yōu)化仿真極大地減少了電路設計時間和可能發(fā)生的錯誤,降低了開發(fā)成本,這種設計方法必將在未來的數(shù)字系統(tǒng)設計中發(fā)揮越來越重要的作用。</p><p><b> 致謝</b></p><p> 在此次課程設計中,非常感謝肖曉麗老師對我的指導與大力的幫助。如果沒有她嚴謹細致、一絲不茍地批閱和指正,本文很難在這個短時間內完成。從開始進入課題到論文的順利完成,
53、有多少可敬的師長、同學、朋友給了我無言的幫助,在這里請接受我誠摯的謝意!</p><p><b> 參考文獻</b></p><p> 王鎖平編著.電子設計自動化(EDA)教程.電子科技大學出版社. 2000 .3</p><p> 潘松等編著.EDA技術實用教程.科學出版社.2002.10</p><p> 潘
54、松等編著. VHDL實用教程.電子科技大學出版社.2002.6</p><p> 戈素貞等. 采用EDA技術實現(xiàn)4位十進制數(shù)字密碼鎖.山西電子技術.2002.12</p><p> 劉鈺等.一種VHDL語言設計的數(shù)字密碼鎖,信心技術與信息化.2004.4</p><p><b> 附錄</b></p><p>
55、主控制程序參考如下:</p><p> library ieee;</p><p> use ieee.std_logic_1164.all;</p><p> use ieee.std_logic_unsigned.all;</p><p> use ieee.std_logic_arith.all;</p><
56、p> entity coded_lock is</p><p><b> port(</b></p><p> clk :in std_logic;</p><p> ret :in std_logic;</p><p> key_F:in std_logic_vector(1 downto 0);<
57、;/p><p> keyin :in std_logic_vector(9 downto 0);</p><p> disp:out std_logic_vector(7 downto 0);</p><p> ledcs:out std_logic_vector(3 downto 0);</p><p> led2cs:out std_
58、logic;--led片選信號</p><p> sound:buffer std_logic;</p><p> led2:buffer std_logic_vector(1 downto 0)</p><p><b> );</b></p><p> end coded_lock;</p>&l
59、t;p> architecture rtl of coded_lock is</p><p> signal key_temp:std_logic_vector(9 downto 0);--按鍵緩存</p><p> signal N:std_logic_vector(3 downto 0);--按鍵緩存</p><p> signal FF:std_
60、logic;--按鍵標志</p><p> signal ACC:std_logic_vector(15 downto 0);--所有按鍵的寄存器</p><p> signal REG:std_logic_vector(15 downto 0);--比較寄存器</p><p> signal NC:integer range 0 to 4;--移位用的標志位
61、</p><p> signal A,B,C,D:std_logic_vector(3 downto 0);--顯示用的寄存器</p><p> SIGNAL clk_1k:std_logic;--掃描時鐘</p><p> signal data:std_logic_vector(3 downto 0);</p><p> sign
62、al F:std_logic_vector(1 downto 0);</p><p> signal s_cnt:integer range 0 to 4;</p><p> signal clk_10hz:std_logic;</p><p> signal flag:std_logic;</p><p> component le
63、d_disp is</p><p> port(datain:in std_logic_vector(3 downto 0);</p><p> dataout:out std_logic_vector(7 downto 0)</p><p><b> );</b></p><p> end component;
64、</p><p><b> begin</b></p><p> XIAODOU:process(clk) --按鍵消拉動電路</p><p> variable cnt:integer range 0 to 2000000;</p><p><b> be
65、gin</b></p><p> if rising_edge(clk) then</p><p> if cnt<1999999 then cnt:=cnt+1;</p><p> else cnt:=0;key_temp<=keyin;F<=key_F;</p><p><b> end i
66、f;</b></p><p><b> end if;</b></p><p> case key_temp is</p><p> when "0111111111"=>N<="1010";--0</p><p> when "10111
67、11111"=>N<="0001";--1</p><p> when "1101111111"=>N<="0010";--2</p><p> when "1110111111"=>N<="0011";--3</p><
68、p> when "1111011111"=>N<="0100";--4</p><p> when "1111101111"=>N<="0101";--5</p><p> when "1111110111"=>N<="0110&qu
69、ot;;--6</p><p> when "1111111011"=>N<="0111";--7</p><p> when "1111111101"=>N<="1000";--8</p><p> when "1111111110"=
70、>N<="1001";--9</p><p> when others=>N<="1111";</p><p><b> end case;</b></p><p> end process;</p><p> FF<=not(N(3)and
71、N(2)and N(1)and N(0)); --判斷按鍵</p><p> REGISTE:process(FF,ret) --寄存按鍵信號電路</p><p> variable cnt:integer range 0 to 5 ; --std_logic_vector(1 downto 0);</p><p&g
72、t;<b> begin</b></p><p> if ret='0' then --系統(tǒng)復位電路 </p><p> --ACC<="0000000000000000";</p><p><b> cnt:=0;</b><
73、;/p><p><b> NC<=0;</b></p><p> elsif rising_edge(FF) then cnt:=cnt+1; </p><p> ACC<=ACC(11 downto 0)&N;</p><p> if cnt=5 then cnt:=1; </p&
74、gt;<p><b> end if;</b></p><p><b> end if;</b></p><p><b> NC<=cnt;</b></p><p> end process;</p><p> CLK_1Khz: process(
75、clk) --產(chǎn)生1k的數(shù)碼管掃描信號</p><p> variable cnt:integer range 0 to 20000;</p><p><b> begin</b></p><p> if rising_edge(clk) then cnt:=cnt+1;</p><
76、;p> if cnt<10000 then clk_1k<='1';</p><p> elsif cnt<20000 then clk_1k<='0';</p><p> else cnt:=0;clk_1k<='0';</p><p><b> end if;&
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
評論
0/150
提交評論