初期の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コネクターの形でキーボード端子が用意された。
DINコネクターの直径は15mmほどで、今の感覚ではかなり大きいのだが、当時からすればごく普通の大きさだった。5ピンの信号の内訳は最初の画像の下にあるように、ClockとData、それと+5VとGNDである。Keyboard Resetはなぜでこれを設けたのかわからないが結局使い道がなかったようでIBM-PC/XTからは廃され、ただのNC(No Contact)になっている。
さてそのキーボード、下の写真が全体の構成である。右下の赤枠で囲った部分がキーボードの制御部で、マザーボードの側にはKeyboard Logicが廃され、そこからキーボードのケーブル経由でキーボードと接続される。
そのKeyboard Logicが下の画像だ。Pin 1、つまりキーボードクロックはシステム全体のクロック信号(PCLK)につながっており、これを利用してデータの送受信を行なう。
右上にある74LS322(8bit Shift Register)はPin 2(キーボードデータ)から1bit単位でキーボードの押下データを受け取り、これを8bitに変換してi8255(PPI:Programmable Peripheral Interface)に送り出す。
i8255はi8080に合わせて投入されたCPUの周辺チップで、最大24本の外部入出力端子を持つ。このうち8bitをキーボードに割り当てているわけだ(別にキーボードだけに割り当てているわけではなく、他の周辺機器と共用だが)。
では一方キーボードの側は? というと、下の画像のようになっている。i8048というマイコンがキーボードマトリックスに接続され、ここで検知したキーボードの押下を元に、Dataoutピン(下の画像右下、i8048の17番ピン)からキーボードコードをシリアルの形で送り出している格好だ。
通信プロトコルそのものは、非常に単純なシリアルである。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に替わっている。
ただコントローラーになにを使おうが、要は11bitの同期式の通信をサポートしていれば問題なくキーボードとして利用できるわけで、これがその後のPC互換機のキーボードの標準になった。
なお一部のキーボードはケーブルが完全に着脱式になっており、この場合キーボード側には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が追加されている。
この3つのLEDのOn/OffはPC側が制御するため、PCからキーボードに対してLEDのOn/Offを支持するコマンドを送れるようにしたわけだ。違いはそれだけであって、5pinのDINコネクターもそのまま引き継がれ、AT互換機もやはり5pinのDINコネクターを装備した。
週刊アスキーの最新情報を購読しよう
本記事はアフィリエイトプログラムによる収益を得ている場合があります