基于FPGA電子密碼鎖設計_第1頁
基于FPGA電子密碼鎖設計_第2頁
基于FPGA電子密碼鎖設計_第3頁
基于FPGA電子密碼鎖設計_第4頁
基于FPGA電子密碼鎖設計_第5頁
已閱讀5頁,還剩38頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、摘 要隨著電子技術(shù)的發(fā)展,具有防盜報警等功能的電子密碼鎖代替密碼量少、安全性差的機械式密碼鎖已是必然趨勢。電子密碼鎖與普通機械鎖相比,具有許多獨特的優(yōu)點:保密性好,防盜性強,可以不用鑰匙,記住密碼即可開鎖等。目前使用的電子密碼鎖大部分是基于單片機技術(shù),以單片機為主要器件,其編碼器與解碼器的生成為軟件方式。在實際應用中,由于程序容易跑飛,系統(tǒng)的可靠性能較差。本文主要闡述了一種基于現(xiàn)場可編程門陣列FPGA器件的電子密碼鎖的設計方法。用FPGA器件構(gòu)造系統(tǒng),所有算法完全由硬件電路來實現(xiàn),使得系統(tǒng)的工作可靠性大為提高。由于FPGA具有現(xiàn)場可編程功能,當設計需要更改時,只需更改FPGA中的控制和接口電路

2、,利用EDA工具將更新后的設計下載到FPGA中即可,無需更改外部電路的設計,大大提高了設計的效率。因此,采用FPGA開發(fā)的數(shù)字系統(tǒng),不僅具有很高的工作可靠性,而且升級也極其方便。本文采用EDA技術(shù),利用Quartus II工作平臺和硬件描述語言,設計了一種電子密碼鎖,并通過一片F(xiàn)PGA芯片實現(xiàn)。關(guān)鍵詞:電子密碼鎖;FPGA;硬件描述語言;EDAAbstractWith the development of electronic technology, electronic password lock with burglar alarm and other functions replacin

3、g less password and poor security mechanical code lock is an inevitable trend. compared electronic password lock with ordinary mechanical locks, it has many unique advantages : confidentiality, and security in nature, do not use the key, remember password can unlock it etc .Most electronic password

4、locks we used now is based upon SCM technology ,SCM is its mainly device ,and the creating of encoding and decoding devices is the fashion of Software mode. In practical application, the reliability of the system may be worse because of easy running fly of the programme.This paper mainly expatiates

5、a design method of electronic password lock based upon Field Programmable Gate Array device. We use FPGA devices to construct system , all of the algorithm entirely achieved by the hardware circuit , because of FPGA has the function of ISP , when the design needs to be changed We only need to change

6、 the control and interface circuit of FPGA,EDA tools are used to download the updated design to FPGA without changing the design of the external circuit , this greatly enhance the efficiency of the design .Therefore , we use FPGA to empolder the digital system has not only high reliability but also

7、extremely convenient of upgrading and improvement .In this paper ,we use EDA technology , Quartus II platform and hardware description language designing an electronic password lock ,and it achieved through an FPGA chip.Key words: electronic password lock;FPGA;hardware description language;EDA 目 錄1

8、緒論 (標題部分的格式很多不對,檢查修改)11.1 本課題研究的國內(nèi)外現(xiàn)狀及其發(fā)展21.2 本課題研究的目的和意義22 關(guān)鍵技術(shù)簡介42.1 FPGA硬件設計描述42.1.1FPGA的設計流程42.1.2VHDL語言的基本結(jié)構(gòu)62.1.3自上而下(TOP DOWN)的設計方法72.2 設計語言、仿真平臺與開發(fā)系統(tǒng)82.3 用Quartus進行系統(tǒng)開發(fā)的設計流程83 系統(tǒng)總體設計93.1 電子密碼鎖設計的原理93.2 方案的提出103.3 系統(tǒng)設計要求113.4 系統(tǒng)設計描述113.5 各功能模塊描述123.6 系統(tǒng)流程134 系統(tǒng)詳細設計154.1 輸入模塊154.1.1時序產(chǎn)生電路154.1

9、.2按鍵消抖電路154.1.3鍵盤掃描電路174.1.4鍵盤譯碼電路194.1.5鍵盤輸入模塊的實現(xiàn)204.2 電子密碼鎖控制模塊214.2.1控制模塊的描述214.2.2控制模塊的狀態(tài)圖與ASM圖214.2.3控制模塊的實現(xiàn)234.3 電子密碼鎖顯示模塊244.3.1數(shù)碼管顯示原理244.3.2譯碼顯示的實現(xiàn)275 系統(tǒng)仿真285.1 系統(tǒng)的有關(guān)編譯與仿真285.2 去抖模塊的仿真285.3 密碼鎖輸入電路的仿真295.4 密碼鎖控制電路的仿真305.5 系統(tǒng)整體仿真315.6 數(shù)碼管譯碼器仿真326 .結(jié)束語33致謝34參考文獻351 緒論 隨著大規(guī)模和超大規(guī)模可編程器件在FPGA技術(shù)支持

10、下的廣泛應用,使現(xiàn)代化設計計算已進入一個全新的階段,從設計思想、設計工具一直到實現(xiàn)方式都發(fā)生了諸多變化。在FPGA技術(shù)中,最為引人矚目的是以現(xiàn)代電子技術(shù)為特征的邏輯設計仿真測試技術(shù)。改技術(shù)只需通過計算機就能對所設計的電子系統(tǒng)從不同層次的性能特點上進行一些列準確測試和仿真;在完成實際系統(tǒng)的設計后,還能對系統(tǒng)上的目標器件進行邊界掃描測試。隨著技術(shù)的發(fā)展,科技的日趨夜新電子密碼鎖種類比較多,發(fā)展更是快。電子密碼鎖系統(tǒng)主要由電子鎖體、電子密匙等部分組成,一把電子密匙里能存放多組開鎖密碼,用戶在使用過程中能夠隨時修改開鎖密碼,更新或配制鑰匙里開鎖密碼。一把電子鎖可配制多把鑰匙。下面就是現(xiàn)在主流電子密碼鎖

11、。遙控式電子防盜鎖目前常見的遙控式電子防盜鎖主要有光遙控和無線電遙控兩類。鍵盤式電子密碼鎖從目前的技術(shù)水平和市場認可程度看,使用最為廣泛的是鍵盤式電子密碼鎖,該產(chǎn)品主要應用于保險箱、保險柜和金庫,還有一部分應用于保管箱和運鈔車。卡式電子防盜鎖使用各種“卡”作為鑰匙的電子防盜鎖是當前最為活躍的產(chǎn)品,無論卡的種類如何多種多樣,按照輸入卡的操作方式,都可分為接觸式卡和非接觸式卡兩大類。生物特征防盜鎖人的某些與生俱來的個性特征(如手、眼睛、聲音的特征)幾乎不可重復,作為“鑰匙”就是唯一的(除非被逼迫或傷害),因此,利用生物特征做密碼的電子防盜鎖,也特別適合金融業(yè)注重“驗明正身”的行業(yè)特點。本文介紹的基

12、于FPGA的電子密碼鎖電路具有顯示接口,顯示時可以是明文也可以是密文星號。由于FPGA具有ISP功能,當用戶需要更改時,如增加口令位數(shù)和更改口令權(quán)限管理時,只需更改FPGA中的控制和接口電路,利用EDA工具將更新后的設計下載到FPGA中即可,無需更改外部電路,這就大大提高了設計效率。而且采用FPGA設計的電子密碼鎖與單片機控制的電子密碼鎖相比結(jié)構(gòu)簡單、具有更高的系統(tǒng)保密性和可靠性。這種基于FPGA的電子密碼鎖可以應用在辦公室、倉庫、賓館等人員經(jīng)常變動的場所。 FPGA技術(shù)是現(xiàn)代電子工程領(lǐng)域的一門新技術(shù),提供了基于計算機和信息技術(shù)的電路系統(tǒng)設計的方法。它是從計算機輔助設計(CAD)、計算機輔助制

13、造(CAM)、計算機輔助測試(CAT)和計算機輔助工程(CAE)等技術(shù)發(fā)展而來的。設計者只需要對系統(tǒng)功能進行描述,在FPGA工具的幫助下即可完成系統(tǒng)設計,從而為電子產(chǎn)品的設計和開發(fā)縮短了實踐降低了成本,提高了系統(tǒng)的可靠性。1.1 本課題研究的國內(nèi)外現(xiàn)狀及其發(fā)展隨著人們生活水平的提高和安全意識的加強,對安全的要求也就越來越高。鎖自古以來就是把守護門的鐵將軍,人們對它要求甚高,既要安全可靠的防盜,又要使用方便,這也是制鎖者長期以來研制的主題。隨著電子技術(shù)的發(fā)展,各類電子產(chǎn)品應運而生,電子密碼鎖就是其中之一。據(jù)有關(guān)資料介紹,電子密碼鎖的研究從20世紀30年代就開始了,在一些特殊場所早就有所應用。這種

14、鎖是通過鍵盤輸入一組密碼完成開鎖過程。研究這種鎖的初衷,就是為提高鎖的安全性。由于電子鎖的密鑰量(密碼量)極大,可以與機械鎖配合使用,并且可以避免因鑰匙被仿制而留下安全隱患。電子鎖只需記住一組密碼,無需攜帶金屬鑰匙,免除了人們攜帶金屬鑰匙的煩惱,而被越來越多的人所欣賞。電子鎖的種類繁多,例如數(shù)碼鎖,指紋鎖,磁卡鎖,IC卡鎖,生物鎖等。但較實用的還是按鍵式電子密碼鎖。20世紀80年代后,隨著電子鎖專用集成電路的出現(xiàn),電子鎖的體積縮小,可靠性提高,成本較高,是適合使用在安全性要求較高的場合,且需要有電源提供能量,使用還局限在一定范圍,難以普及,所以對它的研究一直沒有明顯進展。目前,在西方發(fā)達國家,

15、電子密碼鎖技術(shù)相對先進,種類齊全,電子密碼鎖已被廣泛應用于智能門禁系統(tǒng)中,通過多種更加安全,更加可靠的技術(shù)實現(xiàn)大門的管理。在我國電子鎖整體水平尚處于國際上70年代左右,電子密碼鎖的成本還很高,市場上仍以按鍵電子鎖為主,按鍵式和卡片鑰匙式電子鎖已引進國際先進水平,現(xiàn)國內(nèi)有幾個廠生產(chǎn)供應市場。但國內(nèi)自行研制開發(fā)的電子鎖,其市場結(jié)構(gòu)尚未形成,應用還不廣泛。國內(nèi)的不少企業(yè)也引進了世界上先進的技術(shù),發(fā)展前景非??捎^。希望通過不斷的努力,使電子密碼鎖在我國也能得到廣泛應用。目前使用的電子密碼鎖大部分是基于單片機技術(shù),以單片機為主要器件,其編碼器與解碼器的生成為軟件方式。在實際應用中,由于程序容易跑飛,系統(tǒng)

16、的可靠性能較差?;诂F(xiàn)場可編程邏輯門陣列FPGA器件的電子密碼鎖,用FPGA器件構(gòu)造系統(tǒng),所有算法完全由硬件電路來實現(xiàn),使得系統(tǒng)的工作可靠性大為提高。由于FPGA具有現(xiàn)場可編程功能,當設計需要更改時,只需更改FPGA中的控制和接口電路,利用EDA工具將更新后的設計下載到FPGA中即可,無需更改外部電路的設計,大大提高了設計的效率。1.2 本課題研究的目的和意義 為了使現(xiàn)在的電子密碼鎖更能智能化的管理,讓人們更能方便的使用,讓其具有更高的安全性和經(jīng)濟性,針對基于單片機的電子密碼鎖的不足之處,本文采用EDA技術(shù),利用Quartus工作平臺硬件描述語言,設計一種電子密碼鎖,并通過一片F(xiàn)PGA芯片實現(xiàn)

17、。采用VHDL語言使用自頂向下的方法對系統(tǒng)進行了描述,并在FPGA芯片Cyclone上實現(xiàn)。設計充分利用了FPGA的資源可編程特性,可高效率的對系統(tǒng)進行升級與改進。設計的密碼鎖可設置任意密碼,比一般的四位密碼鎖具有更高的安全可靠性,因此,采用FPGA 開發(fā)的數(shù)字系統(tǒng),不僅具有很高的工作可靠性,其升級與改進也極其方便,應用前景十分良好。2 關(guān)鍵技術(shù)簡介2.1 FPGA硬件設計描述2.1.1 FPGA的設計流程FPGA設計流程包括系統(tǒng)設計和設計實現(xiàn),系統(tǒng)方案完成之后即進入設計實現(xiàn)階段的工作,他以系統(tǒng)方案為輸入,進行RTL級描述、功能仿真(RTL級仿真)、邏輯綜合、布線前門級仿真、適配(布局布線)、

18、時序仿真(布線后門級仿真)、時序分析、器件編程、系統(tǒng)驗證一系列流程的處理才能完成FPGA芯片的設計,其設計流程如圖2.1所示。需要說明的是,如果仿真驗證不對或者某一步有錯,就要返回修改。有必要檢查和修改的地方有RTL級描述、系統(tǒng)方案、約束和測試激勵等。一般情況下,對RTL級的描述即原理圖或者HDL設計代碼的修改最多也最有效。修改后要重新走一遍流程。有時要反復修改,經(jīng)過多次這樣的迭代才能完成最后的設計。在理論上,把VLSI(Ultra Large Scale Integration,超大規(guī)模集成電路)的設計描述為6個層次1,2,即系統(tǒng)級(系統(tǒng)功能、參數(shù)定義)、算法級(描述系統(tǒng)功能行為)、RTL級

19、、門級(邏輯門)、電路級(晶體管)、版圖級(物理工藝)。每一級又都分3個側(cè)面來描述:行為域描述、結(jié)構(gòu)域描述、物理域描述。但在實際情況中往往把算法級行為域描述或者RTL級行為域描述都稱為行為級描述。圖2.1 系統(tǒng)設計流程(左邊的箭頭線太短了,最好和右邊對稱)對于FPGA的設計而言,不需要關(guān)心電路級和版圖級,只考慮系統(tǒng)級、算法級、RTL級、門級4個層次的行為域描述和結(jié)構(gòu)域描述即可。上述的FPGA系統(tǒng)設計中的系統(tǒng)實際上是指系統(tǒng)級和算法級,而“RTL級描述”主要是指RTL級行為域的描述。在門級,由綜合工具產(chǎn)生的門級網(wǎng)表來描述。FPGA的設計流程和相關(guān)概念說明如下:庫:指FPGA器件廠家提供的工藝庫和E

20、DA工具提供的標準通用庫(如IEEE庫等)。工藝庫中有各種宏功能模塊和基本功能單元,含有他們的行為級模型、門級模型、布線模型等信息。需要說明的是,系統(tǒng)行為仿真和RTL級功能仿真有時要用到某種功能模塊,例如RAM模型。對于RAM模型的控制信號,不同的廠家其規(guī)定不一定相同,如寫使能信號,有的廠家規(guī)定高電平有效,有的廠家規(guī)定低電平有效。其實,在廠家提供的工藝庫中, RAM模型有行為級模型、門級模型、版圖級模型等。而行為級模型只是規(guī)定其功能,無延時信息,跟工藝無關(guān),但門級模型和版圖級模型跟工藝密切相關(guān)。解決的方法是系統(tǒng)行為仿真時可以使用高級語言自己建立一個模型或者調(diào)用廠家?guī)熘刑峁┑男袨榧壞P?,功能仿?/p>

21、時調(diào)用行為級模型,時序仿真時調(diào)用門級模型。測試激勵:指測試文件,他調(diào)用FPGA設計的頂層模塊,同時產(chǎn)生頂層模塊需要的輸入信號,稱之為激勵信號,使用行為描述即可,不要求可綜合。仿真時他作為最頂層的文件,從而可以觀察FPGA的輸出是否正確。所有的仿真都可使用同一個測試激勵。約束:指對邏輯綜合和布局布線時的約束。包括器件型號、速度、面積、功耗、引腳分配、時鐘網(wǎng)絡資源的分配、模塊在器件中的定位等約束。一部分在軟件中設置,一部分以約束文件的形式存在。2.1.2 VHDL語言的基本結(jié)構(gòu)VHDL(Very high speed integrated circuit Hardware Description

22、Language)硬件描述語言從高于邏輯級的抽象層次上描述硬件的功能、信號連接關(guān)系及定時關(guān)系。VHDL的設計流程如2.2圖。圖2.2 VHDL的設計流程一個完整的VHDL語言程序通常包含實體(Entity)、結(jié)構(gòu)體(Architecture)、配置(Configuration)、包集合(Package)和庫(Library)五個部分。1、實體實體說明部分是說明一個器件的外觀視圖,即從器件外部看到的器件外貌,其中包括器件的端口,同時也可以定義參數(shù),并把參數(shù)從外部傳入模塊內(nèi)部,主要用于描述所設計的系統(tǒng)的外部接口。2、結(jié)構(gòu)體結(jié)構(gòu)體是描述一個器件的內(nèi)部視圖,是次級設計單元。在其對應的初級設計單元實體說

23、明被編譯并且被并入設計庫之后,它就可以單獨地被并入該設計庫中。結(jié)構(gòu)體描述一個設計的結(jié)構(gòu)和行為,把一個設計的輸入和輸出之間的關(guān)系建立起來。一個設計可以有多個結(jié)構(gòu),分別代表該器件的不同實現(xiàn)方案。根據(jù)對一個器件設計由抽象到具體的過程,可把結(jié)構(gòu)體的描述方式分為三個層次:行為描述方式、寄存器傳輸描述方式(RTL)和結(jié)構(gòu)描述方式。3、庫庫是經(jīng)編譯后的實體、結(jié)構(gòu)體、包集合和配置的集合。使用庫時總要在設計單元的前面予以說明。一旦說明,庫中的數(shù)據(jù)對該設計單元就是可見的,從而共享已經(jīng)編譯過的設計結(jié)果。VHDL語言中存在的庫大致有IEEE庫、STD庫、ASIC廠家提供的庫、用戶定義的庫和現(xiàn)行作業(yè)庫。4、包集合包集合

24、屬庫中的一個層次,是一種可編譯的源設計單元。它收集了VHDL語言中所用到的信號、常數(shù)、數(shù)據(jù)類型、函數(shù)和過程的說明等。用戶可以構(gòu)造一個包集合,用以存放常數(shù)、數(shù)據(jù)類型、函數(shù)和過程,該包集合經(jīng)編譯后便自動加到WORK庫中。使用庫中的包集合時,在打開庫后要用USE語句說明,例如:LIBRARY IEEE;USE IEEE.STD-LOGIC-1164.ALL;5、配置配置語句從一個庫中為一個實體選擇一個特定的結(jié)構(gòu)體,是一種放在庫中的被編輯單元,并有相應的配置名。通過配置技術(shù),可以選取多種不同的結(jié)構(gòu)體,以便對一個設計任務采用仿真工具進行多種配置的性能實驗。另外,配置說明和規(guī)定的特性還可以用在多層描述中。

25、2.1.3 自上而下(TOP DOWN)的設計方法自上而下的設計方法是現(xiàn)代電子系統(tǒng)的新型設計策略,它從設計的總體要求出發(fā),自上而下地逐步從系統(tǒng)數(shù)學模型的設計與仿真,到數(shù)據(jù)流級的設計與仿真,選擇系統(tǒng)設計方案,最后完成系統(tǒng)硬件的整體設計。VHDL的自上而下的設計方法不僅體現(xiàn)在它的基本結(jié)構(gòu)由描述外視特性的實體與描述內(nèi)視行為和結(jié)構(gòu)的結(jié)構(gòu)體構(gòu)成,同一實體可以有一個以上的結(jié)構(gòu)體,以便設計方案的選擇,還體現(xiàn)在系統(tǒng)硬件設計過程的三個層次:行為級描述與仿真、RTL級描述與仿真、邏輯綜合與門級仿真。邏輯綜合與所使用的邏輯綜合工具有關(guān),由邏輯綜合優(yōu)化工具生成具體的門級邏輯電路的EDIF(Electronic Des

26、ign Interchange Format)網(wǎng)表。EDIF網(wǎng)表是一種標準接口,它是一個以ASCII字符為基礎的中間互換格式,被大多數(shù)供應商提供的CAE/CAD系統(tǒng)所支持。半導體制造廠基于這種網(wǎng)表生成ASIC芯片的制造工藝,F(xiàn)PGA則基于這種網(wǎng)表生成用以配置FPGA芯片的位流文件。這三種仿真貫穿系統(tǒng)硬件設計的全過程,從而可以在系統(tǒng)設計早期發(fā)現(xiàn)設計中存在的問題,與傳統(tǒng)的自下而上的后期仿真相比大大縮短系統(tǒng)的設計周期,并且利于方案的綜合評價與選取。這是用VHDL語言設計系統(tǒng)硬件的最突出的優(yōu)點。2.2 設計語言、仿真平臺與開發(fā)系統(tǒng)(1)硬件描述語言電子密碼鎖的設計采用了功能強大的通用硬件描述語言VHD

27、L,它具有很強的行為描述能力,設計方法靈活,可以支持自頂向下(Top Down)和基于庫(Library-Based)的設計方法,硬件描述與具體的工藝技術(shù)和硬件結(jié)構(gòu)無關(guān),能輕易地改變設計的規(guī)模和結(jié)構(gòu),標準、規(guī)范易于共享與復用,易于向ASIC移植。(2)Quartus軟件開發(fā)工具本設計采用的軟件開發(fā)工具是美國Altera公司的Quartus,它支持多種設計輸入方法,包括原理圖輸入、文本輸入(如AHDL,VHDL,Verilog HDL文本文件)和第三方EDA工具輸入文件(如EDIF,HDL,VQM文件),利用該工具所配備的編輯、編譯、仿真綜合、芯片編程等功能,可將設計電路圖或電路描述程序變成基本

28、的邏輯單元寫入到可編程的芯片中(如FPGA芯片),做成ASIC芯片。(3)EDA實驗開發(fā)系統(tǒng)設計中采用的EDA實驗開發(fā)系統(tǒng),主要用于提供可編程邏輯器件的下載電路及EDA實驗開發(fā)的外圍資源,供硬件驗證用。一般包括:實驗或開發(fā)所需的各類基本信號發(fā)生模塊;FPGA/CPLD輸出信息顯示模塊;監(jiān)控程序模塊;目標芯片適配座以及上面的FPGA/CPLD目標芯片和下載電路。2.3 用Quartus進行系統(tǒng)開發(fā)的設計流程使用Quartus進行電子密碼鎖設計的流程為(1)編寫VHDL程序(使用VHDL File)(見附錄);(2)編譯VHDL程序(使用Compiler);(3)仿真驗證VHDL程序(使用Wave

29、form Editor, Simulator);(4)進行芯片的時序分析(使用Timing Analyzer);(5)安排芯片管腳位置(使用Floorplan Editor);(6)下載程序至芯片(使用Programmer)。3 系統(tǒng)總體設計3.1 電子密碼鎖設計的原理1、編碼總量的確定電子密碼鎖隨機開鎖成功的概率定義為:P=1/NT其中P為隨機開鎖成功概率,NT為密碼編碼總量。顯然要使密碼鎖保密安全性高,NT應盡可能大,使P趨于零,但NT越大,相應電路越復雜,密碼的記憶與操作也越麻煩。故NT應有合理的上限和下限。下限NTL的選擇應使密碼落在隨機開鎖可能成功的操作時區(qū)以外。若每一次開鎖操作時間

30、為t,為便于做隨機試驗,將NT分為n段并期望在1/n段的1/2處開鎖成功。此時p=1/2n則隨機開鎖試驗期望成功的時間為:Tr=NTt/2n假定系統(tǒng)設計不考慮誤碼輸入的保護,密碼鎖在無保護的情況下使操作人員任意作隨機開鎖試驗的時間為TEN,則:NTL=(2nTEN t)x,其中x為最低安全系數(shù)。即:TEN=(NTLt/2n)/x顯然若使NT=NTL,則TrTEN,則使分段隨機試驗不易成功。由此可得出數(shù)字密碼鎖的編碼總量設定是系統(tǒng)設計安全性、保密性的首要技術(shù)指標。一般來說,當NT選定之后,NT的上限NTH原則上是越大越安全,但一般設計時取NTH=(101000)NTL較為合理。2、編碼制式的選擇

31、編碼制式應根據(jù)NT的大小選取,可分為如下三種:(1)密碼的各位都可以重碼:NT1=ai;(2)密碼的非相鄰位可以重碼:NT2=a(a-1)i;(3)密碼的任何一位都不能重碼:NT3=a(a-1)(a-i+1)。其中a為基數(shù),i為位數(shù),a和i的選取應該滿足NTNTL , a=2,3,4,10,12,14,16?,F(xiàn)在以最常用的a=10,i=6為例,可以計算出NT2=0159NT 1,NT 3=0.15N T1,所以編碼制式考慮是否重碼對NT有很大影響。另外,相同制式下不同的基底對編碼總量NT會有影響,而且基底的選擇也會影響到硬件電路的設計。本文設計的密碼鎖采用十進制編碼,密碼各位允許重碼,為簡化電

32、路設計,密碼鎖口令采用對串行脈沖計數(shù)的方式輸入。3、誤碼輸入的保護措施如前所述,電子密碼鎖的設計應考慮自身的安全保密性,由于編碼和捕捉密碼的實驗都是隨機的,若要使P=1 NT趨近于0,必須采取誤碼輸入的保護措施。假定設定的誤碼輸入次數(shù)不超過三次,誤碼達到三次時系統(tǒng)應關(guān)閉主控電路,拒絕大于三次的密碼輸入,并且系統(tǒng)進入報警狀態(tài)。系統(tǒng)正常狀態(tài)的恢復可采用萬能密碼輸入或者系統(tǒng)掉電恢復。3.2 方案的提出方案一:采用數(shù)字電路控制。雖然采用數(shù)字密碼鎖電路的好處是設計簡單,但是由于其是純電路實際,在系統(tǒng)運行時,延時會比較嚴重。方案二:通過單片機實現(xiàn),現(xiàn)在一種新的方案就是采用一種是用以AT89S51為核心的單

33、片機控制方案。雖然有靈活的設計和豐富的IO端口,但是單片機設計的缺點是程序運行時容易出現(xiàn)跑飛現(xiàn)象。通過以上比較顯然單片機方案有較大的活動空間,不但能實現(xiàn)所要求的功能而且能在很大的程度上擴展功能,而且還可以方便的對系統(tǒng)進行升級,但是由于所學知識不能將其有效的應用,現(xiàn)有環(huán)境不能滿足,而且單片機的密碼鎖有一定的不足之處,在運行時程序有時會產(chǎn)生PC指針錯誤,還有基于現(xiàn)在所學知識的應用,所以基于以上比較提出了第三種方案。方案三:利用FPGA設計電子密碼鎖,其成本低,設計方便(有相應的開發(fā)板),現(xiàn)有資源充足,實現(xiàn)比較容易,更利于系統(tǒng)的維護改進和升級,可靠性更高,更安全。通過以上比較描述,本設計采用基于FP

34、GA的電子密碼鎖設計方案。3.3 系統(tǒng)設計要求 設計一個具有較高安全性和較低成本的通用電子密碼鎖,具體功能要求如下:(1)數(shù)碼輸入:每按下一個數(shù)字鍵,就輸入一個數(shù)值,并在顯示器上的顯示出該數(shù)值,同時將先前輸入的數(shù)據(jù)依序左移一個數(shù)字位置。(2)數(shù)碼清除:按下此鍵可清除前面所有的輸入值,清除為“0000”。(3)密碼更改:按下此鍵時會將目前的數(shù)字設定成新的密碼。(4)激活電鎖:按下此鍵可將密碼鎖上鎖。(5)解除電鎖:按下此鍵會檢查輸入的密碼是否正確,密碼正確即開鎖。3.4 系統(tǒng)設計描述本系統(tǒng)為一個簡潔型的電子密碼鎖,該系統(tǒng)以開發(fā)板為主要核心,采用4*4的鍵盤,前10個鍵為數(shù)字鍵,8個數(shù)碼管顯示密碼

35、輸入,后面的按鍵實現(xiàn)電子密碼鎖的各個功能,總體外觀如圖3.1所示。圖3.1 電子密碼鎖外觀圖上圖為在實驗開發(fā)板上實現(xiàn),使用開發(fā)板有十六個按鍵,分別對應數(shù)字0到9和各個功能鍵,LED顯示為開發(fā)板上數(shù)碼管顯示。3.5 設計思路及各功能模塊描述電子密碼鎖可以由三個部分組成:數(shù)字密碼輸入電路、密碼鎖控制電路、密碼鎖顯示電路。作為密碼鎖的輸入部分,可選擇的方案有數(shù)字機械式鍵盤和觸摸式數(shù)字鍵盤等多種。考慮種種因素主要是成本和使用壽命因素,本設計采用通用的數(shù)字機械式鍵盤。數(shù)字電子密碼鎖的顯示信息電路可采用LED數(shù)碼管顯示和液晶屏幕顯示兩種。液晶顯示具有高速顯示、高可靠性、易于擴展和升級等優(yōu)點,但是普通液晶顯

36、示屏存在亮度低、對復雜環(huán)境的適應能力差等缺點,在低亮度的環(huán)境下還需要加入其它輔助的照明設備,驅(qū)動電路設計相對復雜,因此本設計的顯示電路使用通用的LED數(shù)碼管。根據(jù)以上選定的輸入設備和器件,并考慮到實現(xiàn)各項數(shù)字密碼鎖功能的具體要求。本設計分為三個大的功能模塊。圖3.2為數(shù)字電子密碼鎖系統(tǒng)總體框圖。圖3.2 數(shù)字電子密碼功能模塊圖(1) 密碼鎖輸入電路包括時序產(chǎn)生電路、鍵盤掃描電路、鍵盤彈跳消除電路、鍵盤譯碼電路等幾個小的功能電路。模塊的功能是:將用戶通過鍵盤輸入的數(shù)字密碼,確認密碼是否輸入,產(chǎn)生電路中使用的三種不同頻率的工作脈沖波形,即系統(tǒng)時鐘脈沖、彈跳消除取樣信號和鍵盤掃描信號;為了加強按鍵按

37、下的準確性加了去抖模塊。作為電子密碼鎖的輸入電路,數(shù)字密碼輸入電路可采用一個44的通用開發(fā)板上的鍵盤作為本設計的輸入設備。開發(fā)板鍵盤具有低成本、可靠性高、構(gòu)成電路簡單、技術(shù)成熟和應用廣泛等特點,因此將其應用到通用電子密碼鎖中還是比較適宜的。(2) 密碼鎖控制電路包括按鍵數(shù)據(jù)的緩沖存儲電路,密碼的清除、變更、存儲、激活電鎖電路(寄存器清除信號發(fā)生電路),密碼核對(數(shù)值比較電路),解鎖電路(開/關(guān)門鎖電路)等幾個小的功能電路。模塊功能:用于密碼的更改,密碼的清除,以及對密碼鎖的工作狀態(tài)更改,對輸入密碼次數(shù)的計數(shù)功能,還有就是更智能化,更符合人們的思維,按鍵的時候都是習慣看輸入數(shù)字的移位情況。(3)

38、密碼顯示電路主要將顯示數(shù)據(jù)的BCD碼轉(zhuǎn)換成相對應的編碼。如,若選用七段數(shù)碼管顯示電路,主要將待顯示數(shù)據(jù)的BCD碼轉(zhuǎn)換成數(shù)碼器的七段顯示驅(qū)動編碼。從圖3.2系統(tǒng)的總體走向圖可知:通過時序產(chǎn)生鍵盤掃描信號,由鍵盤輸入密碼或者功能按鍵,當然在這過程中要經(jīng)過按鍵去抖,最后將將所輸入的鍵盤值譯碼得到具體的數(shù)字或者功能鍵;將輸入值輸入鍵盤數(shù)據(jù)存儲器,在這里面可以將鍵盤值存儲或者清除,再經(jīng)過比較電路,比較輸入值與原來存儲的是否一致,如果一致則開啟鎖,如果不一致則報警(在報警后可以通過輸入萬能密碼或者斷電復位等可以解決);在經(jīng)過存儲電路時,同時將所輸入的值通過LED顯示出來,顯示將通過BCD譯碼電路,將所獲取

39、的值顯示在LED數(shù)碼管上。3.6 系統(tǒng)流程系統(tǒng)流程圖如圖4.1:(不能光有一個圖,必須配有對圖的文字說明,把系統(tǒng)的流程說清楚)圖3.3 系統(tǒng)流程圖4 系統(tǒng)詳細設計4.1 輸入模塊圖4.1是電子密碼鎖的輸入電路框圖,由鍵盤掃描電路、彈跳消除電路、鍵盤譯碼電路、按鍵數(shù)據(jù)緩存器,加上外接的一個34矩陣式鍵盤組成。 圖4.1電子密碼鎖的輸入電路框圖矩陣式鍵盤是一種常見的輸入裝置,在日常的生活中,矩陣式鍵盤在計算機、電話、手機、微波爐等各式電子產(chǎn)品上已經(jīng)被廣泛應用。圖2.3是一個34矩陣式鍵盤的面板配置圖,其中數(shù)字09作為密碼數(shù)字輸入按鍵,*作為“上鎖”功能按鍵,#作為“解鎖/清除”功能按鍵。 圖4.2

40、34矩陣式鍵盤的面板配表4.1 行掃描信號、列按鍵輸入信號與按鍵位置的關(guān)系KY3KY0111011101110110111011101101110111011011101110111KX2KX0011101110011101110011101110011101110按鍵號123456789*0#4.1.1 時序產(chǎn)生電路本時序產(chǎn)生電路中使用了三種不同頻率的工作脈沖波形:系統(tǒng)時鐘脈沖(它是系統(tǒng)內(nèi)部所有時鐘脈沖的源頭,且其頻率最高)、彈跳消除取樣信號、鍵盤掃描信號。當一個系統(tǒng)中需使用多種操作頻率的脈沖波形時,最方便的方法之一就是利用一計數(shù)器來產(chǎn)生各種需要的頻率。也就是先建立一個N位計數(shù)器,N的大小根

41、據(jù)電路的需求決定,N的值越大,電路可以分頻的次數(shù)就越多,這樣就可以獲得更大的頻率變化,以便提供多種不同頻率的時鐘信號。若輸入時鐘為CLK,N位計數(shù)器的輸出為QN-1.0,則Q(0)為CLK的2分頻脈沖信號,Q(1)為CLK的4分頻脈沖信號,Q(2)為CLK的8分頻脈沖信號Q(N-1)為CLK的2N分頻脈沖信號;Q(5 DOWNTO 4)取得的是一個脈沖波形序列,其值依000110110001周期性變化,其變化頻率為CLK的32分頻。我們利用以上規(guī)律即可得到各種我們所需要頻率的信號或信號序列。CLK_1K: IN STD_LOGIC ; -系統(tǒng)原始時鐘脈沖(1 kHz)KEY_IN: IN ST

42、D_LOGIC_VECTOR (2 DOWNTO 0); -按鍵輸入CLK_SCAN: OUT STD_LOGIC_VECTOR (3 DOWNTO 0) ; -( 仿真時用)鍵盤掃描序列DATA_N: OUT STD_LOGIC_VECTOR(3 DOWNTO 0) ; -數(shù)字輸出DATA_F: OUT STD_LOGIC_VECTOR(3 DOWNTO 0) ; -功能輸出FLAG_N: OUT STD_LOGIC ; -數(shù)字輸出標志FLAG_F: OUT STD_LOGIC ; -功能輸出標志CLK_CTR: OUT STD_LOGIC; -控制電路工作時鐘信號CLK_DEBOUNCE:

43、 OUT STD_LOGIC -(仿真時用)去抖電路工作時鐘信號4.1.2 按鍵消抖電路由于設計采用的矩陣式鍵盤是機械開關(guān)結(jié)構(gòu),因此在開關(guān)切換的瞬間會在接觸點出現(xiàn)信號來回彈跳的現(xiàn)象,對于電子密碼鎖這種靈敏度較高的電路這種彈跳將很可能會造成誤動作輸入,從而影響到密碼鎖操作的正確性。從圖4.2中可以觀察出彈跳現(xiàn)象產(chǎn)生的原因,雖然每次只是按下按鍵一次然后放掉,然而實際產(chǎn)生的按鍵信號卻不知跳動一次,經(jīng)過取樣信號的檢查后,將會造成誤判斷,以為鍵盤按了兩次。如果調(diào)整抽樣頻率(如圖4.3所示),可以發(fā)現(xiàn)彈跳現(xiàn)象獲得了改善。 圖4.2 彈跳現(xiàn)象產(chǎn)生錯誤的抽樣結(jié)果 如果調(diào)整抽樣頻率,彈跳現(xiàn)象就可以獲得改善。圖4

44、.3 調(diào)整抽樣頻率后得到的抽樣結(jié)果因此必須加上彈跳消除電路,避免誤操作信號的發(fā)生。特別要注意的是,彈跳消除電路所使用的脈沖信號的頻率必須比其他電路使用的脈沖信號的頻率更高;通常將掃描電路的工作頻率定在100KHz左右,而將彈跳消除電路的工作頻率定在200KHZ左右,其工作頻率通常是前者的2倍或者更高。彈跳消除電路的實現(xiàn)原理如圖4.4所示,先將鍵盤的輸入信號D_IN做為電路的輸入信號,CLK是電路的時鐘脈沖信號,也就是取樣信號,D_IN經(jīng)過兩級D觸發(fā)器延時后再使用RS觸發(fā)器處理。圖4.4 彈跳消除電路的內(nèi)部實現(xiàn)原理圖 此處RS觸發(fā)器的前端連接和非門的處理原則是: (1)因為一般人的按鍵速度至多是

45、10次/秒,亦即一次按鍵時間是100ms,所以按下的時間可估算為50ms。以取樣信號CLK的周期為8ms計,則可以取樣到6次。 (2)對于不穩(wěn)定的噪聲,在4ms以下則至多抽樣一次。 (3)在觸發(fā)器之前,接上AND-NOT之后,SR的組態(tài)如表1.2所示。 表4.3RS觸發(fā)器真值表SRD-OUT00不變101010消除抖動模塊程序如下:-DEBOUNCING.VHDLIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; LIBRARY ALTERA; USE ALTERA.MAXPLUS2.ALL;ENTITY DEBOUNCING ISPORT(D_IN, CLK:

46、 IN STD_LOGIC; DD1, DD0, QQ1, QQ0 : OUT STD_LOGIC; D_OUT, D_OUT1: OUT STD_LOGIC ); END ENTITY DEBOUNCING ; ARCHITECTURE ART OF DEBOUNCING ISCOMPONENT DCFQ ISPORT(CLK, CLRN, PRN, D: IN STD_LOGIC; Q: OUT STD_LOGIC); END COMPONENT DCFQ; SIGNAL VCC, INV_D : STD_LOGIC ; SIGNAL Q0, Q1 : STD_LOGIC ; SIGNAL

47、 D1, D0 : STD_LOGIC ; BEGINVCC = 1 ; INV_D CLK, CLRN = INV_D, PRN = VCC, D =VCC , Q = Q0); U2: DCFQ PORT MAP (CLK = CLK, CLRN = Q0, PRN = VCC, D =VCC , Q = Q1); PROCESS (CLK)BEGINIF CLKEVENT AND CLK=1 THEND0 = NOT Q1; D1 = D0; END IF ;END PROCESS ; DD0 = D0; DD1 = D1; QQ1 = Q1; QQ0 = Q0; D_OUT = NOT

48、 (D1 AND NOT D0); D_OUT1 = NOT Q1 ; END ARCHITECTURE ART; -DCFQ.VHDLIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY DCFQ ISPORT(CLK, CLRN, PRN, D: IN STD_LOGIC; Q: OUT STD_LOGIC);END ENTITY DCFQ ; ARCHITECTURE ART OF DCFQ ISBEGINPROCESS (CLK, CLRN, PRN)BEGINIF CLRN=0 AND PRN=1 THENQ=0; ELSIF CLRN=1

49、 AND PRN=0 THENQ=1; ELSIF CLKEVENT AND CLK=1 THENQ =D; END IF ; END PROCESS ; END ARCHITECTURE ART; 這段程序的作用就是通過對信號的分頻處理,從而將按鍵產(chǎn)生的不規(guī)則信號轉(zhuǎn)換為便于識別的按鍵信號,達到消除抖動的目的。4.1.3 鍵盤掃描電路掃描電路的作用是用來提供鍵盤掃描信號(表4.1中的KY3KY0)的,掃描信號變化的順序依次為11101101101101111110依序的周而復始。掃描時依序分別掃描四列按鍵,當掃描信號為1110時掃描KY3這一排按鍵;當掃描信號為1101室,掃描KY2這一排按鍵

50、;當掃描信號為1011時,掃描KY1這一排按鍵;當掃描信號為0111時,掃描KY0這一排按鍵。每掃描一排按鍵就檢查一次是否有鍵被按下,如果這排沒有按鍵被按下就忽略,反之,如果出現(xiàn)被按下的鍵則立刻進行按鍵編碼的動作,且將編碼的結(jié)果儲存于寄存器中。-掃描信號發(fā)生器 COUNTER : BLOCK ISSIGNAL Q: STD_LOGIC_VECTOR(5 DOWNTO 0); SIGNAL SEL: STD_LOGIC_VECTOR (3 DOWNTO 0); -1110-1101-1011-0111 BEGINPROCESS (CLK_1K) IS BEGINIF CLK_1KEVENT AN

51、D CLK_1K =1 THENQ = Q+1; END IF; C_DEBOUNCE = Q(2) ; -去抖時鐘信號, 大約125 Hz C_KEYBOARD = Q(2 DOWNTO 1) ; - 產(chǎn)生鍵掃信號*“00-01-10-11”, 大約16 Hz-C_DEBOUNCE = Q(1) ; -仿真時用 -C_KEYBOARD = Q(5 DOWNTO 4) ; -仿真時用CLK = Q(0) ; END PROCESS; CLK_DEBOUNCE=C_DEBOUNCE; SEL = 1110 WHEN C_KEYBOARD=0 ELSE1101 WHEN C_KEYBOARD=1

52、ELSE1011 WHEN C_KEYBOARD=2 ELSE0111 WHEN C_KEYBOARD=3 ELSE1111; CLK_SCAN = SEL ; END BLOCK COUNTER ; 4.1.4 鍵盤譯碼電路在密碼輸入電路中,按鍵又分為數(shù)字按鍵和文字按鍵,每一個按鍵可能負責不同的功能,例如清除鍵、上鎖鍵和解鎖鍵等。數(shù)字按鍵主要是用來輸入數(shù)字的,但是鍵盤所產(chǎn)生的輸出是無法直接拿來用作密碼鎖控制電路的輸入的,另外,不同的按鍵具有不同的功能,所以必須由鍵盤譯碼電路來規(guī)劃每個按鍵的輸出形式,以便執(zhí)行相應的動作。鍵盤譯碼電路主要將所對應的鍵盤值設定成所要用的功能鍵,其主要程序如下: -

53、鍵盤譯碼KEY_DECODER : BLOCK SIGNAL Z : STD_LOGIC_VECTOR(4 DOWNTO 0) ; -按鍵位置BEGINPROCESS(CLK)BEGINZ N N N N N N N N N N N = 1111 ; END CASE ; END IF ;鍵盤輸入模塊的實現(xiàn)圖4.7 鍵盤輸入電路符號圖模塊外部信號端口:clk_1k:時鐘脈沖輸入端口,為系統(tǒng)提供工作的時鐘脈沖。key_in:按鍵輸入端口,為按鍵輸入提供輸入信號。kscan:鍵盤掃描序列(仿真時用),為按鍵掃描提供信號。data_n:數(shù)字輸出端口,為數(shù)字的輸出提供信號。data_f:功能輸出端口,為功能的輸出提供信號。flag_n:數(shù)字輸出標志,用于識別數(shù)字是否輸出。flag_f:功能輸出標志,用于識別功能是否輸出。ksrclk:鍵盤輸入采樣時鐘。kpos:按鍵位置,用于識別按鍵所在位置提供信號。模塊內(nèi)部信號:scan:鍵掃信號“00011011”寄存器k_ksrclk:去抖時鐘信號,為去抖提供信號。c:鍵盤輸入去抖后的寄

溫馨提示

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

評論

0/150

提交評論