welcom ! Handel home

2014年6月25日 星期三

PS/2 通訊協定 PS2 Keyboard , PS2 Mouse

PS/2 通訊協定
簡介:
PS/2 接口是一種 PC 相容型電腦系統上的介面,可以用來連結鍵盤及滑鼠。 PS/2的命名來自於1987 年時IBM所推出的個人電腦:PS/2 系列。PS/2 滑鼠連接通常用來取代舊式的序列滑鼠接口(DB-9 RS-232);而 PS/2 鍵盤連接則用來取代為 IBM PC/AT 所設計的大型 5-pin DIN 接口。PS/2的鍵盤及滑鼠介面在電氣特性上十分類似,其中主要的差別在於鍵盤介面需要雙向的溝通。如果對調鍵盤和滑鼠的插槽,大部份的桌上型電腦主機板將不能識別出鍵盤及滑鼠,如圖8。


目前 PS/2 接口已經慢慢的被 USB 所取代,但大部份的桌上型電腦仍然提供 PS/2 接口。有些滑鼠可以使用轉換器將接口由 USB 轉成 PS/2,亦有可從 USB 分接成鍵盤滑鼠用 PS/2 接口的轉接線。

PS/2 滑鼠和鍵盤履行一種雙向同步串列協定,換句話說,每次資料線發送一位元資料,並且每在時脈線發出一個脈衝就被讀入。鍵盤/滑鼠可以發送資料到主機而主機也可以發送資料到設備,但主機總是在匯流排上有優先權,它可以在任何時候抑制來自於鍵盤/滑鼠的通訊,只要把時脈線拉低即可。

從鍵盤或滑鼠發送到主機的資料在時脈信號的下降緣被讀取;從主機發送到鍵盤/滑鼠的資料在上升緣被讀取。不管通訊的方向怎樣,鍵盤和滑鼠總是產生時脈訊號。如果主機要發送資料,它必須首先告訴設備開始產生時脈訊號。
最大的時脈頻率是 33KHz,而且大多數設備工作在10-20KHz。
如果要製作一個 PS/2 設備,推薦把頻率控制在 15KHz。左右這就意味著時脈應該是高40ms 低40ms 。

[設備到主機的通訊]
鍵盤和滑鼠使用一種每 11 Bit 為一個封包的串聯協議,如圖9。


資料和時脈線都是平常保持高電位。當鍵盤或滑鼠等待發送資料時,它首先檢查時脈線以確認它是否是高電位。如果不是,那麼是主機抑制了通訊,設備必須緩衝任何要發送的資料直到重新獲得匯流排的控制權( 鍵盤有16 位元組的緩衝區而滑鼠的緩衝區僅存儲最後一個要發送的資料包 )。如果時脈線是高電位,設備就可以開始傳送資料,參考圖10。



在時脈頻率為10-16.7KHz時,從時鐘脈衝的上升緣到一個資料轉變的時間至少要有 5ms。資料變化到時鐘脈衝的下降沿的時間至少要有 5ms 並且不大於 25ms。這個定時非常重要,應該嚴格遵循它。主機可以在第11個時鐘脈衝( 停止位元 )之前把線拉低,導致設備放棄發送當前位元組( 這是非常罕見的 )。在停止位元發送後,設備在發送下一個封包前至少應該等待 50ms 。這將給主機時間當它處理接收到的位元組時抑制發送( 主機在收到封包時,通常自動做這個 )。在主機釋放抑制後,設備至少應該在發送任何資料前等 50ms 。

[主機到設備的通訊]
主機發送到設備的封包,有點不同於設備發送到主機的 11 Bit 封包。
PS/2 設備總是產生時脈信號。如果主機要發送資料,它必須首先把時脈和資料線設置為「請求發送」狀態,步驟: 1. 通過下拉時脈線至少 100ms 來抑制通訊。

2. 通過下拉資料線來啟用「請求發送」,然後釋放時脈線。
設備應該在不超過 10 ms 的間隔內就要檢查這個狀態。當設備檢測到這個狀態,它將開始產生
時脈訊號,並且時脈脈衝標記下輸入八個資料位元和一個停止位元。主機僅當時脈線為低的時候改變資料線,而資料在時脈脈衝的上升緣被讀取。這和發生在設備到主機通訊的過程中正好相反。
在停止位元發送後,設備要應答接收到的位元組,就把資料線拉低並產生最後一個時脈脈衝。如果主機在第 11 個時脈脈衝後不釋放資料線,設備將繼續產生時脈脈衝直到資料線被釋放,然後設備將產生一個錯誤。
參照圖11和圖12。





圖 12 描述了兩個重要的定時條件:(a) 和 (b)。
(a) 在主機最初把書記線拉低後,設備開始產生
時脈脈沖的時間,必須步大於 15 ms;
(b) 資料包被發送的時間必須不大於2 ms。
如果這兩個條件不滿足,主機將產生一個錯誤。在封包收到後,主機為了處理資料立刻把時脈線拉低來抑制通訊。如果主機發送的命令要求有一個回應,這個回應必須在主機釋放時脈線後 20 ms 之內被收到。如果沒有收到,則主機產生一個錯誤。在設備到主機通訊的情況中,時脈改變後的 5ms 內不應該發生資料改變的情況。













1 則留言:

淡水夕陽 提到...

時間單位是microsecond,英文縮寫應該要寫成us
ms的話會看成millisecond
引用你原始參考的文件部份內容,確實是microseconds
"The clock frequency must be in the range 10 - 16.7 kHz. This means clock must be high for 30 - 50 microseconds and low for 30 - 50 microseconds"