Aus dem Oracle-Wiki (USB-Controller):

Der USB-Host-Controller hat einen eingebetteten Hub namens Root-Hub. Die Ports, die auf der Rückseite des Systems sichtbar sind, sind die Ports des Root-Hubs.

Daraus verstehe ich, dass es sich lediglich um den Root-Hub handelt ist ein Punkt, an dem alle USB-Hubs zusammenkommen.

– Ist der Root-Hub eine Hardware oder bezeichnet er den Punkt, an dem alle Daten von USB-Geräten zusammenkommen?

– Es gibt verschiedene Arten von Schnittstellen zwischen dem Root-Hub und dem Controller (UHCI, OHCI, EHCI). Ist es dann richtig, den Controller als „Vermittler“ zwischen dem Root-Hub und dem tatsächlichen Computer zu betrachten?

Antwort

Sie können mehr als einen Root-Hub haben, also nein, es ist nicht der Punkt, an dem alle Hubs zusammenkommen Stellen Sie sich den Root-Hub als einen der verschiedenen Ausgangspunkte für die Aufzählung vor.

Der Root-Hub ist eine Hardware. Insbesondere ist er Teil des Host-Controllers (der entweder separat sein kann) Chip oder ein Teil des Chipsatzes).

Die Schnittstellen Die von Ihnen erwähnten sind Host Controller Interfaces (HCI), d. h. Schnittstellen des Host Controllers, nicht des Root Hub. Grundsätzlich handelt es sich um Register, auf die die Software zugreifen kann, um mit dem Host-Controller zu kommunizieren.

Aus den obigen Gründen ist der Begriff „Mittelsmann“ meines Erachtens nicht so anwendbar, wie Sie es sich vorgestellt haben.

UPDATE :

Hier ist ein einfaches Analogon zur Veranschaulichung von Beziehungen:

Ein Fahrzeug ist eine Steuerung. Es verfügt über eine Schnittstelle (Pedale), über die Software (Fahrer) die Steuerung bedienen kann. Es hat auch einen Motor (Root Hub), der einen wesentlichen Teil der Fahrzeugfunktionalität ausführt.

Sie können sagen, dass der Fahrer einen Motor mit Pedalen betreibt, und das wäre richtig, aber nicht präzise, da sich zwischen den Pedalen und einem Motor einige Teile befinden. Diese Teile entsprechen der internen Logikschaltung der Steuerung.

Eine genauere Aussage wäre also: „Der Fahrer steuert das Auto mit Pedalen und Lenkung Rad und ein Steuerknüppel, und da der Motor Teil des Autos ist, leistet er seinen Beitrag zum gesamten Fahrprozess „. In einem Computer ausgedrückt, der sich in“ Software steuert die Host-Controller, der HCI verwendet, und da der Root-Hub Teil des Host-Controllers ist, leistet er seinen Beitrag zur Unterstützung der USB-Kommunikation. „

Kommentare

  • Also Der Host-Controller ist ein Chip, der über die Host-Controller-Schnittstelle (HCI) mit der Software kommuniziert. Dieser Chip ist auch mit einem oder mehreren Root-Hubs verbunden, damit Daten zwischen dem USB-Gerät und dem Controller (und vom Controller zur Software) übertragen werden können.
  • Du hast es fast richtig gemacht. Der Host-Controller ist nicht " " mit Root-Hubs verbunden, der Root-Hub ist Teil des Controllers. Und da PCs normalerweise mehrere Controller haben (sowohl in den Chipsatz als auch in separate Chips auf dem Motherboard integriert), haben Sie heutzutage mehrere Root-Hubs in Ihrem System. Ich ' aktualisiere die Antwort mit einer besseren Erklärung.

Antwort

Ein normaler USB-Hub ist ein USB-Gerät , das den USB-Verkehr von einer (Upstream-) Verbindung zu mehreren Downstream-Ports aufteilen kann. und muxen Sie den bevorstehenden Verkehr von vielen Ports in einen Upstream. Zu diesem Zweck verfügt jeder Hub über eine spezielle Steuerleitung, die Portfunktionen wie Verbinden / Trennen / Anhalten / Fortsetzen / Deaktivieren usw. steuert. Diese Funktionen werden über USB-Steuertransaktionen gesteuert, die über ein USB-Paket an jeden bestimmten Port geleitet werden -Token-Protokoll. Dieses Protokoll funktioniert bis zu jeder gültigen Ebene des Hub-Stackups, und jeder Port verfügt über genau definierte Statusbits in USB-Antworten.

Ein Root-Hub führt eine ähnliche Funktion aus, außer (a) der Upstream ist direkt dem Host zugeordnet Controller-Pipe / Bus und (b) verschiedene Statusbits jedes Ports werden direkt in 32-Bit-Register im Host-PCI-Raum abgebildet. Dies ist ein Stück Hardware.

Um jedoch die bitweise Kompatibilität zwischen ALLEN Ports im USB-Baum aufrechtzuerhalten und einen universellen Zugriff auf alle Ports zu ermöglichen, verfügt die Host-Controller-Treibersoftware normalerweise über eine spezielle Schicht, die die registergestützten Portsteuerungsstatus (PORTSC) konvertiert ) in das Standard-USB-Port-Statusformat. Dies wird in der folgenden Microsoft-Dokumentation veranschaulicht.

Geben Sie hier die Bildbeschreibung ein

, wobei die eingekreiste Ebene meiner Meinung nach diese Portstatusübersetzung bereitstellt. Danach kennt das System keinen Unterschied zwischen einem Root-Hub-Port und einem regulären Hub-Port.

Antwort

Dies ist ein Implementierungsdetail , hauptsächlich.

USB-Hubs implementieren die Erkennung des Einfügens / Entfernens, die Steuerung der Portstromversorgung und die Upstream-Seite des Aufzählungsprotokolls, das verwendet wird, bevor dem Gerät eine Nummer zugewiesen wird.

Für diese Funktion ist dieselbe Funktionalität erforderlich Jeder USB-Downstream-Port, unabhängig davon, ob er direkt an den Controller oder an einen Teil eines separaten Geräts angeschlossen ist, und es wäre dumm, zwei verschiedene Spezifikationen zu haben.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.