EDA課程設計—電子密碼鎖_第1頁
EDA課程設計—電子密碼鎖_第2頁
EDA課程設計—電子密碼鎖_第3頁
EDA課程設計—電子密碼鎖_第4頁
EDA課程設計—電子密碼鎖_第5頁
已閱讀5頁,還剩15頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、華東交通大學EDA課設華東交通大學EDA課設目錄摘要21緒論31.1電子密碼鎖簡介31.2電子密碼鎖的國內外研究現狀和發展趨勢31.3 EDA技術及VHDL語言42電子密碼鎖總體設計62.1總體設計方案62.2設計思路簡述72.3整體組裝設計原理圖83單元模塊程序設計93.1 電子密碼鎖輸入模塊93.1.1輸入模塊程序93.1.2輸入模塊單元123.1.3輸入模塊仿真123.2電子密碼鎖系統控制模塊123.2.1 控制模塊程序133.2.2 控制模塊單元153.2.3 控制模塊仿真圖153.3電子密碼鎖系統顯示模塊163.3.1 顯示模塊程序163.3.2 顯示模塊單元173.3.3 顯示模塊

2、仿真174小結18參考文獻19電子密碼鎖設計摘要隨著人們生活水平的提高,如何實現家庭防盜這一問題逐漸變的尤為突出,傳統的機械鎖由于其構造簡單,故安全性能不容樂觀,同時電子技術的高速發展使得具有防盜報警等功能的電子密碼鎖代替密碼量少、安全性差的機械式密碼鎖已是必然趨勢。電子密碼鎖是一種通過密碼輸入來控制電路或是芯片工作,從而控制機械開關的閉合,完成開鎖、閉鎖任務的電子產品。目前設計密碼鎖的方法有很多,而用VHDL可以更加快速、靈活地設計出符合各種要求的密碼鎖,優于其他設計方法。關鍵字:家庭防盜 安全 電子密碼鎖 VHDL 1緒論1.1電子密碼鎖簡介電子密碼鎖是一種通過密碼輸入來控制電路或是芯片工

3、作,從而控制機械開關的閉合,完成開鎖、閉鎖任務的電子產品。它的種類很多,有簡易的電路產品,也有基于芯片的性價比較高的產品。現在應用較廣的電子密碼鎖是以芯片為核心,通過編程來實現的。其性能和安全性已大大超過了機械鎖。其特點如下:保密性好,編碼量多,遠遠大于彈子鎖,隨機開鎖成功率幾乎為零;密碼可變,用戶可以隨時更改密碼,防止密碼被盜,同時也可以避免因 人員的更替而使鎖的密級下降;誤碼輸入保護,當輸入密碼多次錯誤時,報警系統自動啟動;無活動零件,不會磨損,壽命長;使用靈活性好,不像機械鎖必須佩帶鑰匙才能開鎖;電子密碼鎖操作簡單易行,一學即會。1.2電子密碼鎖的國內外研究現狀和發展趨勢隨著生活水平的提

4、高和安全意識的加強,人們對安全的要求也就越來越高。鎖自古以來就是把守護門的鐵將軍,人們對它要求甚高,既要安全可靠的防盜,又要使用方便,這也是制鎖者長期以來研制的主題。隨著電子技術的發展,各類電子產品應運而生,電子密碼鎖就是其中之一。據有關資料介紹,電子密碼鎖的研究從20世紀30年代就開始了,在一些特殊場所早就有所應用。這種鎖是通過鍵盤輸入一組密碼完成開鎖過程。研究這種鎖的初衷,就是為提高鎖的安全性。由于電子鎖的密鑰量(密碼量)極大,可以與機械鎖配合使用,并且可以避免因鑰匙被仿制而留下安全隱患。電子鎖只需記住一組密碼,無需攜帶金屬鑰匙,免除了人們攜帶金屬鑰匙的煩惱,而被越來越多的人所欣賞。電子鎖

5、的種類繁多,例如數碼鎖,指紋鎖,磁卡鎖,IC卡鎖,生物鎖等。但較實用的還是按鍵式電子密碼鎖。20世紀80年代后,隨著電子鎖專用集成電路的出現,電子鎖的體積縮小,可靠性提高,成本較高,是適合使用在安全性要求較高的場合,且需要有電源提供能量,使用還局限在一定范圍,難以普及,所以對它的研究一直沒有明顯進展。目前,在西方發達國家,電子密碼鎖技術相對先進,種類齊全,電子密碼鎖已被廣泛應用于智能門禁系統中,通過多種更加安全,更加可靠的技術實現大門的管理。在我國電子鎖整體水平尚處于國際上70年代左右,電子密碼鎖的成本還很高,市場上仍以按鍵電子鎖為主,按鍵式和卡片鑰匙式電子鎖已引進國際先進水平,現國內有幾個廠

6、生產供應市場。但國內自行研制開發的電子鎖,其市場結構尚未形成,應用還不廣泛。國內的不少企業也引進了世界上先進的技術,發展前景非常可觀。希望通過不斷的努力,使電子密碼鎖在我國也能得到廣泛應用。目前使用的電子密碼鎖大部分是基于單片機技術,以單片機為主要器件,其編碼器與解碼器的生成為軟件方式。在實際應用中,由于程序容易跑飛,系統的可靠性能較差。基于現場可編程邏輯門陣列FPGA器件的電子密碼鎖,用FPGA器件構造系統,所有算法完全由硬件電路來實現,使得系統的工作可靠性大為提高。由于FPGA具有現場可編程功能,當設計需要更改時,只需更改FPGA中的控制和接口電路,利用EDA工具將更新后的設計下載到FPG

7、A中即可,無需更改外部電路的設計,大大提高了設計的效率。1.3 EDA技術及VHDL語言 在電子設計技術領域,可編程邏輯器件(如PLD,GAL)的應用,已有了很好的普及。這些器件為數字系統的設計帶來極大的靈活性。由于這類器件可以通過軟件編程而對其硬件的結構和工作方式進行重構,使得硬件的設計可以如同軟件設計那樣方便快捷。這一切極大地改變了傳統的數字系統設計方法、設計過程、乃至設計觀念。縱觀可編程邏輯器件的發展史,它在結構原理、集成規模、下載方式、邏輯設計手段等方面的每一次進步都為現代電子設計技術的革命與發展提供了不可或缺的強大動力。隨著可編程邏輯器件集成規模不斷擴大,自身功能的不斷完善和計算機輔

8、助設計技術的提高,在現代電子系統設計領域中的EDA便應運而生了。傳統的數字電路設計模式,如利用卡諾圖的邏輯化簡手段以及難懂的布爾方程表達方式和相應的TTL或4000系列小規模集成芯片的堆砌技術正在迅速地退出歷史舞臺。電子設計自動化(EDA)是一種實現電子系統或電子產品自動化設計的技術,它與電子技術、微電子技術的發展密切相關,吸收了計算機科學領域的大多數最新研究成果,以高性能的計算機作為工作平臺,是20世紀90年代初從CAD(計算機輔助設計)、CAM(計算機輔助制造)、CAT(計算機輔助測試)和CAE(計算機輔助工程)的概念發展而來的。EDA技術就是以計算機為工具,在EDA軟件平臺上,根據硬件描

9、述語言HDL完成的設計文件,自動地完成邏輯編譯、化簡、分割、綜合及優化、布局線、仿真,直至對于特定目標芯片的適配編譯、邏輯映射和編程下載等工作。設計者的工作僅限于利用軟件的方式來完成對系統硬件功能的描述,在EDA工具的幫助下和應用相應的FPG刀CPLD器件,就可以得到最后的設計結果。盡管目標系統是硬件,但整個設計和修改過程如同完成軟件設計一樣方便和高效。當然,這里的所謂EDA主要是指數字系統的自動化設計,因為這一領域的軟硬件方面的技術已比較成熟,應用的普及程度也已比較大。而模擬電子系統的EDA正在進入實用,其初期的EDA工具不一定需要硬件描述語言。此外,從應用的廣度和深度來說,由于電子信息領域

10、的全面數字化,基于EDA的數字系統的設計技術具有更大的應用市場和更緊迫的需求性。VHDL是一種全方位的硬件描述語言,包括系統行為級、寄存器傳輸級和邏輯門級多個設計層次,支持結構、數據流、行為三種描述形式的混合描述,因此VHDL幾乎覆蓋了以往各種硬件描述語言的功能,整個自頂向下或自底向上的電路設計過程都可以用VHDL來完成。2電子密碼鎖總體設計2.1總體設計方案如圖2.1 電子密碼鎖總體組成框圖 該電子密碼鎖可以分成三部分來設計,數字密碼輸入部分、密碼鎖控制電路和密碼鎖顯示電路。作為密碼鎖的輸入部分,可供選擇的方案有數字機械式鍵盤和觸摸式數字鍵盤等多種。考慮種種因素,建議本設計采用通用數字機械鍵

11、盤。根據以上選定的輸入設備和顯示器件,并考慮到實現各項數字密碼鎖功能的具體要求,整個電子密碼鎖系統的總體組成框圖如圖2.1所示。密碼鎖輸入電路包括時序產生電路、鍵盤掃描電路、鍵盤去抖動電路、鍵盤譯碼電路等幾個小的功能電路。密碼鎖控制電路包括按鍵數據的緩沖存儲電路,密碼的清除、變更、存儲、激活電鎖電路(寄存器清除信號發生電路),密碼核對(數值比較電路),解鎖電路(開/關門鎖電路)等幾個小的功能電路。七段數碼管顯示電路主要將待顯示數據的BCD碼轉換成數碼器的七段顯示驅動編碼。根據以上選定的輸入設備和顯示器件,并考慮到實現各項數字密碼鎖功。密碼輸入一般采用機械式和接觸式兩種鍵盤。機械式3x4鍵盤雖然

12、易產生抖動、磨損等問題,但具有電路結構簡單、成本低、可靠性高、技術成熟、應用廣泛等優點,在密碼鎖的設計過程中經常被采用。圖2.2是一個34矩陣式鍵盤的面板配置圖,其中數字09作為密碼數字輸入按鍵,*作為“上鎖”功能按鍵,#作為“解鎖/清除”功能按鍵。如圖2.2所示:圖2.2 機械式鍵盤密碼密碼電路2.2設計思路簡述 (1)密碼鎖輸入電路ENTER.VHD中對各種分頻信號/信號序列的設計有獨到之處。該設計中,利用一個自由計數器來產生各種需要的頻率,也就是先建立一個N位計數器,N的大小根據電路的需求決定。N的值越大,電路可以除頻的次數就越多,這樣就可以獲得更大的頻率變化,以便提供多種不同頻率的時鐘

13、信號。若輸入時鐘為CLK,N位計數器的輸出為QN-1,0,則Q(0)為CLK的2分頻脈沖信號,Q(1)為CLK的4分頻脈沖信號,Q(2)為CLK的8分頻脈沖信號,Q(N-1)為CLK的2N分頻脈沖信號;Q(5 DOWNTO 4)取得的是一個脈沖波形序列,其值是依00-01-10-11-00-01周期性變化的,其變化頻率為CLK的25分頻,也就是32分頻。我們利用以上規律即可得到各種我們所需要頻率的信號或信號序列; (2)鍵盤輸入去抖電路的設計程序DEBOUCING.VHD在實際系統的開發中有較好的參考價值。 (3)密碼鎖控制電路CONTROL.VHD中對于數據的更新及移位方法比較好。程序中使用

14、語句“ACC=ACC(11 DOWNTO 0)&DATA_N”非常簡潔地同時實現了ACC中低4位用DATA_N進行更新,而高12位用ACC中原來的低12位左移而來的處理。 (4)在密碼鎖輸入電路等模塊的程序的設計和仿真中,為了便于觀察一些中間結果,在程序中增加了一些觀測輸出點。這一設計技巧,對于較大的程序或多進程程序的設計非常重要。同時在仿真時,為了便于觀測全局結果,降低了分頻常數。同理,在進行程序仿真時,對于程序中數目較大的分頻/計數/計時常數的修改是非常必要的。2.3整體組裝設計原理圖系統的整體組裝設計有密碼輸入模塊、密碼控制模塊、密碼顯示模塊三部分組成,故如圖2.3所示:圖2.3 系統整

15、體組裝設計原理圖3單元模塊程序設計 本章節介紹的是單獨模塊的程序、原理圖、仿真以及功能說明,共有三個模塊,分別是電子密碼鎖輸入模塊、電子密碼鎖控制模塊以及顯示模塊。3.1電子密碼鎖輸入模塊(1)時序產生電路 本時序產生電路中使用了三種不同頻率的工作脈沖波形:系統時鐘脈沖(它是系統內部所有時鐘脈沖的源頭,且其頻率最高)、彈跳消除取樣信號、鍵盤掃描信號。(2)鍵盤掃描電路掃描電路的作用是用來提供鍵盤掃描信號(表3-1中的KY3KY0)的,掃描信號變化的順序依次為11101101101101111110.依序地周而復始。 (3)彈跳消除電路由于本設計中采用的矩陣式鍵盤是機械開關結構,因此在開關切換的

16、瞬間會在接觸點出現信號來回彈跳的現象,對于電子密碼鎖這種靈敏度較高的電路這種彈跳將很可能會造成誤動作輸入,從而影響到密碼鎖操作的正確性。表3-1 按鍵位置的數碼關系3.1.1輸入模塊程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY ENTER ISPORT(CLK_1K: IN STD_LOGIC; KEY_IN: IN STD_LOGIC_VECTOR(2 DOWNTO 0);DATA_N: OUT STD_LOGIC_V

17、ECTOR(3 DOWNTO 0);DATA_F: OUT STD_LOGIC_VECTOR(3 DOWNTO 0);FLAG_N: OUT STD_LOGIC;FLAG_F: OUT STD_LOGIC;CQD: OUT STD_LOGIC;KSEL: OUT STD_LOGIC_VECTOR(3 DOWNTO 0);CSR: OUT STD_LOGIC_VECTOR(1 DOWNTO 0);END ENTITY ENTER;ARCHITECTURE ART OF ENTER ISSIGNAL C_QD: STD_LOGIC;SIGNAL C_SR: STD_LOGIC_VECTOR(1 D

18、OWNTO 0);SIGNAL N,F: STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL FN,FF: STD_LOGIC;SIGNAL SEL: STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL Q: STD_LOGIC_VECTOR(5 DOWNTO 0);SIGNAL C: STD_LOGIC_VECTOR(2 DOWNTO 0);BEGIN DATA_N = N; DATA_F = F; FLAG_N = FN; FLAG_F = FF; CQD = C_QD; CSR = C_SR; KSEL = SEL; C(0)=KEY_IN(0)

19、; C(1) = KEY_IN(1); C(2) = KEY_IN(2); COUNTER:BLOCK IS BEGIN PROCESS(CLK_1K) IS BEGIN IF(CLK_1KEVENT AND CLK_1K =1)THEN Q = Q+1; END IF; C_QD = Q(3); C_SR = Q(5 DOWNTO 4); END PROCESS; SEL =1110 WHEN C_SR= 0 ELSE 1101 WHEN C_SR= 1 ELSE 1011 WHEN C_SR= 2 ELSE 0111 WHEN C_SR= 3 ELSE 1111; END BLOCK CO

20、UNTER; KEY_DECODER : BLOCK SIGNAL Z : STD_LOGIC_VECTOR(4 DOWNTO 0); BEGIN PROCESS(C_QD) BEGIN Z N N N N N N N N N N N F F F = 1000; END CASE; END IF; END PROCESS; FN = NOT ( N(3) AND N(2) AND N(1) AND N(0); FF = F(2) OR F(0);END BLOCK KEY_DECODER;END ARCHITECTURE ART;3.1.2輸入模塊單元有上面的程序通過quartus II,我們

21、可以得到下面這個封裝元件。圖3.1電子密碼鎖鍵盤輸入3.1.3輸入模塊仿真圖3.2 密碼鎖輸入模塊仿真圖3.2電子密碼鎖系統控制模塊密碼鎖的控制電路是整個電路的控制中心,主要完成對數字按鍵輸入和功能按鍵輸入的響應控制。數字按鍵輸入的響應控制:(1) 如果按下數字鍵,第一個數字會從顯示器的最右端開始顯示,此后每新按一個數字時,顯示器上的數字必須左移一格,以便將新的數字顯示出來。(2) 假如要更改輸入的數字,可以按倒退按鍵來清除前一個輸入的數字,或者按清除鍵清除所有輸入的數字,再重新輸入四位數。(3) 由于這里設計的是一個四位的電子密碼鎖,所以當輸入的數字鍵超過四個時,電路不予理會,而且不再顯示第

22、四個以后的數字。3.2.1 控制模塊程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CONTROL ISPORT( DATA_N: IN STD_LOGIC_VECTOR(3 DOWNTO 0); DATA_F: IN STD_LOGIC_VECTOR(3 DOWNTO 0); FLAG_N: IN STD_LOGIC; FLAG_F: IN STD_LOGIC; MIMAIN: BUFFER STD_LOGIC; SET

23、IN: BUFFER STD_LOGIC; OLD: BUFFER STD_LOGIC; CQD: IN STD_LOGIC; ENLOCK: OUT STD_LOGIC; DATA_BCD: OUT STD_LOGIC_VECTOR(15 DOWNTO 0);END ENTITY CONTROL;ARCHITECTURE ART OF CONTROL IS SIGNAL ACC,REG:STD_LOGIC_VECTOR(15 DOWNTO 0); BEGIN PROCESS(CQD,FLAG_F) IS BEGIN IF CQDEVENT AND CQD=0THEN IF FLAG_F=1T

24、HEN IF(DATA_F=0100)THEN ACC=1111111111111111; MIMAIN=0;SETIN=0;OLDENLOCKMIMAIN=1; ACCSETIN=1; ACC=1111111111111111; OLD NULL; END CASE; ELSIF(MIMAIN=1)THEN IF ACC=REG THEN ENLOCK=0; MIMAIN=0; ELSE MIMAIN=0; END IF; ELSIF(SETIN=1)THEN IF(OLD=1)THEN IF(ACC=REG)THEN OLD=0; ELSE SETIN=0; OLD=0; END IF; ELSE IF (ACC1001100110011001)THEN REG=ACC; SETIN=0; END IF; END IF; END IF; END IF; ELSIF FLAG_N=1THEN ACC=ACC(11 DOWNTO 0)&DATA_N; END IF; END IF; END PROCESS; DATA_BCDDOUT7DOUT7DOUT

溫馨提示

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

評論

0/150

提交評論