PS2介面協議和鍵盤掃瞄碼

2021-07-25 15:54:59 字數 5456 閱讀 4925

ps2介面協議

1.ps/2介面標準的發展過程

隨著計算機工業的發展,作為計算機最常用輸入裝置的鍵盤也日新月異。2023年ibm推出了ibm pc/xt鍵盤及其介面標準。該標準定義了83鍵,採用5腳din聯結器和簡單的序列協議。

實際上,第一套鍵盤掃瞄碼集並沒有主機到鍵盤的命令。為此,2023年ibm推出了ibm at鍵盤介面標準。該標準定義了84~101鍵,採用5腳din聯結器和雙向序列通訊協議,此協議依照第二套鍵盤掃瞄碼集設有8個主機到鍵盤的命令。

到了2023年,ibm又推出了ps/2鍵盤介面標準。該標準仍舊定義了84~101鍵,但是採用6腳mini-din聯結器,該聯結器在封裝上更小巧,仍然用雙向序列通訊協議並且提供有可選擇的第三套鍵盤掃瞄碼集,同時支援17個主機到鍵盤的命令。現在,市面上的鍵盤都和ps/2及at鍵盤相容,只是功能不同而已。

2.ps/2介面硬體

2.1 物理聯結器

一般,具有五腳聯結器的鍵盤稱之為at鍵盤,而具有六腳mini-din聯結器的鍵盤則稱之為ps/2鍵盤。其實這兩種聯結器都只有四個腳有意義。它們分別是clock(時鐘腳)、data(資料腳)、+5v(電源腳)和ground(電源地)。

在ps/2鍵盤與pc機的物理連線上只要保證這四根線一一對應就可以了。ps/2鍵盤靠pc的ps/2埠提供+5v電源,另外兩個腳clock(時鐘腳)和data

(資料腳)都是集電極開路的,所以必須接大阻值的上拉電阻。它們平時保持高電平,有輸出時才被拉到低電平,之後自動上浮到高電平。現在比較常用的聯結器如圖1所示。

2.2 電氣特性

ps/2通訊協議是一種雙向同步序列通訊協議。通訊的兩端通過clock(時鐘腳)同步,並通過data(資料腳)交換資料。任何一方如果想抑制另外一方通訊時,只需要把clock(時鐘腳)拉到低電平。

如果是pc機和ps/2鍵盤間的通訊,則pc機必須做主機,也就是說,pc機可以抑制ps/2鍵盤傳送資料,而ps/2鍵盤則不會抑制pc機傳送資料。一般兩裝置間傳輸資料的最大時鐘頻率是33khz,大多數ps/2裝置工作在10~20khz。推薦值在15khz左右,也就是說,clock(時鐘腳)高、低電平的持續時間都為40s。

每一資料幀包含11~12個位,具體含義如表1所列。

表1 資料幀格式說明

1個起始位總是邏輯0

8個資料位(lsb)低位在前

1個奇偶校驗位奇校驗

1個停止位總是邏輯1

1個應答位僅用在主機對裝置的通訊中

表中,如果資料位中1的個數為偶數,校驗位就為1;如果資料位中1的個數為奇數,校驗位就為0;總之,資料位中1的個數加上校驗位中1的個數總為奇數,因此總進行奇校驗。

2.3 ps/2裝置和pc機的通訊

ps/2裝置的clock(時鐘腳)和data(資料腳)都是集電極開路的,平時都是高電平。當ps/2裝置等待傳送資料時,它首先檢查clock(時鐘腳)以確認其是否為高電平。如果是低電平,則認為是pc機抑制了通訊,此時它必須緩衝需要傳送的資料直到重新獲得匯流排的控制權(一般ps/2鍵盤有16個位元組的緩衝區,而ps/2滑鼠只有乙個緩衝區僅儲存最後乙個要傳送的資料)。

如果clock(時鐘腳)為高電平,ps/2裝置便開始將資料傳送到pc機。一般都是由ps/2裝置產生時鐘訊號。傳送時一般都是按照資料幀格式順序傳送。

其中資料位在clock(時鐘腳)為高電平時準備好,在clock(時鐘腳)的下降沿被pc機讀入。ps/2裝置到pc機的通訊時序如圖2所示。

當時鐘頻率為15khz時,從clock(時鐘腳)的上公升沿到資料位轉變時間至少要5s。資料變化到clock(時鐘腳)下降沿的時間至少也有5s,但不能大於25s,這是由ps/2通訊協議的時序規定的。如果時鐘頻率是其它值,引數的內容應稍作調整。

上述討論中傳輸的資料是指對特定鍵盤的編碼或者對特定命令的編碼。一般

採用第二套掃瞄碼集所規定的碼值來編碼。其中鍵盤碼分為通碼(make)和斷碼(break)。通碼是按鍵接通時所傳送的編碼,用兩位十六進製制數來表示,斷碼通常是按鍵斷開時所傳送的編碼,用四位十六進製制數來表示。

3.ps/2介面的嵌入式軟體程式設計方法

ps/2裝置主要用於產生同步時鐘訊號和讀寫資料。

3.1 ps/2向pc機傳送乙個位元組

從ps/2向pc機傳送乙個位元組可按照下面的步驟進行:

1.檢測時鐘線電平,如果時鐘線為低,則延時50s;

2.檢測判斷時鐘訊號是否為高,為高,則向下執行,為低,則轉到(1);

3.檢測資料線是否為高,如果為高則繼續執行,如果為低,則放棄傳送

(此時pc機在向ps/2裝置傳送資料,所以ps/2裝置要轉移到接收程

序處接收資料);

4.延時20s(如果此時正在傳送起始位,則應延時40s);

5.輸出起始位(0)到資料線上。這裡要注意的是:在送出每一位後都要

檢測時鐘線,以確保pc機沒有抑制ps/2裝置,如果有則中止傳送;

6.輸出8個資料位到資料線上;

7.輸出校驗位;

8.輸出停止位(1);

9.延時30s(如果在傳送停止位時釋放時鐘訊號則應延時50s);

通過以下步驟可傳送單個位:

1.準備資料位(將需要傳送的資料位放到資料線上);

2.延時20s;

3.把時鐘線拉低;

4.延時40s;

5.釋放時鐘線;

6.延時20s。

3.2 ps/2裝置從pc機接收乙個位元組

由於ps/2裝置能提供序列同步時鐘,因此,如果pc機傳送資料,則pc機要先把時鐘線和資料線置為請求傳送的狀態。pc機通過下拉時鐘線大於100s 來抑制通訊,並且通過下拉資料線發出請求傳送資料的訊號,然後釋放時鐘。當ps/2裝置檢測到需要接收的資料時,它會產生時鐘訊號並記錄下面8個資料位和乙個停止位。

主機此時在時鐘線變為低時準備資料到資料線,並在時鐘上公升沿鎖存資料。而ps/2裝置則要配合pc機才能讀到準確的資料。具體連線步驟如下:

1.等待時鐘線為高電平。

2.判斷資料線是否為低,為高則錯誤退出,否則繼續執行。

3.讀位址線上的資料內容,共8個bit,每讀完乙個位,都應檢測時鐘線

是否被pc機拉低,如果被拉低則要中止接收。

4.讀位址線上的校驗位內容,1個bit。

5.讀停止位。

6.如果資料線上為0(即還是低電平),ps/2裝置繼續產生時鐘,直到

接收到1且產生出錯訊號為止(因為停止位是1,如果ps/2裝置沒有

讀到停止位,則表明此次傳輸出錯)。

7.輸出應答位。

8.檢測奇偶校驗位,如果校驗失敗,則產生錯誤訊號以表明此次傳輸出

現錯誤。

9.延時45 s,以便pc機進行下一次傳輸。

讀資料線的步驟如下:

1.延時20s;

2.把時鐘線拉低

3.延時40s

4.釋放時鐘線

5.延時20s

6.讀資料線。

下面的步驟可用於發出應答位;

1.延時15s;

2.把資料線拉低;

3.延時5s;

4.把時鐘線拉低;

5.延時40s;

6.釋放時鐘線;

7.延時5s;

8.釋放資料線。

4.第二套掃瞄碼:

101、102和104鍵的鍵盤:

key 通碼斷碼 key 通碼斷碼 key 通碼斷碼

a 1c f0 1c 9 46 f0 46 [ 54 f0 54

b 32 f0 32 ` 0e f0 0e insert e0 70 e0 f0 70

c 21 f0 21 - 4e f0 4e home e0 6c e0 f0 6c

d 23 f0 23 = 55 f0 55 pg up e0 7d e0 f0 7d

e 24 f0 24 \ 5d f0 5d delete e0 71 e0 f0 71

f 2b f0 2b bksp 66 f0 66 end e0 69 e0 f0 69

g 34 f0 34 space 29 f0 29 pg dn e0 7a e0 f0 7a

h 33 f0 33 tab 0d f0 0d u arrow e0 75 e0 f0 75

i 43 f0 43 caps 58 f0 58 l arrow e0 6b e0 f0 6b j 3b f0 3b l shft 12 f0 12 d arrow e0 72 e0 f0 72 k 42 f0 42 l ctrl 14 f0 14 r arrow e0 74 e0 f0 74 l 4b f0 4b l gui e0 1f e0 f0 1f num 77 f0 77

m 3a f0 3a l alt 11 f0 11 kp / e0 4a e0 f0 4a n 31 f0 31 r shft 59 f0 59 kp * 7c f0 7c

o 44 f0 44 r ctrl e0 14 e0 f0 14 kp - 7b f0 7b

p 4d f0 4d r gui e0 27 e0 f0 27 kp + 79 f0 79

q 15 f0 15 r alt e0 11 e0 f0 11 kp en e0 5a e0 f0 5a r 2d f0 2d apps e0 2f e0 f0 2f kp 71 f0 71

s 1b f0 1b enter 5a f0 5a kp 0 70 f0 70

t 2c f0 2c esc 76 f0 76 kp 1 69 f0 69

u 3c f0 3c f1 05 f0 05 kp 2 72 f0 72

v 2a f0 2a f2 06 f0 06 kp 3 7a f0 7a w 1d f0 1d f3 04 f0 04 kp 4 6b f0 6b

x 22 f0 22 f4 0c f0 0c kp 5 73 f0 73

y 35 f0 35 f5 03 f0 03 kp 6 74 f0 74

z 1a f0 1a f6 0b f0 0b kp 7 6c f0 6c

0 45 f0 45 f7 83 f0 83 kp 8 75 f0 75

1 16 f0 16 f8 0a f0 0a kp 9 7d f0 7d

2 1e f0 1e f9 01 f0 01 ] 58 f0 58

3 26 f0 26 f10 09 f0 09 ; 4c f0 4c

4 2

5 f0 25 f11 78 f0 78 ' 52 f0 52

5 2e f0 2e f12 07 f0 07 , 41 f0 41

6 36 f0 36 prnt

scrn

e0 12

e0 7c

e0 f0

7c e0

f0 12

. 49 f0 49

7 3d f0 3d scroll7e f0,7e / 4a f0 4a

8 3e f0 3e pause e1 14

77e1 f0

14f0 77

-none-

ps2鍵盤協議

一.電氣特性 二.資料格式 表中,如果資料位中 的個數為偶數,校驗位就為 如果資料位中 的個數為奇數,校驗位就為 總之,資料位中 的個數加上校驗位中 的個數總為奇數,因此總進行奇校驗。ps2裝置的clock和data都是集電極開路的,平時都是高電平。當ps2裝置等待傳送資料時,它首先檢查clock是...

模擬PS2協議

本來以為模擬ps2協議相當的麻煩,今天下了一本ps2協議手冊看了半天,原來讀鍵盤值相當簡單嘛,比模擬spi i2c簡單多了呵呵。下面介紹一下具體過程 1.明確接線關係,只需接4根線,vcc要 5v,3.3我測試過不能用,時鐘和資料線要用bidir雙向口線,fpga可以不用外接上拉電阻。另外,usb鍵...

2019介面簡介

9.6分 出處 文庫時間 2013 04 11 人氣 16744 您可能感興趣的問題 軟體介紹 核心提示 word 2007擁有新的外觀,新的使用者介面用簡單明瞭的單一機制取代了word早期版本中的選單 工具欄和大部分任務窗格。word 2007擁有新的外觀,新的使用者介面用簡單明瞭的單一機制取代了...