版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、江西制造職業(yè)技術(shù)學(xué)院信息工程系08級(jí)畢 業(yè) 論 文姓 名: 江 太 平 班 級(jí): 08通信電子 設(shè)計(jì)題目:基于FPGA的PS/2鍵盤鼠標(biāo)控制電子琴 指導(dǎo)教師: 吳 康 二一一年五月目錄第一章 FPGA簡介1.1 FPGA背景1.2 FPGA芯片結(jié)構(gòu)1.3 FPGA的基本特點(diǎn)第二章 FPGA工作原理2.1 查找表(Look-Up-Table)的原理與結(jié)構(gòu)2.2 FPGA工作原理第三章 PS2鍵盤通信3.1 PS2 背景3.2 PS2鍵盤通信3.3 VGA原理第四章 PS2鍵盤控制模型電子琴頂層電路的設(shè)計(jì) 4.1 PS2鍵盤控制電子琴程序結(jié)論、參考文獻(xiàn)第一章 FPGA簡介1.1 FPGA背景FPG
2、A主要生產(chǎn)廠商1、Altera 2、Xilinx 3、Actel 4、Lattice 其中Altera作為世界老牌可編程邏輯器件的廠家,是當(dāng)前世界范圍內(nèi)市場占有率最大的廠家,它和Xilinx主要生產(chǎn)一般用途FPGA,其主要產(chǎn)品采用RAM工藝。Actel主要提供非易失性FPGA,產(chǎn)品主要基于反熔絲工藝和FLASH工藝。 目前以硬件描述語言(Verilog 或 VHDL)所完成的電路設(shè)計(jì),可以經(jīng)過簡單的綜合與布局,快速的燒錄至 FPGA 上進(jìn)行測試,是現(xiàn)代 IC 設(shè)計(jì)驗(yàn)證的技術(shù)主流。這些可編輯元件可以被用來實(shí)現(xiàn)一些基本的邏輯門電路(比如AND、OR、XOR、NOT)或者更復(fù)雜一些的組合功能比如解碼
3、器或數(shù)學(xué)方程式。在大多數(shù)的FPGA里面,這些可編輯的元件里也包含記憶元件例如觸發(fā)器(Flipflop)或者其他更加完整的記憶塊。 系統(tǒng)設(shè)計(jì)師可以根據(jù)需要通過可編輯的連接把FPGA內(nèi)部的邏輯塊連接起來,就好像一個(gè)電路試驗(yàn)板被放在了一個(gè)芯片里。一個(gè)出廠后的成品FPGA的邏輯塊和連接可以按照設(shè)計(jì)者而改變,所以FPGA可以完成所需要的邏輯功能。 FPGA一般來說比ASIC(專用集成芯片)的速度要慢,無法完成復(fù)雜的設(shè)計(jì),而且消耗更多的電能。但是他們也有很多的優(yōu)點(diǎn)比如可以快速成品,可以被修改來改正程序中的錯(cuò)誤和更便宜的造價(jià)。廠商也可能會(huì)提供便宜的但是編輯能力差的FPGA。因?yàn)檫@些芯片有比較差的可編輯能力,
4、所以這些設(shè)計(jì)的開發(fā)是在普通的FPGA上完成的,然后將設(shè)計(jì)轉(zhuǎn)移到一個(gè)類似于ASIC的芯片上。另外一種方法是用CPLD(復(fù)雜可編程邏輯器件備)。FPGA采用了邏輯單元陣列LCA(Logic Cell Array)這樣一個(gè)概念,內(nèi)部包括可配置邏輯模塊CLB(Configurable Logic Block)、輸出輸入模塊IOB(Input Output Block)和內(nèi)部連線(Interconnect)三個(gè)部分。 1.2 FPGA芯片結(jié)構(gòu)目前主流的FPGA仍是基于查找表技術(shù)的,已經(jīng)遠(yuǎn)遠(yuǎn)超出了先前版本的基本性能,并且整合了常用功能(如RAM、時(shí)鐘管理和DSP)的硬核(ASIC型)模塊。如圖1-1所示(
5、注:圖1-1只是一個(gè)示意圖,實(shí)際上每一個(gè)系列的FPGA都有其相應(yīng)的內(nèi)部結(jié)構(gòu)),F(xiàn)PGA芯片主 要由6部分完成,分別為:可編程輸入輸出單元、基本可編程邏輯單元、完整的時(shí)鐘管理、嵌入塊式RAM、豐富的布線資源、內(nèi)嵌的底層功能單元和內(nèi)嵌專用硬件模塊。 圖1-1 FPGA芯片的內(nèi)部結(jié)構(gòu) FPGA芯片的內(nèi)部結(jié)構(gòu)每個(gè)模塊的功能如下: 1 可編程輸入輸出單元(IOB) 可編程輸入/輸出單元簡稱I/O單元,是芯片與外界電路的接口部分,完成不同電氣特性下對(duì)輸入/輸出信號(hào)的驅(qū)動(dòng)與匹配要求,其示意結(jié)構(gòu)如圖1-2所示。 FPGA內(nèi)的I/O按組分類,每組都能夠獨(dú)立地支持不同的I/O標(biāo)準(zhǔn)。通過軟件的靈活配置,可適配不同的
6、電氣標(biāo)準(zhǔn)與I/O物理特性,可以調(diào)整驅(qū)動(dòng)電流的大小,可以改變上、下拉電阻。目前,I/O口的頻率也越來越高,一些高端的FPGA通過DDR寄存器技術(shù)可以支持高達(dá)2Gbps的數(shù)據(jù)速率。 圖1-2 典型的IOB內(nèi)部結(jié)構(gòu)示意圖 典型的IOB內(nèi)部結(jié)構(gòu)示意圖外部輸入信號(hào)可以通過IOB模塊的存儲(chǔ)單元輸入到FPGA的內(nèi)部,也可以直接輸入FPGA 內(nèi)部。當(dāng)外部輸入信號(hào)經(jīng)過IOB模塊的存儲(chǔ)單元輸入到FPGA內(nèi)部時(shí),其保持時(shí)間(Hold Time)的要求可以降低,通常默認(rèn)為0。 為了便于管理和適應(yīng)多種電器標(biāo)準(zhǔn),F(xiàn)PGA的IOB被劃分為若干個(gè)組(bank),每個(gè)bank的接口標(biāo)準(zhǔn)由其接口電壓VCCO決定,一個(gè)bank只能
7、有 一種VCCO,但不同bank的VCCO可以不同。只有相同電氣標(biāo)準(zhǔn)的端口才能連接在一起,VCCO電壓相同是接口標(biāo)準(zhǔn)的基本條件。 2 可配置邏輯塊(CLB) CLB是FPGA內(nèi)的基本邏輯單元。CLB的實(shí)際數(shù)量和特性會(huì)依器件的不同而不同,但是每個(gè)CLB都包含一個(gè)可配置開關(guān)矩陣,此矩陣由4或6個(gè)輸入、一些 選型電路(多路復(fù)用器等)和觸發(fā)器組成。 開關(guān)矩陣是高度靈活的,可以對(duì)其進(jìn)行配置以便處理組合邏輯、移位寄存器或RAM。在Xilinx公司的FPGA器件中,CLB由多個(gè)(一般為4個(gè)或2個(gè))相同的Slice和附加邏輯構(gòu)成,如圖1-3所示。每個(gè)CLB模塊不僅可以用于實(shí)現(xiàn)組合邏輯、時(shí)序邏輯,還可以配置為分
8、布式RAM和分布式ROM。 圖1-3 典型的CLB結(jié)構(gòu)示意圖 典型的CLB結(jié)構(gòu)示意圖Slice是Xilinx公司定義的基本邏輯單位,其內(nèi)部結(jié)構(gòu)如圖1-4所示,一個(gè)Slice由兩個(gè)4輸入的函數(shù)、進(jìn)位邏輯、算術(shù)邏輯、存儲(chǔ)邏輯和函數(shù)復(fù)用器組成。算術(shù)邏輯包括一個(gè)異或門(XORG)和一個(gè)專用與門(MULTAND),一個(gè)異或門可以使一個(gè)Slice實(shí)現(xiàn) 2bit全加操作,專用與門用于提高乘法器的效率;進(jìn)位邏輯由專用進(jìn)位信號(hào)和函數(shù)復(fù)用器(MUXC)組成,用于實(shí)現(xiàn)快速的算術(shù)加減法操作;4輸入函數(shù)發(fā)生 器用于實(shí)現(xiàn)4輸入LUT、分布式RAM或16比特移位寄存器(Virtex-5系列芯片的Slice中的兩個(gè)輸入函數(shù)為
9、6輸入,可以實(shí)現(xiàn)6輸入LUT或 64比特移位寄存器);進(jìn)位邏輯包括兩條快速進(jìn)位鏈,用于提高CLB模塊的處理速度。 圖1-4 典型的4輸入Slice結(jié)構(gòu)示意圖 典型的4輸入Slice結(jié)構(gòu)示意圖3 數(shù)字時(shí)鐘管理模塊(DCM) 業(yè)內(nèi)大多數(shù)FPGA均提供數(shù)字時(shí)鐘管理(Xilinx的全部FPGA均具有這種特性)。Xilinx推出最先進(jìn)的FPGA提供數(shù)字時(shí)鐘管理和相位環(huán)路鎖定。相位環(huán)路鎖定能夠提供精確的時(shí)鐘綜合,且能夠降低抖動(dòng),并實(shí)現(xiàn)過濾功能。 4 嵌入式塊RAM(BRAM) 大多數(shù)FPGA都具有內(nèi)嵌的塊RAM,這大大拓展了FPGA的應(yīng)用范圍和靈活性。塊RAM可被配置為單端口RAM、雙端口RAM、內(nèi)容地址
10、存儲(chǔ)器 (CAM)以及FIFO等常用存儲(chǔ)結(jié)構(gòu)。RAM、FIFO是比較普及的概念,在此就不冗述。CAM存儲(chǔ)器在其內(nèi)部的每個(gè)存儲(chǔ)單元中都有一個(gè)比較邏輯,寫入 CAM中的數(shù)據(jù)會(huì)和內(nèi)部的每一個(gè)數(shù)據(jù)進(jìn)行比較,并返回與端口數(shù)據(jù)相同的所有數(shù)據(jù)的地址,因而在路由的地址交換器中有廣泛的應(yīng)用。除了塊RAM,還可以將 FPGA中的LUT靈活地配置成RAM、ROM和FIFO等結(jié)構(gòu)。在實(shí)際應(yīng)用中,芯片內(nèi)部塊RAM的數(shù)量也是選擇芯片的一個(gè)重要因素。 單片塊RAM的容量為18k比特,即位寬為18比特、深度為1024,可以根據(jù)需要改變其位寬和深度,但要滿足兩個(gè)原則:首先,修改后的容量(位寬 深度)不能大于18k比特;其次,位
11、寬最大不能超過36比特。當(dāng)然,可以將多片塊RAM級(jí)聯(lián)起來形成更大的RAM,此時(shí)只受限于芯片內(nèi)塊RAM的數(shù)量,而 不再受上面兩條原則約束。 5 豐富的布線資源 布線資源連通FPGA內(nèi)部的所有單元,而連線的長度和工藝決定著信號(hào)在連線上的驅(qū)動(dòng)能力和傳輸速度。FPGA芯片內(nèi)部有著豐富的布線資源,根據(jù)工藝、長度、寬度和分布位置的不同而劃分為類不同的類別。第一類是全局布線資源,用于芯片內(nèi)部全局時(shí)鐘和全局復(fù)位/置位的布線;第二類是長線資源,用以完成芯片 Bank間的高速信號(hào)和第二全局時(shí)鐘信號(hào)的布線;第三類是短線資源,用于完成基本邏輯單元之間的邏輯互連和布線;第四類是分布式的布線資源,用于專有時(shí)鐘、復(fù)位等控制
12、信號(hào)線。 在實(shí)際中設(shè)計(jì)者不需要直接選擇布線資源,布局布線器可自動(dòng)地根據(jù)輸入邏輯網(wǎng)表的拓?fù)浣Y(jié)構(gòu)和約束條件選擇布線資源來連通各個(gè)模塊單元。從本質(zhì)上講,布線資源的使用方法和設(shè)計(jì)的結(jié)果有密切、直接的關(guān)系。 6 底層內(nèi)嵌功能單元 內(nèi)嵌功能模塊主要指DLL(Delay Locked Loop)、PLL(Phase Locked Loop)、DSP和CPU等軟處理核(SoftCore)。現(xiàn)在越來越豐富的內(nèi)嵌功能單元,使得單片F(xiàn)PGA成為了系統(tǒng)級(jí)的設(shè)計(jì)工具,使其具備了軟硬件聯(lián)合設(shè)計(jì)的能力,逐步向SOC平臺(tái)過渡。 DLL和PLL具有類似的功能,可以完成時(shí)鐘高精度、低抖動(dòng)的倍頻和分頻,以及占空比調(diào)整和移相等功能。
13、Xilinx公司生產(chǎn)的芯片上集成了 DLL,Altera公司的芯片集成了PLL,Lattice公司的新型芯片上同時(shí)集成了PLL和DLL。PLL 和DLL可以通過IP核生成的工具方便地進(jìn)行管理和配置。DLL的結(jié)構(gòu)如圖1-5所示。 圖1-5 典型的DLL模塊示意圖 典型的DLL模塊示意圖7. 內(nèi)嵌專用硬核 內(nèi)嵌專用硬核是相對(duì)底層嵌入的軟核而言的,指FPGA處理能力強(qiáng)大的硬核(Hard Core),等效于ASIC電路。為了提高FPGA性能,芯片生產(chǎn)商在芯片內(nèi)部集成了一些專用的硬核。例如:為了提高FPGA的乘法速度,主流的FPGA 中都集成了專用乘法器;為了適用通信總線與接口標(biāo)準(zhǔn),很多高端的FPGA內(nèi)
14、部都集成了串并收發(fā)器(SERDES),可以達(dá)到數(shù)十Gbps的收發(fā)速度。 Xilinx公司的高端產(chǎn)品不僅集成了Power PC系列CPU,還內(nèi)嵌了DSP Core模塊,其相應(yīng)的系統(tǒng)級(jí)設(shè)計(jì)工具是EDK和Platform Studio,并依此提出了片上系統(tǒng)(System on Chip)的概念。通過PowerPC、Miroblaze、Picoblaze等平臺(tái),能夠開發(fā)標(biāo)準(zhǔn)的DSP處理器及其相關(guān)應(yīng)用,達(dá)到SOC的開發(fā)目 的。 1.3 FPGA的基本特點(diǎn)FPGA的基本特點(diǎn):1)采用FPGA設(shè)計(jì)ASIC電路(專用集成電路),用戶不需要投片生產(chǎn),就能得到合用的芯片。 2)FPGA可做其它全定制或半定制ASI
15、C電路的中試樣片。 3)FPGA內(nèi)部有豐富的觸發(fā)器和IO引腳。 4)FPGA是ASIC電路中設(shè)計(jì)周期最短、開發(fā)費(fèi)用最低、風(fēng)險(xiǎn)最小的器件之一。 5) FPGA采用高速CHMOS工藝,功耗低,可以與CMOS、TTL電平兼容。 可以說,F(xiàn)PGA芯片是小批量系統(tǒng)提高系統(tǒng)集成度、可靠性的最佳選擇之一。 FPGA是由存放在片內(nèi)RAM中的程序來設(shè)置其工作狀態(tài)的,因此,工作時(shí)需要對(duì)片內(nèi)的RAM進(jìn)行編程。用戶可以根據(jù)不同的配置模式,采用不同的編程方式。 加電時(shí),F(xiàn)PGA芯片將EPROM中數(shù)據(jù)讀入片內(nèi)編程RAM中,配置完成后,F(xiàn)PGA進(jìn)入工作狀態(tài)。掉電后,F(xiàn)PGA恢復(fù)成白片,內(nèi)部邏輯關(guān)系消失,因此,F(xiàn)PGA能夠反
16、復(fù)使用。FPGA的編程無須專用的FPGA編程器,只須用通用的EPROM、PROM編程器即可。當(dāng)需要修改FPGA功能時(shí),只需換一片EPROM即可。這樣,同一片F(xiàn)PGA,不同的編程數(shù)據(jù),可以產(chǎn)生不同的電路功能。因此,F(xiàn)PGA的使用非常靈活。 FPGA配置模式FPGA有多種配置模式:并行主模式為一片F(xiàn)PGA加一片EPROM的方式;主從模式可以支持一片PROM編程多片F(xiàn)PGA;串行模式可以采用串行PROM編程FPGA;外設(shè)模式可以將FPGA作為微處理器的外設(shè),由微處理器對(duì)其編程。 如何實(shí)現(xiàn)快速的時(shí)序收斂、降低功耗和成本、優(yōu)化時(shí)鐘管理并降低FPGA與PCB并行設(shè)計(jì)的復(fù)雜性等問題,一直是采用FPGA的系統(tǒng)
17、設(shè)計(jì)工程師需要考慮的關(guān)鍵問題。如今,隨著FPGA向更高密度、更大容量、更低功耗和集成更多IP的方向發(fā)展,系統(tǒng)設(shè)計(jì)工程師在從這些優(yōu)異性能獲益的同時(shí),不得不面對(duì)由于FPGA前所未有的性能和能力水平而帶來的新的設(shè)計(jì)挑戰(zhàn)。 例如,領(lǐng)先FPGA廠商Xilinx最近推出的Virtex-5系列采用65nm工藝,可提供高達(dá)33萬個(gè)邏輯單元、1,200個(gè)I/O和大量硬IP塊。超大容量和密度使復(fù)雜的布線變得更加不可預(yù)測,由此帶來更嚴(yán)重的時(shí)序收斂問題。此外,針對(duì)不同應(yīng)用而集成的更多數(shù)量的邏輯功能、DSP、嵌入式處理和接口模塊,也讓時(shí)鐘管理和電壓分配問題變得更加困難。 幸運(yùn)地是,F(xiàn)PGA廠商、EDA工具供應(yīng)商正在通力
18、合作解決65nm FPGA獨(dú)特的設(shè)計(jì)挑戰(zhàn)。不久以前,Synplicity與Xilinx宣布成立超大容量時(shí)序收斂聯(lián)合工作小組,旨在最大程度地幫助系統(tǒng)設(shè)計(jì)工程師以更快、更高效的方式應(yīng)用65nm FPGA器件。設(shè)計(jì)軟件供應(yīng)商Magma推出的綜合工具Blast FPGA能幫助建立優(yōu)化的布局,加快時(shí)序的收斂。 最近FPGA的配置方式已經(jīng)多元化!第二章 FPGA工作原理FPGA工作原理FPGA采用了邏輯單元陣列LCA(Logic Cell Array)這樣一個(gè)概念,內(nèi)部包括可配置邏輯模塊CLB(Configurable Logic Block)、輸出輸入模塊IOB(Input Output Block)和
19、內(nèi)部連線(Interconnect)三個(gè)部分。 2.1 查找表(Look-Up-Table)的原理與結(jié)構(gòu)采用這種結(jié)構(gòu)的PLD芯片我們也可以稱之為FPGA:如altera的ACEX,APEX系列,xilinx的Spartan,Virtex系列等。查找表(Look-Up-Table)簡稱為LUT,LUT本質(zhì)上就是一個(gè)RAM。目前FPGA中多使用4輸入的LUT,所以每一個(gè)LUT可以看成一個(gè)有4位地址線的16x1的RAM。當(dāng)用戶通過原理圖或HDL語言描述了一個(gè)邏輯電路以后,PLD/FPGA開發(fā)軟件會(huì)自動(dòng)計(jì)算邏輯電路的所有可能的結(jié)果,并把結(jié)果事先寫入RAM,這樣,每輸入一個(gè)信號(hào)進(jìn)行邏輯運(yùn)算就等于輸入一個(gè)
20、地址進(jìn)行查表,找出地址對(duì)應(yīng)的內(nèi)容,然后輸出即可。下面是一個(gè)4輸入與門的例子,實(shí)際邏輯電路LUT的實(shí)現(xiàn)方式a,b,c,d 輸入邏輯輸出地址RAM中存儲(chǔ)的內(nèi)容00000000000001000010.0.01111111111一.基于查找表(LUT)的FPGA的結(jié)構(gòu)我們看一看xilinx Spartan-II的內(nèi)部結(jié)構(gòu),如下圖:xilinx Spartan-II 芯片內(nèi)部結(jié)構(gòu)Slices結(jié)構(gòu)Spartan-II主要包括CLBs,I/O塊,RAM塊和可編程連線(未表示出)。在spartan-II中,一個(gè)CLB包括2個(gè)Slices,每個(gè)slices包括兩個(gè)LUT,兩個(gè)觸發(fā)器和相關(guān)邏輯。 Slices可
21、以看成是SpartanII實(shí)現(xiàn)邏輯的最基本結(jié)構(gòu) (xilinx其他系列,如SpartanXL,Virtex的結(jié)構(gòu)與此稍有不同,具體請(qǐng)參閱數(shù)據(jù)手冊(cè))altera的FLEX/ACEX等芯片的結(jié)構(gòu)如下圖:altera FLEX/ACEX 芯片的內(nèi)部結(jié)構(gòu)邏輯單元(LE)內(nèi)部結(jié)構(gòu)FLEX/ACEX的結(jié)構(gòu)主要包括LAB,I/O塊,RAM塊(未表示出)和可編程行/列連線。在FLEX/ACEX中,一個(gè)LAB包括8個(gè)邏輯單元(LE),每個(gè)LE包括一個(gè)LUT,一個(gè)觸發(fā)器和相關(guān)的相關(guān)邏輯。LE是FLEX/ACEX芯片實(shí)現(xiàn)邏輯的最基本結(jié)構(gòu)(altera其他系列,如APEX的結(jié)構(gòu)與此基本相同,具體請(qǐng)參閱數(shù)據(jù)手冊(cè))二.查
22、找表結(jié)構(gòu)的FPGA邏輯實(shí)現(xiàn)原理我們還是以這個(gè)電路的為例:A,B,C,D由FPGA芯片的管腳輸入后進(jìn)入可編程連線,然后作為地址線連到到LUT,LUT中已經(jīng)事先寫入了所有可能的邏輯結(jié)果,通過地址查找到相應(yīng)的數(shù)據(jù)然后輸出,這樣組合邏輯就實(shí)現(xiàn)了。該電路中D觸發(fā)器是直接利用LUT后面D觸發(fā)器來實(shí)現(xiàn)。時(shí)鐘信號(hào)CLK由I/O腳輸入后進(jìn)入芯片內(nèi)部的時(shí)鐘專用通道,直接連接到觸發(fā)器的時(shí)鐘端。觸發(fā)器的輸出與I/O腳相連,把結(jié)果輸出到芯片管腳。這樣PLD就完成了圖3所示電路的功能。(以上這些步驟都是由軟件自動(dòng)完成的,不需要人為干預(yù))這個(gè)電路是一個(gè)很簡單的例子,只需要一個(gè)LUT加上一個(gè)觸發(fā)器就可以完成。對(duì)于一個(gè)LUT無
23、法完成的的電路,就需要通過進(jìn)位邏輯將多個(gè)單元相連,這樣FPGA就可以實(shí)現(xiàn)復(fù)雜的邏輯。由于LUT主要適合SRAM工藝生產(chǎn),所以目前大部分FPGA都是基于SRAM工藝的,而SRAM工藝的芯片在掉電后信息就會(huì)丟失,一定需要外加一片專用配置芯片,在上電的時(shí)候,由這個(gè)專用配置芯片把數(shù)據(jù)加載到FPGA中,然后FPGA就可以正常工作,由于配置時(shí)間很短,不會(huì)影響系統(tǒng)正常工作。也有少數(shù)FPGA采用反熔絲或Flash工藝,對(duì)這種FPGA,就不需要外加專用的配置芯片。第三章 PS2鍵盤通信3.1 PS2背景PS2背景PS/2接口是目前最常見的鼠標(biāo)接口,最初是IBM公司的專利,俗稱“小口”。這是一種鼠標(biāo)和鍵盤的專用接
24、口,是一種6針的圓型接口。但鼠標(biāo)只使用其中的4針傳輸數(shù)據(jù)和供電,其余2個(gè)為空腳。PS/2接口的傳輸速率比COM接口稍快一些,而且是ATX主板的標(biāo)準(zhǔn)接口,是目前應(yīng)用最為廣泛的鼠標(biāo)接口之一,但仍然不能使高檔鼠標(biāo)完全發(fā)揮其性能,而且不支持熱插拔。在BTX主板規(guī)范中,這也是即將被淘汰掉的接口。 需要注意的是,在連接PS/2接口鼠標(biāo)時(shí)不能錯(cuò)誤地插入鍵盤PS/2接口(當(dāng)然,也不能把PS/2鍵盤插入鼠標(biāo)PS/2接口)。一般情況下,符合PC99規(guī)范的主板,其鼠標(biāo)的接口為綠色、鍵盤的接口為紫色,另外也可以從PS/2接口的相對(duì)位置來判斷:靠近主板PCB的是鍵盤接口,其上方的是鼠標(biāo)接口。PS2設(shè)備有主從之分,主設(shè)備
25、采用Female插座,從設(shè)備采用Male插頭,現(xiàn)在廣泛實(shí)用的PS2鍵盤鼠標(biāo)均在從設(shè)備方式下工作。PS2接口的時(shí)鐘與數(shù)據(jù)線都是集電極開路結(jié)構(gòu)。主從設(shè)備之間數(shù)據(jù)通信采用雙向同步串行方式傳輸,時(shí)鐘信號(hào)由從設(shè)備產(chǎn)生。a.從設(shè)備到主設(shè)備的通信當(dāng)從設(shè)備向主設(shè)備發(fā)送數(shù)據(jù)時(shí),首先檢查時(shí)鐘線,以確認(rèn)時(shí)鐘線是否為高電平。如果是高電平,從設(shè)備就可以開始傳輸數(shù)據(jù);反之,從設(shè)備要等待獲得總線的控制權(quán),才能開始傳輸數(shù)據(jù)。傳輸?shù)拿恳粠?1位組成,發(fā)送時(shí)序及每一位的含義如圖2所示。每一幀數(shù)據(jù)中開始位總是為0,數(shù)據(jù)校驗(yàn)采用奇校驗(yàn)方式,停止位始終為1。從設(shè)備到主設(shè)備通信時(shí),從設(shè)備總是在時(shí)鐘線為高時(shí)改變數(shù)據(jù)線狀態(tài),主設(shè)備在時(shí)鐘下
26、降沿讀入數(shù)據(jù)線狀態(tài)。如表1所示:3.2 PS2鍵盤通信目前,鍵盤有許多種,PS2鍵盤是當(dāng)今PC機(jī)最常用的種類,這里僅涉及最常用的鍵盤,也就是6引腳發(fā)送數(shù)據(jù)的鍵盤。鍵盤通信時(shí)需要四根連接線:電源線、地線、時(shí)鐘線CLK、數(shù)據(jù)線DATA。DATA和CLK是可雙向通信的I/O線,也就是說,通過這兩根線,即可以把主機(jī)的數(shù)據(jù)發(fā)送到PS2設(shè)備,又可以把設(shè)備的數(shù)據(jù)發(fā)向主機(jī)。在無鍵按下時(shí),DATA和CLK一直處于高電平狀態(tài)。但有鍵按下時(shí),鍵盤先檢查CLK,看它是否處于處于高電平,如果是處在低電平,說明主機(jī)無空閑接受數(shù)據(jù),這時(shí)鍵盤將會(huì)把數(shù)據(jù)放在自己的緩沖區(qū),直到CLK重新被拉高。鍵盤CLK首先產(chǎn)生下降沿,這時(shí)已在
27、數(shù)據(jù)線上產(chǎn)生信號(hào),如:起始位總是為0,之后每一個(gè)時(shí)鐘周期時(shí)鐘電平為高時(shí)數(shù)據(jù)線上加將要輸出的電平,在時(shí)鐘的下降沿它將被主機(jī)讀取。3.3 原理掃描是從屏幕的左上方開始的,從左到右、從上到下地進(jìn)行掃描。每掃描完一行,電子束就會(huì)回到屏幕左邊下一行的起始位置。在這期間,CRT對(duì)電子束進(jìn)行消隱。每行結(jié)束時(shí),用行同步信號(hào)進(jìn)行行同步。掃描完所有行后,用場同步信號(hào)進(jìn)行場同步,并使掃描回到屏幕的左上方,同時(shí)進(jìn)行場消隱,預(yù)備下一次的掃描。PS2鍵盤控制模型電子琴頂層電路的設(shè)計(jì)如圖所示,該圖是電子琴頂層設(shè)計(jì)電路。按實(shí)現(xiàn)功能電路主要分成這幾個(gè)模塊:1) 鎖相環(huán)、用宏模塊搭建的22位.23位.24位計(jì)數(shù)器、用Verilo
28、g寫的時(shí)鐘分頻模塊fdiv:1 提供25MHz的時(shí)鐘信號(hào)驅(qū)動(dòng)VGA顯示2 與24位計(jì)數(shù)器結(jié)合提供1Hz給數(shù)字時(shí)鐘用以計(jì)時(shí)3 與23位計(jì)數(shù)器結(jié)合提供2MHz給CNT138T與rom_qupu以控制節(jié)奏4 與22位計(jì)數(shù)器結(jié)合提供4MHz給cnt10b以控制RAM的地址5 與fdiv結(jié)合提供1MHz給SPEAK2) 模塊PS2_2:PS2通信模塊,將鍵盤輸出碼轉(zhuǎn)換為ASCII碼,只處理字母3) 二進(jìn)制編碼器CODE3:根據(jù)鍵盤碼的ASCII碼,用verilog寫高、中、低三個(gè)音階的分別對(duì)應(yīng)的鍵盤字母代碼,與F_CODE模塊相對(duì)應(yīng),以此來擴(kuò)大音域4) 模塊F_CODE:1 模塊F_CODE的功能首先是
29、為模塊SPKER提供決定所發(fā)音符的分頻預(yù)置數(shù),而此數(shù)在SPKER輸入口停留的時(shí)間即為此音符的節(jié)拍長度。2 同時(shí),F(xiàn)_CODE把CODE3中音符的代碼轉(zhuǎn)化為音符頻率所對(duì)應(yīng)的數(shù)值3 與模塊DECL7S結(jié)合顯示音符4 H3.0顯示0,1,2表示高、中、低三個(gè)音階5) 模塊DECL7S:7段譯碼顯示模塊,在數(shù)碼管上顯示1,2,3,4,5,6,7音符6) 模塊RAM:與模塊cnt10b結(jié)合記錄彈奏的樂曲7) 模塊ROM:與模塊cnt138b結(jié)合可自動(dòng)播放儲(chǔ)存的音樂8) 模塊shizhong:可記錄彈奏時(shí)間9) 模塊VGA:顯示按鍵的位置,當(dāng)音樂響時(shí)同步顯示對(duì)應(yīng)的音的鍵盤位置10)模塊SPEAK輸出每一個(gè)
30、音符的音調(diào)11)模塊MUX21選擇播放中的音樂或中的儲(chǔ)存音樂第四章 PS2鍵盤控制電子琴(VHDL)4.1 PS2鍵盤控制電子琴程序共分為DIV1、DIV2分頻模塊,PS2鍵盤控制模塊,music發(fā)音模塊,tone音符分頻模塊,spk發(fā)聲模塊。library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;- Uncomment the following library declaration if instantiating- any Xilinx p
31、rimitives in this code.-library UNISIM;-use UNISIM.VComponents.all;entity Div1 is PORT(clk_50mhz: IN STD_LOGIC; -輸入時(shí)鐘為50MHZ; c0: OUT STD_LOGIC;c1: OUT STD_LOGIC); END Div1;architecture art of Div1 isbeginD1: PROCESS(clk_50mhz) -工作進(jìn)程開始,將50MHZ時(shí)鐘50分頻,=1MHZ;VARIABLE count6:INTEGER RANGE 0 TO 50; BEGINIF
32、(clk_50mhz EVENT AND clk_50mhz =1)THEN count6:=count6+1; IF count6=25 THEN c0 =1; ELSIF count6=50 THEN c0 =0; count6:=0;END IF;END IF;END PROCESS;D2: PROCESS(clk_50mhz) -將50MHZ時(shí)鐘100分頻,=0.5MHZ;VARIABLE count7: INTEGER RANGE 0 TO 100;BEGINIF(clk_50mhz EVENT AND clk_50mhz =1)THEN count7:=count7+1; IF c
33、ount7=50 THEN c1=1; ELSIF count7=100 THEN c1 =0; count7:=0;END IF;END IF;END PROCESS;END art;library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;- Uncomment the following library declaration if instantiating- any Xilinx primitives in this code.-libra
34、ry UNISIM;-use UNISIM.VComponents.all;entity Div2 is PORT(clk4: IN STD_LOGIC; -輸入時(shí)鐘為1MHZ; c2: OUT STD_LOGIC; -輸出100khz; c3ut std_logic); -輸出時(shí)鐘為4HZ;END Div2;ARCHITECTURE art OF Div2 ISbeginD1: PROCESS(clk4) -工作進(jìn)程開始,將1MHZ時(shí)鐘10分頻;VARIABLE count8:INTEGER RANGE 0 TO 10; BEGINIF(clk4 EVENT AND clk4 =1)THEN
35、 count8:=count8+1; IF count8=5 THEN c2 =1; ELSIF count8=10 THEN c2 =0; count8:=0;END IF;END IF;END PROCESS;D2: PROCESS(clk4) -分頻;VARIABLE count9: INTEGER RANGE 0 TO ;BEGINIF(clk4 EVENT AND clk4 =1)THEN count9:=count9+1; IF count9= THEN c3=1; ELSIF count9= THEN c3 =0; count9:=0;END IF;END IF;END PROC
36、ESS;END art;library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;- Uncomment the following library declaration if instantiating- any Xilinx primitives in this code.-library UNISIM;-use UNISIM.VComponents.all;entity ps2 is Port ( sysclk: in std_logic;
37、ps2clk: in std_logic; ps2data: in std_logic; reset: in std_logic; result: out std_logic_vector(7 downto 0); end ps2;architecture art of ps2 issignal ps2clk_r : std_logic_vector(2 downto 0); signal ps2clkfall : std_logic; signal q : std_logic_vector(11 downto 0); signal ps2serialdata : std_logic_vect
38、or(10 downto 0) ; begin process(sysclk,reset) beginif reset=0 thenps2clk_r = 000;elsif rising_edge(sysclk) then ps2clk_r(2) = ps2clk_r(1);ps2clk_r(1) = ps2clk_r(0);ps2clk_r(0) = ps2clk;end if;end process;ps2clkfall=1 when ps2clk_r=110 else 0; process(sysclk) beginif rising_edge(sysclk) then if reset
39、=0 then q 0); elsif ps2clkfall=1 then if q(0)=0 then q = ps2data & ; else q = ps2data & q(11 downto 1); end if; end if; end if;end process;process(q)beginif q(0) = 0 thenps2serialdata = q(11 downto 1);result = not ps2serialdata(8 downto 1);elseresult =;end if;end process;end art;library IEEE;use IEE
40、E.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;- Uncomment the following library declaration if instantiating- any Xilinx primitives in this code.-library UNISIM;-use UNISIM.VComponents.all;entity music is PORT(clk2: IN STD_LOGIC; -4HZ時(shí)鐘信號(hào) index1: IN STD_LOGIC_VECT
41、OR(7 DOWNTO 0); -鍵盤輸入信號(hào) index2: OUT STD_LOGIC_VECTOR(7 DOWNTO 0);-音符信號(hào)輸出END music;ARCHITECTURE art OF music ISSIGNAL count3:INTEGER RANGE 0 TO 31;-定義信號(hào)計(jì)數(shù)器,有32個(gè)元素BEGINM1ROCESS(count3,clk2,index1) -music工作進(jìn)程開始BEGINIF(clk2 EVENT AND clk2 =1)THEN -時(shí)鐘信號(hào)2為1 IF(count3=31)THEN -計(jì)數(shù)器值為31 count3=0; -計(jì)數(shù)器清0ELSE
42、count3index2 index2 index2 index2 index2 index2 index2 index2 index2 index2 index2 index2 index2 index2 index2 index2 index2 index2 index2 index2 index2 index2 index2 index2 index2 index2 index2 index2 index2 index2 index2 index2NULL;END CASE;ELSE -index2index2index2index2index2index2index2index2ind
43、ex2index2index2index2index2index2index2index2index2index2index2index2index2index2index2 tone1=1191; code1=; high1 tone1=1702; code1=; high1 tone1=1517; code1=; high1 tone1=1432; code1=; high1 tone1=1276; code1=; high1 tone1=1136; code1=; high1 tone1=1012;code1=; high1 tone1=955;code1=; high1 tone1=8
44、51;code1=; high1 tone1=758;code1=; high1 tone1=716;code1=; high1 tone1=638;code1=; high1 tone1=568;code1=; high1 tone1=506;code1=; high1 tone1=478;code1=; high1 tone1=426;code1=; high1 tone1=379;code1=; high1 tone1=358;code1=; high1 tone1=319;code1=; high1 tone1=284;code1=; high1 tone1=253;code1=; high1 tone1=2047; code1=; high1=000;END CASE;END PROCESS;END art;library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 第十一章 異常分娩 第一節(jié)產(chǎn)力異常課件
- 解剖生理內(nèi)臟04男性生殖系統(tǒng)課件
- 2024年安全月心得體會(huì)(30篇)
- 2025年江西新余市分宜縣中小企業(yè)融資擔(dān)保有限公司招聘筆試參考題庫附帶答案詳解
- 2025年云南楚雄州元謀縣國有資產(chǎn)投資管理有限公司招聘筆試參考題庫附帶答案詳解
- 2025年合肥合翼航空有限公司招聘筆試參考題庫含答案解析
- 2025年咸陽水務(wù)集團(tuán)有限公司招聘筆試參考題庫含答案解析
- 2025年山東光明電力服務(wù)公司招聘筆試參考題庫含答案解析
- 2025年福州左投置業(yè)有限公司招聘筆試參考題庫含答案解析
- 2025年嘉善星創(chuàng)實(shí)業(yè)有限公司招聘筆試參考題庫含答案解析
- 2025年遼寧省大連市普通高中學(xué)業(yè)水平合格性考試模擬政治試題(一)
- 2024版戶外廣告牌安裝與維護(hù)服務(wù)合同2篇
- 2024年5月江蘇省事業(yè)單位招聘考試【綜合知識(shí)與能力素質(zhì)】真題及答案解析(管理類和其他類)
- 云南省昆明市五華區(qū)2023-2024學(xué)年九年級(jí)上學(xué)期期末數(shù)學(xué)試卷
- 安徽省合肥市第四十中學(xué)2024~2025學(xué)年九年級(jí)上學(xué)期化學(xué)期末模擬試題(含答案)
- 安徽省淮北市(2024年-2025年小學(xué)六年級(jí)語文)部編版期末考試((上下)學(xué)期)試卷及答案
- 注漿工安全技術(shù)措施
- 大學(xué)生職業(yè)生涯規(guī)劃
- 干燥綜合征的護(hù)理查房
- 江蘇省徐州市2023-2024學(xué)年六年級(jí)上學(xué)期期末科學(xué)試卷(含答案)2
- 五年級(jí)數(shù)學(xué)上冊(cè)七大重點(diǎn)類型應(yīng)用題
評(píng)論
0/150
提交評(píng)論