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

下載本文檔

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

文檔簡介

本文由沒有月亮太陽貢獻(xiàn) doc文檔可能在WAP端瀏覽體驗(yàn)不佳。建議您優(yōu)先選擇TXT,或下載源文件到本機(jī)查看。 摘 要 隨著電子技術(shù)的發(fā)展,具有防盜報(bào)警等功能的電子密碼鎖代替密碼量少、安全性 差的機(jī)械式密碼鎖已是必然趨勢。電子密碼鎖與普通機(jī)械鎖相比,具有許多獨(dú)特的優(yōu) 點(diǎn):保密性好,防盜性強(qiáng),可以不用鑰匙,記住密碼即可開鎖等。目前使用的電子密 碼鎖大部分是基于單片機(jī)技術(shù),以單片機(jī)為主要器件,其編碼器與解碼器的生成為軟 件方式。在實(shí)際應(yīng)用中,由于程序容易跑飛,系統(tǒng)的可靠性能較差。 本文主要闡述了一種基于現(xiàn)場可編程門陣列 FPGA 器件的電子密碼鎖的設(shè)計(jì)方 法。用 FPGA 器件構(gòu)造系統(tǒng),所有算法完全由硬件電路來實(shí)現(xiàn),使得系統(tǒng)的工作可靠 性大為提高。由于 FPGA 具有現(xiàn)場可編程功能,當(dāng)設(shè)計(jì)需要更改時(shí),只需更改 FPGA 中的控制和接口電路,利用 EDA 工具將更新后的設(shè)計(jì)下載到 FPGA 中即可,無需更 改外部電路的設(shè)計(jì),大大提高了設(shè)計(jì)的效率。因此,采用 FPGA 開發(fā)的數(shù)字系統(tǒng),不 僅具有很高的工作可靠性,而且升級也極其方便。 本文采用 EDA 技術(shù),利用 Quartus II 工作平臺和硬件描述語言,設(shè)計(jì)了一種電 子密碼鎖,并通過一片 FPGA 芯片實(shí)現(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 緒論 (標(biāo)題部分的格式很多不對,檢查修改) 1 1.1 本課題研究的國內(nèi)外現(xiàn)狀及其發(fā)展 2 1.2 本課題研究的目的和意義 2 2 關(guān)鍵技術(shù)簡介 4 2.1 FPGA 硬件設(shè)計(jì)描述 4 2.1.1 2.1.2 2.1.3 FPGA 的設(shè)計(jì)流程 4 VHDL 語言的基本結(jié)構(gòu) 6 自上而下(TOP DOWN)的設(shè)計(jì)方法 7 2.2 設(shè)計(jì)語言、仿真平臺與開發(fā)系統(tǒng) 8 2.3 用 Quartus進(jìn)行系統(tǒng)開發(fā)的設(shè)計(jì)流程 8 3 系統(tǒng)總體設(shè)計(jì) 9 3.1 電子密碼鎖設(shè)計(jì)的原理 9 3.2 方案的提出 10 3.3 系統(tǒng)設(shè)計(jì)要求 11 3.4 系統(tǒng)設(shè)計(jì)描述 11 3.5 各功能模塊描述 12 3.6 系統(tǒng)流程 13 4 系統(tǒng)詳細(xì)設(shè)計(jì) 15 4.1 輸入模塊 15 4.1.1 4.1.2 4.1.3 4.1.4 4.1.5 時(shí)序產(chǎn)生電路 16 按鍵消抖電路 17 鍵盤掃描電路 20 鍵盤譯碼電路 21 鍵盤輸入模塊的實(shí)現(xiàn) 22 4.2 電子密碼鎖控制模塊 23 4.2.1 4.2.2 4.2.3 控制模塊的描述 23 控制模塊的狀態(tài)圖與 ASM 圖 錯(cuò)誤!未定義書簽。 錯(cuò)誤!未定義書簽。 控制模塊的實(shí)現(xiàn) 27 4.3 電子密碼鎖顯示模塊 28 I 4.3.1 4.3.2 數(shù)碼管顯示原理 28 譯碼顯示的實(shí)現(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 參考文獻(xiàn) 39 II 基于 FPGA 的電子密碼鎖設(shè)計(jì) 1 緒論 隨著大規(guī)模和超大規(guī)??删幊唐骷?FPGA 技術(shù)支持下的廣泛應(yīng)用,使現(xiàn)代化 設(shè)計(jì)計(jì)算已進(jìn)入一個(gè)全新的階段,從設(shè)計(jì)思想、設(shè)計(jì)工具一直到實(shí)現(xiàn)方式都發(fā)生了諸 多變化。 在 FPGA 技術(shù)中, 最為引人矚目的是以現(xiàn)代電子技術(shù)為特征的邏輯設(shè)計(jì)仿真測試 技術(shù)。 改技術(shù)只需通過計(jì)算機(jī)就能對所設(shè)計(jì)的電子系統(tǒng)從不同層次的性能特點(diǎn)上進(jìn)行 一些列準(zhǔn)確測試和仿真;在完成實(shí)際系統(tǒng)的設(shè)計(jì)后,還能對系統(tǒng)上的目標(biāo)器件進(jìn)行邊 界掃描測試。隨著技術(shù)的發(fā)展,科技的日趨夜新電子密碼鎖種類比較多,發(fā)展更是 快。電子密碼鎖系統(tǒng)主要由電子鎖體、電子密匙等部分組成,一把電子密匙里能存放 多組開鎖密碼,用戶在使用過程中能夠隨時(shí)修改開鎖密碼,更新或配制鑰匙里開鎖密 碼。一把電子鎖可配制多把鑰匙。下面就是現(xiàn)在主流電子密碼鎖。 遙控式電子防盜鎖目前常見的遙控式電子防盜鎖主要有光遙控和無線電遙控兩 類。鍵盤式電子密碼鎖從目前的技術(shù)水平和市場認(rèn)可程度看,使用最為廣泛的是鍵盤 式電子密碼鎖,該產(chǎn)品主要應(yīng)用于保險(xiǎn)箱、保險(xiǎn)柜和金庫,還有一部分應(yīng)用于保管箱 和運(yùn)鈔車。 卡式電子防盜鎖使用各種“卡”作為鑰匙的電子防盜鎖是當(dāng)前最為活躍的產(chǎn) 品,無論卡的種類如何多種多樣,按照輸入卡的操作方式,都可分為接觸式卡和非接 觸式卡兩大類。生物特征防盜鎖人的某些與生俱來的個(gè)性特征(如手、眼睛、聲音的 特征)幾乎不可重復(fù),作為“鑰匙”就是唯一的(除非被逼迫或傷害) ,因此,利用生 物特征做密碼的電子防盜鎖,也特別適合金融業(yè)注重“驗(yàn)明正身”的行業(yè)特點(diǎn)。 本文介紹的基于 FPGA 的電子密碼鎖電路具有顯示接口, 顯示時(shí)可以是明文也可 以是密文星號。由于 FPGA 具有 ISP 功能,當(dāng)用戶需要更改時(shí),如增加口令位數(shù)和更 改口令權(quán)限管理時(shí),只需更改 FPGA 中的控制和接口電路,利用 EDA 工具將更新后 的設(shè)計(jì)下載到 FPGA 中即可,無需更改外部電路,這就大大提高了設(shè)計(jì)效率。而且采 用 FPGA 設(shè)計(jì)的電子密碼鎖與單片機(jī)控制的電子密碼鎖相比結(jié)構(gòu)簡單、 具有更高的系 統(tǒng)保密性和可靠性。這種基于 FPGA 的電子密碼鎖可以應(yīng)用在辦公室、倉庫、賓館等 人員經(jīng)常變動的場所。 FPGA 技術(shù)是現(xiàn)代電子工程領(lǐng)域的一門新技術(shù),提供了基于計(jì)算機(jī)和信息技術(shù)的 電路系統(tǒng)設(shè)計(jì)的方法。它是從計(jì)算機(jī)輔助設(shè)計(jì)(CAD) 、計(jì)算機(jī)輔助制造(CAM) 、 計(jì)算機(jī)輔助測試(CAT)和計(jì)算機(jī)輔助工程(CAE)等技術(shù)發(fā)展而來的。設(shè)計(jì)者只需 從而為電子產(chǎn)品 要對系統(tǒng)功能進(jìn)行描述, FPGA 工具的幫助下即可完成系統(tǒng)設(shè)計(jì), 在 的設(shè)計(jì)和開發(fā)縮短了實(shí)踐降低了成本,提高了系統(tǒng)的可靠性。 -1- 基于 FPGA 的電子密碼鎖設(shè)計(jì) 1.1 本課題研究的國內(nèi)外現(xiàn)狀及其發(fā)展 隨著人們生活水平的提高和安全意識的加強(qiáng),對安全的要求也就越來越高。鎖自 古以來就是把守護(hù)門的鐵將軍,人們對它要求甚高,既要安全可靠的防盜,又要使用 方便,這也是制鎖者長期以來研制的主題。隨著電子技術(shù)的發(fā)展,各類電子產(chǎn)品應(yīng)運(yùn) 而生,電子密碼鎖就是其中之一。據(jù)有關(guān)資料介紹,電子密碼鎖的研究從 20 世紀(jì) 30 年代就開始了,在一些特殊場所早就有所應(yīng)用。這種鎖是通過鍵盤輸入一組密碼完成 開鎖過程。研究這種鎖的初衷,就是為提高鎖的安全性。由于電子鎖的密鑰量(密碼 量)極大,可以與機(jī)械鎖配合使用,并且可以避免因鑰匙被仿制而留下安全隱患。電 子鎖只需記住一組密碼,無需攜帶金屬鑰匙,免除了人們攜帶金屬鑰匙的煩惱,而被 越來越多的人所欣賞。電子鎖的種類繁多,例如數(shù)碼鎖,指紋鎖,磁卡鎖,IC 卡鎖, 生物鎖等。但較實(shí)用的還是按鍵式電子密碼鎖。 20 世紀(jì) 80 年代后,隨著電子鎖專用集成電路的出現(xiàn),電子鎖的體積縮小,可靠 性提高,成本較高,是適合使用在安全性要求較高的場合,且需要有電源提供能量, 使用還局限在一定范圍,難以普及,所以對它的研究一直沒有明顯進(jìn)展。 目前,在西方發(fā)達(dá)國家,電子密碼鎖技術(shù)相對先進(jìn),種類齊全,電子密碼鎖已被 廣泛應(yīng)用于智能門禁系統(tǒng)中,通過多種更加安全,更加可靠的技術(shù)實(shí)現(xiàn)大門的管理。 在我國電子鎖整體水平尚處于國際上 70 年代左右,電子密碼鎖的成本還很高,市場 上仍以按鍵電子鎖為主,按鍵式和卡片鑰匙式電子鎖已引進(jìn)國際先進(jìn)水平,現(xiàn)國內(nèi)有 幾個(gè)廠生產(chǎn)供應(yīng)市場。但國內(nèi)自行研制開發(fā)的電子鎖,其市場結(jié)構(gòu)尚未形成,應(yīng)用還 不廣泛。國內(nèi)的不少企業(yè)也引進(jìn)了世界上先進(jìn)的技術(shù),發(fā)展前景非??捎^。希望通過 不斷的努力,使電子密碼鎖在我國也能得到廣泛應(yīng)用。 目前使用的電子密碼鎖大部分是基于單片機(jī)技術(shù),以單片機(jī)為主要器件,其編碼 器與解碼器的生成為軟件方式。在實(shí)際應(yīng)用中,由于程序容易跑飛,系統(tǒng)的可靠性能 較差?;诂F(xiàn)場可編程邏輯門陣列 FPGA 器件的電子密碼鎖,用 FPGA 器件構(gòu)造系 統(tǒng),所有算法完全由硬件電路來實(shí)現(xiàn),使得系統(tǒng)的工作可靠性大為提高。由于 FPGA 具有現(xiàn)場可編程功能,當(dāng)設(shè)計(jì)需要更改時(shí),只需更改 FPGA 中的控制和接口電路,利 用 EDA 工具將更新后的設(shè)計(jì)下載到 FPGA 中即可,無需更改外部電路的設(shè)計(jì),大大 提高了設(shè)計(jì)的效率。 1.2 本課題研究的目的和意義 為了使現(xiàn)在的電子密碼鎖更能智能化的管理,讓人們更能方便的使用,讓其具 -2- 基于 FPGA 的電子密碼鎖設(shè)計(jì) 有更高的安全性和經(jīng)濟(jì)性,針對基于單片機(jī)的電子密碼鎖的不足之處,本文采用 EDA 技術(shù),利用 Quartus工作平臺硬件描述語言,設(shè)計(jì)一種電子密碼鎖,并通過一 片 FPGA 芯片實(shí)現(xiàn)。采用 VHDL 語言使用自頂向下的方法對系統(tǒng)進(jìn)行了描述,并在 FPGA 芯片 Cyclone上實(shí)現(xiàn)。設(shè)計(jì)充分利用了 FPGA 的資源可編程特性,可高效率 的對系統(tǒng)進(jìn)行升級與改進(jìn)。設(shè)計(jì)的密碼鎖可設(shè)置任意密碼,比一般的四位密碼鎖具 有更高的安全可靠性,因此,采用 FPGA 開發(fā)的數(shù)字系統(tǒng),不僅具有很高的工作可靠 性,其升級與改進(jìn)也極其方便,應(yīng)用前景十分良好。 -3- 基于 FPGA 的電子密碼鎖設(shè)計(jì) 2 關(guān)鍵技術(shù)簡介 2.1 FPGA 硬件設(shè)計(jì)描述 硬件設(shè)計(jì)描述 2.1.1FPGA 的設(shè)計(jì)流程 FPGA 設(shè)計(jì)流程包括系統(tǒng)設(shè)計(jì)和設(shè)計(jì)實(shí)現(xiàn),系統(tǒng)方案完成之后即進(jìn)入設(shè)計(jì)實(shí)現(xiàn)階 段的工作,他以系統(tǒng)方案為輸入,進(jìn)行 RTL 級描述、功能仿真(RTL 級仿真)、邏輯綜 合、布線前門級仿真、適配(布局布線)、時(shí)序仿真(布線后門級仿真)、時(shí)序分析、器 件編程、系統(tǒng)驗(yàn)證一系列流程的處理才能完成 FPGA 芯片的設(shè)計(jì),其設(shè)計(jì)流程如圖 2.1 所示。需要說明的是,如果仿真驗(yàn)證不對或者某一步有錯(cuò),就要返回修改。有必 要檢查和修改的地方有 RTL 級描述、系統(tǒng)方案、約束和測試激勵(lì)等。一般情況下, 修改后要重新走 對 RTL 級的描述即原理圖或者 HDL 設(shè)計(jì)代碼的修改最多也最有效。 一遍流程。有時(shí)要反復(fù)修改,經(jīng)過多次這樣的迭代才能完成最后的設(shè)計(jì)。 在理論上,把 VLSI(Ultra Large Scale Integration,超大規(guī)模集成電路)的設(shè)計(jì)描述 為 6 個(gè)層次1, 即系統(tǒng)級(系統(tǒng)功能、 2, 參數(shù)定義)、 算法級(描述系統(tǒng)功能行為)、 RTL 級、門級(邏輯門)、電路級(晶體管)、版圖級(物理工藝)。每一級又都分 3 個(gè)側(cè)面來描 述:行為域描述、結(jié)構(gòu)域描述、物理域描述。但在實(shí)際情況中往往把算法級行為域描 述或者 RTL 級行為域描述都稱為行為級描述。 -4- 基于 FPGA 的電子密碼鎖設(shè)計(jì) 系統(tǒng)設(shè)計(jì)流程(左邊的箭頭線太短了,最好和右邊對稱) 圖 2.1 系統(tǒng)設(shè)計(jì)流程(左邊的箭頭線太短了,最好和右邊對稱) 對于 FPGA 的設(shè)計(jì)而言,不需要關(guān)心電路級和版圖級,只考慮系統(tǒng)級、算法級、 RTL 級、門級 4 個(gè)層次的行為域描述和結(jié)構(gòu)域描述即可。上述的 FPGA 系統(tǒng)設(shè)計(jì)中 的系統(tǒng)實(shí)際上是指系統(tǒng)級和算法級,而“RTL 級描述”主要是指 RTL 級行為域的描述。 在門級,由綜合工具產(chǎn)生的門級網(wǎng)表來描述。 FPGA 的設(shè)計(jì)流程和相關(guān)概念說明如下: 庫:指 FPGA 器件廠家提供的工藝庫和 EDA 工具提供的標(biāo)準(zhǔn)通用庫(如 IEEE 庫 等)。工藝庫中有各種宏功能模塊和基本功能單元,含有他們的行為級模型、門級模 型、布線模型等信息。 需要說明的是,系統(tǒng)行為仿真和 RTL 級功能仿真有時(shí)要用到某種功能模塊,例 如 RAM 模型。對于 RAM 模型的控制信號,不同的廠家其規(guī)定不一定相同,如寫使 能信號,有的廠家規(guī)定高電平有效,有的廠家規(guī)定低電平有效。其實(shí),在廠家提供的 工藝庫中, RAM 模型有行為級模型、門級模型、版圖級模型等。而行為級模型只是 規(guī)定其功能,無延時(shí)信息,跟工藝無關(guān),但門級模型和版圖級模型跟工藝密切相關(guān)。 解決的方法是系統(tǒng)行為仿真時(shí)可以使用高級語言自己建立一個(gè)模型或者調(diào)用廠家?guī)?中提供的行為級模型,功能仿真時(shí)調(diào)用行為級模型,時(shí)序仿真時(shí)調(diào)用門級模型。 -5- 基于 FPGA 的電子密碼鎖設(shè)計(jì) 測試激勵(lì):指測試文件,他調(diào)用 FPGA 設(shè)計(jì)的頂層模塊,同時(shí)產(chǎn)生頂層模塊需要 的輸入信號,稱之為激勵(lì)信號,使用行為描述即可,不要求可綜合。仿真時(shí)他作為最 頂層的文件, 從而可以觀察 FPGA 的輸出是否正確。 所有的仿真都可使用同一個(gè)測試 激勵(lì)。 約束:指對邏輯綜合和布局布線時(shí)的約束。包括器件型號、速度、面積、功耗、 引腳分配、 時(shí)鐘網(wǎng)絡(luò)資源的分配、 模塊在器件中的定位等約束。 一部分在軟件中設(shè)置, 一部分以約束文件的形式存在。 2.1.2VHDL 語言的基本結(jié)構(gòu) VHDL(Very high speed integrated circuit Hardware Description Language)硬件描 述語言從高于邏輯級的抽象層次上描述硬件的功能、信號連接關(guān)系及定時(shí)關(guān)系。 VHDL 的設(shè)計(jì)流程如 2.2 圖。 總體 方案 編寫HDL代碼 軟件模擬 綜合:面向FPGA 和ASIC 網(wǎng)表 硬 件 驗(yàn) 證 圖 2.2 VHDL 的設(shè)計(jì)流程 一個(gè)完整的 VHDL 語言程序通常包含實(shí)體(Entity)、結(jié)構(gòu)體(Architecture) 、配置 (Configuration) 、包集合(Package)和庫(Library)五個(gè)部分。 1、實(shí)體 實(shí)體說明部分是說明一個(gè)器件的外觀視圖,即從器件外部看到的器件外貌,其中 包括器件的端口,同時(shí)也可以定義參數(shù),并把參數(shù)從外部傳入模塊內(nèi)部,主要用于描 述所設(shè)計(jì)的系統(tǒng)的外部接口。 2、結(jié)構(gòu)體 結(jié)構(gòu)體是描述一個(gè)器件的內(nèi)部視圖,是次級設(shè)計(jì)單元。在其對應(yīng)的初級設(shè)計(jì)單元 實(shí)體說明被編譯并且被并入設(shè)計(jì)庫之后,它就可以單獨(dú)地被并入該設(shè)計(jì)庫中。結(jié)構(gòu)體 描述一個(gè)設(shè)計(jì)的結(jié)構(gòu)和行為,把一個(gè)設(shè)計(jì)的輸入和輸出之間的關(guān)系建立起來。一個(gè)設(shè) 計(jì)可以有多個(gè)結(jié)構(gòu),分別代表該器件的不同實(shí)現(xiàn)方案。根據(jù)對一個(gè)器件設(shè)計(jì)由抽象到 具體的過程,可把結(jié)構(gòu)體的描述方式分為三個(gè)層次:行為描述方式、寄存器傳輸描述 方式(RTL)和結(jié)構(gòu)描述方式。 -6- 基于 FPGA 的電子密碼鎖設(shè)計(jì) 3、庫 庫是經(jīng)編譯后的實(shí)體、結(jié)構(gòu)體、包集合和配置的集合。使用庫時(shí)總要在設(shè)計(jì)單元 的前面予以說明。一旦說明,庫中的數(shù)據(jù)對該設(shè)計(jì)單元就是可見的,從而共享已經(jīng)編 譯過的設(shè)計(jì)結(jié)果。VHDL 語言中存在的庫大致有 IEEE 庫、STD 庫、ASIC 廠家提供 的庫、用戶定義的庫和現(xiàn)行作業(yè)庫。 4、包集合 包集合屬庫中的一個(gè)層次,是一種可編譯的源設(shè)計(jì)單元。它收集了 VHDL 語言 中所用到的信號、 常數(shù)、 數(shù)據(jù)類型、 函數(shù)和過程的說明等。 用戶可以構(gòu)造一個(gè)包集合, 用以存放常數(shù)、數(shù)據(jù)類型、函數(shù)和過程,該包集合經(jīng)編譯后便自動加到 WORK 庫中。 使用庫中的包集合時(shí),在打開庫后要用 USE 語句說明,例如: LIBRARY IEEE; USE IEEE.STD-LOGIC-1164.ALL; 5、配置 配置語句從一個(gè)庫中為一個(gè)實(shí)體選擇一個(gè)特定的結(jié)構(gòu)體, 是一種放在庫中的被編 輯單元,并有相應(yīng)的配置名。通過配置技術(shù),可以選取多種不同的結(jié)構(gòu)體,以便對一 個(gè)設(shè)計(jì)任務(wù)采用仿真工具進(jìn)行多種配置的性能實(shí)驗(yàn)。另外,配置說明和規(guī)定的特性還 可以用在多層描述中。 2.1.3自上而下(TOP DOWN)的設(shè)計(jì)方法 自上而下( DOWN) 自上而下的設(shè)計(jì)方法是現(xiàn)代電子系統(tǒng)的新型設(shè)計(jì)策略,它從設(shè)計(jì)的總體要求出 發(fā),自上而下地逐步從系統(tǒng)數(shù)學(xué)模型的設(shè)計(jì)與仿真,到數(shù)據(jù)流級的設(shè)計(jì)與仿真,選擇 系統(tǒng)設(shè)計(jì)方案, 最后完成系統(tǒng)硬件的整體設(shè)計(jì)。 VHDL 的自上而下的設(shè)計(jì)方法不僅體 現(xiàn)在它的基本結(jié)構(gòu)由描述外視特性的實(shí)體與描述內(nèi)視行為和結(jié)構(gòu)的結(jié)構(gòu)體構(gòu)成, 同一 實(shí)體可以有一個(gè)以上的結(jié)構(gòu)體,以便設(shè)計(jì)方案的選擇,還體現(xiàn)在系統(tǒng)硬件設(shè)計(jì)過程的 三個(gè)層次:行為級描述與仿真、RTL 級描述與仿真、邏輯綜合與門級仿真。邏輯綜合 與所使用的邏輯綜合工具有關(guān),由邏輯綜合優(yōu)化工具生成具體的門級邏輯電路的 EDIF(Electronic Design Interchange Format)網(wǎng)表。EDIF 網(wǎng)表是一種標(biāo)準(zhǔn)接口,它是 一個(gè)以 ASCII 字符為基礎(chǔ)的中間互換格式, 被大多數(shù)供應(yīng)商提供的 CAE/CAD 系統(tǒng)所 支持。半導(dǎo)體制造廠基于這種網(wǎng)表生成 ASIC 芯片的制造工藝,F(xiàn)PGA 則基于這種網(wǎng) 表生成用以配置 FPGA 芯片的位流文件。 這三種仿真貫穿系統(tǒng)硬件設(shè)計(jì)的全過程, 從 而可以在系統(tǒng)設(shè)計(jì)早期發(fā)現(xiàn)設(shè)計(jì)中存在的問題, 與傳統(tǒng)的自下而上的后期仿真相比大 大縮短系統(tǒng)的設(shè)計(jì)周期,并且利于方案的綜合評價(jià)與選取。這是用 VHDL 語言設(shè)計(jì) -7- 基于 FPGA 的電子密碼鎖設(shè)計(jì) 系統(tǒng)硬件的最突出的優(yōu)點(diǎn)。 2.2 設(shè)計(jì)語言、仿真平臺與開發(fā)系統(tǒng) 設(shè)計(jì)語言、 (1)硬件描述語言 電子密碼鎖的設(shè)計(jì)采用了功能強(qiáng)大的通用硬件描述語言 VHDL, 它具有很強(qiáng)的行 為描述能力,設(shè)計(jì)方法靈活,可以支持自頂向下(Top Down)和基于庫(Library-Based) 的設(shè)計(jì)方法,硬件描述與具體的工藝技術(shù)和硬件結(jié)構(gòu)無關(guān),能輕易地改變設(shè)計(jì)的規(guī)模 和結(jié)構(gòu),標(biāo)準(zhǔn)、規(guī)范易于共享與復(fù)用,易于向 ASIC 移植。 (2)Quartus軟件開發(fā)工具 本設(shè)計(jì)采用的軟件開發(fā)工具是美國 Altera 公司的 Quartus,它支持多種設(shè)計(jì)輸 入方法,包括原理圖輸入、文本輸入(如 AHDL,VHDL,Verilog HDL 文本文件) 和第三方 EDA 工具輸入文件(如 EDIF,HDL,VQM 文件) ,利用該工具所配備的 編輯、編譯、仿真綜合、芯片編程等功能,可將設(shè)計(jì)電路圖或電路描述程序變成基本 的邏輯單元寫入到可編程的芯片中(如 FPGA 芯片),做成 ASIC 芯片。 (3)EDA 實(shí)驗(yàn)開發(fā)系統(tǒng) 設(shè)計(jì)中采用的 EDA 實(shí)驗(yàn)開發(fā)系統(tǒng),主要用于提供可編程邏輯器件的下載電路及 EDA 實(shí)驗(yàn)開發(fā)的外圍資源,供硬件驗(yàn)證用。一般包括:實(shí)驗(yàn)或開發(fā)所需的各類基 本信號發(fā)生模塊;FPGA/CPLD 輸出信息顯示模塊;監(jiān)控程序模塊;目標(biāo)芯片 適配座以及上面的 FPGA/CPLD 目標(biāo)芯片和下載電路。 2.3 用 Quartus進(jìn)行系統(tǒng)開發(fā)的設(shè)計(jì)流程 Quartus 使用 Quartus進(jìn)行電子密碼鎖設(shè)計(jì)的流程為 (1)編寫 VHDL 程序(使用 VHDL File)(見附錄) ; (2)編譯 VHDL 程序(使用 Compiler); (3)仿真驗(yàn)證 VHDL 程序(使用 Waveform Editor, Simulator); (4)進(jìn)行芯片的時(shí)序分析(使用 Timing Analyzer); (5)安排芯片管腳位置(使用 Floorplan Editor); (6)下載程序至芯片(使用 Programmer)。 -8- 基于 FPGA 的電子密碼鎖設(shè)計(jì) 3 系統(tǒng)總體設(shè)計(jì) 系統(tǒng)總體 總體設(shè)計(jì) 3.1 電子密碼鎖設(shè)計(jì)的原理 1、編碼總量的確定 電子密碼鎖隨機(jī)開鎖成功的概率定義為: P=1/NT 其中 P 為隨機(jī)開鎖成功概率,NT 為密碼編碼總量。顯然要使密碼鎖保密安全性 高,NT 應(yīng)盡可能大,使 P 趨于零,但 NT 越大,相應(yīng)電路越復(fù)雜,密碼的記憶與操 作也越麻煩。故 NT 應(yīng)有合理的上限和下限。 下限 NTL 的選擇應(yīng)使密碼落在隨機(jī)開鎖可能成功的操作時(shí)區(qū)以外。若每一次開 鎖操作時(shí)間為 t,為便于做隨機(jī)試驗(yàn),將 NT 分為 n 段并期望在 1/n 段的 1/2 處開鎖成 功。此時(shí) p=1/2n 則隨機(jī)開鎖試驗(yàn)期望成功的時(shí)間為: Tr=NTt/2n 假定系統(tǒng)設(shè)計(jì)不考慮誤碼輸入的保護(hù), 密碼鎖在無保護(hù)的情況下使操作人員任意 作隨機(jī)開鎖試驗(yàn)的時(shí)間為 TEN,則: NTL=(2nTEN t)x,其中 x 為最低安全系數(shù)。即: TEN=(NTLt/2n)/x 顯然若使 NT=NTL,則 TrTEN,則使分段隨機(jī)試驗(yàn)不易成功。 由此可得出數(shù)字密碼鎖的編碼總量設(shè)定是系統(tǒng)設(shè)計(jì)安全性、 保密性的首要技術(shù)指 標(biāo)。一般來說,當(dāng) NT 選定之后,NT 的上限 NTH 原則上是越大越安全,但一般設(shè)計(jì) 時(shí)取 NTH=(101000)NTL 較為合理。 2、編碼制式的選擇 編碼制式應(yīng)根據(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 的選取應(yīng)該滿足 NTNTL , a=2,3,4,10, -9- 基于 FPGA 的電子密碼鎖設(shè)計(jì) 12,14,16。 現(xiàn)在以最常用的 a=10,i=6 為例,可以計(jì)算出 NT2=0159NT 1,NT 3=0.15N T1, 所以編碼制式考慮是否重碼對 NT 有很大影響。 另外,相同制式下不同的基底對編碼總量 NT 會有影響,而且基底的選擇也會影 響到硬件電路的設(shè)計(jì)。 本文設(shè)計(jì)的密碼鎖采用十進(jìn)制編碼,密碼各位允許重碼,為簡化電路設(shè)計(jì),密碼 鎖口令采用對串行脈沖計(jì)數(shù)的方式輸入。 3、誤碼輸入的保護(hù)措施 如前所述,電子密碼鎖的設(shè)計(jì)應(yīng)考慮自身的安全保密性,由于編碼和捕捉密碼的 實(shí)驗(yàn)都是隨機(jī)的,若要使 P=1 NT 趨近于 0,必須采取誤碼輸入的保護(hù)措施。假定設(shè) 定的誤碼輸入次數(shù)不超過三次,誤碼達(dá)到三次時(shí)系統(tǒng)應(yīng)關(guān)閉主控電路,拒絕大于三次 的密碼輸入,并且系統(tǒng)進(jìn)入報(bào)警狀態(tài)。系統(tǒng)正常狀態(tài)的恢復(fù)可采用萬能密碼輸入或者 系統(tǒng)掉電恢復(fù)。 3.2 方案的提出 方案一:采用數(shù)字電路控制。雖然采用數(shù)字密碼鎖電路的好處是設(shè)計(jì)簡單,但是 由于其是純電路實(shí)際,在系統(tǒng)運(yùn)行時(shí),延時(shí)會比較嚴(yán)重。 方案二:通過單片機(jī)實(shí)現(xiàn),現(xiàn)在一種新的方案就是采用一種是用以 AT89S51為核 心的單片機(jī)控制方案。雖然有靈活的設(shè)計(jì)和豐富的 IO 端口,但是單片機(jī)設(shè)計(jì)的缺點(diǎn) 是程序運(yùn)行時(shí)容易出現(xiàn)跑飛現(xiàn)象。 通過以上比較顯然單片機(jī)方案有較大的活動空間, 不但能實(shí)現(xiàn)所要求的功能而且 能在很大的程度上擴(kuò)展功能,而且還可以方便的對系統(tǒng)進(jìn)行升級,但是由于所學(xué)知識 不能將其有效的應(yīng)用,現(xiàn)有環(huán)境不能滿足,而且單片機(jī)的密碼鎖有一定的不足之處, 在運(yùn)行時(shí)程序有時(shí)會產(chǎn)生 PC 指針錯(cuò)誤,還有基于現(xiàn)在所學(xué)知識的應(yīng)用,所以基于以 上比較提出了第三種方案。 方案三:利用 FPGA 設(shè)計(jì)電子密碼鎖,其成本低,設(shè)計(jì)方便(有相應(yīng)的開發(fā)板) , 現(xiàn)有資源充足, 實(shí)現(xiàn)比較容易, 更利于系統(tǒng)的維護(hù)改進(jìn)和升級, 可靠性更高, 更安全。 通過以上比較描述,本設(shè)計(jì)采用基于 FPGA 的電子密碼鎖設(shè)計(jì)方案。 - 10 - 基于 FPGA 的電子密碼鎖設(shè)計(jì) 3.3 系統(tǒng)設(shè)計(jì)要求 設(shè)計(jì)一個(gè)具有較高安全性和較低成本的通用電子密碼鎖,具體功能要求如下: (1)數(shù)碼輸入:每按下一個(gè)數(shù)字鍵,就輸入一個(gè)數(shù)值,并在顯示器上的顯示出 該數(shù)值,同時(shí)將先前輸入的數(shù)據(jù)依序左移一個(gè)數(shù)字位置。 (2)數(shù)碼清除:按下此鍵可清除前面所有的輸入值,清除為“0000”。 (3)密碼更改:按下此鍵時(shí)會將目前的數(shù)字設(shè)定成新的密碼。 (4)激活電鎖:按下此鍵可將密碼鎖上鎖。 (5)解除電鎖:按下此鍵會檢查輸入的密碼是否正確,密碼正確即開鎖。 3.4 系統(tǒng)設(shè)計(jì)描述 系統(tǒng)設(shè)計(jì)描述 本系統(tǒng)為一個(gè)簡潔型的電子密碼鎖,該系統(tǒng)以開發(fā)板為主要核心,采用 4*4 的鍵 盤,前 10 個(gè)鍵為數(shù)字鍵,8 個(gè)數(shù)碼管顯示密碼輸入,后面的按鍵實(shí)現(xiàn)電子密碼鎖的 各個(gè)功能,總體外觀如圖 3.1 所示。 電子密碼鎖外觀圖 圖 3.1 電子密碼鎖外觀圖 上圖為在實(shí)驗(yàn)開發(fā)板上實(shí)現(xiàn),使用開發(fā)板有十六個(gè)按鍵,分別對應(yīng)數(shù)字 0 到 9 和各個(gè)功能鍵,LED 顯示為開發(fā)板上數(shù)碼管顯示。 - 11 - 基于 FPGA 的電子密碼鎖設(shè)計(jì) 3.5 設(shè)計(jì)思路及各功能模塊描述 設(shè)計(jì)思路及各功能模塊描述 電子密碼鎖可以由三個(gè)部分組成:數(shù)字密碼輸入電路、密碼鎖控制電路、密碼鎖 顯示電路。作為密碼鎖的輸入部分,可選擇的方案有數(shù)字機(jī)械式鍵盤和觸摸式數(shù)字鍵 盤等多種??紤]種種因素主要是成本和使用壽命因素,本設(shè)計(jì)采用通用的數(shù)字機(jī)械式 鍵盤。 數(shù)字電子密碼鎖的顯示信息電路可采用 LED 數(shù)碼管顯示和液晶屏幕顯示兩種。 液晶顯示具有高速顯示、高可靠性、易于擴(kuò)展和升級等優(yōu)點(diǎn),但是普通液晶顯示屏存 在亮度低、對復(fù)雜環(huán)境的適應(yīng)能力差等缺點(diǎn),在低亮度的環(huán)境下還需要加入其它輔助 的照明設(shè)備,驅(qū)動電路設(shè)計(jì)相對復(fù)雜,因此本設(shè)計(jì)的顯示電路使用通用的 LED 數(shù)碼 管。 根據(jù)以上選定的輸入設(shè)備和器件,并考慮到實(shí)現(xiàn)各項(xiàng)數(shù)字密碼鎖功能的具體要 求。本設(shè)計(jì)分為三個(gè)大的功能模塊。圖 3.2 為數(shù)字電子密碼鎖系統(tǒng)總體框圖。 圖 3.2 數(shù)字電子密碼功能模塊圖 (1) 密碼鎖輸入電路包括時(shí)序產(chǎn)生電路、鍵盤掃描電路、鍵盤彈跳消除電路、 - 12 - 基于 FPGA 的電子密碼鎖設(shè)計(jì) 鍵盤譯碼電路等幾個(gè)小的功能電路。 模塊的功能是:將用戶通過鍵盤輸入的數(shù)字密碼,確認(rèn)密碼是否輸入,產(chǎn)生電路 中使用的三種不同頻率的工作脈沖波形,即系統(tǒng)時(shí)鐘脈沖、彈跳消除取樣信號和鍵盤 掃描信號;為了加強(qiáng)按鍵按下的準(zhǔn)確性加了去抖模塊。 作為電子密碼鎖的輸入電路,數(shù)字密碼輸入電路可采用一個(gè) 44 的通用開發(fā)板上 的鍵盤作為本設(shè)計(jì)的輸入設(shè)備。開發(fā)板鍵盤具有低成本、可靠性高、構(gòu)成電路簡單、 技術(shù)成熟和應(yīng)用廣泛等特點(diǎn),因此將其應(yīng)用到通用電子密碼鎖中還是比較適宜的。 (2) 密碼鎖控制電路包括按鍵數(shù)據(jù)的緩沖存儲電路,密碼的清除、變更、存儲、 激活電鎖電路 (寄存器清除信號發(fā)生電路) 密碼核對 , (數(shù)值比較電路) 解鎖電路 , (開 /關(guān)門鎖電路)等幾個(gè)小的功能電路。 模塊功能:用于密碼的更改,密碼的清除,以及對密碼鎖的工作狀態(tài)更改,對輸 入密碼次數(shù)的計(jì)數(shù)功能,還有就是更智能化,更符合人們的思維,按鍵的時(shí)候都是習(xí) 慣看輸入數(shù)字的移位情況。 (3)密碼顯示電路主要將顯示數(shù)據(jù)的 BCD 碼轉(zhuǎn)換成相對應(yīng)的編碼。如,若選用 七段數(shù)碼管顯示電路,主要將待顯示數(shù)據(jù)的 BCD 碼轉(zhuǎn)換成數(shù)碼器的七段顯示驅(qū)動編 碼。 從圖 3.2 系統(tǒng)的總體走向圖可知:通過時(shí)序產(chǎn)生鍵盤掃描信號,由鍵盤輸入密碼 或者功能按鍵,當(dāng)然在這過程中要經(jīng)過按鍵去抖,最后將將所輸入的鍵盤值譯碼得到 具體的數(shù)字或者功能鍵;將輸入值輸入鍵盤數(shù)據(jù)存儲器,在這里面可以將鍵盤值存儲 或者清除, 再經(jīng)過比較電路, 比較輸入值與原來存儲的是否一致, 如果一致則開啟鎖, 如果不一致則報(bào)警(在報(bào)警后可以通過輸入萬能密碼或者斷電復(fù)位等可以解決) ;在 經(jīng)過存儲電路時(shí), 同時(shí)將所輸入的值通過 LED 顯示出來, 顯示將通過 BCD 譯碼電路, 將所獲取的值顯示在 LED 數(shù)碼管上。 3.6 系統(tǒng)流程 系統(tǒng)流程圖如圖 4.1: (不能光有一個(gè)圖,必須配有對圖的文字說明,把系統(tǒng)的流程 說清楚) - 13 - 基于 FPGA 的電子密碼鎖設(shè)計(jì) 圖 3.3 系統(tǒng)流程圖 - 14 - 基于 FPGA 的電子密碼鎖設(shè)計(jì) 4 系統(tǒng)詳細(xì)設(shè)計(jì) 4.1 輸入模塊 圖 4.1 是電子密碼鎖的輸入電路框圖,由鍵盤掃描電路、彈跳消除電路、鍵盤譯 碼電路、按鍵數(shù)據(jù)緩存器,加上外接的一個(gè) 34 矩陣式鍵盤組成。 1 4 7 * 2 5 8 0 3 6 9 # 工工工工工工工工 鍵鍵鍵鍵 彈彈彈彈 電 路 鍵鍵鍵鍵 電 路 按鍵按按 按鍵按按 緩緩緩 鍵鍵鍵鍵工工 鍵鍵鍵鍵電路 圖 4.1 電子密碼鎖的輸入電路框圖 矩陣式鍵盤是一種常見的輸入裝置,在日常的生活中,矩陣式鍵盤在計(jì)算機(jī)、電話、 手機(jī)、微波爐等各式電子產(chǎn)品上已經(jīng)被廣泛應(yīng)用。圖 2.3 是一個(gè) 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 的電子密碼鎖設(shè)計(jì) 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時(shí)序產(chǎn)生電路 本時(shí)序產(chǎn)生電路中使用了三種不同頻率的工作脈沖波形:系統(tǒng)時(shí)鐘脈沖(它是系 統(tǒng)內(nèi)部所有時(shí)鐘脈沖的源頭,且其頻率最高) 、彈跳消除取樣信號、鍵盤掃描信號。 當(dāng)一個(gè)系統(tǒng)中需使用多種操作頻率的脈沖波形時(shí),最方便的方法之一就是利用一 計(jì)數(shù)器來產(chǎn)生各種需要的頻率。也就是先建立一個(gè) N 位計(jì)數(shù)器,N 的大小根據(jù)電路 的需求決定,N 的值越大,電路可以分頻的次數(shù)就越多,這樣就可以獲得更大的頻率 變化,以便提供多種不同頻率的時(shí)鐘信號。若輸入時(shí)鐘為 CLK,N 位計(jì)數(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)取得的是一個(gè)脈沖波形序列,其值依 000110110001 周期性變化,其變 化頻率為 CLK 的 32 分頻。 我們利用以上規(guī)律即可得到各種我們所需要頻率的信號或 信號序列。 CLK_1K: IN KEY_IN: IN STD_LOGIC ; STD_LOGIC_VECTOR (2 DOWNTO 0); -按鍵輸入 -系統(tǒng)原始時(shí)鐘脈沖(1 kHz) CLK_SCAN: OUT STD_LOGIC_VECTOR (3 DOWNTO 0) ; -( 仿真時(shí)用)鍵盤掃描序列 DATA_N: OUT STD_LOGIC_VECTOR(3 DOWNTO 0) ; DATA_F: OUT STD_LOGIC_VECTOR(3 DOWNTO 0) ; -功能輸出標(biāo)志 -控制電路工作時(shí)鐘信號 -(仿真時(shí)用)去抖電路工作時(shí)鐘信號 FLAG_N: OUT STD_LOGIC ; FLAG_F: OUT STD_LOGIC ; CLK_CTR: OUT STD_LOGIC; -數(shù)字輸出 -功能輸出 -數(shù)字輸出標(biāo)志 CLK_DEBOUNCE: OUT STD_LOGIC - 16 - 基于 FPGA 的電子密碼鎖設(shè)計(jì) 4.1.2按鍵消抖電路 由于設(shè)計(jì)采用的矩陣式鍵盤是機(jī)械開關(guān)結(jié)構(gòu),因此在開關(guān)切換的瞬間會在接觸點(diǎn) 出現(xiàn)信號來回彈跳的現(xiàn)象, 對于電子密碼鎖這種靈敏度較高的電路這種彈跳將很可能 會造成誤動作輸入,從而影響到密碼鎖操作的正確性。 從圖 4.2 中可以觀察出彈跳現(xiàn)象產(chǎn)生的原因,雖然每次只是按下按鍵一次然后放掉, 然而實(shí)際產(chǎn)生的按鍵信號卻不知跳動一次, 經(jīng)過取樣信號的檢查后, 將會造成誤判斷, 以為鍵盤按了兩次。 如果調(diào)整抽樣頻率(如圖 4.3 所示),可以發(fā)現(xiàn)彈跳現(xiàn)象獲得了改善。 圖 4.2 彈跳現(xiàn)象產(chǎn)生錯(cuò)誤的抽樣結(jié)果 如果調(diào)整抽樣頻率,彈跳現(xiàn)象就可以獲得改善。 圖 4.3 調(diào)整抽樣頻率后得到的抽樣結(jié)果 因此必須加上彈跳消除電路,避免誤操作信號的發(fā)生。特別要注意的是,彈跳消 除電路所使用的脈沖信號的頻率必須比其他電路使用的脈沖信號的頻率更高; 通常將 掃描電路的工作頻率定在 100KHz 左右,而將彈跳消除電路的工作頻率定在 200KHZ 左右,其工作頻率通常是前者的 2 倍或者更高。 彈跳消除電路的實(shí)現(xiàn)原理如圖 4.4 所示,先將鍵盤的輸入信號 D_IN 做為電路的 輸入信號,CLK 是電路的時(shí)鐘脈沖信號,也就是取樣信號,D_IN 經(jīng)過兩級 D 觸發(fā)器 延時(shí)后再使用 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 的電子密碼鎖設(shè)計(jì) 圖 4.4 彈跳消除電路的內(nèi)部實(shí)現(xiàn)原理圖 此處 RS 觸發(fā)器的前端連接和非門的處理原則是: (1) 因?yàn)橐话闳说陌存I速度至多是 10 次/秒, 亦即一次按鍵時(shí)間是 100 ms, 所以按 下的時(shí)間可估算為 50 ms。以取樣信號 CLK 的周期為 8 ms 計(jì),則可以取樣到 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 的電子密碼鎖設(shè)計(jì) 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 的電子密碼鎖設(shè)計(jì) END ARCHITECTURE ART; 這段程序的作用就是通過對信號的分

溫馨提示

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

最新文檔

評論

0/150

提交評論