ps2鍵盤協議

2021-07-26 01:43:21 字數 2982 閱讀 2086

一.電氣特性

二.資料格式

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

ps2裝置的clock和data都是集電極開路的,平時都是高電平。當ps2裝置等待傳送資料時,它首先檢查clock是否為高。如果為低,則認為pc抑制了通訊,此時它緩衝資料直到獲得匯流排的控制權。

如果clock為高電平,ps2則開始向pc傳送資料。

一般都是由ps2裝置產生時鐘訊號。傳送按幀格式。資料位在clock為高電平時準備好,在clock下降沿被pc讀入。

資料從鍵盤/滑鼠傳送到主機或從主機傳送到鍵盤/滑鼠,時鐘都是ps2裝置產生.主機對時鐘控制有優先權,即主機想傳送控制指令給ps2裝置時,可以拉低時鐘線至少100μs,然後再下拉資料線,最後釋放時鐘線為高。ps2裝置的時鐘線和資料線都是集電極開路的,容易實現拉低電平。

pc在時鐘的下降沿讀取資料.

ps: ps2協議是現在大多數滑鼠,鍵盤與pc通訊的標準協議,滑鼠的通訊更為簡單些,只是傳送的資料內容不一樣而已。

三.資料傳送時序

鍵盤介面時序(a) 鍵盤傳送時序;(b) 鍵盤接收時序

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

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

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

(3)檢測資料線是否為高,如果為高則繼續執行,如果為低,則放棄傳送(此時pc機在向 ps/2裝置傳送資料,所以ps/2裝置要轉移到接收程式處接收資料);

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

(5)輸出起始位(0)到資料線上。這裡要注意的是:在送出每一位後都要檢測時鐘線,以確保pc機沒有抑制ps/2裝置,如果有則中止傳送;

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

(7)輸出校驗位;

(8)輸出停止位(1);

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

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

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

(2)延時20μs;

(3)把時鐘線拉低;

(4)延時40μs;

(5)釋放時鐘線;

(6)延時20μs。

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

由於ps/2裝置能提供序列同步時鐘,因此,如果pc機傳送資料,則pc機要先把時鐘線和資料線置為請求傳送的狀態。pc機通過下拉時鐘線大於100μs來抑制通訊,並且通過下拉資料線發出請求傳送資料的訊號,然後釋放時鐘。當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)延時20μs;

(2)把時鐘線拉低

(3)延時40μs

(4)釋放時鐘線

(5)延時20μs

(6)讀資料線。

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

(1)延時15μs; (2)把資料線拉低;(3)延時5μs;(4)把時鐘線拉低;(5)延時40μs;(6)釋放時鐘線;(7)延時5μs; (8)釋放資料線。

四.鍵盤返回值介紹:

鍵盤的處理器如果發現有鍵被按下或釋放將傳送掃瞄碼的資訊包到計算機。掃瞄碼有兩種不同的型別:通碼和斷碼。

當乙個鍵被按下就傳送通碼,當乙個鍵被釋放就傳送斷碼。每個按鍵被分配了唯一的通碼和斷碼。這樣主機通過查詢唯一的掃瞄碼就可以測定是哪個按鍵。

每個鍵一整套的通斷碼組成了掃瞄碼集。有三套標準的掃瞄碼集:分別是第一套,第二套和第三套。

所有現代的鍵盤預設使用第二套掃瞄碼。

雖然多數第二套通碼都只有乙個位元組寬,但也有少數擴充套件按鍵的通碼是兩位元組或四位元組寬。這類的通碼第乙個位元組總是為e0。

正如鍵按下通碼就被發往計算機一樣,只要鍵一釋放斷碼就會被傳送。每個鍵都有它自己唯一的通碼和斷碼。幸運的是你不用總是通過查表來找出按鍵的斷碼。

在通碼和斷碼之間存在著必然的聯絡。多數第二套斷碼有兩位元組長。它們的第乙個位元組是f0 ,第二個位元組是這個鍵的通碼。

擴充套件按鍵的斷碼通常有三個位元組,它們前兩個位元組是e0h,f0h ,最後乙個位元組是這個按鍵通碼的最後乙個位元組。下面列出了幾個按鍵的第二套通碼和斷碼:

乙個鍵盤傳送值的例子:

通碼和斷碼是以什麼樣的序列傳送到你的計算機從而使得字元g 出現在你的字處理軟體裡的呢?因為這是乙個大寫字母,需要發生這樣的事件次序:按下shift 鍵-按下g鍵-釋放g 鍵-釋放shift 鍵。

與這些時間相關的掃瞄碼如下:shift 鍵的通碼12h,g 鍵的通碼34h ,g 鍵的斷碼f0h 34h ,shift 鍵的斷碼f0h 12h 。因此傳送到你的計算機的資料應該是:

12h 34h f0h 34h f0h 12h

五:第二套掃瞄碼:

101 102 和104 鍵的鍵盤:

acpi 掃瞄碼:

windows 多**掃瞄碼:

ps2 讀電腦鍵盤實驗

連線方法 : p0口與j12連線拔開跳線帽用杜邦線連線左針與p3.2 右針與p1.6 連線 *

使用方法: 用外部中斷讀取ps2鍵盤的資料並在數碼管上顯示,此程式只處理數字鍵盤。 *

模擬PS2協議

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

PS2介面協議和鍵盤掃瞄碼

ps2介面協議 1 ps 2介面標準的發展過程 隨著計算機工業的發展,作為計算機最常用輸入裝置的鍵盤也日新月異。1983年ibm推出了ibm pc xt鍵盤及其介面標準。該標準定義了83鍵,採用5腳din聯結器和簡單的序列協議。實際上,第一套鍵盤掃瞄碼集並沒有主機到鍵盤的命令。為此,1984年ibm...

計算機標準串列埠轉PS2口轉換模組介面協議

串列埠轉鍵盤口模組使用說明 使用 9600bps 0,1,n 我公司提供串列埠測試軟體 串列埠轉鍵盤口模組有兩種協議方式 1.全部鍵盤功能 有 的按鍵現還不能實現 串列埠發乙個鍵盤碼,ps2口執行乙個鍵盤功能 對應於功能鍵 或串列埠發乙個鍵盤碼,ps2 口顯示乙個鍵盤碼 對應於非功能鍵 請參見上面的...