Host-Controller-Schnittstelle (USB, Firewire) - Host controller interface (USB, Firewire)

Eine Host-Controller-Schnittstelle ( HCI ) ist eine Schnittstelle auf Registerebene , die es einem Host-Controller für USB- oder IEEE 1394- Hardware ermöglicht, mit einem Host-Controller-Treiber in Software zu kommunizieren. Die Treibersoftware wird typischerweise mit einem Betriebssystem eines Personalcomputers bereitgestellt , kann aber auch durch anwendungsspezifische Geräte wie beispielsweise einen Mikrocontroller implementiert werden .

Auf der Erweiterungskarte oder dem Motherboard-Controller beinhaltet dies viel benutzerdefinierte Logik mit digitalen Logik-Engines im Controller-Chip des Motherboards sowie analoge Schaltungen, die die Hochgeschwindigkeits-Differenzsignale verwalten. Auf der Softwareseite erfordert es einen Gerätetreiber (genannt Host Controller Driver oder HCD).

IEEE 1394

Host-Controller-Schnittstelle öffnen

Open Host Controller Interface ( OHCI ) ist ein offener Standard .

Angewandt auf eine IEEE 1394 (auch bekannt als FireWire ; i.LINK oder Lynx ) Karte bedeutet OHCI, dass die Karte eine Standardschnittstelle zum PC unterstützt und von den OHCI IEEE 1394 Treibern verwendet werden kann, die in allen modernen Betriebssystemen enthalten sind . Da die Karte über eine Standard-OHCI-Schnittstelle verfügt, muss das Betriebssystem nicht im Voraus genau wissen, wer die Karte herstellt oder wie sie funktioniert; es kann mit Sicherheit davon ausgehen , dass die Karte den Satz von gut definierten Befehle versteht, die im Standard definiert sind Protokoll .

USB

Host-Controller-Schnittstelle öffnen

Der OHCI-Standard für USB ähnelt dem OHCI-Standard für IEEE 1394, unterstützt jedoch nur USB 1.1 (volle und niedrige Geschwindigkeiten); Dadurch sieht seine Registerschnittstelle ganz anders aus. Im Vergleich zu UHCI bringt es mehr Intelligenz in die Steuerung und ist damit entsprechend viel effizienter; dies war ein Teil der Motivation, es zu definieren. Wenn ein Computer nicht-x86-USB 1.1 oder x86-USB 1.1 von einem USB-Controller bereitstellt, der nicht von Intel oder VIA hergestellt wurde, verwendet er wahrscheinlich OHCI (zB ist OHCI bei Add-In-PCI-Karten, die auf einem NEC-Chipsatz basieren, üblich). Es hat viel weniger Einschränkungen des geistigen Eigentums als UHCI. Es unterstützt nur 32-Bit-Speicheradressierung, daher erfordert es eine IOMMU oder einen rechenintensiven Bounce-Puffer , um mit einem 64-Bit-Betriebssystem zu arbeiten. OHCI-Schnittstellen zum Rest des Computers sind nur mit Memory-mapped I/O möglich .

Universelle Host-Controller-Schnittstelle

Universal Host Controller Interface ( UHCI ) ist eine proprietäre Schnittstelle, die von Intel für USB 1.x (volle und niedrige Geschwindigkeiten) entwickelt wurde. Es erfordert eine Lizenz von Intel. Ein USB-Controller, der UHCI verwendet, leistet wenig Hardware und erfordert einen Software-UHCI-Treiber, um einen Großteil der Arbeit der Verwaltung des USB-Busses zu erledigen. Es unterstützt nur 32-Bit-Speicheradressierung, daher erfordert es eine IOMMU oder einen rechenintensiven Bounce-Puffer, um mit einem 64-Bit-Betriebssystem zu arbeiten. UHCI ist mit Port-Mapping-I/O und Memory-Mapping-I/O konfiguriert und erfordert auch Memory-Mapping-I/O für Statusaktualisierungen und für Datenpuffer, die zum Speichern von zu sendenden oder empfangenen Daten benötigt werden.

Verbesserte Host-Controller-Schnittstelle

Das Enhanced Host Controller Interface ( EHCI ) ist ein Hochgeschwindigkeits-Controller-Standard, der auf USB 2.0 anwendbar ist. UHCI- und OHCI-basierte Systeme, wie sie bisher existierten, waren mit mehr Komplexität und Kosten verbunden als nötig. Folglich bestand das USB Implementers Forum (USB-IF) auf einer öffentlichen Spezifikation für EHCI. Intel hat EHCI- Konformitätstests gehostet , und dies trug dazu bei, das Eindringen proprietärer Funktionen zu verhindern.

Ursprünglich hatte ein PC mit Hochgeschwindigkeits-Ports zwei Controller, einen für Low- und Full-Speed-Geräte und den zweiten für High-Speed-Geräte. Typischerweise hatte ein solches System EHCI- und entweder OHCI- oder UHCI-Treiber. Der UHCI-Treiber bietet Low- und Full-Speed-Schnittstellen für die USB-Host-Controller von Intel- oder VIA-Chipsätzen auf dem Motherboard oder für alle diskreten VIA-Host-Controller, die an den Erweiterungsbus des Computers angeschlossen sind. Der OHCI-Treiber bietet Low- und Full-Speed-Funktionen für USB-Ports der integrierten USB-Host-Controller aller anderen Motherboard-Chipsatz-Hersteller oder diskreter Host-Controller, die an den Erweiterungsbus des Computers angeschlossen sind. Der EHCI-Treiber bietet Hochgeschwindigkeitsfunktionen für USB-Ports auf dem Motherboard oder auf dem diskreten USB-Controller. Neuere Hardware leitet alle Ports über einen internen "Rate-Matching"-Hub (RMH), der den gesamten Verkehr mit direkt verbundenen Ports mit voller und niedriger Geschwindigkeit zwischen dem dem EHCI-Controller präsentierten Hochgeschwindigkeitsverkehr und dem Full-Speed- oder Low-Speed-Datenverkehr, den die mit diesen Geschwindigkeiten betriebenen Ports erwarten, sodass der EHCI-Controller diese Geräte verarbeiten kann.

Die EHCI-Softwareschnittstellenspezifikation definiert sowohl 32-Bit- als auch 64-Bit-Versionen ihrer Datenstrukturen, sodass kein Bounce-Puffer oder IOMMU erforderlich ist , um mit einem 64-Bit-Betriebssystem zu arbeiten, wenn ein ratenanpassungsfähiger Hub implementiert ist, um volle -Speed- und Low-Speed-Konnektivität anstelle von Companion-Controllern, die entweder die UHCI-Spezifikation oder die OHCI-Spezifikation verwenden, die beide nur 32-Bit-Spezifikationen sind.

Erweiterbare Host-Controller-Schnittstelle

Extensible Host Controller Interface ( xHCI ) ist der neueste Host-Controller-Standard, der Geschwindigkeit, Energieeffizienz und Virtualisierung gegenüber seinen Vorgängern verbessert. Ziel war es auch, einen USB-Host-Controller zu definieren, der UHCI/OHCI/EHCI ersetzt. Es unterstützt alle USB-Gerätegeschwindigkeiten (USB 3.1 SuperSpeed+, USB 3.0 SuperSpeed, USB 2.0 Low-, Full- und High-Speed, USB 1.1 Low- und Full-Speed).

Virtuelle Host-Controller-Schnittstelle

Virtual Host Controller Interface ( VHCI ) bezieht sich auf einen virtuellen Controller, der virtuelle USB-Geräte exportieren kann, die nicht von physischen Geräten unterstützt werden. Unter Linux werden beispielsweise VHCI-Controller verwendet, um USB-Geräte von anderen Computern freizugeben, die über das USB/IP-Protokoll angeschlossen sind .

Siehe auch

Verweise

Externe Links