キーボードの機構は至って簡単で、単なるスイッチの固まりです。 キーを押すとスイッチが入る仕組みになっています。
キーボードは、キーが押された時、どのキーが押されたのかを判断して、 キーが押されたことを CPU に伝える仕事をしています。 押されたキーが何だったのかは、キーコードというもので CPU に伝えます。 キーが離された(押したものを元に戻した)時も、CPU に伝えます。 CPU は、受取ったキーコードによって、入力された文字、 もしくは、機能(ページ送りや、カーソルの移動など)を判断します。
「Shift」 「Ctrl」 「Alt」 「Caps Lock」 「Num Lock」などのキーは、扱いが少し特殊です。
「Shift」 「Ctrl」 「Alt」の各キーは、他のキーと同時に押されても、 同時に押されたということを処理しないといけません。 例えば、「Shift」を押しながら、 「A」のキーを押すと、 「Caps Lock」が外れた状態であれば、 大文字の「A」が、入力されますね。 でも「A」と「B」のキーを同時に押しても、 押し方によって、どちらかのキーが押されたとしか判断しません。
「Caps Lock」 「Num Lock」などは、 押されたことが、CPU に伝わると、 各々ロック状態になった/解除された、が交互に切り替わります。 こんな風に状態が交互に切り替わるものを「トグルスイッチ」と言います。
この時、ロック状態に応じて、CPU からキーボードに対して、 ロック状態を知らせる LED(Light Emitting Diode、 発光ダイオード) を点灯/消灯して、とお願いをします。
「Num Lock」を押すと、 キーボードの右上にある LED が、付いたり消えたりしますね。 これは、CPU が、キーボードにお願いをしているからだったんです。
こんな話、一体何の役に立つのか疑問かもしれませんが、知っておくと、とても便利なことがあるんです。 もし、PC が、フリーズしてしまった時、 もう、どうにもならない状態になっているのか、 それともまだ頑張っているのか、判断できるんです。
「Num Lock」を押しても、 LED が点灯・消灯しないのは、キーボードからの情報を、 CPU が受取ることが出来ない証拠ですので、 その場合は、強制的に再起動するしかありません。 これは、Windows だけでなく、 Macintosh にも使えます。
それから、キーボードには、オートリピートという機能があります。 オートリピートは、同じキーを押し続けた時に、対応するキーコードが、 連続して CPU に伝わるようにする機能のことです。
「A」のキーを押し続けると、 「A」が一文字入力されて、 一瞬時間をおいて、「A」の文字が連続して入力されますね。 このことです。 この機能は、CPU が、キーボードに、 この機能の実現方法を伝えて設定されます。
コントロールパネルの「キーボード」を開いてみてください。 ここに、「速度」というタブがあって、そこで表示される項目に、 「表示までの待ち時間」と「表示の間隔」というのがありますね。 ここで設定できます。
「表示までの待ち時間」は、オートリピートモードに切り替わるまでの時間です。 キーを押し続けた時、一文字入力されてから、連続して入力されるまでの、その一瞬の待ち時間のことです。
「表示の間隔」は、オートリピートモードに切り替わってから、 CPU に伝える間隔のことです。 キーを押し続けた時、連続して入力される、その連続入力の間隔です。 間隔が短いほど、沢山の文字が連続して入力されます。
Macintosh でも、このような設定が出来るはずです。
さて、マウスですが、マウスのスイッチも、理屈はキーボードと同じです。 ただし、オートリピート機能はありません。必要ないですからね。
マウスの特長は、マウス本体を動かすことで、位置情報を CPU に伝えることです。 ボールマウスの場合、スーパーボールのようなボールが、移動によって回転し、 その回転によって、縦と横の移動距離を感知するセンサーが、移動距離をカウントします。 その移動情報が CPU に伝わります。 CPU は、マウスからの移動情報によって、 画面上のマウスカーソルを動かしているわけです。
画面上のマウスカーソルが動くのは、CPU が、グラフィックカードに対して、 マウスカーソルの形状をした画像を移動するように司令して、 指令を受けたグラフィックチップが、ディスプレイメモリ上に表示画像を作って、 それを RAMDAC が... となるわけです。
移動をボールを使って検知するのが、ボールマウスですが、ボールを使わずに、光学的に検知するものもあります。 オプティカルマウスです。 オプティカルマウスは、光線を使って移動を検知します。 非接触なので、機械的に壊れることがありませんし、ボールが汚れてしまって、 移動を検知しなくなってしまうことも無く、マウスパッドも要りません。 ただ、ちょっと高いです。
キーボードもマウスも、 IBM PC/AT のインタフェースは、PS/2 です。 PS/2 インタフェースは、シリアルインタフェースです。 ただし、PC の電源が入っている時に抜き差しすると、問題を起こします。 キーボードやマウスの電源は、インターフェースから供給されている為、 抜かれてしまうと電源が切れてしまうからです。
インタフェースのコネクターは、ミニ DIN 6pin です。 キーボードもマウスも、形状も電気的特性も全く一緒ですが、 それぞれ専用のコネクターに接続しないと、動作しません。
これは、CPU の節で書いた、割り込みが関係してきます。 それぞれのインタフェースは、割り込みの番号が決まっています。 CPU は、割り込みがかけられた時、 その割り込み番号によって、割り込みの種別を知ります。
ですから、キーボードを接続するところに、マウスを接続すると、 CPU は、キーボードからの情報の通知があったものと考えてしまい、 キーボードからの情報として、マウスからの情報を取り扱ってしまう為、きちんと処理できないのです。
ただ、間違えて接続してしまっても、電気特性が全く同じのインターフェースなので、 壊れる心配はありません。動かないだけです。
最近は、USB というインターフェースを用いた、キーボード、マウスも発売されています。 これは、OS として、Windows NT 4.0 を使っている場合は、 選んではいけません。 Windows NT 4.0 では、 USB インターフェースをサポートしていない為です。
キーボード、マウスに限らず、USB インタフェースを用いた周辺機器は、 Windows NT 4.0 を使い続ける限り、接続することは出来ません。 もし、どうしてもそれらの周辺機器を使いたい場合は、 Windows 2000、もしくは、 Windows XP にアップグレードしないといけないです。