スキャンコード

スキャンコードの概要



スキャンコード(scancode)は、コンピュータにおいてキーボードのキーが押されたり離された際に、CPUに送信される一連の符号です。このプロセスは、「走査コード」とも呼ばれ、デジタルデバイスにおける入力の基本的な部分を形成しています。スキャンコードは、キーの動作を物理的に識別する役割を果たし、具体的な文字や機能とは独立しています。

スキャンコードの仕組み



コンピュータで「A」のキーを押すと、通常「A」の文字コードが送信されると考えがちですが、実際にはキーボードコントローラがそのキーに特有のスキャンコードを生成し、CPUに送ります。この過程では、押下されたキーの情報をもとに、キー配列修飾キーの状態も考慮しながら、正しい文字か機能が認識されます。

押下時のスキャンコードはメイクコード、キーを離したときに発生するのはブレイクコードと呼ばれます。そして、同じキーに対してメイクコードとブレイクコードは通常、MSBやプレフィクスコードを使って区別されます。たとえば、オートリピート機能を持つキーボードでは、キーが押されている限り、メイクコードが定期的に送信されます。

インターフェースとスキャンコードのバリエーション



スキャンコードの体系は様々なコンピュータ機種によって異なりますが、インタフェース規格もその構造に影響を与えます。同一の機種やインターフェースであっても、複数のスキャンコード体系が存在するため、オペレーティングシステム(OS)は受け取ったスキャンコードを、そのOS独自の仮想キーコードに変換して扱うことが一般的です。

キー配列とその影響



キーボードは国や地域に応じてJIS配列やUS配列など、さまざまな方式で設計されていますが、物理的な配置が同じであれば、キーの刻印が異なっていても、同一のスキャンコードを発生させることが普通です。これにより、異なる配列間での互換性が高まります。たとえば、JIS配列のキーボードにUS配列の設定を適用しても、ほとんどのキーは問題なく機能します。ただし、物理的に異なるキー位置や機能を持つ場合には、この限りではありません。

具体的なキーボードのスキャンコード



PC/AT・PS/2キーボード



PC/AT互換機|PC_AT互換機のスキャンコード体系は複雑で、時代を経ながら変化してきました。最初の83キーボード(IBM PC、PC/XT)は比較的簡潔で、01から53までのスキャンコードを使用しました。84キーボード(PC/AT)では物理的配置が一部変更され、一部のキーが追加されました。101拡張キーボード以降は、さらに多くのキーが追加され、コードセットが増えています。

USBキーボード



USBキーボードは、ヒューマン・インタフェース・デバイス(HID)デバイスクラスの一部として定義されており、スキャンコードの代わりにUsageという用語が用いられます。Usageは32ビットの符号なし整数で構成され、特定の物理状態をホストに通知します。USBデバイスでは、押されたり離されたりしたキーの情報が静的に送信されますが、スキャンコードとは異なるため、全体の設計思想が反映されています。

スキャンコードの結論



スキャンコードは、キー入力としての役割を果たす重要な要素であり、キーボードの作用を理解する上で不可欠です。各機器に応じたスキャンコードの体系や、その変換・処理方法を知ることで、コンピュータの動作をより深く理解できるでしょう。今後も、各種のキーボードが異なる機種間でどのように機能するのかを考えることが、エンジニアや開発者にとって重要です。

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。