1畢業(yè)設計論文_基于FPGA電子密碼鎖設計.doc_第1頁
1畢業(yè)設計論文_基于FPGA電子密碼鎖設計.doc_第2頁
1畢業(yè)設計論文_基于FPGA電子密碼鎖設計.doc_第3頁
1畢業(yè)設計論文_基于FPGA電子密碼鎖設計.doc_第4頁
1畢業(yè)設計論文_基于FPGA電子密碼鎖設計.doc_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

本文由沒有月亮太陽貢獻 doc文檔可能在WAP端瀏覽體驗不佳。建議您優(yōu)先選擇TXT,或下載源文件到本機查看。 摘 要 隨著電子技術(shù)的發(fā)展,具有防盜報警等功能的電子密碼鎖代替密碼量少、安全性 差的機械式密碼鎖已是必然趨勢。電子密碼鎖與普通機械鎖相比,具有許多獨特的優(yōu) 點:保密性好,防盜性強,可以不用鑰匙,記住密碼即可開鎖等。目前使用的電子密 碼鎖大部分是基于單片機技術(shù),以單片機為主要器件,其編碼器與解碼器的生成為軟 件方式。在實際應用中,由于程序容易跑飛,系統(tǒng)的可靠性能較差。 本文主要闡述了一種基于現(xiàn)場可編程門陣列 FPGA 器件的電子密碼鎖的設計方 法。用 FPGA 器件構(gòu)造系統(tǒng),所有算法完全由硬件電路來實現(xiàn),使得系統(tǒng)的工作可靠 性大為提高。由于 FPGA 具有現(xiàn)場可編程功能,當設計需要更改時,只需更改 FPGA 中的控制和接口電路,利用 EDA 工具將更新后的設計下載到 FPGA 中即可,無需更 改外部電路的設計,大大提高了設計的效率。因此,采用 FPGA 開發(fā)的數(shù)字系統(tǒng),不 僅具有很高的工作可靠性,而且升級也極其方便。 本文采用 EDA 技術(shù),利用 Quartus II 工作平臺和硬件描述語言,設計了一種電 子密碼鎖,并通過一片 FPGA 芯片實現(xiàn)。 關(guān)鍵詞: 關(guān)鍵詞:電子密碼鎖;FPGA;硬件描述語言;EDA Abstract With the development of electronic technology, electronic password lock with burglar alarm and other functions replacing 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 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 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 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 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 緒論 (標題部分的格式很多不對,檢查修改) 1 1.1 本課題研究的國內(nèi)外現(xiàn)狀及其發(fā)展 2 1.2 本課題研究的目的和意義 2 2 關(guān)鍵技術(shù)簡介 4 2.1 FPGA 硬件設計描述 4 2.1.1 2.1.2 2.1.3 FPGA 的設計流程 4 VHDL 語言的基本結(jié)構(gòu) 6 自上而下(TOP DOWN)的設計方法 7 2.2 設計語言、仿真平臺與開發(fā)系統(tǒng) 8 2.3 用 Quartus進行系統(tǒng)開發(fā)的設計流程 8 3 系統(tǒng)總體設計 9 3.1 電子密碼鎖設計的原理 9 3.2 方案的提出 10 3.3 系統(tǒng)設計要求 11 3.4 系統(tǒng)設計描述 11 3.5 各功能模塊描述 12 3.6 系統(tǒng)流程 13 4 系統(tǒng)詳細設計 15 4.1 輸入模塊 15 4.1.1 4.1.2 4.1.3 4.1.4 4.1.5 時序產(chǎn)生電路 16 按鍵消抖電路 17 鍵盤掃描電路 20 鍵盤譯碼電路 21 鍵盤輸入模塊的實現(xiàn) 22 4.2 電子密碼鎖控制模塊 23 4.2.1 4.2.2 4.2.3 控制模塊的描述 23 控制模塊的狀態(tài)圖與 ASM 圖 錯誤!未定義書簽。 錯誤!未定義書簽。 控制模塊的實現(xiàn) 27 4.3 電子密碼鎖顯示模塊 28 I 4.3.1 4.3.2 數(shù)碼管顯示原理 28 譯碼顯示的實現(xiàn) 31 5 系統(tǒng)仿真 32 5.1 系統(tǒng)的有關(guān)編譯與仿真 32 5.2 去抖模塊的仿真 32 5.3 密碼鎖輸入電路的仿真 33 5.4 密碼鎖控制電路的仿真 34 5.5 系統(tǒng)整體仿真 35 5.6 數(shù)碼管譯碼器仿真 36 6 .結(jié)束語 37 致謝 38 參考文獻 39 II 基于 FPGA 的電子密碼鎖設計 1 緒論 隨著大規(guī)模和超大規(guī)模可編程器件在 FPGA 技術(shù)支持下的廣泛應用,使現(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)在主流電子密碼鎖。 遙控式電子防盜鎖目前常見的遙控式電子防盜鎖主要有光遙控和無線電遙控兩 類。鍵盤式電子密碼鎖從目前的技術(shù)水平和市場認可程度看,使用最為廣泛的是鍵盤 式電子密碼鎖,該產(chǎn)品主要應用于保險箱、保險柜和金庫,還有一部分應用于保管箱 和運鈔車。 卡式電子防盜鎖使用各種“卡”作為鑰匙的電子防盜鎖是當前最為活躍的產(chǎn) 品,無論卡的種類如何多種多樣,按照輸入卡的操作方式,都可分為接觸式卡和非接 觸式卡兩大類。生物特征防盜鎖人的某些與生俱來的個性特征(如手、眼睛、聲音的 特征)幾乎不可重復,作為“鑰匙”就是唯一的(除非被逼迫或傷害) ,因此,利用生 物特征做密碼的電子防盜鎖,也特別適合金融業(yè)注重“驗明正身”的行業(yè)特點。 本文介紹的基于 FPGA 的電子密碼鎖電路具有顯示接口, 顯示時可以是明文也可 以是密文星號。由于 FPGA 具有 ISP 功能,當用戶需要更改時,如增加口令位數(shù)和更 改口令權(quán)限管理時,只需更改 FPGA 中的控制和接口電路,利用 EDA 工具將更新后 的設計下載到 FPGA 中即可,無需更改外部電路,這就大大提高了設計效率。而且采 用 FPGA 設計的電子密碼鎖與單片機控制的電子密碼鎖相比結(jié)構(gòu)簡單、 具有更高的系 統(tǒng)保密性和可靠性。這種基于 FPGA 的電子密碼鎖可以應用在辦公室、倉庫、賓館等 人員經(jīng)常變動的場所。 FPGA 技術(shù)是現(xiàn)代電子工程領域的一門新技術(shù),提供了基于計算機和信息技術(shù)的 電路系統(tǒng)設計的方法。它是從計算機輔助設計(CAD) 、計算機輔助制造(CAM) 、 計算機輔助測試(CAT)和計算機輔助工程(CAE)等技術(shù)發(fā)展而來的。設計者只需 從而為電子產(chǎn)品 要對系統(tǒng)功能進行描述, FPGA 工具的幫助下即可完成系統(tǒng)設計, 在 的設計和開發(fā)縮短了實踐降低了成本,提高了系統(tǒng)的可靠性。 -1- 基于 FPGA 的電子密碼鎖設計 1.1 本課題研究的國內(nèi)外現(xiàn)狀及其發(fā)展 隨著人們生活水平的提高和安全意識的加強,對安全的要求也就越來越高。鎖自 古以來就是把守護門的鐵將軍,人們對它要求甚高,既要安全可靠的防盜,又要使用 方便,這也是制鎖者長期以來研制的主題。隨著電子技術(shù)的發(fā)展,各類電子產(chǎn)品應運 而生,電子密碼鎖就是其中之一。據(jù)有關(guān)資料介紹,電子密碼鎖的研究從 20 世紀 30 年代就開始了,在一些特殊場所早就有所應用。這種鎖是通過鍵盤輸入一組密碼完成 開鎖過程。研究這種鎖的初衷,就是為提高鎖的安全性。由于電子鎖的密鑰量(密碼 量)極大,可以與機械鎖配合使用,并且可以避免因鑰匙被仿制而留下安全隱患。電 子鎖只需記住一組密碼,無需攜帶金屬鑰匙,免除了人們攜帶金屬鑰匙的煩惱,而被 越來越多的人所欣賞。電子鎖的種類繁多,例如數(shù)碼鎖,指紋鎖,磁卡鎖,IC 卡鎖, 生物鎖等。但較實用的還是按鍵式電子密碼鎖。 20 世紀 80 年代后,隨著電子鎖專用集成電路的出現(xiàn),電子鎖的體積縮小,可靠 性提高,成本較高,是適合使用在安全性要求較高的場合,且需要有電源提供能量, 使用還局限在一定范圍,難以普及,所以對它的研究一直沒有明顯進展。 目前,在西方發(fā)達國家,電子密碼鎖技術(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)的可靠性能 較差。基于現(xiàn)場可編程邏輯門陣列 FPGA 器件的電子密碼鎖,用 FPGA 器件構(gòu)造系 統(tǒng),所有算法完全由硬件電路來實現(xiàn),使得系統(tǒng)的工作可靠性大為提高。由于 FPGA 具有現(xiàn)場可編程功能,當設計需要更改時,只需更改 FPGA 中的控制和接口電路,利 用 EDA 工具將更新后的設計下載到 FPGA 中即可,無需更改外部電路的設計,大大 提高了設計的效率。 1.2 本課題研究的目的和意義 為了使現(xiàn)在的電子密碼鎖更能智能化的管理,讓人們更能方便的使用,讓其具 -2- 基于 FPGA 的電子密碼鎖設計 有更高的安全性和經(jīng)濟性,針對基于單片機的電子密碼鎖的不足之處,本文采用 EDA 技術(shù),利用 Quartus工作平臺硬件描述語言,設計一種電子密碼鎖,并通過一 片 FPGA 芯片實現(xiàn)。采用 VHDL 語言使用自頂向下的方法對系統(tǒng)進行了描述,并在 FPGA 芯片 Cyclone上實現(xiàn)。設計充分利用了 FPGA 的資源可編程特性,可高效率 的對系統(tǒng)進行升級與改進。設計的密碼鎖可設置任意密碼,比一般的四位密碼鎖具 有更高的安全可靠性,因此,采用 FPGA 開發(fā)的數(shù)字系統(tǒng),不僅具有很高的工作可靠 性,其升級與改進也極其方便,應用前景十分良好。 -3- 基于 FPGA 的電子密碼鎖設計 2 關(guān)鍵技術(shù)簡介 2.1 FPGA 硬件設計描述 硬件設計描述 2.1.1FPGA 的設計流程 FPGA 設計流程包括系統(tǒng)設計和設計實現(xiàn),系統(tǒng)方案完成之后即進入設計實現(xiàn)階 段的工作,他以系統(tǒng)方案為輸入,進行 RTL 級描述、功能仿真(RTL 級仿真)、邏輯綜 合、布線前門級仿真、適配(布局布線)、時序仿真(布線后門級仿真)、時序分析、器 件編程、系統(tǒng)驗證一系列流程的處理才能完成 FPGA 芯片的設計,其設計流程如圖 2.1 所示。需要說明的是,如果仿真驗證不對或者某一步有錯,就要返回修改。有必 要檢查和修改的地方有 RTL 級描述、系統(tǒng)方案、約束和測試激勵等。一般情況下, 修改后要重新走 對 RTL 級的描述即原理圖或者 HDL 設計代碼的修改最多也最有效。 一遍流程。有時要反復修改,經(jīng)過多次這樣的迭代才能完成最后的設計。 在理論上,把 VLSI(Ultra Large Scale Integration,超大規(guī)模集成電路)的設計描述 為 6 個層次1, 即系統(tǒng)級(系統(tǒng)功能、 2, 參數(shù)定義)、 算法級(描述系統(tǒng)功能行為)、 RTL 級、門級(邏輯門)、電路級(晶體管)、版圖級(物理工藝)。每一級又都分 3 個側(cè)面來描 述:行為域描述、結(jié)構(gòu)域描述、物理域描述。但在實際情況中往往把算法級行為域描 述或者 RTL 級行為域描述都稱為行為級描述。 -4- 基于 FPGA 的電子密碼鎖設計 系統(tǒng)設計流程(左邊的箭頭線太短了,最好和右邊對稱) 圖 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 器件廠家提供的工藝庫和 EDA 工具提供的標準通用庫(如 IEEE 庫 等)。工藝庫中有各種宏功能模塊和基本功能單元,含有他們的行為級模型、門級模 型、布線模型等信息。 需要說明的是,系統(tǒng)行為仿真和 RTL 級功能仿真有時要用到某種功能模塊,例 如 RAM 模型。對于 RAM 模型的控制信號,不同的廠家其規(guī)定不一定相同,如寫使 能信號,有的廠家規(guī)定高電平有效,有的廠家規(guī)定低電平有效。其實,在廠家提供的 工藝庫中, RAM 模型有行為級模型、門級模型、版圖級模型等。而行為級模型只是 規(guī)定其功能,無延時信息,跟工藝無關(guān),但門級模型和版圖級模型跟工藝密切相關(guān)。 解決的方法是系統(tǒng)行為仿真時可以使用高級語言自己建立一個模型或者調(diào)用廠家?guī)?中提供的行為級模型,功能仿真時調(diào)用行為級模型,時序仿真時調(diào)用門級模型。 -5- 基于 FPGA 的電子密碼鎖設計 測試激勵:指測試文件,他調(diào)用 FPGA 設計的頂層模塊,同時產(chǎn)生頂層模塊需要 的輸入信號,稱之為激勵信號,使用行為描述即可,不要求可綜合。仿真時他作為最 頂層的文件, 從而可以觀察 FPGA 的輸出是否正確。 所有的仿真都可使用同一個測試 激勵。 約束:指對邏輯綜合和布局布線時的約束。包括器件型號、速度、面積、功耗、 引腳分配、 時鐘網(wǎng)絡資源的分配、 模塊在器件中的定位等約束。 一部分在軟件中設置, 一部分以約束文件的形式存在。 2.1.2VHDL 語言的基本結(jié)構(gòu) VHDL(Very high speed integrated circuit Hardware Description Language)硬件描 述語言從高于邏輯級的抽象層次上描述硬件的功能、信號連接關(guān)系及定時關(guān)系。 VHDL 的設計流程如 2.2 圖。 總體 方案 編寫HDL代碼 軟件模擬 綜合:面向FPGA 和ASIC 網(wǎng)表 硬 件 驗 證 圖 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)部視圖,是次級設計單元。在其對應的初級設計單元 實體說明被編譯并且被并入設計庫之后,它就可以單獨地被并入該設計庫中。結(jié)構(gòu)體 描述一個設計的結(jié)構(gòu)和行為,把一個設計的輸入和輸出之間的關(guān)系建立起來。一個設 計可以有多個結(jié)構(gòu),分別代表該器件的不同實現(xiàn)方案。根據(jù)對一個器件設計由抽象到 具體的過程,可把結(jié)構(gòu)體的描述方式分為三個層次:行為描述方式、寄存器傳輸描述 方式(RTL)和結(jié)構(gòu)描述方式。 -6- 基于 FPGA 的電子密碼鎖設計 3、庫 庫是經(jīng)編譯后的實體、結(jié)構(gòu)體、包集合和配置的集合。使用庫時總要在設計單元 的前面予以說明。一旦說明,庫中的數(shù)據(jù)對該設計單元就是可見的,從而共享已經(jīng)編 譯過的設計結(jié)果。VHDL 語言中存在的庫大致有 IEEE 庫、STD 庫、ASIC 廠家提供 的庫、用戶定義的庫和現(xiàn)行作業(yè)庫。 4、包集合 包集合屬庫中的一個層次,是一種可編譯的源設計單元。它收集了 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ī)定的特性還 可以用在多層描述中。 2.1.3自上而下(TOP DOWN)的設計方法 自上而下( 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 Design 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 語言設計 -7- 基于 FPGA 的電子密碼鎖設計 系統(tǒng)硬件的最突出的優(yōu)點。 2.2 設計語言、仿真平臺與開發(fā)系統(tǒng) 設計語言、 (1)硬件描述語言 電子密碼鎖的設計采用了功能強大的通用硬件描述語言 VHDL, 它具有很強的行 為描述能力,設計方法靈活,可以支持自頂向下(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 文件) ,利用該工具所配備的 編輯、編譯、仿真綜合、芯片編程等功能,可將設計電路圖或電路描述程序變成基本 的邏輯單元寫入到可編程的芯片中(如 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 使用 Quartus進行電子密碼鎖設計的流程為 (1)編寫 VHDL 程序(使用 VHDL File)(見附錄) ; (2)編譯 VHDL 程序(使用 Compiler); (3)仿真驗證 VHDL 程序(使用 Waveform Editor, Simulator); (4)進行芯片的時序分析(使用 Timing Analyzer); (5)安排芯片管腳位置(使用 Floorplan Editor); (6)下載程序至芯片(使用 Programmer)。 -8- 基于 FPGA 的電子密碼鎖設計 3 系統(tǒng)總體設計 系統(tǒng)總體 總體設計 3.1 電子密碼鎖設計的原理 1、編碼總量的確定 電子密碼鎖隨機開鎖成功的概率定義為: P=1/NT 其中 P 為隨機開鎖成功概率,NT 為密碼編碼總量。顯然要使密碼鎖保密安全性 高,NT 應盡可能大,使 P 趨于零,但 NT 越大,相應電路越復雜,密碼的記憶與操 作也越麻煩。故 NT 應有合理的上限和下限。 下限 NTL 的選擇應使密碼落在隨機開鎖可能成功的操作時區(qū)以外。若每一次開 鎖操作時間為 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、編碼制式的選擇 編碼制式應根據(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, -9- 基于 FPGA 的電子密碼鎖設計 12,14,16。 現(xiàn)在以最常用的 a=10,i=6 為例,可以計算出 NT2=0159NT 1,NT 3=0.15N T1, 所以編碼制式考慮是否重碼對 NT 有很大影響。 另外,相同制式下不同的基底對編碼總量 NT 會有影響,而且基底的選擇也會影 響到硬件電路的設計。 本文設計的密碼鎖采用十進制編碼,密碼各位允許重碼,為簡化電路設計,密碼 鎖口令采用對串行脈沖計數(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為核 心的單片機控制方案。雖然有靈活的設計和豐富的 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)的維護改進和升級, 可靠性更高, 更安全。 通過以上比較描述,本設計采用基于 FPGA 的電子密碼鎖設計方案。 - 10 - 基于 FPGA 的電子密碼鎖設計 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)為一個簡潔型的電子密碼鎖,該系統(tǒng)以開發(fā)板為主要核心,采用 4*4 的鍵 盤,前 10 個鍵為數(shù)字鍵,8 個數(shù)碼管顯示密碼輸入,后面的按鍵實現(xiàn)電子密碼鎖的 各個功能,總體外觀如圖 3.1 所示。 電子密碼鎖外觀圖 圖 3.1 電子密碼鎖外觀圖 上圖為在實驗開發(fā)板上實現(xiàn),使用開發(fā)板有十六個按鍵,分別對應數(shù)字 0 到 9 和各個功能鍵,LED 顯示為開發(fā)板上數(shù)碼管顯示。 - 11 - 基于 FPGA 的電子密碼鎖設計 3.5 設計思路及各功能模塊描述 設計思路及各功能模塊描述 電子密碼鎖可以由三個部分組成:數(shù)字密碼輸入電路、密碼鎖控制電路、密碼鎖 顯示電路。作為密碼鎖的輸入部分,可選擇的方案有數(shù)字機械式鍵盤和觸摸式數(shù)字鍵 盤等多種??紤]種種因素主要是成本和使用壽命因素,本設計采用通用的數(shù)字機械式 鍵盤。 數(shù)字電子密碼鎖的顯示信息電路可采用 LED 數(shù)碼管顯示和液晶屏幕顯示兩種。 液晶顯示具有高速顯示、高可靠性、易于擴展和升級等優(yōu)點,但是普通液晶顯示屏存 在亮度低、對復雜環(huán)境的適應能力差等缺點,在低亮度的環(huán)境下還需要加入其它輔助 的照明設備,驅(qū)動電路設計相對復雜,因此本設計的顯示電路使用通用的 LED 數(shù)碼 管。 根據(jù)以上選定的輸入設備和器件,并考慮到實現(xiàn)各項數(shù)字密碼鎖功能的具體要 求。本設計分為三個大的功能模塊。圖 3.2 為數(shù)字電子密碼鎖系統(tǒng)總體框圖。 圖 3.2 數(shù)字電子密碼功能模塊圖 (1) 密碼鎖輸入電路包括時序產(chǎn)生電路、鍵盤掃描電路、鍵盤彈跳消除電路、 - 12 - 基于 FPGA 的電子密碼鎖設計 鍵盤譯碼電路等幾個小的功能電路。 模塊的功能是:將用戶通過鍵盤輸入的數(shù)字密碼,確認密碼是否輸入,產(chǎn)生電路 中使用的三種不同頻率的工作脈沖波形,即系統(tǒng)時鐘脈沖、彈跳消除取樣信號和鍵盤 掃描信號;為了加強按鍵按下的準確性加了去抖模塊。 作為電子密碼鎖的輸入電路,數(shù)字密碼輸入電路可采用一個 44 的通用開發(fā)板上 的鍵盤作為本設計的輸入設備。開發(fā)板鍵盤具有低成本、可靠性高、構(gòu)成電路簡單、 技術(shù)成熟和應用廣泛等特點,因此將其應用到通用電子密碼鎖中還是比較適宜的。 (2) 密碼鎖控制電路包括按鍵數(shù)據(jù)的緩沖存儲電路,密碼的清除、變更、存儲、 激活電鎖電路 (寄存器清除信號發(fā)生電路) 密碼核對 , (數(shù)值比較電路) 解鎖電路 , (開 /關(guān)門鎖電路)等幾個小的功能電路。 模塊功能:用于密碼的更改,密碼的清除,以及對密碼鎖的工作狀態(tài)更改,對輸 入密碼次數(shù)的計數(shù)功能,還有就是更智能化,更符合人們的思維,按鍵的時候都是習 慣看輸入數(shù)字的移位情況。 (3)密碼顯示電路主要將顯示數(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 譯碼電路, 將所獲取的值顯示在 LED 數(shù)碼管上。 3.6 系統(tǒng)流程 系統(tǒng)流程圖如圖 4.1: (不能光有一個圖,必須配有對圖的文字說明,把系統(tǒng)的流程 說清楚) - 13 - 基于 FPGA 的電子密碼鎖設計 圖 3.3 系統(tǒng)流程圖 - 14 - 基于 FPGA 的電子密碼鎖設計 4 系統(tǒng)詳細設計 4.1 輸入模塊 圖 4.1 是電子密碼鎖的輸入電路框圖,由鍵盤掃描電路、彈跳消除電路、鍵盤譯 碼電路、按鍵數(shù)據(jù)緩存器,加上外接的一個 34 矩陣式鍵盤組成。 1 4 7 * 2 5 8 0 3 6 9 # 工工工工工工工工 鍵鍵鍵鍵 彈彈彈彈 電 路 鍵鍵鍵鍵 電 路 按鍵按按 按鍵按按 緩緩緩 鍵鍵鍵鍵工工 鍵鍵鍵鍵電路 圖 4.1 電子密碼鎖的輸入電路框圖 矩陣式鍵盤是一種常見的輸入裝置,在日常的生活中,矩陣式鍵盤在計算機、電話、 手機、微波爐等各式電子產(chǎn)品上已經(jīng)被廣泛應用。圖 2.3 是一個 34 矩陣式鍵盤的面 板配置圖,其中數(shù)字 09 作為密碼數(shù)字輸入按鍵,*作為“上鎖”功能按鍵,#作為“解 鎖/清除”功能按鍵。 經(jīng)經(jīng)經(jīng)電經(jīng)經(jīng)VCC KX2 KX1 KX0 1 4 7 * 2 5 8 0 3 6 9 # 鍵鍵鍵鍵工工 KY3(00) KY2(01) KY1(10) KY0(11) 1110 1101 1011 0111 圖 4.2 34 矩陣式鍵盤的面板配 表 4.1 KY3 11 111 行掃描信號、 行掃描信號、列按鍵輸入信號與按鍵位置的關(guān)系 111 110 110 110 - 15 - 101 101 101 011 011 011 基于 FPGA 的電子密碼鎖設計 KY 0 KX2 KX 0 10 0 0 1 1 1 1 1 1 1 1 1 01 1 101 110 011 101 110 011 101 110 011 101 110 按鍵 1 號 2 3 4 5 6 7 8 9 * 0 # 4.1.1時序產(chǎn)生電路 本時序產(chǎn)生電路中使用了三種不同頻率的工作脈沖波形:系統(tǒng)時鐘脈沖(它是系 統(tǒng)內(nèi)部所有時鐘脈沖的源頭,且其頻率最高) 、彈跳消除取樣信號、鍵盤掃描信號。 當一個系統(tǒng)中需使用多種操作頻率的脈沖波形時,最方便的方法之一就是利用一 計數(shù)器來產(chǎn)生各種需要的頻率。也就是先建立一個 N 位計數(shù)器,N 的大小根據(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 分頻脈沖信號; DOWNTO Q(5 4)取得的是一個脈沖波形序列,其值依 000110110001 周期性變化,其變 化頻率為 CLK 的 32 分頻。 我們利用以上規(guī)律即可得到各種我們所需要頻率的信號或 信號序列。 CLK_1K: IN KEY_IN: IN STD_LOGIC ; STD_LOGIC_VECTOR (2 DOWNTO 0); -按鍵輸入 -系統(tǒng)原始時鐘脈沖(1 kHz) CLK_SCAN: OUT STD_LOGIC_VECTOR (3 DOWNTO 0) ; -( 仿真時用)鍵盤掃描序列 DATA_N: OUT STD_LOGIC_VECTOR(3 DOWNTO 0) ; DATA_F: OUT STD_LOGIC_VECTOR(3 DOWNTO 0) ; -功能輸出標志 -控制電路工作時鐘信號 -(仿真時用)去抖電路工作時鐘信號 FLAG_N: OUT STD_LOGIC ; FLAG_F: OUT STD_LOGIC ; CLK_CTR: OUT STD_LOGIC; -數(shù)字輸出 -功能輸出 -數(shù)字輸出標志 CLK_DEBOUNCE: OUT STD_LOGIC - 16 - 基于 FPGA 的電子密碼鎖設計 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.3 調(diào)整抽樣頻率后得到的抽樣結(jié)果 因此必須加上彈跳消除電路,避免誤操作信號的發(fā)生。特別要注意的是,彈跳消 除電路所使用的脈沖信號的頻率必須比其他電路使用的脈沖信號的頻率更高; 通常將 掃描電路的工作頻率定在 100KHz 左右,而將彈跳消除電路的工作頻率定在 200KHZ 左右,其工作頻率通常是前者的 2 倍或者更高。 彈跳消除電路的實現(xiàn)原理如圖 4.4 所示,先將鍵盤的輸入信號 D_IN 做為電路的 輸入信號,CLK 是電路的時鐘脈沖信號,也就是取樣信號,D_IN 經(jīng)過兩級 D 觸發(fā)器 延時后再使用 RS 觸發(fā)器處理。 VCC 13 AND2 DFF D_IN PRN D0 D Q DFF PRN D1 D Q NOT - 17 9 NOT CLRN CLRN D_OUT S R 7 Q Q 6 - AND2 基于 FPGA 的電子密碼鎖設計 圖 4.4 彈跳消除電路的內(nèi)部實現(xiàn)原理圖 此處 RS 觸發(fā)器的前端連接和非門的處理原則是: (1) 因為一般人的按鍵速度至多是 10 次/秒, 亦即一次按鍵時間是 100 ms, 所以按 下的時間可估算為 50 ms。以取樣信號 CLK 的周期為 8 ms 計,則可以取樣到 6 次。 (2) 對于不穩(wěn)定的噪聲,在 4 ms 以下則至多抽樣一次。 (3) 在觸發(fā)器之前,接上 AND-NOT 之后,SR 的組態(tài)如表 1.2 所示。 表 4.3 RS 觸發(fā)器真值表 S 0 1 0 消除抖動模塊程序如下: -DEBOUNCING.VHD LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; LIBRARY ALTERA; USE ALTERA.MAXPLUS2.ALL; ENTITY DEBOUNCING IS PORT(D_IN, CLK: IN STD_LOGIC; DD1, DD0, QQ1, QQ0 : OUT STD_LOGIC; D_OUT, D_OUT1: OUT STD_LOGIC ); END ENTITY DEBOUNCING ; ARCHITECTURE ART OF DEBOUNCING IS COMPONENT DCFQ IS PORT(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 D1, D0 : STD_LOGIC ; BEGIN VCC = 1 ; - 18 - R 0 0 1 D-OUT 不變 1 0 基于 FPGA 的電子密碼鎖設計 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) BEGIN IF CLKEVENT AND CLK=1 THEN D0 = NOT Q1; D1 = D0; END IF ; END PROCESS ; DD0 = D0; DD1 = D1; QQ1 = Q1; QQ0 = Q0; D_OUT = NOT (D1 AND NOT D0); D_OUT1 = NOT Q1 ; END ARCHITECTURE ART; -DCFQ.VHD LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY DCFQ IS PORT(CLK, CLRN, PRN, D: IN STD_LOGIC; Q: OUT STD_LOGIC); END ENTITY DCFQ ; ARCHITECTURE ART OF DCFQ IS BEGIN PROCESS (CLK, CLRN, PRN) BEGIN IF CLRN=0 AND PRN=1 THEN Q=0; ELSIF CLRN=1 AND PRN=0 THEN Q=1; ELSIF CLKEVENT AND CLK=1 THEN Q =D; END IF ; END PROCESS ; - 19 - 基于 FPGA 的電子密碼鎖設計 END ARCHITECTURE ART; 這段程序的作用就是通過對信號的分

溫馨提示

  • 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

提交評論