私たちのほとんどは、キーボードがうまく機能している限り、キーボードについてあまり考えませんが、少しの間考えなくなった場合、キーボードはコンピューターに信号を送信するだけですか、それともアクティブな往復プロセスがありますか? ?今日のスーパーユーザーのQ&A投稿には、好奇心旺盛な読者の質問に対する回答があります。
今日の質疑応答セッションは、コミュニティ主導のQ&AWebサイトのグループであるStackExchangeの下位区分であるSuperUserの好意で行われます。
質問
スーパーユーザーリーダーのNeMoは、USBキーボードが信号のみを送信するのか、それとも受信するのかを知りたがっています。
USBキーボードは、コンピューターから信号を受信する必要はありません。電源だけですよね?それとも、信号を送信するだけでなく受信する必要がありますか?
USBキーボードは信号を送信するだけですか、それとも受信しますか?
答え
スーパーユーザーの寄稿者であるLawrenceCとDmitryGrigoryevが答えを持っています。まず、LawrenceC:
から " ヒューマンインターフェイスデバイス(HID)のデバイスクラス定義 」仕様:
![]()
キーボードのLEDを変更するために、キーボードはそのようにするコマンドを受け入れます。したがって、これは「入力専用」デバイスではありません(つまり、データをホストに出力するだけです)。そうは言っても、ホストとデバイス間のやり取りを必要とするすべてのUSBデバイスとのネゴシエーションと列挙のプロセスがあります。 「読み取り専用」のUSBデバイスを使用することはできません。 USBの前でさえ、コンピューターのキーボードコントローラーは、キーボードを読み取る以外にいくつかのことを行ったため、コマンドを受け入れていました( 参照 ):
![]()
ドミトリー・グリゴリエフからの回答が続きます:
クラスに関係なく、USBデバイスが機能するには双方向通信が必要です。すべてのUSBデバイス(またはUSB仕様の観点から機能)は、データを受信または受信するバッファーと考えることができるエンドポイントのセットとして表されます。ただし、データを送信することしかできないエンドポイントでさえ、応答する前にトークンと呼ばれる特別なパケットを待ちます。
![]()
灰色のボックスはUSBホストを表し、白いボックスはUSB機能を表します( チャートソース )。
いわゆる割り込み転送でさえ、この方法で行われ、USBホストはトークンパケットを使用して接続されたデバイスをポーリングします。通常の(バルク)転送と割り込み転送の違いは、ポーリング時間が短く、後者の場合に保証されることです。それでも、すべての転送はホストによって開始されます。
説明に追加するものがありますか?コメントで音を立ててください。他の技術に精通したStackExchangeユーザーからの回答をもっと読みたいですか? ここで完全なディスカッションスレッドをチェックしてください 。
画像クレジット: ルーク・ジョーンズ(Flickr)