基于VHDL的鍵盤掃描電路設(shè)計說明_第1頁
基于VHDL的鍵盤掃描電路設(shè)計說明_第2頁
基于VHDL的鍵盤掃描電路設(shè)計說明_第3頁
基于VHDL的鍵盤掃描電路設(shè)計說明_第4頁
基于VHDL的鍵盤掃描電路設(shè)計說明_第5頁
已閱讀5頁,還剩29頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 畢 業(yè) 論 文(設(shè)計)題 目: 基于VHDL的鍵盤掃描電路設(shè)計 系 : 機(jī)電工程系 學(xué)生:專 業(yè): 電子信息工程 班 級:指導(dǎo)教師:起止日期: 2012.10.152013.01.06 2013年 1 月 6 日28 / 34基于VHDL的鍵盤掃描電路設(shè)計(東??茖W(xué)技術(shù)學(xué)院 機(jī)電工程系, 316000)摘要隨著科技的發(fā)展,時代的進(jìn)步,生活的需要,在我們生活的很多地方領(lǐng)域,都有鍵盤的應(yīng)用,而且它的應(yīng)用非常廣,當(dāng)然鍵盤掃描的方法也有很多種。鍵盤是單片機(jī)系統(tǒng)設(shè)計中一種主要的信息輸入接口,合理的設(shè)計,不僅可以節(jié)省系統(tǒng)的設(shè)計成本,更可以使儀器設(shè)備的操作變得更為簡單、方便、快捷,很大程度上提高系統(tǒng)綜合性

2、能。隨著信息產(chǎn)業(yè)和微電子技術(shù)的發(fā)展,很多系統(tǒng)設(shè)計技術(shù)已經(jīng)成為信息產(chǎn)業(yè)最熱門的技術(shù)之一,在很多地方上都有應(yīng)用,比如航空航天、醫(yī)療保健、通訊、廣播、工業(yè)、測量測試等很多熱門領(lǐng)域。并且隨著工藝的進(jìn)步和技術(shù)的發(fā)展,向更廣泛的應(yīng)用領(lǐng)域擴(kuò)展。本次設(shè)計主要是運用VHDL硬件描述語言和圖形設(shè)計綜合方法,在MAX+PLUS軟件平臺的環(huán)境下建立波形文件,生成電路符號,設(shè)置輸入端口,實現(xiàn)程序的模擬仿真,得到仿真波形圖,才完成了鍵盤掃描電路的程序設(shè)計。這個電路設(shè)計是一個關(guān)于小型的計算器的鍵盤按鍵電路的設(shè)計,主要由5個部分組成,它們分別為分頻器電路、鍵盤掃描計數(shù)器電路、按鍵檢測電路、按鍵抖動消除電路和鍵盤編碼電路。本次

3、設(shè)計主要是設(shè)計一個4×4矩陣式的鍵盤掃描電路,它具有列掃描和行掃描的功能,有2個輸入端口,分別為clk和col,同時也有2個輸出端口,分別為row和bianma,按下按鍵的數(shù)據(jù)通過端口行、列線輸入到FPGA芯片中去,F(xiàn)PGA芯片部的掃描模塊會將數(shù)據(jù)傳送到編碼器中進(jìn)行編碼,最終完成本次電路的設(shè)計。在生活中是這種小型的計算器是非常常用的,雖然體型很小,但卻被廣泛的使用,很多其他的東西都是在這種小型的計算器的鍵盤的基礎(chǔ)上設(shè)計的。關(guān)鍵詞:鍵盤掃描;VHDL;MAX+PLUS;仿真AbstractWith the development of science and technology, t

4、he progress of the times, the need of the life, we live in a lot of place fields, there are keyboard application, but its application is very wide, of course, the keyboard scanning method also has a lot of, the keyboard is the design of single-chip microcomputer system a main information input inter

5、face, a reasonable design, not only can save the design cost of system, it can make the equipment operation more simple, convenient, fast, greatly improve the overall system performance. With the development of information industry and the development of microelectronic technology, a lot of system d

6、esign technology has become the information industry one of the hottest technologies, in many places have applications, such as aerospace, medical care, communication, broadcast, industrial, testing and many other hot areas. And with the technology progress and technology development, to the more wi

7、despread application domain expansion.The main design is the use of VHDL hardware description language and graphic design method in the MAX+PLUS software platform, established under the wave file, generating circuit symbols, set the input port, procedures to achieve the simulation, get the simulatio

8、n waveform, to complete the keyboard scanning circuit design program. The circuit design is a small calculator keyboard circuit design, mainly is composed by 5 parts, which respectively as the divider circuit, keyboard scan counter circuit, key detection circuit, key jitter elimination circuit and k

9、eyboard coding circuit. The design is the design of a 4 x 4 matrix keyboard scanning circuit, it has a column scanning and scanning function, having 2 input ports, respectively CLK and col, but also has 2 output ports, respectively row and bianma, press the key data through the port line, line input

10、 to the FPGA chip, FPGA chip inside the scanning module can transmit data to the encoder for encoding, the final completion of the circuit design. In life is such a small calculator is very common, though very small in size, but it is widely used, many other things are in such a small calculator key

11、board design based on.Key words:keyboard scan; VHDL ; MAX+PLUS ;simulation目錄第1章緒論11.1研究的意義和背景11.2鍵盤在國外的發(fā)展?fàn)顩r11.3本課題研究的主要問題2第2章鍵盤掃描電路總體設(shè)計32.1 設(shè)計工具的簡介32.1.1VHDL硬件描述語言32.1.2MAX+PLUS的簡介32.1.3FPGA芯片的介紹52.2鍵盤掃描電路的基本流程72.3鍵盤掃描電路的原理框圖8第3章鍵盤掃描電路的模塊電路設(shè)計103.1分頻器電路103.2鍵盤掃描計數(shù)器電路113.3按鍵檢測電路123.4按鍵抖動消除電路133.5 鍵盤編碼

12、電路133.6 掃描電路總電路圖14第4章頂層設(shè)計164.1端口定義164.2仿真結(jié)果174.3電路符號17第5章軟件調(diào)試185.1 分頻器電路中185.2鍵盤掃描計數(shù)器電路中195.3按鍵檢測電路中205.4按鍵抖動消除電路中205.5鍵盤編碼電路中21總結(jié)23致24參考文獻(xiàn)25附錄26第1章 緒論1.1研究的意義和背景鍵盤與我們的生活息息相關(guān),可以說是在我們的生活中是無處不在的,比如說手機(jī)鍵盤、電視機(jī)的鍵盤、電腦的鍵盤等等。按鍵就是一組排列好的不同功能的鍵,將外在的信號輸入到終端,繼而送入一個預(yù)定的系統(tǒng)中1。鍵盤是最常見的計算機(jī)輸入設(shè)備,它被廣泛的應(yīng)用在微型計算機(jī)和各種終端設(shè)備上,計算機(jī)操

13、作者可以通過鍵盤向計算機(jī)輸入各種指令、數(shù)據(jù),指揮計算機(jī)的工作。鍵盤掃描是單片機(jī)技術(shù)的一種基本處理方法,而鍵盤掃描的方法有很多種,說到鍵盤掃描相信大多數(shù)人第一反應(yīng)差不多都是行列矩陣掃描,行列掃描法是什么呢?把按鍵鍵盤排列成n行、m列的n*m行列點乘矩陣,同時n行、m列的線分別連接到兩個并行接口雙向傳送的連接線上去,這樣情況下點陣上的按鍵一旦被按下,就說明按鍵所在的行列點陣信號已經(jīng)接通。按鍵作為一種普通的外部輸入設(shè)備,在應(yīng)用中是不可或缺的,它是控制者用來操作或是發(fā)布指令的一個,是人機(jī)交互應(yīng)用的結(jié)合點2。按鍵所排列成的矩陣,需要用硬件或軟件的方法輪轉(zhuǎn)順序地對其 行、列分別進(jìn)行掃描,以查詢和確認(rèn)是否有

14、鍵按動。如有鍵按動,鍵盤會向主機(jī)發(fā)送被按鍵所在的行列點陣的位置編碼,這種現(xiàn)象叫做鍵掃描碼。這樣,通過硬件或軟件的方法對鍵盤分別進(jìn)行列掃描、行掃描,就可以確定按下鍵的所在位置,輸出并獲得掃描位置碼,任何矩陣鍵盤只要通過增加鍵盤的列或行就可以實現(xiàn)增加按鍵的數(shù)目。1.2鍵盤在國外的發(fā)展?fàn)顩r早在1714年,英、美、法、意、瑞士等國家的人相繼發(fā)明了各種形式的打字機(jī),最早的鍵盤是那個時候應(yīng)用在那些技術(shù)還不成熟的打字機(jī)上的。1868年的時候,美國人克里斯托夫·拉森·肖爾斯(Christopher Latham Sholes)獲打字機(jī)模型專利并取得經(jīng)營權(quán)經(jīng)營,又在幾年后設(shè)計出了現(xiàn)代打字機(jī)的

15、實用形式和首次規(guī)了鍵盤,即現(xiàn)在的“QWERTY”鍵盤。 后來他就被稱為“打字機(jī)之父”。直到1873年,肖爾斯又使用此布局的第一臺商用打字機(jī)成功投放市場,這就為今天的鍵盤排列方式奠定了基礎(chǔ),1888年全美舉行打字公開比賽,贏得冠軍的是一位使用盲打技術(shù)的人,在美國也相繼開始有了專門培養(yǎng)打字員的學(xué)校專門練習(xí)打字。因為每日的練習(xí),大家的擊鍵速度加快,滿足了日常生活的需要。盲打技術(shù)的出現(xiàn)為以后鍵盤的打字打下了基礎(chǔ),在1934年,華盛頓一個叫德沃拉克的人為使左右手能交替擊打更多的單詞,發(fā)明了一種新的排列方法,這個鍵盤可縮短訓(xùn)練周期1/2時間,平均速度提高35%。DVORAK鍵盤布局原則是:1、盡量左右手交

16、替擊打,避免單手連擊。2、越排擊鍵平均移動距離最小。3、排在導(dǎo)鍵位置應(yīng)是最常用的字母。鍵盤是一種方便實用的手動輸入設(shè)備,從這個意義上而言,鍵盤在計算機(jī)輸入設(shè)備領(lǐng)域很難被淘汰。鍵盤是當(dāng)前計算機(jī)輸入設(shè)備中最主要的輸入設(shè)備,隨著科學(xué)技術(shù)的進(jìn)步,可能會發(fā)生的是,鍵盤在未來有可能失去計算機(jī)主要輸入設(shè)備的地位。 從目前的進(jìn)展來看,出現(xiàn)了聲控輸入,手寫輸入和觸摸或點擊輸入等幾種非鍵盤輸入方式,國外正在研發(fā)更先進(jìn)的腦電波識別與輸入技術(shù)。因此,給人一種符合發(fā)展規(guī)律的思維判斷,即將來某一天,鍵盤這種輸入設(shè)備會被更先進(jìn)的輸入設(shè)備淘汰,其實這種前景是值得商榷的。由Magic Cube公司設(shè)計的“Magic Cube”

17、(魔方)激光鍵盤,是一款超酷的產(chǎn)品,可以在任何具有表面平整的地方使用。這種非???,并且有用的鍵盤,可搭載應(yīng)用在幾乎任何有藍(lán)牙的Mac、PC、iPhone、iPad、iPod touch,和Android系統(tǒng)的所有設(shè)備上使用。按照應(yīng)用可以分為臺式機(jī)鍵盤、筆記本電腦鍵盤、工控機(jī)鍵盤,速錄機(jī)鍵盤,雙控鍵盤、超薄鍵盤、手機(jī)鍵盤七大類。在我們生活中,隨處可以看見鍵盤的使用,已經(jīng)到了無處不在的地步,在未來,鍵盤的發(fā)展是可觀的,最常用的就是電腦鍵盤和手機(jī)鍵盤,不管是觸摸式的還是敲打式的,在未來都是不可淘汰的。鍵盤已經(jīng)遍布了我們的生活,以后更是會向更多的方向發(fā)展,因此鍵盤不管在何種情況下,都不會被現(xiàn)實生活所淘

18、汰,只會向更好的方向發(fā)展,把鍵盤技術(shù)發(fā)展的更前衛(wèi)、更先進(jìn)、更方便。按鍵輸入電路大多數(shù)應(yīng)用的主要有兩種:一種是非掃描方式可以判斷多鍵狀態(tài),即允許多鍵同時作用,但這種不適用于大量按鍵情況,所需輸入輸出端口I/O較多。另一種是掃描陣列方式,可以適用于大量按鍵,但不能多鍵同時按下識別3。相對于現(xiàn)在來說,國的鍵盤相關(guān)的技術(shù)與國外的比較,還是有一定的差距的,國的發(fā)展方向正在向國外靠攏,在國外技術(shù)的基礎(chǔ)上,來升級鍵盤的一些其他的功能,開發(fā)蘊(yùn)含在其中的更多的能量,來提高我國在鍵盤掃描領(lǐng)域的一些技術(shù),向高科技的電子產(chǎn)品邁進(jìn)。不管是在技術(shù)上還是質(zhì)量上,我們應(yīng)該追求的是超過國外的技術(shù),讓國人相信中國的產(chǎn)品并不比外國

19、的差,而且相比國外的產(chǎn)品不管是在質(zhì)量上還是產(chǎn)量上,都比外國的好,讓中國的研究走上時尚的尖端,讓國外的人也買我們中國的產(chǎn)品。1.3本課題研究的主要問題人們依靠鍵盤向計算機(jī)輸入各種指令,指揮計算機(jī)工作,依靠鍵盤向計算機(jī)輸入程序、資料,依靠鍵盤修改、調(diào)試程序,人們甚至可以依靠鍵盤來進(jìn)行引人入勝的各式游戲。在高科技快速發(fā)展的今天,我們必須走在高科技尖端,隨著潮流發(fā)展,這樣才不至于被這個快速發(fā)展的時代淘汰,反而是我們要主宰這個世界,開發(fā)高科技,向更新的一個時代邁進(jìn)。本課題是應(yīng)用硬件描述語言VHDL設(shè)計一個鍵盤掃描電路。以FPGA芯片為主機(jī)控制核心的鍵盤掃描電路設(shè)計,該系統(tǒng)具備能夠識別多個按鍵功能。該課題

20、主要解決以下幾個問題:總體方案設(shè)計與論證,分析控制系統(tǒng)工作原理;選擇合適的FPGA芯片系統(tǒng)的硬件設(shè)計;用硬件描述語言VHDL編制系統(tǒng)的軟件與流程圖、并仿真設(shè)計要求。本課題的目的是為了讓學(xué)生通過畢業(yè)設(shè)計,培養(yǎng)學(xué)生綜合運用多學(xué)科理論知識與技能,分析、解決一般工程技術(shù)問題的基本能力,與勇于實踐探索的工程實現(xiàn)意識。第2章鍵盤掃描電路總體設(shè)計采用VHDL硬件描述語言,在FPGA芯片上實現(xiàn)鍵盤掃描系統(tǒng)會用到MAX+PLUS軟件和FPGA芯片,以下主要介紹VHDL硬件描述語言、MAX+PLUS軟件和FPGA芯片。2.1 設(shè)計工具的簡介2.1.1VHDL硬件描述語言VHDL是VHSIC Hardware De

21、scription Language的縮寫,其中VHSIC是Very High Speed Integrate Circuit的縮寫,它是一種硬件描述語言,有非常強(qiáng)大的功能。VHDL已經(jīng)成為一個數(shù)字電路和系統(tǒng)的描述、建模、綜合的工業(yè)國際標(biāo)準(zhǔn),因此在電子產(chǎn)業(yè)界獲得了廣泛的應(yīng)用4。VHDL具有強(qiáng)大的功能,覆蓋面廣,描述能力強(qiáng)5。能支持系統(tǒng)行為級、寄存器傳輸級和邏輯門電路級三個不同層次的設(shè)計,能夠完成從上層到下層(從抽象到具體)逐層描述的結(jié)構(gòu)化設(shè)計思想。VHDL語言中具有許多與數(shù)字電路的結(jié)構(gòu)直接相關(guān)的概念6。VHDL硬件語言是唯一被接納為IEEE標(biāo)準(zhǔn)的語言,也就是說它是數(shù)字系統(tǒng)硬件設(shè)計描述的語言中最

22、為標(biāo)準(zhǔn)的語言7。其主要特點如下:1、具有很強(qiáng)的可移植性;2、能夠?qū)⒃O(shè)計中的錯誤消除在電路系統(tǒng)安裝之前,并檢查設(shè)計系統(tǒng)功能的可行性,說明它有很強(qiáng)的預(yù)測能力;它還有著豐富的庫函數(shù)和模擬仿真語句,隨時都能對設(shè)計進(jìn)行仿真模擬;3、在理解上比較容易,有良好的可讀性,與高級語言接近;4、它的硬件結(jié)構(gòu)與系統(tǒng)設(shè)計無關(guān),有利于工藝的轉(zhuǎn)換;5、它可以把已有的設(shè)計項目作為一個模塊調(diào)用;支持模塊的設(shè)計,可以將大規(guī)模設(shè)計項目分解成很多小項目,;6、針對一個確定的設(shè)計系統(tǒng),可以用EDA工具進(jìn)行優(yōu)化和邏輯綜合,并且自動的能把VHDL硬件描述語言轉(zhuǎn)變化門電路級網(wǎng)表文件;7、設(shè)計靈活,修改方便,同時也便于設(shè)計結(jié)果的交流、保存,

23、產(chǎn)品開發(fā)速度快,成本低。本次在運用VHDL硬件語言進(jìn)行編程、仿真,非常的方便,而且也省了很多的時間,也很容易懂,理解上也比其他的硬件語言容易的多。2.1.2MAX+PLUS的簡介MAX+PLUS是Multiple Array Matrix and Programmable Logic User System的縮寫,是美國Altera公司推出的第三代PLD開發(fā)系統(tǒng),她接受對一個電路設(shè)計的文本描述或圖形描述,使用MAX+PLUS的設(shè)計者不需要器件部的復(fù)雜構(gòu)造,只運用自己熟悉的輸入工具進(jìn)行設(shè)計,由MAX+PLUS將這些設(shè)計自動轉(zhuǎn)化為最終所需的格式它使設(shè)計者能方便地進(jìn)行設(shè)計輸入、快速處理和期間編程。其

24、易學(xué)、易用、高度集成化的特性使得受到廣大用戶的青睞,正被越來越廣泛的應(yīng)用8。MAX+PLUS軟件大致可分為5個模塊:設(shè)計輸入編輯器,HDL綜合器,仿真器,適配器和下載器。用這5個模塊進(jìn)行系統(tǒng)設(shè)計的編輯、編譯、仿真、綜合和芯片編程等功能9。1、硬件描述語言輸入(Text Editor)MAX+PLUSII軟件中有一個集成的文本編輯器,這個編輯器支持AHDL、Verilog和VHDL硬件描述語言的輸入,還有一個模板使輸入程序語言更加便捷,此軟件可以對這些程序語言進(jìn)行編譯,同時形成可以下載的配置數(shù)據(jù),文本編輯器窗口如圖2.1所示:圖2.1文本輸入2、波形編輯器(aveform Editor)在進(jìn)行仿

25、真邏輯電路的動作時,這時候需要在設(shè)計電路的輸入端加入一定波形,同時波形編輯器可以立刻生成和編輯仿真時用的波形(*.SCF文件)文件,用這個編輯器的工具條可以非常容易快捷的生成編輯波形和波形。波形編輯器窗口如圖2.2所示:圖2.2波形編輯器3、符號編輯器(Symbol Editor)符號編輯器是在文本程序運行成功的基礎(chǔ)上,自動生成的電路符號,該編輯器的優(yōu)點是在畫電路圖是只要直接拿出來用就可以了,非常的便捷。電路符號如圖2.3所示:圖2.3電路符號4、開發(fā)系統(tǒng)的特點(1)具有界面的開放性Max+plus支持與Exemplarlogic, Mentor Graphics, Cadence,Viewl

26、ogic,Synplicty等,另外還有其他公司提供的EDA工具的接口。(2)Opencore特征Max+plus軟件還具有開放核的功能特點,允許設(shè)計者們添加自己認(rèn)為有價值意義的宏函數(shù)。(3)模塊化工具設(shè)計者可以從任何設(shè)計輸入和處理以與較驗功能選項中進(jìn)行選擇,這樣就可以使設(shè)計的環(huán)境得到用戶化。(4)硬件描述語言(VHDL)Max+plus軟件支持大多數(shù)VHDL設(shè)計的輸入選項,包括Verilog HDL,VHDL和Altera公司自己開發(fā)的硬件描述語言AHDL。(5)豐富的資源設(shè)計庫Max+plus有著豐富的數(shù)據(jù)庫單元提供給設(shè)計者調(diào)用,其中包括多種最新的參數(shù)化的兆功能(Mage-Function

27、)和很多特殊邏輯功能(Macro-Function)以與74系列所需全部器件。(6)和結(jié)構(gòu)無關(guān)Max+plus系統(tǒng)的Complier支持Altera公司的MAX9000、FLEX6000、FLEX8000、Classic、MAX5000、MAX7000和FLEX10K可編程的邏輯器件,形成世界上僅有的真正的和結(jié)構(gòu)沒有關(guān)系的可編程邏輯設(shè)計的環(huán)境。(7)完全集成化Max+plus的文本輸入、處理與檢驗驗功能全部都在統(tǒng)一的開發(fā)環(huán)境下完成,這樣既能加快動態(tài)調(diào)試,又可以減少開發(fā)所需要的周期。2.1.3FPGA芯片的介紹FPGA(FieldProgrammable Gate Array),即現(xiàn)場可編程門陣

28、列,它是在PAL、GAL、CPLD等可編程器件的基礎(chǔ)上進(jìn)一步發(fā)展的產(chǎn)物。 現(xiàn)在EDA技術(shù)的基本特征是用高級語言描述,并且具有系統(tǒng)級仿真和綜合能力10。電子設(shè)計自動化簡稱EDA,在20世紀(jì)90年代初從計算機(jī)輔助設(shè)計、輔助制造、輔助測試和輔助工程這幾個概念發(fā)展而來的11?,F(xiàn)在EDA技術(shù)的基本就是以計算機(jī)為工具,設(shè)計人員在EDA軟件的平臺上,采用高級硬件描述的語言VHDL完成設(shè)計所需的文件,由計算機(jī)自動地來完成邏輯的編譯、化簡、分割、綜合、優(yōu)化、布局、布線這些功能,再進(jìn)行系統(tǒng)仿真12。EDA技術(shù)是一種以計算機(jī)為基礎(chǔ)核心的工作平臺,是利用電子技術(shù)、計算機(jī)技術(shù)、智能化技術(shù)等多種應(yīng)用學(xué)科的最新成果13。F

29、PGA的一個明顯的特點是它有一個窄輸入的邏輯單元,使用的是分布式互連的方案。FPGA的工作原理 :FPGA采取了邏輯單元陣列LCA(Logic Cell Array)這樣的一個概念,部由三部分組成,包括輸出輸入模塊IOB(Input Output Block)、可配置邏輯模塊CLB(Configurable Logic Block)和部連線(Interconnect)?,F(xiàn)場可編程門陣列(FPGA)是可編程器件,它和傳統(tǒng)邏輯電路以與門陣列(比如PAL,GAL與CPLD器件)比較,F(xiàn)PGA是具有不同的結(jié)構(gòu)。FPGA是用非常小型的查找表法(16×1RAM)來實現(xiàn)組合邏輯的,每一個查找表都要

30、連接到一個D觸發(fā)器的輸入端,觸發(fā)器用來驅(qū)動其他的邏輯電路或是驅(qū)動I/O,這樣就構(gòu)成了既能實現(xiàn)組合邏輯電路的功能,同時又能實現(xiàn)時序邏輯電路功能的基本單元模塊,這些模塊之間都是運用金屬連接線相互連接或是連接到I/O模塊上去的。FPGA的邏輯是向自身靜態(tài)儲存單元加載編程數(shù)據(jù)來實現(xiàn)的,存儲器單元中儲存的值決定了邏輯單元的邏輯功能與各個模塊之間或者是模塊與I/O之間的連接方式,并且能夠最終決定FPGA所能夠?qū)崿F(xiàn)的功能,F(xiàn)PGA允許的編程沒有次數(shù)限制。 一片F(xiàn)PGA就可以實現(xiàn)邏輯功能十分復(fù)雜的邏輯部件甚至一個小型數(shù)字系統(tǒng)。如果將FPGA引入到數(shù)據(jù)采集系統(tǒng)中,無疑會使系統(tǒng)的體積更加小巧,其性能更加優(yōu)越14。

31、FPGA部邏輯設(shè)計的功能分為掃描模塊,編碼模塊,控制模塊和FIFO RAM模塊。因為FPGA基于RAM工藝技術(shù),該器件在使用前需要從外部加載配置數(shù)據(jù),需要一個外置存儲器保存信息,采用可編程的串行配置器件,供電電壓為3.3V。FPGA是一種可編程邏輯器件,它具有良好性能、極高的密度和極大的靈活性,外圍電路具有簡單可靠等特性。解析數(shù)據(jù)流和操作的復(fù)雜應(yīng)用必須要求大量的觸發(fā)器,有利于用來作暫態(tài)數(shù)據(jù)存儲器和流水線寄存器以與寬計數(shù)器和大規(guī)模狀態(tài)機(jī)矢量15。比如,一片F(xiàn)PGA芯片就可替代幾片甚至幾十片標(biāo)準(zhǔn)器件,其用戶可用I/O引腳數(shù)目多達(dá)數(shù)百條16。我們在為一個特定的應(yīng)用選擇FPGA的時候,還有一些問題需要

32、仔細(xì)得考慮過。當(dāng)然為了能夠滿足這個特定的應(yīng)用,先應(yīng)該考慮的是FPGA的部配置,F(xiàn)PGA的邏輯資源包括時鐘分配單元、嵌入的存儲器和多功能的I/O單元,一般情況下,即使具有一樣的邏輯資源的FPGA,但是它們所能產(chǎn)生的部配置并不一定是一樣的。因此選擇好一個合適的又具有足夠的邏輯資源和I/O引腳資源的FPGA,其部一些關(guān)鍵資源的有無對一個特定的設(shè)計是否可能實現(xiàn),對下一步的設(shè)計來說顯得尤為重要了。一個是進(jìn)行設(shè)計的邏輯化簡,再邏輯優(yōu)化,再合并,最后是邏輯分割17。如果將FPGA引入到數(shù)據(jù)采集系統(tǒng)中,無疑會使系統(tǒng)的體積更加小巧,其性能更加優(yōu)越18。FPGA的優(yōu)點有以下幾點:1、引腳多FPGA中除了個別的幾個

33、引腳以外,大部分引腳都與可編程的輸入/輸出模塊IOB相連,都可以根據(jù)需要設(shè)置成輸入端或者輸出端。這樣一來,F(xiàn)PGA器件的最大可能的輸入端數(shù)和輸出端數(shù)要比同等規(guī)模的EPLD多很多,在應(yīng)用方面也來得比較得心應(yīng)手。2、高密度、編程速度快、設(shè)計靈活與其他可編程邏輯器件相比較,F(xiàn)PGA屬于高密度PLD,具有更高的集成度和更強(qiáng)的邏輯實現(xiàn)功能,其集成度可以達(dá)到3萬門/片以上,門延時已小于3ns。FPGA采用CMOS-SRAM工藝制作,其結(jié)構(gòu)和陣列型不同,部由許多獨立的可編程邏輯模塊組成,邏輯模塊之間可以直接靈活地相互連接,具有高密度、編程速度快、設(shè)計靈活和可再配置設(shè)計能力等許多優(yōu)點。這不但在結(jié)構(gòu)上提供給用戶

34、極大的靈活性,而且在互聯(lián)特性上提供了超出其他CPLD更大的自由度。3、可再配置設(shè)計能力FPGA中文名叫做現(xiàn)場可編程門陣列,它的現(xiàn)場體現(xiàn)在現(xiàn)場設(shè)計、現(xiàn)場編程、現(xiàn)場配置、現(xiàn)場修改和現(xiàn)場驗證,從而現(xiàn)場來實現(xiàn)數(shù)字系統(tǒng)的單片化設(shè)計和應(yīng)用。可編程邏輯器件FPGA能完成任何數(shù)字器件的功能,小至簡單的電子產(chǎn)品、數(shù)字集成電路,大至復(fù)雜又很難設(shè)計的高性能CPU。可編程邏輯器件就像是一毫無痕跡的白紙,也像是一堆積木,工程師可以通過傳統(tǒng)的原理電路圖輸入法,或者是利用硬件描述語言來自由地設(shè)計一個數(shù)字系統(tǒng),再通過一些軟件進(jìn)行仿真,這樣就可以再投入實際應(yīng)用前事先了解、驗證所設(shè)計的系統(tǒng)是否是正確的,是否可以投入使用生產(chǎn)。如果

35、存在一定的設(shè)計問題,還可以利用可編程邏輯器件的在線修改能力,隨時地修改設(shè)計再仿真測試。2.2鍵盤掃描電路的基本流程鍵盤掃描電路的方法很多,一般讓人第一個想到就是矩陣式的鍵盤掃描,用的地方也很多,應(yīng)用也非常的廣泛,其實還有很多其他的方法,有傳統(tǒng)式的,有用其他不同語言編寫的程序,可以達(dá)到不同的效果。鍵盤掃描電路的過程是,在未按下任何按鍵時,一直都保持的是循環(huán)掃描的狀態(tài),一直是015循環(huán),當(dāng)檢測到有按鍵按下時,停止循環(huán)掃描,編碼器編出按鍵上的數(shù)值,然后輸出按鍵上的值,因為在按鍵時,會產(chǎn)生一部分抖動,所以要有消抖的過程,之后輸出數(shù)據(jù)。過程如圖2.4所示: 開始循環(huán)掃描 檢測是否有 按鍵按下譯岀按鍵上的

36、數(shù)值消除抖動數(shù)據(jù)輸出是否圖2.4總程序流程圖2.3鍵盤掃描電路的原理鍵盤掃描電路時將各個五個模塊結(jié)合起來,分別由分頻器電路、鍵盤掃描計數(shù)器電路、鍵盤column和row按鍵檢測電路、按鍵抖動消除電路、按鍵編碼電路等組成,結(jié)合成的一個系統(tǒng),分頻器主要的作用是在掃描時起到一個分頻的作用,按鍵掃描計數(shù)器電路達(dá)到一個計數(shù)的功能,按鍵檢測電路是在整個電路中起到檢測的功能,檢測是否有按鍵按下然后輸出,抖動消除電路的功能是消除抖動,避免按鍵時鍵盤產(chǎn)生的按鍵抖動效應(yīng)產(chǎn)生不必要的抖動,按鍵編碼電路的作用是有編碼的功能,在更換不同的按鍵時,由于按鍵值的不同可以進(jìn)行適當(dāng)?shù)母淖?。本次做的事一個計算器的鍵盤,掃描電路的

37、原理框圖如圖2.5所示:Clk 鍵盤編碼Key_validKey_pressed 按鍵檢測 row colclk Key_valid 抖動消除 Key_pressed按鍵碼分頻計數(shù)1KHzclockcount123×456÷789#+0-=圖2.5掃描鍵盤的原理框圖第3章 鍵盤掃描電路的模塊電路設(shè)計3.1分頻器電路分頻器是音箱中的“大腦”,對音質(zhì)的好壞至關(guān)重要。功放輸出的音樂訊號必須經(jīng)過分頻器中的過濾波元件處理,讓各單元特定頻率的訊號通過。要科學(xué)、合理、嚴(yán)謹(jǐn)?shù)卦O(shè)計好音箱之分頻器,才能有效地修飾喇叭單元的不同特性,優(yōu)化組合,使得各單元揚長避短,淋漓盡致地發(fā)揮出各自應(yīng)有的潛能,

38、使各頻段的頻響變得平滑、聲像相位準(zhǔn)確,才能使高、中、低音播放出來的音樂層次分明、合拍、明朗、舒適、寬廣、自然的音質(zhì)效果。分頻器本質(zhì)上是由電容器和電感線圈構(gòu)成的LC濾波網(wǎng)絡(luò),高音通道是高通濾波器,它只讓高頻信號通過而阻止低頻信號;低音通道正好相反,它只讓低音通過而阻止高頻信號;中音通道則是一個帶通濾波器,除了一低一高兩個分頻點之間的頻率可以通過,高頻成份和低頻成份都將被阻止。在實際的分頻器中,有時為了平衡高、低音單元之間的靈敏度差異,還要加入衰減電阻;另外,有些分頻器中還加入了由電阻、電容構(gòu)成的阻抗補(bǔ)償網(wǎng)絡(luò),其目的是使音箱的阻抗曲線心理平坦一些,以便于功放驅(qū)動。假設(shè)系統(tǒng)由一個輸出頻率為3.684

39、MHz晶振提供時鐘信號,則鍵盤掃描電路的輸入時鐘信號clk為3.684MHz。由于鍵盤掃描不需要那么高的頻率,所以現(xiàn)在設(shè)計一個分頻電路將頻率降低為1khz。鍵盤掃描電路測試時采用輸入為100khz的信號,所以仿真波形如圖3.1所示:圖3.1分頻器電路仿真的波形由圖可以看出clk為時鐘脈沖,scan_f為掃描頻率,由圖可以看出在第101處會有一個分頻,達(dá)到了分頻的效果,可見分頻器所起到了一個分頻的作用。因為MAX+PLUS軟件的強(qiáng)大,可以直接得出電路的電路符號,clk為一個時鐘脈沖,作為分頻器電路的輸入,scan_f為分頻器電路的輸出,q不輸出也不輸入,只是作為一個端口,MAX+PLUS軟件自動

40、生成電路符號,分頻器電路的電路符號如圖3.2所示:圖3.2分頻器電路符號3.2鍵盤掃描計數(shù)器電路掃描技術(shù)器電路以1khz分頻器電路的輸出為clock,按鍵(key_pressed)為使能鍵,當(dāng)使用者尚未按下鍵盤時,key_pressed=1,此時由0到15反復(fù)計數(shù),并輸出計數(shù)值作為按鍵檢測電路的輸入掃描鍵盤,直到使用者按下鍵盤時key_pressed=0,計數(shù)器停止持續(xù)輸出計數(shù)值。運行該電路的程序代碼,其仿真結(jié)果如圖3.3所示:圖3.3 鍵盤掃描計數(shù)器電路仿真的波形從圖3.3可以看出,當(dāng)沒有按鍵按下時,掃描計數(shù)器是按115反復(fù)計數(shù)的,比如圖中當(dāng)使用者按下“1”(對應(yīng)的十進(jìn)制編碼為14)的按鍵時

41、,就保持這種狀態(tài),當(dāng)輸入的scan_f和使能鍵key_pressed都為高電平時,它又繼續(xù)掃描,當(dāng)又有按鍵按下時,又保持另一種狀態(tài),仿真波形如圖3.4所示:圖3.4 仿真波形同時也可以得到掃描計數(shù)器的電路符號,這個電路有3個輸入端,分別是clk、scan_f、key_pressed,有1個輸出端,輸出端為scan_cnt,Clk是分頻器電路的輸出端。得到的掃描技術(shù)器的電路符號如圖3.5所示:圖3.5掃描計數(shù)器電路符號3.3按鍵檢測電路在尚未按下任何按鍵時,一直都是循環(huán)計數(shù),按鍵檢測時按行逐一掃描鍵盤按鈕,按鍵的行用變量row表示,列用變量col表示,16個按鍵的編碼方式如表3.1所示:表3.1

42、 編碼方式計數(shù)輸入Row col0000Row1 col1掃描第一行鍵盤0001Row1 col20010Row1 col30011Row1 col40100Row2 col1掃描第二行鍵盤0101Row2 col20110Row2 col30111Row2 col41111Row4 col4當(dāng)鍵盤輸入到按鍵檢測電路信號col的每一位值均為1,此時鍵盤無論掃描到哪個鍵,均使按鍵使能位(key_pressed)為1,表示檢測到尚未有鍵按下。當(dāng)使用者按下鍵盤按鈕,則鍵盤輸入到按鍵檢測電路col的某一位值為0,鍵盤掃描到此鍵時,則key_pressed=0表示檢測到已按鍵同時輸出行的值。根據(jù)該電路的

43、程序代碼,其仿真波形如圖3.6所示:圖3.6按鍵檢測電路仿真波形圖3.6中當(dāng)col為1111表明無鍵按下,所以對應(yīng)輸出為0,當(dāng)col為1011,表示第三列有鍵按下,而行掃描結(jié)果按下的鍵在第二行,因為scan_cnt取值為4、5、6、7,所以可以判斷按下的鍵為第二行第三列,即為第6鍵,所以6的下方key_pressed值為0。也很方便的得到了按鍵檢測電路的電路符號,該電路一共有2個輸入,分別為col和scan_cnt,有2個輸出端,分別為row和key_pressed。電路符號如圖3.7所示:圖3.7 按鍵檢測電路符號3.4按鍵抖動消除電路消抖電路可以看成是具有倒數(shù)功能的計數(shù)器,主要目的是為了盡

44、量避免因為按鍵時鍵盤所帶來的抖動使key_pressed產(chǎn)生不必要的抖動變化,因而造成計數(shù)器重復(fù)統(tǒng)計按鍵次數(shù)的結(jié)果。所以只需要把key_pressed作為計數(shù)器的重置輸入,使計數(shù)器只有在使用者按下鍵盤時,在key_pressed=0時間足夠長的一次使重置無動作,而計數(shù)器開始倒計數(shù),自然可將key_pressed在短時間變?yōu)?的情況濾除掉。其仿真波形如圖3.8所示:圖3.8按鍵抖動消除電路的仿真波形同時得到按鍵抖動消除電路的電路符號,按鍵抖動消除電路有3個輸入端口,分別為clk、scan_f和key_pressed,一個輸出端口為key_vaild,在該電路中起到輸出的作用。按鍵抖動消除電路符號

45、如圖3.9所示:圖3.9按鍵抖動消除電路符號3.5 鍵盤編碼電路編碼是按下面表格中相對應(yīng)來編碼的,比如“0”代表“1”,“3”代表“×”,一一對應(yīng)來編碼的,詳見如表3.2所示:表3.2鍵盤編碼表0123456789101112131415123×456/789#+0-=在單片機(jī)應(yīng)用系統(tǒng)中,實現(xiàn)數(shù)據(jù)的輸入、傳達(dá)命令的功能,是人工干預(yù)的主要手段。鍵盤可以分成兩大類:非編碼鍵盤和編碼鍵盤。編碼鍵盤指的是由硬件邏輯電路完成必要的按鍵識別工作和可靠的措施。當(dāng)每按一次鍵時,鍵盤就會自動顯示被按鍵的讀數(shù),同時還會產(chǎn)生脈沖通知微處理器,一般情況下還會出現(xiàn)同時按鍵保護(hù)和反彈跳的功能。此鍵盤還

46、是比較容易使用的,但是硬件部分還是比較復(fù)雜的,該電路用的是編碼鍵盤。鍵盤編碼電路是在鍵盤上以015計數(shù)的方式掃描,但是015只是鍵盤位置的代號,并非鍵盤上真正的按鍵值,所以要設(shè)計一個鍵盤編碼電路,而且在更換不同的鍵盤時,由于按鍵值的不同可以進(jìn)行適當(dāng)?shù)母淖儭fI盤編碼電路的仿真如圖3.10所示:圖3.10鍵盤編碼電路仿真波形從圖中可以看出掃描時從015計數(shù)的方式掃描,注意015不是讀出的值,而是按鍵的代號,這就是設(shè)計鍵盤編碼電路的目的。同時,可以很方便的得出鍵盤編碼電路的電路符號,該鍵盤編碼電路中,有2個輸入端,分別是scan_cnt和clk,同時該電路還有一個輸出端是bianma,還有一個端口的

47、key_valid是中間變量,鍵盤編碼電路的電路符號如圖3.11所示:圖3.11 鍵盤編碼電路符號3.6 掃描電路總電路圖掃描電路共有5個子電路組成的,這個電路共有2個輸入項(時鐘脈沖為clk,鍵盤的列輸入為col),4個輸出項(鍵盤的行輸出為row,掃描頻率為scan_f,按鍵確定信號為key_valid,按鍵值為bianma)。首先,將3.686MHz輸入信號分頻成1khz,此頻率作為鍵盤掃描的頻率。計數(shù)器的計數(shù)值輸出到按鍵檢測電路,檢測按鍵是否有被使用者按下,同時輸出到編碼電路對鍵盤數(shù)值進(jìn)行編碼。當(dāng)檢測電路檢測到有按鍵按下時,檢測電路的key_pressed將為0,同時輸出到掃描電路使計

48、數(shù)停止,與此同時抖動消除電路在進(jìn)行確認(rèn)到有使用者正確按鍵后,輸出按鍵確定(key_valid)。掃描電路的電路圖如圖3.12所示:圖3.12鍵盤掃描總電路圖第4章 頂層設(shè)計4.1端口定義定義端口clk和col為輸入端口后,將5個子程序進(jìn)行整合,此時就有2個輸出的端口,分別為row和bianma,這個整合的過程需要用到component映射的編程方法,將5個子程序整合起來,程序如下:ARCHITECTURE arc OF saomiaodian ISsignal scan_cnt: std_logic_vector(3 downto 0);signal key_pressed : std_log

49、ic;signal scan_f : std_logic;signal key_valid : std_logic;component fpq100to1PORT( clk : in std_logic; -clock scan_f : out std_logic; q : buffer std_logic_vector(osc_bit-1) downto 0 ); END component;component smjsqPORT( clk : in std_logic; scan_f : in std_logic; key_pressed : in std_logic; scan_cnt

50、: out std_logic_vector(3 downto 0);END component;component jiancePORT( col : in std_logic_vector(3 downto 0); scan_cnt : in std_logic_vector(3 downto 0); row : out std_logic_vector(3 downto 0); key_pressed : out std_logic);END component;component xiaodouPORT( key_pressed : in std_logic; -key_pressed

51、? clk : in std_logic; -clock for synchrony scan_f : in std_logic; -1khz clock key_valid : out std_logic);-key_valid?END component;component bianma1port( scan_cnt : in std_logic_vector(3 downto 0); clk , key_valid : in std_logic; bianma : out std_logic_vector(3 downto 0);END component;BEGINU1:fpq100t

52、o1 port map (clk , scan_f);U2:smjsq port map (clk , scan_f, key_pressed , scan_cnt );U3:jiance port map (col , scan_cnt , row , key_pressed );U4:xiaodou port map (key_pressed , clk , scan_f , key_valid );U5:bianma1 port map (scan_cnt , clk , key_valid , bianma );END arc;4.2仿真結(jié)果將5個子程序整合后的總程序進(jìn)行編程并仿真,就

53、可以得到仿真波形,從仿真波形中很清楚的可以看到輸入所對應(yīng)的輸出值與程序中設(shè)定的是一樣的。仿真波形如圖4.1所示:4.1鍵盤掃描電路仿真波形4.3電路符號在得到仿真波形的同時也可以生成電路符號,這個電路符號可以很清楚地看到按鍵編程整合后的整個按鍵圖,從圖中可以看到有兩個輸入端口,分別為clk和col,也有兩個輸出端口,分別為row和bianma,總按鍵芯片圖如圖4.2所示:圖4.2總按鍵芯片圖第5章 軟件調(diào)試5.1 分頻器電路中在所有的程序設(shè)計中,都是用VHDL硬件語言編程的,經(jīng)過調(diào)試然后仿真,在程序不正確的情況下,查找問題,最終解決問題,在用VHDL硬件語言編程的過程中,都是由實體說明和結(jié)構(gòu)體

54、兩部分組成的,實體主要是用來說明實體的外部特征,結(jié)構(gòu)體描述的是設(shè)計的行為和結(jié)構(gòu),指定了輸入和輸出之間的行為。entity fpq100to1 isgeneric (osc_f : integer := 3686 ; osc_bit : integer := 12);-generic (osc_f : integer := 100 ; osc_bit : integer := 7);-for testingport( clk : in std_logic; -clock scan_f : out std_logic;end fpq100to1;在分頻器電路中,generic是一個類屬語句,其后面

55、跟的是參數(shù),在100處達(dá)到分頻,port后面是端口名,clk是輸入端,scan_f是輸出端,此程序是錯誤的,運行如圖5.1所示:圖5.1分頻器電路仿真錯誤圖經(jīng)過程序調(diào)試,錯誤的修改,終于把程序的錯誤之處解決了,定義的端口程序是:entity fpq100to1 is- generic (osc_f : integer := 3686 ; -osc_bit : integer := 12);generic (osc_f : integer := 100 ; osc_bit : integer := 7);-for testingport( clk : in std_logic; -clock scan_f

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論