ノート:Nキーロールオーバー
3key同時押し
[編集]Ctrl + Alt + Del、って3key押しですよね。Win系OSを使っていて押した事のないユーザーって居ないと思うのですが、これだけは例外の回路が設けられているんでしょうか?--TEy 2006年5月31日 (水) 10:39 (UTC)
- シフト系のキー(Shift、Ctrl、Alt)はもともと他のキーと組み合わせて押すためのものなので、例外的に同時押しできるように設計されています。Shift、Ctrl、Alt以外のキーは最近では2つまでしか同時押しできないキーボードがほとんどです。
- キーボード#ロールオーバーが少し詳しいかもしれません。メンブレンスイッチとかよくわかりませんが、食い違いがあるので正確性を貼っておきました。--BitBucket 2006年6月16日 (金) 10:39 (UTC)
- メンブレンスイッチは、電卓やゲーム機コントローラで多用されているシート状のスイッチの事ですね、(ついでに加筆しておきました)。にしても、最近のキーボードでは最低3ロールオーバーではないかという気がします。本記事の内容は相当昔の状況ではないでしょうか。確かFM-7でロールオーバーなしでゲームができないとかの話があった記憶があります。--TEy 2006年6月16日 (金) 11:39 (UTC)
- FM-7でロールオーバーなしでゲームができないという話は初耳ですね。FM-7のキーボードは4bitのマイコンが制御しており、メイン・サブCPUに負荷をかけずにNキーロールオーバやキーリピートを実現できるというメリットがある反面、キーを押したことしか教えてくれないので、ゲームをやる上で、不便でした。(たとえばインベーダゲームでキーを放しても砲台が動き続ける)ちなみにキーが押されたときはメイン・サブの両方に押されたキーのASCIIコードが伝えられ、同時にサブCPUに割込みがかかります。サブCPUは割込みがかかった時に1文字入力されたとして処理します。と言う仕組みになっていました。
- 本来Nキーロールオーバは通常の文字のタイピングのために考えられたものではないでしょうか?たとえば非常に高速でタイピングできる人は、前押したキーが話される前に次の文字をタイピングしているかもしれません。その場合でも正しくキー入力がされるように考えられたのがNキーロールオーバだったと思います。少なくともFM-7はNキーロールオーバになっていても、複数のキーが同時に押されていることは判断できない構造になっていました。つまり、ゲームなどで2と4が同時に押された場合に斜めに動くと言ったようなことは出来ないので、ゲーム用を意識したものではなかったと思います。その代わり、aを押してaを放さずにb押し、bもはなさずにcと順番に押していったときにちゃんとabc...と入力されます。
- この辺は、文章だけだと説明が難しいですね。キーボードと言うのは縦横格子状に並んでいて、片方に電流を順番に流していき(スキャン方向、たとえば縦配線)、その電流が、もう片方に流れてくるか(読取り方向、たとえば横配線)を見ることで押されたキーを読取ります。ここで、スキャン方向2本(配線AとB)、読取り方向2本(配線aとb)を考えましょう。この時、それぞれの交点Aa, Ab, Baの3つのキーが押された場合どうなるでしょう?A配線をスキャンしたとき、その電流はaとbに流れるので、Aa, Abの交点にあるキーが押されていることが分かります。これはいいのですが、問題なのはBをスキャンした場合です。この時Bに流した電流はBaのキーが押されているためBaのキーが押されていることが分かりますが、同時にBにかけた電流はaのラインに流れ込み、更にaのラインからAのラインへ、Aのラインからbのラインに流れ込む(結果的に、Bからbへも流れてしまう)ため、Bbも押されていると判断されてしまいます。ダイオードを入れることにより、a,b(読取り方向の)ラインから、A,B(スキャン方向の)ラインへ電流が逆流しないようにすることで、aのラインからBのラインに電流が流れ込まなくなり、Bbが押されていると誤読取りすることがなくなります。ダイオードが入っていない場合、このケースでは3キー押されてもうまく判断できないと言う点が、同時に押せるキーの保証できる数は2個と言う意味です。
- しかし、これは特殊なケースで、たとえばスキャン方向1本(A)と読取り方向3本(a,b,c)のケースでそれぞれ、Aa,Ab,Acのキーが押されても逆流するラインが無いので、ちゃんと読取れます。キーボードは通常100キーくらいありますから、8x16位のマトリックスになっていると思いますので、キーの組み合わせによっては、16キーくらいまでは同時に押されても正しく読取れると思います。Ctrl + Alt + Delも特に特別な回路を設けなくても、前述した2x2のマトリックスの例のような配列にならない限りはちゃんと読取れます。
- 私のDELLのNote PCで確認したところ、一度押したキーを放さずに順番にASWと打ってもASまでしか入力されませんが、ASDFと打つとASDFまで全て入力されました。文字の組み合わせで同時入力できる数が違うようですね。
キースキャン
[編集]「全てのキーに電流逆流防止のダイオードを入れる必要」知らないものには、なぜ必要があるのか?キーに電流が逆流とは感電したりするのか!?とちんぷんかんぷんだと思うので、押されているキーを読み取る仕組みとして縦横のキーにはスイッチが付いていて、行・列ののどこのキーが押されて電流が流れたかを検出する。複数キーが押されているときに電流が逆流して流れこむと押されたキーが判別できないので、逆流防止ダイオードを・・・云々 —以上の署名の無いコメントは、IP:203.180.59.5(会話/履歴/whois)氏が[2006年6月1日 (木) 04:52 (UTC)]に投稿したものです。
全キー同時押し対応との関係について
[編集]「Nキーロールオーバー」という言葉は、「全キー同時押し対応」という言葉と同義として使われることが多いように思います。そして、この場合の「Nキーロールオーバー」=「同時押し対応」は、「全キーが押下状態にあることを同時認識可能」という意味で理解されていることが多いようです。 ところが、「全キー同時押し対応」と「Nキーロールオーバー」は、微妙に異なったニュアンスで使われているケースがあるのではないでしょうか。
例えば、FM-7#FM-8との比較では、押下/解放の判定が出来ないFM-7のキーボードが、Nキーロールオーバー対応として紹介されています。しかし、この場合、同時に押下状態にあるとは正確に判定できないのですから(実際、同時押しを必要とするゲームなどでは操作に支障があったと聞きます)、先の理解では「全キー同時押し対応」とは言いにくいように思います。
また、キーボード (コンピュータ)#ロールオーバーをはじめ、最近の解説では、USB接続時には仕様上6キーロールオーバーまでしか対応できないとの説明が見られます。しかし、Nキーロールオーバー対応キーボードとして有名な、東プレRealforceの製品説明では、USB接続であろうと無かろうと、Nキーロールオーバー対応と記載されています。この場合、キーボード (コンピュータ)#ロールオーバーでの解説によれば、東プレの説明は不正確ということになるはずです。東プレと同様に、USB版でも「N-Key-Rollover」と表記している製品には、RAPTOR-GAMING K1などがあります(欧米では、USB版しかない場合でも"Full-N-Key-Rollover"と表記している場合が多いようです)。
一方で、通常の6キーロールオーバー(またはそれより少ないキーロールオーバー数)のキーボードと、Realforceなどの「Nキーロールオーバー」「対応」キーボードをUSB接続した場合(またはUSB版)では、動作が異なります。通常の6キーロールオーバーのキーボードでは、6個押下された状態で新たにキーを押すと、それ以上キー押下が認識されません。一方、Realforceなどの「Nキーロールオーバー」「対応」キーボードをUSB接続した場合(あるいはUSB版)では、6個押下された状態で新たにキーを押しても、新たなキー入力として認識されます(つまり、エディタ上などで全キーを一度に押すと、全キーが一度は入力されたことが認識されます)。この場合も、6「キーロールオーバー」と呼べるものなのでしょうか。それともこの場合は「Nキーロールオーバー」と呼べるものなのでしょうか。現時点での本項の「同時に押打されたときに、そのキー全てを読取れる」という定義からは、後者とも理解できるように思います。
以上より、下記の点について皆様のご意見を伺いたいと思います。
「Nキーロールオーバー」とは「全キーが押下状態にあることを同時認識可能」という場合のみを指すのか、それとも「キーが押下状態にあることを同時認識可能なキー数には制限があるが、全キーの同時押下による入力には対応」という場合も含むものなのか
仮に、後者の場合も含むならば、USB接続時には、「Nキーロールオーバーだが、6キーまでしか『同時に』押下状態にあることを認識できない」というケースが存在することになります。 なお、東プレには、以前問い合わせフォームから質問をしたことがありますが、回答はありませんでした。--Hakuchuumu 2007年12月5日 (水) 11:57 (UTC)
- 後者の考え方でいいと思います。「現に押されていることがスキャンできる」という意味は、rollover(転覆)という言葉には含まれないと考えるべきかと。「押された状態」に対してではなく、「押すという行為」に対して用いる単語であると思います。ここ読んで逆にびっくりしました(笑)。本来、高速な打鍵ができるタイピストのための機能ですし。従って、キーボード (コンピュータ)#ロールオーバーのUSBキーボードの説明に問題点はないと思います。「キー自体は入力されるが、6キーより先は最初に押したキーから順に指を離した扱いとなる」=「押されたキーのコードは全て順次ホストに送信され、最後に送信した6個だけが同時に押されている状態になる」と読めます。--Peachberry 2008年3月13日 (木) 14:46 (UTC)
- ありがとうございます。実は最近になってキーボード (コンピュータ)#ロールオーバーの説明が変更され、後者の考え方に切り替わりました。それ以前は、「USBキーボードはUSB HID規格で定義されているboot protocolがほとんどの場合使われるが、その場合そのフォーマットの構造からくる制約により最高でも6キーロールオーバーまでとなる。」と記載されていたので、前述の疑問を持った次第です。確かに、rolloverの原義からすれば、後者に解するのが自然ですね。この分では、いずれキーボード (コンピュータ)#ロールオーバーとの項目としての競合関係の整理が必要になるかも知れませんが、本項も後者の意味を前提に整えていければと思います。--Hakuchuumu 2008年3月15日 (土) 12:06 (UTC)