実際のUSB通信プロトコルはありますか?

Jan 29, 2025
ハードウェア
未取得のコンテンツ

私たちのほとんどは、USBデバイスについてあまり考えません。プラグを差し込むだけで、忘れてしまいます。しかし、USBがどのように機能するかについてもっと知りたいと思っている好奇心旺盛なタイプの場合はどうでしょうか?今日のスーパーユーザーのQ&A投稿には、好奇心旺盛な読者の質問に対する回答があります。

今日の質疑応答セッションは、コミュニティ主導のQ&AWebサイトのグループであるStackExchangeの下位区分であるSuperUserの好意で行われます。

写真提供: Evilelka Kowalski(Flickr)

質問

スーパーユーザーリーダーsmeebは、実際のUSB通信プロトコルが実際に存在するかどうかを知りたいと考えています。

ウィキペディアによると、 USB

  • コンピュータと電子デバイス間の接続、通信、および電源供給のためにバスで使用されるケーブル、コネクタ、および通信プロトコルを定義します。

しかし、実際にはありますか USB通信プロトコル ?私の理解はそれです:

  1. USBデバイスをマシン(Ubuntuやあらゆる種類のLinuxなど)に接続します。
  2. Linuxはどういうわけかそのデバイスのデバイスドライバーを見つけます( あなたが知っているならボーナス! )そしてそれをロードします。
  3. これで、デバイスは / dev / theDevice
  4. ユーザースペースアプリが読み取りと書き込みができるようになりました / dev / theDevice ドライバーは、基盤となるデバイス/ハードウェアへの低レベルの入力と出力を処理します。

私の知る限り、 USB通信プロトコル このフローのどこにも表示されません。私の理解が正しければ、USBはPCとデバイス間のケーブルと電気接続にすぎません。

私はここで間違っていますか? USBは実際に、上記のフローを強調するある種の低レベルプロトコルを実装していますか?もしそうなら、それは何ですか、そしてそれは30,000フィートのビューでどのように機能しますか?

実際のUSB通信プロトコルはありますか?

答え

スーパーユーザーの寄稿者であるRedGrittyBrickとprojectdpが答えを持っています。まず、RedGrittyBrick:

はい ( USBプロトコルを参照してください )。

私が理解しているように、USB仕様は、階層化されたプロトコルとデバイスプロファイルの複雑なセットを定義しています。

たとえば、USBデバイスは、大容量記憶装置、キーボード、ヒューマンインターフェイスデバイスなどの高レベルのテンプレートに準拠し、汎用デバイスドライバーによって管理できます。一部のUSBデバイスは、オペレーティングシステムの低レベルのUSBサポートがデバイス固有の高レベルのドライバーが必要であることを認識できるように、低レベルで通信できます。

projectdpからの回答が続きます:

質問

低レベルのUSB通信プロトコルが動作していますか?それは何ですか?

回答

はいあります。 USB仕様には、バスがビットレベルで使用される方法を定義するUSB​​プロトコルが含まれています。これは、高レベルのプロトコル(つまり、大容量記憶装置、HIDなど)の基礎となる低レベルのプロトコルになります。

USBプロトコルの仕組みの詳細については、これ OSDev wiki 役に立ちます。ここに別のものがあります 興味深い説明 シーケンス図を使用して、USBプロトコルごとのさまざまなデータトランザクションを記述します。

ボーナス質問

Linuxはどのようにしてそのデバイスのデバイスドライバーを見つけてロードしますか?

ボーナスアンサー

LinuxでUSB対応カーネルを使用している場合、USB仕様により、動作中のUSBデバイスがハードウェアとカーネルを介して検出されます。ハードウェア側では、検出はUSBホストコントローラーによって行われます。次に、カーネルでホストコントローラードライバーが引き継ぎ、ワイヤー上の低レベルビットをUSBプロトコル形式の情報に変換します。次に、この情報はカーネルのusbcoreドライバーに入力されます。

私はこの優れたものから言い換えました Opensourceforuの記事 、Linuxのコンテキストでの質問について、より詳細で明確になっています。

以下に共有されているスレッドリンクを介して、活発な議論の残りの部分をチェックしてください!


説明に追加するものがありますか?コメントで音を立ててください。他の技術に精通したStackExchangeユーザーからの回答をもっと読みたいですか? ここで完全なディスカッションスレッドをチェックしてください

USB Protocol

What Is HART Protocol?

How To Reverse Engineer A USB Protocol For Linux

Fun And Easy USB - How The USB Protocol Works

HTC Vive USB Protocol Reverse Engineering

Dmitriy Kostiuk | How To Get Yourself Into The Usb Protocol Without Pain

What Is The USB Type-C Signal Plan? How Does Orientation Independence Happen?

About The Data Center 3.0, A Protocol Analysis Software For USB, I2C, And SPI

What Is RS232 And What Is It Used For?


ハードウェア - 最も人気のある記事

ケーブル会社は無料チャンネルをめぐって争っている

ハードウェア Jan 8, 2025

ケーブル業界がゆっくりと死に向かって這い回っていることは周知の事実です。どういうわけかこれまで以上に高価になっている複雑�..


EKGとは何ですか?新しいApple Watchではどのように機能しますか?

ハードウェア Sep 25, 2025

未取得のコンテンツ Appleは最近シリーズ4ウォッチをリリースし、誰もが新しい心臓モニター機能である心電図(EKGまたはECG)に�..


HTC Vive Proは元のViveよりどのように優れていますか?

ハードウェア May 3, 2025

未取得のコンテンツ HTCの新しく改良されたViveProVRヘッドセットがいつ登場するかがついにわかりました。 そしてどのくらいの�..


eMMCフラッシュメモリをモバイルデバイスで実行可能にするが、PCでは実行できない理由は何ですか?

ハードウェア Feb 9, 2025

未取得のコンテンツ フラッシュメモリを使用してWindowsなどのデスクトップシステムを実行することは、かなり前から推奨されていま..


ソリッドステートドライブ(SSD)とは何ですか?必要ですか?

ハードウェア Dec 22, 2024

ソリッドステートドライブ(SSD)は、可動部品を備えた従来のハードドライブに対応する非常に高速なドライブです。しかし、彼らは�..


SSDにアップグレードすることは素晴らしいアイデアですが、データを保存するにはハードドライブを回転させる方が優れています(今のところ)

ハードウェア Jun 5, 2025

SSDは高速で信頼性が高く、壊れてドライブ障害を引き起こす可能性のある機械部品がないため、プライマリシステムドライブとして論�..


Androidフォンで物理コントローラーを使用してゲームをプレイする方法

ハードウェア Oct 30, 2025

未取得のコンテンツ Androidプラットフォームで利用できるすばらしいゲームはたくさんありますが、画面上のインターフェースでそれ..


CPUとGPUはどのように相互作用してコンピュータグラフィックスをレンダリングしますか?

ハードウェア Aug 21, 2025

コンピューターの中央処理装置(CPU)とグラフィックス処理装置(GPU)は、コンピューターを使用するたびに相互作用して、鮮明で応答性�..


カテゴリ