AV免费在线播放一区_一级Av网站在线观看免费_一级片在线观看高清无码_在线观看黄色AV不卡

產品圖片

產品分類

技術文章
主頁 > 技術文章 > PS2接口鍵盤顯示實驗
2024-06-06 06:38

PS2接口鍵盤顯示實驗

PS2接口鍵盤顯示實驗

一、  實驗目的
1、學習用FPGA設計簡單通信協(xié)議的方法。
2、學習PS2的工作原理,掃描碼的ASCII碼的轉換。
3、掌握VHDL編寫中的一些小技巧。
二、  實驗原理
  PS2通信協(xié)議是一種雙向同步串行通迅協(xié)議。通迅的兩端通過CLOCK(時鐘信號端)同步,并通過DATA(數(shù)據(jù)端口)交換數(shù)據(jù)。任何一方如果想要抑制另外一方的通迅時,只需要把CLOCK拉到低電平。
PS2標準,規(guī)范每筆數(shù)據(jù)傳輸包含起始位(start bit)、掃描碼(scan code)、奇同位檢查(odd parity)、以及終止位(stop bit)共計11位,并以雙向串行數(shù)據(jù)傳輸?shù)姆绞,達到通信的目的。且當主機端(host)或從機端(slave)并無傳送或接收數(shù)據(jù)時,數(shù)據(jù)傳輸端口及頻率均將升為高電位。圖4-17-1所示為每一筆數(shù)據(jù)傳輸所包含之內容如下:
1.          起始位(“0”)
2.          8位數(shù)據(jù)寬度的掃描碼( scan code )。
3.          奇同位檢查,使掃描碼與奇同位加起來1的數(shù)字為奇數(shù)個。
4.          終止位(“1”)
PS2 串行傳輸標準
 
 
 
圖4-17-1  PS2 串行傳輸標準
 
PS2 端口腳位定義
圖4-17-2   PS2 端口腳位定義
PS2控制接口僅使用到兩條傳輸端口,一為頻率端口,另一則為數(shù)據(jù)端口如圖4-17-2所示,且此傳輸埠必為三態(tài)(Tri-State)并具有雙向(bidirectional)特性。PS2 傳輸產品上,常見為鼠標與鍵盤,兩者的驅動原理均相同,僅掃描碼(scan code)不同。因此我們以PS2鍵盤為例進行說明。
鍵盤其實就是一個大型的按鍵矩陣,它們由安裝在電路板上的處理器(叫做“鍵盤編碼器”)來監(jiān)視著。雖然不同的鍵盤可能采用不同的處理器,但是它們完成的任務都是一樣的,即監(jiān)視哪些按鍵被按下,哪些按鍵被釋放了,并將這些信息傳送到主機。如果有必要,處理器處理所有的去抖動,并在它的16字節(jié)的緩沖區(qū)里緩沖數(shù)據(jù)。主機端包含了一個“鍵盤控制器”與鍵盤處理器進行通訊,并解碼來自鍵盤處理器的信息,然后高速系統(tǒng)當前按鍵對應的處理事情。主機與鍵盤之間的通訊仍舊采用IBM的協(xié)議。
鍵盤處理器花費很多時間來掃描或監(jiān)視按鍵矩陣。如果發(fā)現(xiàn)有按鍵按下、釋放或長按,鍵盤就發(fā)送“掃描碼”的信息到主機。掃描碼有兩種不同的類型:“通碼”和“斷碼”。當一個鍵被按下去或長按的時候,鍵盤就發(fā)送通碼;當一個鍵被釋放的時候,鍵盤就發(fā)送斷碼。每個鍵盤被分配了唯一的通碼和斷碼,這樣主機通過查找唯一的掃描碼就可以確定是哪個按鍵被按下或釋放。每個鍵一整套的通斷碼組成了“掃描碼集”,現(xiàn)在所有的鍵盤都采用第二套掃描碼。由于沒有一個簡單的公式可以計算掃描碼,所以要知道某個特定按鍵的通碼和斷碼,只能采用查表的方法來獲得。需要特別注意的是,按鍵的通碼值表示鍵盤上的一個按鍵,并不表示印刷在按鍵上的那個字符,這就意味著通碼和ASCII碼之間沒有任何關聯(lián)。
另外,第二套通碼都只有一個字節(jié)寬,但也有少數(shù)“擴展按鍵”的通碼是兩字節(jié)或四字節(jié)寬,這類碼的第一個字節(jié)總是0xE0。與通碼一樣,每個按鍵在釋放的時候,鍵盤就會發(fā)送一個斷碼。每個鍵也都有它自己的唯一的斷碼,不過慶幸的是,斷碼與斷碼之間存在著必然的聯(lián)系。多數(shù)第二套斷碼有兩個字長,它們的第一個字節(jié)是0xF0,第二個字節(jié)就是對應按鍵的通碼。擴展按鍵的斷碼通常有三個字節(jié),前兩個字節(jié)0xE0和0xF0,最后一個字節(jié)是這個按鍵通碼的最后一個字節(jié)。表4-17-1列出了鍵盤按鍵的通碼和斷碼。
 

鍵值 通碼 斷碼 鍵值 通碼 斷碼 鍵值 通碼 斷碼
A 1C F0,1C 9 46 F0,46 [ 54 F0,54
B 32 F0,32 ` 0E F0,0E INSERT 67 F0,67
C 21 F0,21 - 4E F0,4E HOME 6E F0,6E
D 23 F0,23 = 55 F0,55 PG UP 6F F0,6F
E 24 F0,24 \ 5C F0,5C DELETE 64 F0,64
F 2B F0,2B BKSP 66 F0,66 END 65 F0,65
G 34 F0,34 SPACE 29 F0,29 PG DN 6D F0,6D
H 33 F0,33 TAB 0D F0,0D U ARROW 63 F0,63
I 43 F0,48 CAPS 14 F0,14 L ARROW 61 F0,61
J 3B F0,3B L SHFT 12 F0,12 D ARROW 60 F0,60
K 42 F0,42 L CTRL 11 F0,11 R ARROW 6A F0,6A
L 4B F0,4B L WIN 8B F0,8B NUM 76 F0,76
M 3A F0,3A L ALT 19 F0,19 KP / 4A F0,4A
N 31 F0,31 R SHFT 59 F0,59 KP * 7E F0,7E
O 44 F0,44 R CTRL 58 F0,58 KP - 4E F0,4E
P 4D F0,4D R WIN 8C F0,8C KP + 7C F0,7C
Q 15 F0,15 R ALT 39 F0,39 KP EN 79 F0,79
R 2D F0,2D APPS 8D F0,8D KP . 71 F0,71
S 1B F0,1B ENTER 5A F0,5A KP 0 70 F0,70
T 2C F0,2C ESC 08 F0,08 KP 1 69 F0,69
U 3C F0,3C F1 07 F0,07 KP 2 72 F0,72
V 2A F0,2A F2 0F F0,0F KP 3 7A F0,7A
W 1D F0,1D F3 17 F0,17 KP 4 6B F0,6B
X 22 F0,22 F4 1F F0,1F KP 5 73 F0,73
Y 35 F0,35 F5 27 F0,27 KP 6 74 F0,74
Z 1A F0,1A F6 2F F0,2F KP 7 6C F0,6C
0 45 F0,45 F7 37 F0,37 KP 8 75 F0,75
1 16 F0,16 F8 3F F0,3F KP 9 7D F0,7D
2 1E F0,1E F9 47 F0,47 ] 5B F0,5B
3 26 F0,26 F10 4F F0,4F ; 4C F0,4C
4 25 F0,25 F11 56 F0,56 ' 52 F0,52
5 2E F0,2E F12 5E F0,5E , 41 F0,41
6 36 F0,36 PRNT
SCRN
 57 F0,57 . 49 F0,49
7 3D F0,3D SCROLL 5F F0,5F / 4A F0,4A
8 3E F0,3E PAUSE 62 F0,62      
 
 
表4-17-1PS2 鍵盤掃描碼
三、  實驗內容
      本實驗的任務就是利用PS2接口將鍵盤按鍵的通碼在數(shù)碼管上顯示出來。
實驗箱中用到PS2鍵盤接口與FPGA的接口電路如圖4-17-3所示。
 
PS2鍵盤接口電路圖
圖4-17-3  PS2鍵盤接口電路圖
 
四、  實驗步驟
1、打開QUARTUSII軟件,新建一個工程。
2、建完工程之后,再新建一個VHDL File,打開VHDL編輯器對話框。
3、按照實驗原理和自己的想法,在VHDL編輯窗口編寫VHDL程序,用戶可參照光盤中提供的示例程序。示例程序共提供2個VHDL源程序。每一個源程序完成一定的功能。其具體的功能如下表4-17-2所示:

文件名稱 完成功能
keyboard.VHD PS2鍵盤控制器電路設計。
DISPLAY.VHD 七段顯示器譯碼電路設計。
 
表4-17-2   示例程序功能表
4、編寫完VHDL程序后,保存起來。方法同實驗一。
5、將自己編寫的VHDL程序進行編譯并生成模塊符號文件,并對程序的錯誤進行修改,最終所有程序通過編譯并生成模塊符號文件。其具體方法請參照實驗六。
6、新建一個圖形編輯文件,將已生成的模塊符號文件放入其中,并根據(jù)要求邊接起來。完成后,如下圖4-17-4所示。
編輯好的圖形設計文件
圖21-4  編輯好的圖形設計文件
7、將自己編輯好的的程序進行編譯仿真,并對程序的錯誤進行修改,最終通過編譯。
8、編譯仿真無誤后,根據(jù)用戶自己的要求進行管腳分配。分配完成后,再進行全編譯一次,以使管腳分配生效。
9、根據(jù)實驗內容用實驗導線將上面管腳分配的FPGA管腳與對應的模塊連接起來。
如果是調用的本書提供的VHDL代碼,則實驗連線如下:
      CLK: FPGA時鐘,接數(shù)字時鐘COLCK1并將其設為24M。
      DATA:PS2接口DATA信號,接PS2接口KDA端口。
      KYCLOCK:PS2接口CLK信號,接PS2接口KCL端口。
      RESET:復位信號,接核心板復位按鍵RST。
A、B、C、D、E、F、G:接七段碼顯示區(qū)的A、B、C、D、E、F和G
      SA、SB、SC:接七段碼顯示區(qū)的SEL0、SEL1、SEL2。
10、用下載電纜通過JTAG口將對應的sof文件加載到FPGA中。觀察實驗結果是否與自己的編程思想一致。
五、  實驗結果與現(xiàn)象
以設計的參考示例為例,將PS2接口的鍵盤接入PS2接口內。當設計文件加載到目標器件后,將數(shù)字信號源模塊的時鐘選擇為24MHZ,按下PS2鍵盤上的鍵,則在實驗平臺的八位數(shù)碼管上的中間兩位將顯示被按鍵的掃描碼。觀察其按下的鍵值所對應的掃描碼是否與表4-17-1一一對應。按下核心板上的復位按鍵RST則停止對鍵盤的掃描,數(shù)碼管上的掃描碼不會發(fā)生改變。
六、  實驗報告
1、繪出仿真波形,并作說明。
2、將實驗原理、設計過程、編譯仿真波形和分析結果、硬件測試結果記錄下來。