週刊アスキー

  • Facebookアイコン
  • Twitterアイコン
  • RSSフィード

キーボードとマウスをつなぐDINおよびPS/2コネクター 消え去ったI/F史

2024年05月06日 12時00分更新

 初期のPCでは必須だったのに、今では存在しないコネクターとI/Fの代表例がキーボードで、これにマウスが続く格好だろうか。もっともこれアーキテクチャーによっていろいろ違うのだが、今回はIBM-PC系列の話である(Macintoshはまた異なるし、日本のPC-98シリーズもいろいろ異なる)。

DINコネクターを採用した
IBM-PC標準装備のキーボード

 初代のIBM-PC(IBM Model 5150)の場合、ユーザー入力デバイスはキーボードのみだった。まだマウスはこの時点で世間的には普及していない("Mouse"と名付けられたデバイスそのものは1965年に、Douglas Engelbart博士によって発明されている)が、これがPCの世界に入ってきたのは1985年にMicrosoftが初代のMicrosoft Mouseを発売してからだったと記憶している。

 というわけで最初のIBM-PCにはキーボードのみが標準装備であった。当時のことなのでMS-DOSの上で動くアプリケーションだけだったので、そもそもマウスの必要性がなかった、という話でもあるが。

 話を戻そう。初代のIBM-PCの場合、本体背面に5ピンのDINコネクターの形でキーボード端子が用意された。

IBM-PCのBlue Bookより。隣りがカセットI/Fというあたりが当時の状況を端的に示している

筆者の部屋に転がってた、DIN→PS/2アダプター。なぜでこんなものがまだあるのか?

 DINコネクターの直径は15mmほどで、今の感覚ではかなり大きいのだが、当時からすればごく普通の大きさだった。5ピンの信号の内訳は最初の画像の下にあるように、ClockとData、それと+5VとGNDである。Keyboard Resetはなぜでこれを設けたのかわからないが結局使い道がなかったようでIBM-PC/XTからは廃され、ただのNC(No Contact)になっている。

 さてそのキーボード、下の写真が全体の構成である。右下の赤枠で囲った部分がキーボードの制御部で、マザーボードの側にはKeyboard Logicが廃され、そこからキーボードのケーブル経由でキーボードと接続される。

当初からキーボードは双方向のI/Fになっているのがわかる

 そのKeyboard Logicが下の画像だ。Pin 1、つまりキーボードクロックはシステム全体のクロック信号(PCLK)につながっており、これを利用してデータの送受信を行なう。

リセット信号はクロック信号用のFlip Flop(74LS175)の初期化につながっているのは理解できる。キーボードに流して将来的には活用するつもりだったのだろうか?

 右上にある74LS322(8bit Shift Register)はPin 2(キーボードデータ)から1bit単位でキーボードの押下データを受け取り、これを8bitに変換してi8255(PPI:Programmable Peripheral Interface)に送り出す。

 i8255はi8080に合わせて投入されたCPUの周辺チップで、最大24本の外部入出力端子を持つ。このうち8bitをキーボードに割り当てているわけだ(別にキーボードだけに割り当てているわけではなく、他の周辺機器と共用だが)。

 では一方キーボードの側は? というと、下の画像のようになっている。i8048というマイコンがキーボードマトリックスに接続され、ここで検知したキーボードの押下を元に、Dataoutピン(下の画像右下、i8048の17番ピン)からキーボードコードをシリアルの形で送り出している格好だ。

Keyboard Logicの構造。17番のDataoutというピン、i8048では唯の汎用I/Oピン(DB5)であり、プログラムからOn/Offを制御してシリアル通信を行なっている格好である

 通信プロトコルそのものは、非常に単純なシリアルである。2 Start bit/1 Stop bit/No Parityで、データ8bitなので、1回の転送は11bitとなる。要するにRS-232-Cに近いのだが、違いはリファレンスクロックがあることだ。

 RS-232-Cは連載758回でも説明したように、送信側と受信側で同じ送受信速度になるように調整したうえで、Start Bitを使ってタイミングを検出して同期を取る格好だが、キーボードではDataと同時に送られるClock信号の立ち下がりに合わせて送受信を行う形なので、はるかに同期が容易になる。方式としてはI2CとかSPIなどと呼ばれるものと一緒の仕組みである。

 ちなみに上の画像は最初のIBM-PCのキーボード、つまり俗に83-keyと呼ばれるタイプの回路であるが、内部構造そのものはキーボードのモデルによってけっこう違いがある。のちにIBM-PC/ATの頃に出て来た101-Keyの回路が下の画像で、コントローラーそのものがMotorolaのMC6805に替わっている。

なぜMC6805に変えたのかは不明だが、キー数が多くなりキーボードマトリックスが大型化した関係で、i8048ではピン数が足りなくなったのかもしれない

 ただコントローラーになにを使おうが、要は11bitの同期式の通信をサポートしていれば問題なくキーボードとして利用できるわけで、これがその後のPC互換機のキーボードの標準になった。

 なお一部のキーボードはケーブルが完全に着脱式になっており、この場合キーボード側にはAMPコネクターが使われていたが、これはあまり普及しなかった。

IBMの製品以外にも、互換キーボードでこのAMPコネクターをサポートしたものをいくつか見かけたことがある

 このキーボードI/F、IBM-PC/ATの登場で若干変更がある。具体的には以下が相違点となる。

  • 通信方式が1 Start bit/1 Stop bit/Odd Parityになった
  • 双方向通信になり、PCからキーボードへのコマンド送出(Keyboard Command)をサポートした

 前者は純粋に通信方式の変更であり、IBM-PC/XTまでとIBM-PC/AT以降では通信の互換性がない。そこで過渡期にはこの2つの通信方式を切り替えるスイッチを設けたキーボードが出回った。後者も重要で、IBMの84-Key以降はキーボードの右上にCAPS/Scroll/NumLockを示す3つのLEDが追加されている。

筆者が大昔に所有していた101キーにもスイッチがあった(のだが、写真がない)。このキーボードの場合、8088にするとIBM-PC及びPC/XT互換、80286にするとIBM-PC/AT互換となる

 この3つのLEDのOn/OffはPC側が制御するため、PCからキーボードに対してLEDのOn/Offを支持するコマンドを送れるようにしたわけだ。違いはそれだけであって、5pinのDINコネクターもそのまま引き継がれ、AT互換機もやはり5pinのDINコネクターを装備した。

この記事をシェアしよう

週刊アスキーの最新情報を購読しよう

この連載の記事