PS2キーボードプロトコル変換 アダプタ |
![]() |
![]() |
コンセプト |
一般のパソコン用として使用されているPS2キーボードの信号(同期シリアル)を、ワンダースワンの通信ポート仕様(非同期38400bps)に変換し、容易に接続できるようにするために作製したものです。
通信ポート及びメモリーを内蔵したワンチップマイコン(ATMEL社AVR)を使用することで、必要最低限の簡単な回路で変換が行えます。
また、PS2キーボードからの受信だけではなく、キーボードに対してコマンドを送信する事も可能になっています。これによって細かいキーボードの制御(LEDの点灯、キーリピート速度)を行うことが出来ます。 |
使用法 |
アダプタはワンダースワン側から見ると、シリアル接続された普通の外部機器と同等です。
従って普通に通信ポートを開けば、キー入力されたコードがそのまま受信できます。接続はワンダーウィッチ付属のPC接続ケーブルを使用し、PCの代わりにアダプタを接続、アダプタにPS2キーボードを接続します。 |
ハードウェア |
アダプタの回路は非常に単純で、PS/2のCLOCK信号をAVRの外部割り込み端子に、DATA信号を入力端子に接続し、AVRのUART入出力端子をMAX232経由でRS232Cコネクタへ接続しているだけです。
AVRの入力ポートにはプルアップが内蔵されているので、CLOCKとDATAのプルアップ抵抗は不要なようにも思えますが、内蔵プルアップではキーボードに対するコマンド送信がうまくいかなかった為、付けてあります。 |
|
ファームウェア |
|
バイナリファイル(ppca_bin.zip) |
キーコード表 |
アダプタスキャンコードモード、トランスレートモード、拡張トランスレートモードの三つの出力モードを持ちます。
スキャンコードモード時はPS2キーボードの生データをそのまま出力し、トランスレートモードと拡張トランスレートモード時はスキャンコードを内部で変換してから出力します。 ScrollLock、NumLock、CapsLockの各LEDのON/OFFや、Shiftキーを押した時の英小文字/英大文字の切替動作は、スキャンコードモード時には一切行われないので注意が必要です。
|
|
|
拡張トランスレートモード時は、トランスレートモード時のコードに加えて0x80〜0xFFの範囲のコードが出力されます。
基本的に全てのキーコードはキーを押したときに出力されますが、左右のCtrl、Shift、Altキーだけはキーを押したときと離したときにコードが出力されます。 後ろに(M)と書かれているのがキーを押したときに出力されるコード、(B)と書かれているのが離した時に出力されるコードです。 |
コマンド |
ワンダースワンからアダプタに対してコマンドを送信することで、動作モードを切り替えたり、状態を取得したりすることができます。
コマンドは全て1バイトの半角英大文字または数値です。 |
|
作者情報 |
高橋勝寿(たかはしかつとし)
メールアドレス:tokoya@mars.dti.ne.jp ホームページ:www.mars.dti.ne.jp/~tokoya |