




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、 1引言電子密碼鎖的使用體現了人們消費水平、 保安意識和科技水平的提高 ,而且避免了攜帶甚至丟失鑰匙的麻煩。目前設計密碼鎖的方法很多 ,例如用傳統的 PCB 板設計、 用 PLC 設計或者用單片機設計。而用 V HDL 可以更加快速、 靈活地設計出符合各種要求的密碼鎖,優于其他設計方法 ,使設計過程達到高度自動化。本設計在 Max + plus 的環境中進行 ,用 Al2tera 公司 ACEX 1 K系列的 EP1 K30 TC14423 來實現。ACEX 1 K是 Altera 公司著眼于通信、 音頻處理與類似場合的應用而推出的 FPGA 器件芯片系列 ,其典型門數為 10 萬門 ,是當今
2、 Altera 多種產品中應用前景最好的器件系列之一。EDA 技術設計電子系統具有用軟件的方式設計硬件;設計過程中可用有關軟件進行各種仿真,系統可現場編程、在線升級,整個系統可集成在一個芯片上等特點;不但設計周期短、設計成本低,而且將提高產品或設備的性能,縮小產品體積、提高產品的技術含量,提高產品的附加值。用VHDL設計電子密碼鎖方案:作為通用電子密碼鎖,主要由 3 個部分組成:數字密碼輸入電路、密碼鎖控制電路和密碼鎖顯示電路,作為電子密碼鎖的輸入電路。可供選擇的方案有數字機械式鍵盤和觸摸式數字鍵盤等多種。(1)密碼鎖輸入電路包括時序產生電路、鍵盤掃描電路、鍵盤彈跳消除電路、鍵盤譯碼電路等幾個
3、小的功能電路。(2)密碼鎖控制電路包括按鍵數據的緩沖存儲電路,密碼的清除、變更、存儲、激活電鎖電路(寄存器清除信號發生電路),密碼核對(數值比較電路),解鎖電路(開關門鎖電路) 等幾個小的功能電路。(3)七段數碼管顯示電路主要將待顯示數據的BCD碼轉換成數碼器的七段顯示驅動編碼。1.1 設計背景隨著社會的發展和人們生活水平的提高,人們的安全意識也逐步加強。傳統的機械鎖由于其構造的簡單,失效的事件屢見不鮮,如何實現防盜這一問題變的尤其的突出,密碼鎖以其安全性高、成本低、功耗低、易操作等優點受到越來越多人的歡迎。基于VHDL語言的電子密碼鎖是新型現代化安全管理系統,它集微機自動識別技術和現代安全管
4、理措施為一體,它涉與電子,機械,計算機技術,通訊技術,生物技術等諸多新技術。它是解決重要部門出入口實現安全防管理的有效措施,適用各種場合,如銀行、賓館、機房、軍械庫、機要室、辦公間、智能化小區、工廠、家庭等。在數字技術網絡技術飛速發展的今天,電子密碼鎖技術得到了迅猛的發展。它早已超越了單純的門道與鑰匙管理,逐漸發展成為一套完整的出入管理系統1。它在工作環境安全、人事考勤管理等行政管理工作中發揮著巨大的作用。在該系統的基礎上增加相應的輔助設備可以進行電梯控制、車輛進出控制,物業消防監控、餐飲收費、私家車庫管理等,真正實現區域一卡智能管理。目前使用的電子密碼鎖大部分是基于單片機技術, 以單片機為主
5、要器件, 其編碼器與解碼器的生成為軟件方式。在實際應用中, 由于程序容易跑飛, 系統的可靠性能較差2。基于VHDL語言的電子密碼鎖已經是現代生活中經常用到的工具之一,用于各類保險柜、房門、防盜門等等。用電子密碼鎖代替傳統的機械式密碼鎖,克服了機械式密碼鎖密碼量少、安全性能差的缺點。1.2 設計目的電子雜志、報刊經常刊登有密碼開關、密碼鎖這樣的電路,大多數是使用常用的數字電路,如CD4017,然后通過不同的連接方式實現密碼控制功能。這種電路的特點就是密碼修改只能通過改變電路的連接來實現,密碼很容易被破解,電路復雜,故障率高。本制作是針對這些電路而設計的,將以往的以單片機實現設計改為可編程器件FP
6、GA利用VHDL編程實現電子密碼鎖的設計。這種設計移動方便。基于FPGA的電子密碼鎖具有強、靈活性高、適用圍廣等特點,它在鍵盤上輸入,與打差不多,因而易于掌握,其突出優點是“密碼”是記在被授權人腦子里的數字和字符,既準確又可靠,不會丟失(除了忘記),難以被竊(除非自己泄露)。但是密碼不能太簡單,太簡單了就容易被他人在鍵盤上試探出來,或者可能被旁觀者窺測出來,造成性不足。當然,密碼又不能太復雜,太復雜了可能自己都糊涂了,或者輸入密碼操作成功率低,造成使用不便。因此,為了發揚優點、克服弱點,本設計采用“任意設定數字密碼”技術使得被授權人可以根據自己的需要或喜好設定密碼,常用常新,在輸入密碼的過程中
7、,當用戶鍵入錯誤密碼時,系統就會報警,由揚聲器發出5秒報警聲,當連續三次出現密碼錯誤時,則系統會長時間報警不止,這時必須按復位方可停止。本設計的電子密碼鎖的特點是:體積小、功耗低、價格便宜、安全可靠,維護和升級都十分方便,具有較好的應用前景。它與傳統鎖具的不同之處在于:它與可編程邏輯器件實現系統的設計,應用簡潔清晰的VHDL語言實現設計編程思想,能夠實現適時、智能控制管理功能,特別是在系統的擴展上有很好的優勢。1.3設計容本次課程設計成功地設計了一個簡單的數字電子密碼鎖,密碼為 4 位。將電子密碼鎖分為以下幾個模塊:方波生成模塊、消抖同步模塊、密碼鎖邏輯控制模塊和密碼鎖顯示模塊,實現了以下功能
8、: (1)密碼輸入:每按下一個鍵,要求在數碼管上顯示,并依次左移; (2)密碼清除:清除密碼輸入,并將輸入置為”8888”; (3)密碼修改:將當前輸入設為新的密碼; (4)上鎖和開鎖2 設計的基礎依據2.1 EDA簡介EDA是電子設計自動化(Electronic Design Automation)縮寫,是90年代初從CAD(計算機輔助設計)、CAM(計算機輔助制造)、CAT(計算機輔助測試)和CAE(計算機輔助工程)的概念發展而來的。EDA技術是以計算機為工具,根據硬件描述語言HDL( Hardware Description language)完成的設計文件,自動地完成邏輯編譯、化簡、分
9、割、綜合與優化、布局布線、仿真以與對于特定目標芯片的適配編譯和編程下載等工作。典型的EDA工具中必須包含兩個特殊的軟件包,即綜合器和適配器。綜合器的功能就是將設計者在EDA平臺上完成的針對某個系統項目的HDL、原理圖或狀態圖形描述,針對給定的硬件系統組件,進行編譯、優化、轉換和綜合,最終獲得我們欲實現功能的描述文件。綜合器在工作前,必須給定所要實現的硬件結構參數,它的功能就是將軟件描述與給定的硬件結構用一定的方式聯系起來。也就是說,綜合器是軟件描述與硬件實現的一座橋梁。綜合過程就是將電路的高級語言描述轉換低級的、可與目標器件FPGA/CPLD相映射的網表文件。適配器的功能是將由綜合器產生的王表
10、文件配置與指定的目標器件中,產生最終的下載文件,如JED文件。適配所選定的目標器件(FPGA/CPLD芯片)必須屬于在綜合器中已指定的目標器件系列。硬件描述語言HDL是相對于一般的計算機軟件語言,如:C、PASCAL而言的。HDL語言使用與設計硬件電子系統的計算機語言,它能描述電子系統的邏輯功能、電路結構和連接方式。設計者可利用HDL程序來描述所希望的電路系統,規定器件結構特征和電路的行為方式;然后利用綜合器和適配器將此程序編程能控制FPGA和CPLD部結構,并實現相應邏輯功能的的門級或更底層的結構網表文件或下載文件。目前,就FPGA/CPLD開發來說,比較常用和流行的HDL主要有ABEL-H
11、DL、AHDL和VHDL。2.2 VHDL2.2.1 VHDL語言簡介目前數字系統的設計可以直接面向用戶需求 ,根據系統的行為和功能要求 ,自上而下地逐層完成相應的描述、綜合、優化、仿真與驗證 ,直到生成器件 ,實現電子設計自動化。其中電子設計自動化EDA (即Electronic Design Automation)的關鍵技術之一就是可以用硬件描述語言(HDL)來描述硬件電路。VHDL(VHSIC Hardware Description Language)是用來描述從抽象到具體級別硬件的工業標準語言 ,它是由美國國防部在 20 世紀 80 年代開發的 HDL ,現在已成為 IEEE承認的標
12、準硬件描述語言。VHDL 支持硬件的設計、驗證、綜合和測試 ,以與硬件設計數據的交換、維護、修改和硬件的實現 ,具有描述能力強、生命周期長、支持大規模設計的分解和已有設計的再利用等優點2。VHDL 主要用于描述數字系統的結構、行為和功能 ,其程序結構特點是將一個電路模塊或一個系統分成端口和部功能算法實現兩部分。對于一個電路模塊或者數字系統而言 ,定義了外部端口后 ,一旦部功能算法完成后 ,其他系統可以直接依據外部端口調用該電路模塊或數字系統 ,而不必知道其部結構和算法。VHDL 的特點使得電子系統新的設計方法“自頂向下”設計方法更加容易實現14。可以先對整個系統進行方案設計 ,按功能劃分成若干
13、單元模塊 ,然后對每個單元模塊進一步細分 ,直到簡單實現的單元電路。2.2.2 VHDL語言的特點VHDL語言主要用于描述數字系統的結構、行為、功能和接口,其具有以下特點: (1)作為HDL的第一個國際標準,VHDL具有很強的可移植性; (2)具有豐富的模擬仿真語句和庫函數; (3)VHDL有良好的可讀性,接近高級語言,容易理解; (4)系統設計與硬件結構無關; (5)支持模塊化設計; (6)用VHDL完成的一個確定設計,可以利用EDA工具自動地把VHDL描述轉變成門電路級網表文件。2.2.3 VHDL語言的優點與其他硬件描述語言相比,VHDL語言有如下優越之處15:(1)VHDL語言支持自上
14、而下(TopDown)和基于庫(LibraryBase)的設計方法,還支持同步電路、異步電路、FPGA以與其他隨機電路的設計;(2)VHDL語言具有多層次描述系統硬件功能的能力,可以從系統的數學模型直到門級電路,其高層次的行為描述可以與低層次的RTL描述和結構描述混合使用,還可以自定義數據類型,給編程人員帶來較大的自由和方便;(3)VHDL對設計的描述具有相對獨立性,設計者可以不懂硬件的結構,也不必關心最終設計實現的目標器件是什么;(4)VHDL具有電路仿真與驗證功能,可以保證設計的正確性,用戶甚至不必編寫如何測試相量便可以進行源代碼級的調試,而且設計者可以非常方便地比較各種方案之間的可行性與
15、其優劣,不需做任何實際的電路實驗;(5)VHDL語言可以與工藝無關編程;(6)VHDL語言標準、規,易于共享和復用。2.2.4 VHDL語言的基本結構VHDL有五大元素組成,即實體、結構體、配置、程序包和庫16。具體說明如下:(1)實體(ENTITY)程序是設計的基本模塊和初級單元,在分層設計中,頂層有頂層實體,含在頂層實體中的較低層的描述為底層實體.配置把頂層實體和底層實體連接起來.實體說明語句僅對本實體與外部電路接口進行描述.(2)結構體(ARCHITECTURE)結構體也叫構造體,描述了實體的結構、行為、元件與部連接關系,也就是說它定義了設計實體的功能,規定了設計實體的數據流程,制定了實
16、體部元件的連接關系。(3)配置(CONFIGURATION)配制用于將元件實例與實體-結構成對綁定,決定了哪個結構體于實體關聯。(4)程序包(PACKAGE)程序包是經常使用的數據類型和子程序的集合,可以認為是VHDL的工具箱,主要對程序包中的常量、數據類型和子程序進行格式描述,類似于C語言中的頭文件。(5)庫(LIBRARY)庫具體對程序包聲明的數據類型和子程序進行功能說明。2.2.5VHDL語言的應用硬件描述語言已成為當今以與未來電子設計自動化(EDA)解決方案的核心,特別是對于深亞微米復雜數字系統的設計,硬件描述語言具有獨特的作用。VHDL在數字電子電路的設計中具有硬件描述能力強、設計方
17、法靈活等優點6。利用硬件描述語言VHDL,數字電路系統可從系統行為級、寄存器傳輸級和門級三個不同層次進行設計,即上層到下層(從抽象到具體)逐層描述自己的設計思想,用一系列分層次的模塊來表示極其復雜的數字系統。然后,利用電子設計自動化(EDA)工具,逐層進行仿真驗證,再把其中需要變為實際電路的模塊組合,經過自動綜合工具轉換到門級電路網表。接著,再用專用集成電路(ASIC)或現場可編程門陣列(FPGA)自動布局布線工具,把網表轉換為要實現的具體電路布線結構。目前,這種高層次設計(highleveldesign)的方法已被廣泛采用。據統計,目前在美國硅谷約有90%以上的ASIC和FPGA采用硬件描述
18、語言進行設計。VHDL的應用已成為當今以與未來EDA解決方案的核心,而且是復雜數字系統設計的核心。3 基于VHDL的電子密碼鎖設計過程3.1 設計規劃電子密碼鎖的結構如圖3-1所示 ,由時鐘脈沖發生器、 按鍵、 指示燈和控制部分等組成。開關的消抖動電路放在控制部分考慮 ,時鐘輸入端 CL K由外部時鐘脈沖發生器的輸出提供。設計中的指示燈就是發光二極管 ,共計 10 個 ,用來指示系統的工作狀態。其中 8 個為一組 ,用來顯示已經輸入密碼的個數 ,剩余兩個 ,一個為開鎖綠色指示燈 L T ;另一個為報警紅色指示燈L F。控制部分是 V HDL 語言設計的核心部分 ,主要由方波生成模塊 FEN、
19、消抖同模XIAOPRO、 反向器模塊 INV1 和密碼鎖邏輯控制模塊 CEN TRE 這 4 個模塊構成 ,可以完成密碼的修改、 設定與非法入侵報警、 驅動外圍電路等功能。圖3.1 電子密碼鎖結構主程序作為整個系統中最重要的部分,設計相當繁瑣,而且還承擔著其它子程序的連接任務,所以顯得尤為重要,如果這個部分出了問題 那整個系統將會癱瘓。此電子密碼鎖系統的主程序需要的標準程序包:USE IEEESTDLOGIC1164ALL;USE IEEESTDLOGICARITHALL USE IEEESTDLOGICUN-圖3.2 DEBOLNCING模塊原件例化模塊部信號: CLK:時鐘脈沖輸入端口VC
20、C:模塊部信號,控制清零Q0:寄存D觸發器處理過的信號Q1:與Q0信號做差分處理D1:模塊部信號D0:模塊部信號 0, 1 DOUT1,DD0, DD1是為便于仿真時觀察中間結果而增加的觀測點的輸出端口(刪除無影響)。DEBOUNCING 模塊主要程序如下:U1:DCFQ PORT MAP(CLKCLK CLRNINVD PRNVCC DVCC QQ0);U2:DCFQ PORT MAP(CLK CLK CLRN Q0 PRN VCC DVCC QQ1);PROCESS(CLK)BEGINIF CLKEVENT AND CLK1THEND0NOT Q1;D1D0;END IFEND PROCE
21、SS;DD0D0;DD1D1; 1Q1 0Q0;DOUTNOT(D1 AND NOT D0);DOUT1NOTQ1;END ARCHITECTURE ART;這段程序的作用就是通過對信號的分頻處理,從而將按鍵產生的不規則信號轉換為便于識別的按鍵信號,達到消除抖動的目的。3.2 各模塊原理與程序電子密碼鎖的核心部分是控制器,該部分的輸入輸出信號已有明確的定義如表3.1所示:知道了輸入輸出后,就可以進行設計了。該電子密碼鎖設置 8 位二進制密碼,其功能特點為:表3-1 電子密碼鎖控制器輸入輸出信號定義(1)采用串行數據輸入,可實現啟閉開關、指示燈提示和報警等功能;(2)采用消抖模塊,以避免開關的震
22、顫影響;(3)開鎖者只有在正確輸入密碼后才能重新設置新的密碼,以防止非管理員對密碼進行任意的修改;(4)可初始化密碼。數字系統的層次化設計,一般都要經過 4 個階段:設計輸入、編譯、仿真驗證、下載器件。本設計采用的是自下而上的設計方法,逐層完成相應的描述、編譯、仿真與驗證,即先建立一些低層次的設計,再將它們組合在一起,最后形成一個單一的頂層設計文件。Max + plus 軟件有多種輸入方式,主要有:各種文本輸入、原理圖輸入和波形輸入。對于不同層次的模塊,應采用不同的輸入方式進行描述。由于 V HDL 擅長描述模塊的邏輯功能,而原理圖擅長描述硬件連接關系,所以在底層設計中,對底層所有模塊使用V
23、HDL 語言進行描述,在頂層設計中,使用原理圖輸入方法。密碼鎖控制電路主要程序:KEYINPROCESS:BLOCK ISSIGNAL RST, D0, D1 ,STDLOGIC;BEGINRSTRR2;PROCESS FLAGN RST ISBEGINIF RST1THENACC00000 CLEAR INPUTNC000;ELSEIF FLAGNEVENT AND FLAGN1THENIF NC4 THENACCACC 11 DOWNTO 0 DATAN;NCNC1;END IF;END IF;END IF;END PROCESS;END BLOCK KEYINPROCESS;以上程序的作
24、用是清除、暫存按鍵輸入數據,每輸入一個數字在數碼管顯示時都左移一位,直到輸入位數達到 4 位,4位以后不再顯示。LOCKPROCESS;BLOCK ISBEGINPROCESS(CLK DATAF)ISBEGINIF(CLKEVENT AND CLK1)THENF NC4 THENIF DATAF 2 1THEN 上鎖控制信號有效REGACC; 密碼存儲 QA1;QB0;本設計主要包括方波生成模塊、 消抖同步模塊、密碼鎖邏輯控制模塊和密碼鎖顯示模塊,下面分別加以介紹。3.2.1方波生成模塊方波生成模塊 FEN 分頻產生占空比為 1:100的方波,用于消除抖動。分頻電路的輸入時鐘 CL K是由外
25、部時鐘提供的,外部時鐘周期取 200ns。FEN 模塊程序如下:L IBRARY IEEE;USE IEEE. std_logic_1164. ALL ;ENTITY fen ISPORT(clk :in std_logic ;clk1 :out std_logic) ;END fen ;ARCHITECTURE fen_arc OF fen ISBEGINPROCESS(clk)VARIABL Et :integer range 0 to 99 ;BEGINIF clk ! event AND clk = ! 1 ! THENIFt = 99 THENcnt : = 0 ;clk1 = !
26、1 ! ;ELSEcnt : =t + 1 ;clk1 = ! 0 ! ;END IF ;END IF ;END PROCESS ;END fen_arc ;3.2.2 消抖同步模塊鍵盤的輸入電路部分又分為鍵盤去抖電路和密碼鎖輸入電路,下面先介紹鍵盤去抖電路部分。鍵盤消抖部分是由兩個小的模塊集成為一個去抖電路的,所以在此分開介紹此兩個模塊。(1)DCFQ模塊模塊外部信號端口:CLK:時鐘脈沖輸入端口,為電路提供原始始終信號CLRM:清零信號輸入端口PRN:置位信號輸入端口Q:信號輸出端口DCFQ模塊的主要程序IF CLRN0AND PRN1THENQ0;LSIF CLRN1AND PRN0TH
27、ENQ1;ELSIF CLKEVENT AND CLK1THENQD;END IF;此段程序作用是判斷輸入信號是否有效,如有效則輸出,無效清零。(2)DEBOUNCING模塊a.模塊外部信號端口:DIN:信號輸入端口FLAGN:數字輸出標志FLAGF:功能輸出標志CLKCTR:控制電路工作時鐘信號CLKDEBOUNCE:去抖電路工作時鐘信號(仿真時用)b.模塊部信號:CLK:電路工作時鐘脈沖CKEYBOARD:鍵掃信號 “00011011” 寄存器CDEBOUNCE:去抖時鐘信號C:鍵盤輸入去抖后的寄存器N, F:數字、功能按鍵譯碼值的寄存器FN,FF:數字、功能按鍵標志值數字、功能按鍵SEL
28、:模塊部信號Z:按鍵位置信號對于 K1 和 K0 信號 ,它們分別代表 1 和 0 的按鍵開關,可以直接送入密碼鎖邏輯控制模塊 CEN2TRE。但由于它們是由按鍵產生的 ,其產生時刻和持續時間長短是隨機的 ,并且存在因開關簧片反彈引起的電平抖動現象。因此 ,必須在每個開關后面安排一個消抖和同步化電路模塊 XIAOPRO ,目的是保證系統能捕捉到輸入脈沖 ,同時 ,保證每按一次鍵只形成一個寬度固定的脈沖3 。在 XIAOPRO模塊中 ,因為變量的賦值是直接的 ,立即生效的 ,它在某一時刻僅包含一個值 ,而信號的賦值是有一定附加時延的 ,故當時鐘脈沖下降沿到來時 ,變量tmp2 和 tmp3 在賦
29、值語句執行后立即分別得到新值: tmp1 的值和tmp2 的非值 ,而輸入信號a 經過一定時延賦值給信號 tmp1 ,實現了消除抖動并且同步的功能。用來描述輸入消抖同步電路功能的V HDL 語言程序如下:L IBRARY IEEE;USE IEEE. std_logic_1164. ALL ;ENTITY xiaopro ISPORT(a ,clk1 :in std_logic ;b :out std_logic) ;END xiaopro ;ARCHITECTURE xiao_arc OF xiaopro ISSIGNAL tmp1 : std_logic ;BEGINPROCESS(clk
30、1 ,a)VARIABL E tmp3 ,tmp2 : std_logic ;BEGINIF clk1 ! event AND clk1 = ! 0 ! THENtmp1 = a ;tmp2 : = tmp1 ;tmp3 : = not tmp2 ;END IF ;b = tmp1 AND tmp3 AND clk1 ;END PROCESS ;END xiao_arc ;3.3 密碼鎖邏輯控制模塊密碼鎖控制電路組成:ELSIF DATAF(0) 1THEN 開鎖控制信號有效IF REGACC THEN 密碼核對QA0 QB1;END IF;ELSIF ACC01000THENQA0; QB1
31、;END IF;這段程序的作用是在按下*鍵時將輸入的密碼 (暫時寄存于 ACC中)跟已經存儲的密碼(REG中的密碼信息)進行對比,如果一樣,則密碼鎖開鎖。而在通過密碼驗證后可以按鍵重新設定密碼。在這里值得注意的是有一個密碼“8888”作為萬用密碼,也就是不論當前密碼是什么,只要輸入的密碼為“8888”則都可通過密碼鎖。模塊 CEN TRE 是整個設計的核心 ,它實現密碼鎖的邏輯功能。管理員有權在任何時候按動密碼初始化按鍵LC ,此時鎖密碼設置為程序初始化密碼值(在本模塊程序中此值為 10010101) 。開鎖代碼為 8 位二進制數 ,當輸入代碼的位數和位值與鎖給定的密碼一致 ,且按規定程序開鎖
32、時 ,方可開鎖 ,并點亮開鎖指示燈 L T。否則 ,系統進入 “錯誤”狀態 ,并發出報警信號。串行數字鎖的報警方式是點亮指示燈L F ,并使喇叭鳴叫 ,直到按下復位開關 ,報警才停止。此時 ,數字鎖又自動進入等待下一次開鎖的狀態。該 8 位串行電子密碼鎖設置 8 位二進制密碼 ,要求鎖給定的密碼是可調的 ,且設置方便 ,性好。其具體操作分為輸入密碼和修改密碼兩部分。(1) 輸入密碼密碼鎖輸入電路:圖3.3 密碼鎖輸入電路原件例化1)模塊外部信號端口CLK1K:時鐘脈沖輸入端口KEYIN:按鍵輸入端口CLKSCAN:鍵盤掃描序列 仿真時用DATAN:數字輸出端口DATAF:功能輸出端口FLAGN
33、:數字輸入標志FLAGF:功能輸入標志EMLOCK:密碼鎖控制信號輸出端口DATABCD:按鍵顯示輸出端口2)模塊部信號ACC:暫存鍵盤輸入信息REG:密碼存儲位置RR2:寄存器清零信號R1,R0:模塊部信號,二者差分生成清零信號NC:移位寄存器QA,QB:上鎖、解鎖控制信號密碼輸入值的比較主要有兩部分 ,密碼位數和容 ,任何一個條件不滿足 ,都不能打開鎖。若鎖密碼為 “10010101” , K1 和 K0 置低電平 ,分別表示輸入 “1” 和 “0” 。輸入密碼前先進行復位操作 ,再按著從密碼最低位到最高位的順序依次正確輸入 1 01 0 1 0 0 1。若采用共陰極 L ED 接法 ,當
34、輸入第 0位 “1” 后 ,八個二極管中相對應的二極管點亮(此時二極管指示燈 lamp =“10000000” ,輸入密碼信號shif t =“10000000” ) ,接著輸入第 1 位“0”(此時lamp =“11000000” ,shif t =“01000000” ) 依照順序 ,將 8 位二進制密碼全部正確輸入完畢后(此時amp =“11111111” ,shif t =“10010101” ) ,經檢驗 ,輸入的密碼 shif t 等于鎖預先設置的密碼lock ,密碼鎖開啟信號L T置高電平,鎖開啟。同時,密碼修改控制信號LA 置高電平。若在輸入密碼的過程中 ,8 位二進制密碼出現
35、一位或多位輸入錯誤 ,那么鎖不能開啟 ,同時 Alm置高電平 ,指示燈 L F 亮 ,發出報警信號 ,通知管理員。直到按下復位開關 ,報警才停止。此時 ,數字鎖又自動進入等待下一次開鎖的狀態。密碼鎖輸入電路主要程序:KEYDECODER:BLOCKSIGNALZ: STDLOGICVECTOR( 4 DOWNTO 0) 按鍵位置BEGINPROCESS(CLK)BEGINZCKEYBOARD C;IF CLKEVENT AND CLK1THENCASE Z ISWHEN11101N0000; 0WHEN00011N0001; 1WHEN00101N0010; 2WHEN00110N0011;
36、3WHEN01011N0100; 4WHEN01101N0101; 5WHEN01110N0110; 6WHEN10011N0111; 7WHEN10101N1000; 8WHEN10110N1001; 9WHEN OTHERSN1111;END CASE;END IF;IF CLKEVENT AND CLK1THENCASE Z ISWHEN11011F0100 ;* LOCKWHEN11110F0001 ;UNLOCKWHEN OTHERSF1000;END CASE;END IF;END PROCESS;這段程序的作用是通過按鍵產生的信號進行譯碼,判斷按鍵是數字還是上鎖、解鎖控制信號。
37、(2)修改密碼為防止非管理員任意進行密碼修改 ,必須在正確輸入密碼后 ,才能重新設置密碼。輸入正確密碼后 ,鎖打開 ,同時 ,密碼修改控制信號LA 置高電平 ,就可直接進行修改密碼的操作。修改密碼實質就是用輸入的新密碼去取代原來的舊密碼。存儲新密碼時 ,輸入一位密碼 ,密碼位數加 1。若采用共陰極L ED 接法 ,與輸出引腳 lamp 相接的發光二極管由亮變暗。當輸入 8 位密碼后 ,8 只發光二極管全變暗。此時給 CL K一個低電平 ,新密碼產生。3.4 密碼鎖顯示模塊密碼鎖顯示電路:圖3.4 密碼鎖顯示電路原件例化模塊外部信號端口DATABCD:密碼信號輸入端口BLOCK:密碼鎖狀態信號顯
38、示燈4 系統仿真當各個模塊分別編譯成功后,則創建一個個元件符號。再用圖形編輯器將各元件模塊組裝起來,這就是本設計中最頂層的圖形設計文件。頂層圖形設計文件 lock. gdf 如圖4-1所示,這個結構框圖說明了整個系統的外部輸入和輸出情況。為了獲得與目標器件對應的、 精確的時序仿真文件,在對文件編譯前必須選定最后實現本設計項目的目標器件,在Max + plus 環境中我們選 Altera 公司的 FPGA ,然后選擇用于編程的目標芯片:選擇菜單 “Assign” “Device”,窗口中的 Device Family 是器件序列欄,先 在 此 欄 中 選 擇 ACEX1 K。為 了 選 擇EP1
39、 K30 TC14423 器件,應將此欄下方標有“Showonly Fastest Speed Grades” 的勾消去,以便顯示出所有速度級別的器件。完成器件選擇后,按 O K,就可以進行編譯了。圖4.1 頂層圖形設計文件編譯成功后進行仿真。首先建立波形文件。波形文件 lock. scf 建好并存盤后,選擇菜單 “Max +plus” “simulator”,啟動仿真操作,結束后觀察仿真波形。本設計中,仿真波形如圖4-2圖4-4所示。當給初始密碼輸入信號 LC 一個低電平時,就將程序預先設定的密碼( “10010101” )裝入 lock 中,lock的值變為 95。按下 CLR 后,系統復
40、位,處于輸入密碼狀態。輸入的開鎖密碼串行順序裝入 shif t 中,并用lamp 顯示輸入密碼的位數。密碼輸入完畢后,比較輸入的密碼 shif t 是否等于預先設定的密碼lock,若相等,鎖開啟。在圖4-2中可以看到 , shif t 等于lock ( “95” ) ,8 位密碼輸入正確,開鎖指示燈亮,可以開鎖。由圖4-3可以看到,輸入密碼 shif t( “AA” )不等于設定密碼 lock ( “95” ) ,報警指示燈亮,Alm變為高電平,輸出報警信號。由圖4-4可以看出,當給 load一個低電平后,就可以進行修改密碼的操作了。將 8 位新密碼( “55” ) 輸入完,新密碼就自動裝入
41、load中,load值變成 “55”,密碼修改完畢。圖4.2 輸入正確密碼波形圖4.3 輸入錯誤密碼波形圖4.4 修改密碼波形仿真結束后 ,就可以將設計文件編程下載到芯片中去。連接硬件系統后 ,選擇 “Max + plus ”“programmer” 菜單 ,調出編程器 (programmer ) 窗口。一切就緒后 ,按下編程器窗口中的 “program”按 鈕 , 設 計 的 容 就 下 載 到 FPGA 芯 片EP1 K30 TC14423 中去了。經實際電路測試驗證 ,達到了設計的要求。5 結束語本文設計的基于 V HDL 語言的串行電子密碼鎖系統,硬件電路簡單,微功耗,同時也提高了系統
42、的可靠性和精度。鎖的密碼是可調的,且設置方便。鎖設置的密碼值可以選取 00 至 FF 中任一個,共計 28 種。本設計占用芯片資源少,可在此基礎上變二進制輸入為十進制輸入,或外加L ED 七段顯示等一些外圍電路,以設計更大的系統。在 FPGA 中,不同電路系統的設計往往采用自頂向下的設計方法,亦即將一個大的系統分解成單元電路。在每個單元電路的設計完成后,采用專門的仿真工具進行功能仿真是很有必要的,可節省不少設計時間。對于這一整個電子密碼鎖系統,設計的程序已經基本實現了預期的所有功能,充分利用了EDA設計中的優點, 將各模塊以文件頂層設計的方式讓所有子程序串聯在了一起,通過滿足某個條件而實現相關
43、功能.顯然這個系統的設計已經完成,也基本達到了作為數字密碼鎖的絕大部分功能。致 在這次課程設計的撰寫過程中,我得到了許多人的幫助。首先我要感黃敏老師在課程設計上給予我的指導、提供給我的支持和幫助,這是我能順利完成這次報告的主要原因,更重要的是老師幫我解決了許多技術上的難題,讓我能把系統做得更加完善。在此期間,我不僅學到了許多新的知識,而且也開闊了視野,提高了自己的設計能力。其次,我要感幫助過我的同學,他們也為我解決了不少我不太明白的設計商的難題。同時也感學院為我提供良好的做課程設計的環境。參考文獻1 閻石 主編,數字電子技術基礎,高等教育,19982 譚會生等主編,EDA技術與應用,電子科技大
44、學,20013 廖裕評等主編,CPLD數字電路設計使用MAX+plus入門篇,清華大學,20014 濤等主編,可編程邏輯器件開發技術:MAX+plus入門與提高,人民郵電,20025 崇志,特殊新型電子元件手冊,科學技術,19996 介華,電子技術課程設計指導高等教育.2000年出版.7 Mark Zwolinski, Digital System Design with VHDL, 電子工業,20028 Alan B. Marcovitz Introduction to logic Design, 電子工業,2002附錄:程序清單程序名:四位電子密碼鎖 程序 佳駿-* LIBRARY IEE
45、E; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_ARITH.ALL ; USE IEEE.STD_LOGIC_UNSIGNED.ALL ; LIBRARY altera; USE altera.maxplus2.ALL; -* ENTITY elec_lock IS PORT ( CLK_4M : IN STD_LOGIC ; -system original clock 4M CLK_SCAN : OUT STD_LOGIC_VECTOR (3 downto 0) ; -scan sequence KEY_IN : IN STD_LOGI
46、C_VECTOR (2 downto 0) ; -KEY IN button code FLAG_NUMB : OUT STD_LOGIC ; FLAG_FUNC : OUT STD_LOGIC ; LED_COM : OUT STD_LOGIC ; - for LP-2900 only CLEAR : OUT STD_LOGIC ; -* ENLOCK : OUT STD_LOGIC ; -1:LOCK, 0:UNLOCK NUMB_CNT : OUT STD_LOGIC_VECTOR (2 DOWNTO 0) ; BCD_CODE : OUT STD_LOGIC_VECTOR (15 DO
47、WNTO 0) ; SELOUT : OUT STD_LOGIC_VECTOR (1 DOWNTO 0) ; -FIT TO LP-2900 SEGOUT : OUT STD_LOGIC_VECTOR(6 DOWNTO 0) - SEG7 Display ); END elec_lock ; -* ARCHITECTURE a OF elec_lock IS component debouncing port( d_in : IN STD_LOGIC ; clk : IN STD_LOGIC ; d_out : OUT STD_LOGIC ) ;end component ; SIGNAL C
48、LK : STD_LOGIC ; SIGNAL CLK_KEYBOARD : STD_LOGIC_VECTOR(1 downto 0) ; SIGNAL CLK_DEBOUNCE : STD_LOGIC ; SIGNAL CLK_DISPLAY : STD_LOGIC_VECTOR(1 downto 0) ; SIGNAL C : STD_LOGIC_VECTOR(2 downto 0) ; SIGNAL N : STD_LOGIC_VECTOR(3 downto 0) ; SIGNAL F : STD_LOGIC_VECTOR(3 downto 0) ; SIGNAL FN : STD_LO
49、GIC ; SIGNAL FF : STD_LOGIC ; SIGNAL SEL : STD_LOGIC_VECTOR (3 downto 0) ; SIGNAL OUT_NUMB : STD_LOGIC_VECTOR(3 downto 0) ; SIGNAL OUT_FUNC : STD_LOGIC_VECTOR(3 downto 0) ; SIGNAL ACC : STD_LOGIC_VECTOR (15 DOWNTO 0) ; SIGNAL REG : STD_LOGIC_VECTOR (15 DOWNTO 0) ; SIGNAL RR2 : STD_LOGIC ; - * RR2 = Clear SIGNAL QA, QB, BB : STD_LOGIC ; SIGNAL NC : STD_LOGIC_VECTOR (2 DOWNTO 0) ; SIGNAL DB : STD_LOGIC_VECTOR( 3 DOWNTO 0);- Nu
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
評論
0/150
提交評論