了解原理先從了解協議標準開始。
PS/2接口標準的發展過程
隨著計算器工業的發展,作為計算機最常用輸入設備的鍵盤也日新月異。1981年IBM推出了IBM PC/XT鍵盤及其接口標準。該標準定義了83鍵,采用5腳DIN連接器和簡單的串行協議。實際上,第一套鍵盤掃描碼集并沒有主機到鍵盤的命令。為此,1984年IBM推出了IBM AT鍵盤接口標準。該標準定義了84~101鍵,采用5腳DIN連接器和雙向串行通訊協議,此協議依照第二套鍵盤掃描碼集設有8個主機到鍵盤的命令。到了1987年,IBM又推出了PS/2鍵盤接口標準。該標準仍舊定義了84~101鍵,但是采用6腳mini-DIN連接器,該連接器在封裝上更小巧,仍然用雙向串行通訊協議并且提供有可選擇的第三套鍵盤掃描碼集,同時支持17個主機到鍵盤的命令。
PS/2接口硬件
物理連接器
一般,具有五腳連接器的鍵盤稱之為AT鍵盤,而具有六腳mini-DIN連接器的鍵盤則稱之為PS/2鍵盤。其實這兩種連接器都只有四個腳有意義。它們分別是Clock(時鐘腳)、Data數據腳、+5V(電源腳)和Ground(電源地)。在PS/2鍵盤與PC機的物理連接上只要保證這四根線一一對應就可以了。PS/2鍵盤靠PC的PS/2埠提供+5V電源,另外兩個腳Clock(時鐘腳)和Data資料腳都是集電極開路的,所以必須接大阻值的上拉電阻。它們平時保持高電平,有輸出時才被拉到低電平,之后自動上浮到高電平。
電氣特性
PS/2通訊協議是一種雙向同步串行通訊協議。通訊的兩端通過Clock(時鐘腳)同步,并通過Data(數據腳)交換數據。任何一方如果想抑制另外一方通訊時,只需要把Clock(時鐘腳)拉到低電平。如果是PC機和PS/2鍵盤間的通訊,則PC機必須做主機,也就是說,PC機可以抑制PS/2鍵盤發送數據,而PS/2鍵盤則不會抑制PC機發送數據。一般兩設備間傳輸數據的最大時鐘頻率是33kHz,大多數PS/2設備工作在10~20kHz。推薦值在15kHz左右,也就是說,Clock(時鐘腳)高、低電平的持續時間都為40μs。
由此可以看出,傳輸數據的反應靈敏度是由PS/2鍵盤電路中的RLC振蕩電路所決定。我們可以通過一些特殊設計改變PS/2和PC間同步反應靈敏度,從而達到改變鍵盤速度的目的。目前市場上的鍵盤,還是完全一成不便的按照81年的設計,此設計已遠遠不能滿足使用者對于鍵盤的需求。為了滿足消費者此需求,雙飛燕投入大量的人力物力,終于研制出了世界上第一只可以變速的X7-G500鍵盤。此設計的鍵盤最大限度的滿足廣大消費者對于鍵盤速度的需求。
為什么通過軟件調整重復率不穩定,為什么CS,勁樂、勁舞、俄羅斯方塊、極品飛車、拳皇等游戲高手不喜歡用早期的軟件加速或者只修改重復速率的鍵盤。
傳輸中,每一數據幀包含11~12個位,具體含義如表1所列。
表1 數據幀格式說明
1個起始位 總是邏輯0
8個數據位 (LSB)低位在前
1個奇偶校驗位 奇校驗
1個停止位 總是邏輯1
1個應答位 僅用在主機對設備的通訊中
表中,如果數據位中1的個數為偶數,校驗位就為1;如果數據位中1的個數為奇數,校驗位就為0;總之,數據位中1的個數加上校驗位中1的個數總為奇數,因此總進行奇校驗。
PS/2設備和PC機的通訊
由于各鍵盤的發送速率不同以及按鍵的速度不一致,并為了提高兼容性,又在異步通信的基礎上增加了同步時鐘,在時鐘的下降沿對數據進行采樣。
PC機與鍵盤的通信只有經過握手后才能進行,KBDCLK可能作為清除發送線,當PC機將KBDCLK接為低電平時,鍵盤將不能發送數據給PC機,而是將要發送的數據放入發送數緩沖區中,直到KBDCLK為高電平時才開始發送數據。當KBDDATA和KBDCLK同時為高電平時(沒有數據傳送時KBDDATA和KBDCLK保持為高電平)
鍵盤可以發送字節給PC機,鍵盤將KBDDATA拉為低電平(即PC機接收鍵盤數據的起始位),通知PC機應接收來自鍵盤的數據。如果PC機將KBDDATA拉為低電平時(即鍵盤接收PC機數據的起始位),表明PC機將發送字節給鍵盤。這就說明PC機具有較高的優先權,可以控制PC機和鍵盤的通信方向。