版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、1FPGA 控制的 控制的 PS/2 接口電路設(shè)計(jì) 接口電路設(shè)計(jì)摘要: 摘要:PS2 作為鍵盤(pán)接口至今仍在廣泛使用。本論文根據(jù) PS2 鍵盤(pán)接口的協(xié)議,用 VHD語(yǔ)言編程,用 FPGA 控制 PS2,使其能夠接收從鍵盤(pán)鍵入的信息,并把它顯示在數(shù)碼管和液晶顯示頻上。The Design of PS / 2 Interface Circuit by Control of FPGAAbstract:Today,PS2 keyboard int
2、erface is still being used widely.This report is based PS2 keyboard interface protocol, with VHD language programming, using FPGA control PS2, so that it can receive information from the keyboard to type, and display it
3、in the digital frequency of the tube and liquid crystal display.關(guān)鍵詞: 關(guān)鍵詞:VHDL,F(xiàn)PGA , PS2, QuartusII引言: 引言:PS2 是一類應(yīng)用廣泛的鍵盤(pán)接口。本文論述了用 FPGA 控制 PS2 的設(shè)計(jì)思想及方法,并實(shí)現(xiàn)把按鍵的掃描碼及其對(duì)應(yīng)的 ASCII 碼顯示在 LED 及 LCD上。 設(shè)計(jì)原理 設(shè)計(jì)原理通過(guò)分析,本次設(shè)計(jì)需要分四部分實(shí)現(xiàn):1.接
4、收從鍵盤(pán)發(fā)出的掃描碼信息2.把接收到的掃描碼轉(zhuǎn)換成 ASCII 碼 3.把掃描碼和 ASCII 碼顯示在數(shù)碼管上 4.把掃描碼和 ASCII 碼顯示在 LED 液晶上。1.PS2 鍵盤(pán)接口協(xié)議 鍵盤(pán)接口協(xié)議介紹 介紹PS2 協(xié)議和接口最初是由 IBM 公司開(kāi)發(fā)并廣泛使用的應(yīng)用于鍵盤(pán)/鼠標(biāo)的協(xié)議和 接口。PS2 鍵盤(pán)接口是 6 芯的插頭,各插頭定義如下:1DATAKey Data2n/cNot connected3GNDGnd4VCCPo
5、wer , +5 VDC5CLKClock6n/cNot connected在 PS2 的 6 個(gè)芯中,2 和 6 未定義,3 和 4 為電源和地,需要用 FPGA 控制的只有 1(數(shù)據(jù))和 5(時(shí)鐘)。 2. 2.把從鍵盤(pán)發(fā)出的數(shù)據(jù)轉(zhuǎn)換成掃描碼 把從鍵盤(pán)發(fā)出的數(shù)據(jù)轉(zhuǎn)換成掃描碼3碼兩種,當(dāng)一個(gè)按鍵按下或按住,鍵盤(pán)就向接口發(fā)送一個(gè)字節(jié)的鍵盤(pán)接通的掃 描碼,稱為通碼。當(dāng)該按鍵彈起或釋放時(shí),鍵盤(pán)向接口發(fā)送兩個(gè)字節(jié)的鍵盤(pán)斷開(kāi)的掃描碼,稱為斷碼。
6、斷碼和通碼有一定的聯(lián)系,多數(shù)第二套斷碼有兩字節(jié) 長(zhǎng)。它們的第一個(gè)字節(jié)是 F0 ,第二個(gè)字節(jié)是這個(gè)鍵的通碼。擴(kuò)展按鍵的斷碼通常有三個(gè)字節(jié),它們前兩個(gè)字節(jié)是 E0h,F0h ,最后一個(gè)字節(jié)是這個(gè)按鍵通碼的 最后一個(gè)字節(jié)。鍵盤(pán)每個(gè)按鍵被分配了唯一的通碼和斷碼。這樣,我們通過(guò)查找唯一的通碼和斷碼就可以確定按下的是哪一個(gè)鍵。每個(gè)鍵一整套的通斷碼組成了掃描碼集。有三套標(biāo)準(zhǔn)的掃描碼集,所有現(xiàn)代的鍵盤(pán)默認(rèn)使用第二套掃描 碼。有了這個(gè)基礎(chǔ),我們就可以設(shè)計(jì)
7、程序把掃描碼轉(zhuǎn)換成 ASCII 碼了。這部分的核心是查表。需要注意的是當(dāng) Shift 鍵和 CapsLock 鍵按下時(shí)的不同結(jié)果。我們同樣先來(lái)定義幾個(gè)端口。用 scan 作為掃描碼的輸入端口,CLK 作為時(shí)鐘信號(hào),它與上一個(gè)掃描碼輸出電路的觸發(fā)中斷信號(hào) INTERRUPT1 相連接。定義 DATAASCII 為最終的 ASCII 碼輸出。另外再定義一個(gè) ASCII 碼轉(zhuǎn)換結(jié)束的中斷信號(hào) INTERRUPT2。整個(gè)轉(zhuǎn)換的思路是,由接收過(guò)來(lái)
8、的掃描碼的值,通過(guò)查表判斷這個(gè)掃描碼對(duì)應(yīng)的是哪一個(gè)按鍵,再在 ASCII 表中查找這個(gè)按鍵的 ASCII 值,然后把按鍵的 ASCII 值輸出。這里面牽扯到組合鍵的問(wèn)題。即 Shift 和 Capslock 這兩個(gè)鍵有沒(méi)有按下。為了判斷組合鍵有沒(méi)有按下,我們?cè)O(shè)計(jì)幾個(gè)觸發(fā)器來(lái)保存上一個(gè)時(shí)鐘的特殊組合鍵的狀態(tài),以便后來(lái)的 ASCII 碼轉(zhuǎn)換。當(dāng)檢測(cè)到有這兩個(gè)按鍵 按下時(shí),就把相應(yīng)的 Shifted_D 或 Capslocked_D 置為 1
9、,然后再通過(guò) D 觸發(fā)器把這兩個(gè)鍵的狀態(tài)鎖存起來(lái)。鎖存后為 Shifted 和 Capslocked。判斷這兩個(gè)鍵按下的依據(jù)是判斷掃描碼的值,若掃描碼的值對(duì)應(yīng)的是這兩個(gè)按鍵,就可以把 相應(yīng)的鍵的狀態(tài)置 1。在轉(zhuǎn)換時(shí)我們先不管組合鍵有沒(méi)有按下,先根據(jù)掃描碼的值通過(guò)查表找到它的 ASCII 值,最后再判斷組合鍵有沒(méi)有按下。具體操作是,當(dāng)接收到掃描碼時(shí),先判斷掃描碼的值是否為 Shift 或 Capslock 的掃描碼值,如果是的話就表示有組
10、合鍵按下了,這時(shí)把 Shifted_D 或 Capslocked_D 置 1,否則置 0.轉(zhuǎn)換成 的 ASCII 碼用 TMPASCII 表示。當(dāng)這些工作完成以后,再判斷 Shifted 或Capslocked 的值是否為 1,若這兩個(gè)值都為 1 或 0,則應(yīng)為小寫(xiě),這時(shí)就需要把 前得到的 TMPASCII 的值加上十六進(jìn)制的“20”。當(dāng)然,這些大小寫(xiě)轉(zhuǎn)換是針對(duì) ASCII 值在“A”和“a”之間而言的。另外,有些鍵上面有上下兩排字符,
11、當(dāng)Shift 鍵按下時(shí)用到的是上面一排,這個(gè)應(yīng)該注意。解決這個(gè)問(wèn)題的方法很簡(jiǎn) 單,由于在前面我們已經(jīng)把 Shift 鍵前一個(gè)狀態(tài)鎖存起來(lái),在進(jìn)行掃描碼到 ASCII 碼轉(zhuǎn)換的時(shí)候,若遇到有兩排字符的鍵時(shí),先判斷 Shifted 是否為 1,若為 1 則轉(zhuǎn)換上面字符的 ASCII 值就行了。最后我們把轉(zhuǎn)換得到的值賦給一個(gè)信 號(hào) ASCII。若沒(méi)有按鍵按下或掃描碼對(duì)應(yīng)的不是鍵盤(pán)的 126 個(gè)鍵,則把 ASCII賦成“10000000”。在轉(zhuǎn)
12、換中我們還應(yīng)該考慮一個(gè)問(wèn)題。比如我們要顯示小寫(xiě)的 a 這個(gè)字母, 當(dāng)按下 a 再?gòu)椘饡r(shí)我們接收到的一串掃描碼應(yīng)該為 1C,F0,1C。再比如我們要顯示大寫(xiě)的字母 A,應(yīng)該是先按 Shift 鍵,再按 A 鍵,然后彈起 A 鍵,再?gòu)椘?Shift 鍵。那么我們接收到的掃描碼就該為:12,1C,F0,1C,F0,12。我們接收到這么些掃描碼,而我們要輸出的 ASCII 碼應(yīng)該為 61(A 為小寫(xiě)時(shí))和 41(A 為 大寫(xiě)時(shí))。如果我們都一一
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于fpga的ps2鼠標(biāo)接口設(shè)計(jì)及vga顯示
- ps2接口與usb引腳圖
- 基于fpga的i2c串行總線接口電路設(shè)計(jì)
- 實(shí)驗(yàn)四_ps2鍵盤(pán)的控制
- diy輕松把鍵盤(pán)、鼠標(biāo)ps2接口改造成usb接口
- 基于fpga的ps2鍵盤(pán)鼠標(biāo)控制電子琴說(shuō)明書(shū)
- 多軸運(yùn)動(dòng)控制接口電路設(shè)計(jì)及其在FPGA中的實(shí)現(xiàn).pdf
- ARM+FPGA的多路高速AD接口電路設(shè)計(jì).pdf
- 課程設(shè)計(jì)--基于fpga的vga圖像漢字顯示及ps2鍵盤(pán)控制設(shè)計(jì)與應(yīng)用
- 畢業(yè)論文----基于vhdl語(yǔ)言的vga、ps2接口協(xié)議
- 基于verilog的ps2鍵盤(pán)設(shè)計(jì)進(jìn)階
- 基于fpga的音樂(lè)播放控制電路設(shè)計(jì)
- JATG接口電路設(shè)計(jì).dwg
- JATG接口電路設(shè)計(jì).dwg
- JATG接口電路設(shè)計(jì).dwg
- JATG接口電路設(shè)計(jì).dwg
- JATG接口電路設(shè)計(jì).dwg
- JATG接口電路設(shè)計(jì).dwg
- JATG接口電路設(shè)計(jì).dwg
- JATG接口電路設(shè)計(jì).dwg
評(píng)論
0/150
提交評(píng)論