2016.10.14
前へ
次へ
ホームページトップへ戻る

マイコン独立大作戦
キーボードインターフェースの製作

〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
WindowsパソコンにUSB接続して使う現行方式はそれなりに便利ではありますが、ときとしてWindows
のしがらみから開放されて、小さいながらも独立した一個のパソコンとして機能したいと思うこともあります。
独立大作戦の作戦その1はCRTインターフェースボードの製作です。
そして作戦その2は、やっぱりキーボードインターフェースしかありませんでしょう。
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜

[第4回]


●スキャンコード

前回は、PS/2キーボードから出力されるキーコードはASCIIコードではありません、と書きました。
それでは何コードかといいますと一般にスキャンコード(scan code)と言われています。
名前から想像するに、おそらくその昔にメカニカルキーボードだった時代に、キーをスキャンして得られるコードが元になっていると思われます。
スキャンコードの詳細についてはMicrosoftのドキュメントがダウンロードできますから、それによって知ることができますが、実にわかりにくい資料です。
Googleで「 download microsoft scancode 」で検索するとトップに表示されます。
面白いことにPDFではなくてWord文書です。
また「 PS/2 スキャンコード 」で検索すると、本家Microsoftのドキュメントよりもよほど要領よくわかりやすくまとめた表がいくつかヒットします。
それぞれに著作権のあることですから、それをここにコピーしてお見せするわけにはいきませんので、皆様方ご自身が閲覧、ダウンロードなどしていただきますようお願いいたします。
理解を助けるためにここではスキャンコードの一部を紹介いたします。

キーが押されると、たとえば数字の「1」のキーの場合クロックとともにスキャンコード16Hが出力されます。
そのまま押し続けていると、オートリピート動作になって、最初は約0.5秒後に、その次からは約0.1秒ごとに16Hが繰り返し出力されます。
そしてキーを離すと、キーが離されたことを示すために、スキャンコードの前にF0Hが付加されて、F0H、16Hが出力されます。

下はその状況をカメレオンUSBロジアナで観測した波形です。

これはキーを離す直前に出力されたスキャンコード(16H)です。
測定をスタートしてからの経過時間は487300μsと表示されています。

キーを離した直後に出力された波形です。

キーが離れたことを示すスキャンコード(F0H)です。
経過時間は543900μsと表示されています。

それから4800μs後に今まで押していたキー(数字の1)のスキャンコード16Hが出力されました。


説明の途中ですが、本日も時間がなくなってしまいましたので、続きは次回にすることにいたします。

キーボードインターフェースの製作[第4回]
2016.10.14upload

前へ
次へ
ホームページトップへ戻る