Gibt es ein tatsächliches USB-Kommunikationsprotokoll?

Gibt es ein tatsächliches USB-Kommunikationsprotokoll?

Is There An Actual Usb Communication Protocol

Was macht Steam-Backup?

Die meisten von uns denken nie viel über unsere USB-Geräte nach, wir schließen sie einfach an und vergessen sie. Aber was ist, wenn Sie der neugierige Typ sind, der mehr über die Funktionsweise von USB erfahren möchte? Der heutige SuperUser Q&A-Post enthält die Antworten auf die Fragen eines neugierigen Lesers.



Die heutige Frage-und-Antwort-Sitzung kommt mit freundlicher Genehmigung von SuperUser – einer Unterabteilung von Stack Exchange, einer Community-gesteuerten Gruppierung von Q&A-Websites.

Foto mit freundlicher Genehmigung von Evilelka Kowalski (Flickr) .

Die Frage

SuperUser-Leser smeeb möchte wissen, ob es wirklich ein tatsächliches USB-Kommunikationsprotokoll gibt:

Laut Wikipedia, USB :

  • Definiert die Kabel, Anschlüsse und Kommunikationsprotokolle, die in einem Bus für die Verbindung, Kommunikation und Stromversorgung zwischen Computern und elektronischen Geräten verwendet werden.

Aber gibt es eine tatsächliche USB-Kommunikationsprotokoll ? Mein Verständnis ist folgendes:

  1. Sie schließen ein USB-Gerät an einen Computer an (z. B. Ubuntu oder jede Art von Linux).
  2. Linux findet den Gerätetreiber für dieses Gerät irgendwie ( Bonus, wenn Sie wissen! ) und lädt es.
  3. Das Gerät ist nun verbunden unter /dev/theDevice .
  4. User-Space-Apps können jetzt lesen und schreiben /dev/theDevice und der Treiber verarbeitet die Low-Level-Eingabe und Ausgabe an das zugrunde liegende Gerät/die zugrunde liegende Hardware.

Soweit ich das beurteilen kann, a USB-Kommunikationsprotokoll erscheint nirgendwo in diesem Flow. Wenn mein Verständnis richtig ist, ist der USB nur das Kabel und die elektrische Verbindung zwischen dem PC und dem Gerät.

wie gehe ich in die Zwischenablage

Liege ich hier falsch? Implementiert USB tatsächlich eine Art Low-Level-Protokoll, das den obigen Ablauf unterstreicht? Wenn ja, was ist das und wie funktioniert es bei einer 30.000-Fuß-Ansicht?

Gibt es ein tatsächliches USB-Kommunikationsprotokoll?

Die Antwort

Die SuperUser-Mitwirkenden RedGrittyBrick und projectdp haben die Antwort für uns. Zuerst RedGrittyBrick:

Ja ( siehe USB-Protokolle ).

Soweit ich weiß, definiert die USB-Spezifikation einen komplexen Satz geschichteter Protokolle und Geräteprofile.

USB-Geräte können beispielsweise High-Level-Vorlagen wie Massenspeicher, Tastatur, Benutzerschnittstellengerät usw. entsprechen und von einem generischen Gerätetreiber verwaltet werden. Einige USB-Geräte können auf einer niedrigeren Ebene kommunizieren, sodass die USB-Unterstützung auf niedriger Ebene des Betriebssystems erkennen kann, dass gerätespezifische Treiber auf höherer Ebene benötigt werden.

Gefolgt von der Antwort von projectdp:

Frage

Gibt es ein Low-Level-USB-Kommunikationsprotokoll und was ist es?

Antworten

Ja da ist. Die USB-Spezifikation enthält das USB-Protokoll, das die Art und Weise definiert, wie der Bus auf Bitebene verwendet wird. Dies wäre das Low-Level-Protokoll, das den High-Level-Protokollen (d. h. Massenspeicher, HID usw.) zugrunde liegt.

Dualband vs Triband

Einzelheiten zur Funktionsweise des USB-Protokolls finden Sie hier OSDev-Wiki ist hilfreich. Hier ist noch einer interessante Beschreibung Verwenden von Sequenzdiagrammen, um die verschiedenen Datentransaktionen gemäß dem USB-Protokoll zu beschreiben.

Bonus-Frage

Wie findet und lädt Linux den Gerätetreiber für dieses Gerät?

Bonus-Antwort

warum überhitzt mein computer?

Unter Linux wird bei Verwendung eines USB-fähigen Kernels aufgrund der USB-Spezifikation ein funktionierendes USB-Gerät über die Hardware und den Kernel erkannt. Hardwareseitig erfolgt die Erkennung durch den USB Host Controller. Dann übernimmt im Kernel der Host-Controller-Treiber und übersetzt die Low-Level-Bits auf der Leitung in Informationen im USB-Protokollformat. Diese Informationen werden dann in den usbcore-Treiber im Kernel eingetragen.

Ich habe von diesem ausgezeichneten paraphrasiert Opensourceforu-Artikel , die viel mehr Details und Klarheit zu Ihrer Frage im Linux-Kontext enthält.

Anzeige

Schauen Sie sich den Rest der lebhaften Diskussion über den unten geteilten Thread-Link an!


Möchten Sie der Erklärung noch etwas hinzufügen? Ton aus in den Kommentaren. Möchten Sie mehr Antworten von anderen technisch versierten Stack Exchange-Benutzern lesen? Sehen Sie sich hier den vollständigen Diskussionsthread an .

WEITER LESEN
  • & rsaquo; Cyber ​​Monday 2021: Die besten Tech-Deals
  • › Was ist MIL-SPEC Fallschutz?
  • › So finden Sie Ihr Spotify Wrapped 2021
  • › 5 Websites, die jeder Linux-Benutzer mit einem Lesezeichen versehen sollte
  • › Funktionen vs. Formeln in Microsoft Excel: Was ist der Unterschied?
  • › Der Computerordner ist 40: Wie Xerox Star den Desktop erstellte
Akemi Iwaya
Akemi Iwaya ist seit 2009 Teil des How-To Geek/LifeSavvy Media-Teams. Sie hat zuvor unter dem Pseudonym 'Asian Angel' geschrieben und war Lifehacker-Praktikantin, bevor sie zu How-To Geek/LifeSavvy Media kam. Sie wurde von ZDNet Worldwide als maßgebliche Quelle zitiert.
Vollständige Biografie lesen