PS/2プロトコル PIC


スポンサーリンク


PS/2 キーボードインターフェイスに関して
PICとPS/2キーボードを接続する場合は、PIC側からキーボードへ+5Vの電源を供給する必要があります。また、信号のやり取りには、Data(データ)、Clock(クロック)の2本の線を使います。つまりPIC側とPS/2キーボードとの接続は、+5V、GND、Data,Clockの4本の線が必要になります。通常Mini−DIN(6ピン)のコネクタが使われ、そのうち4ピンが有効になっています。

6pin Mini−DIN(PS/2)ピンアサイン
1-Data
2-N/A
3-GND
4-+5V
5-Clock
6-N/a

PIC側(ホスト)からキーボード(デバイス)へ供給する電源(5V)は最大275mAの容量を確保しておく必要があります。PIC側で使用する3端子レギュレータは100mAタイプのものではなく1Aもしくは0.5Aタイプのものを使います。電源ラインに使用する電解コンデンサもキーボード接続時に電圧降下を起こさないように注意します。

デバイス(キーボード)の電源仕様
電圧:4.5-5.5
最大電流:275mA

PS/2キーボードはシリアル通信(同期)でPICと通信をします。キーボードからPICへの片方向だけでなくキーボードへコマンドを送ることもでき、双方向通信になります。

DataとClockはキーボード側でオープンコレクタになっているため、PICとの接続にはプルアップ抵抗が必要になります。プルアップ抵抗の抵抗値は数キロオームあれば大丈夫のようです。抵抗値が低いほど消費電力的には不利ですが信号の立ち上がりが急峻になって誤動作しにくと思われます。クロック信号はキーボードが送信し、周波数は10-16.7kHzの範囲になっています。

Data線とClock線の電位によって以下の状態を取ります。
Data:5V、Clock:5V  −> Idle
Data:5V、Clock:0V  −> Communication inhibit
Data:0V、Clock:5V  −> Host request to send

キーボードからPICへデータを送るときは、キーボードがClock線が+5Vであることを確認した後、シリアルデータをクロック信号と共に送信します。PICは、クロック信号の立下りエッジのタイミングでData線の電圧を読み取り信号を受信します。キーボードがPICへデータを送ろうとしたときにClock線が0Vであったときは通信が禁止されている状態(Communication inhibit)になります。

PICからキーボードへデータを送る場合は、最初にClock線を100ms以上0Vにします。次にData線を0VにしたのちClock線を5Vにします。Data:0V、Clock:5VとなりHost request to send状態になります。この状態をキーボードが検出したらキーボードはクロック信号を送りだします。PICはクロック信号が0VになったときにData線の電圧を送るデータに応じて0V、5Vにセットします。この電圧をクロックの立ち上がりエッジでキーボードは読み取ります。キーボードが1バイトのデータを読み取るとキーボードはData線を0V(ack)にしデータの送信が完了します。


PS/2ミニDINコネクタのピンアサインは下の写真のようになります。(メス側のコネクタを裏側から撮影)

PS/2 キーボード ピンアサイン 電子工作

スポンサーリンク

戻る
TOPへ