Interface du contrôleur hôte (USB, Firewire) - Host controller interface (USB, Firewire)

Une interface de contrôleur hôte ( HCI ) est une interface de niveau registre qui permet à un contrôleur hôte pour matériel USB ou IEEE 1394 de communiquer avec un pilote de contrôleur hôte dans le logiciel. Le logiciel pilote est généralement fourni avec un système d'exploitation d'un ordinateur personnel , mais peut également être mis en œuvre par des dispositifs spécifiques à une application tels qu'un microcontrôleur .

Sur la carte d'extension ou le contrôleur de la carte mère, cela implique beaucoup de logique personnalisée, avec des moteurs logiques numériques dans la puce de contrôleur de la carte mère, ainsi que des circuits analogiques gérant les signaux différentiels à grande vitesse. Côté logiciel , il nécessite un pilote de périphérique (appelé pilote de contrôleur hôte, ou HCD).

IEEE 1394

Interface de contrôleur hôte ouverte

Open Host Controller Interface ( OHCI ) est un standard ouvert .

Lorsqu'il est appliqué à une carte IEEE 1394 (également connue sous le nom de FireWire ; i.LINK ou Lynx ), OHCI signifie que la carte prend en charge une interface standard avec le PC et peut être utilisée par les pilotes OHCI IEEE 1394 fournis avec tous les systèmes d'exploitation modernes . Parce que la carte a une interface OHCI standard, le système d'exploitation n'a pas besoin de savoir à l'avance exactement qui fabrique la carte ou comment elle fonctionne ; il peut supposer en toute sécurité que la carte comprend l'ensemble des commandes bien définies qui sont définies dans le protocole standard .

USB

Interface de contrôleur hôte ouverte

La norme OHCI pour USB est similaire à la norme OHCI pour IEEE 1394, mais ne prend en charge que l'USB 1.1 (pleine vitesse et faible vitesse) ; par conséquent, son interface de registre est complètement différente. Par rapport à UHCI, il déplace plus d'intelligence dans le contrôleur et est donc beaucoup plus efficace; cela faisait partie de la motivation pour le définir. Si un ordinateur fournit un USB 1.1 non x86 ou un USB 1.1 x86 à partir d'un contrôleur USB qui n'est pas fabriqué par Intel ou VIA, il utilise probablement OHCI (par exemple, OHCI est courant sur les cartes PCI d'extension basées sur un chipset NEC). Il a beaucoup moins de restrictions de propriété intellectuelle que UHCI. Il ne prend en charge que l'adressage mémoire 32 bits, il nécessite donc un IOMMU ou un tampon de rebond coûteux en calcul pour fonctionner avec un système d'exploitation 64 bits. OHCI s'interface avec le reste de l'ordinateur uniquement avec des E/S mappées en mémoire .

Interface de contrôleur hôte universel

UHCI ( Universal Host Controller Interface ) est une interface propriétaire créée par Intel pour USB 1.x (pleine vitesse et faible vitesse). Il nécessite une licence d'Intel. Un contrôleur USB utilisant UHCI fait peu de matériel et nécessite un pilote logiciel UHCI pour effectuer une grande partie du travail de gestion du bus USB. Il ne prend en charge que l'adressage mémoire 32 bits, il nécessite donc un IOMMU ou un tampon de rebond coûteux en calcul pour fonctionner avec un système d'exploitation 64 bits. UHCI est configuré avec des E/S mappées sur les ports et des E/S mappées en mémoire, et nécessite également des E/S mappées en mémoire pour les mises à jour d'état et pour les tampons de données nécessaires pour contenir les données qui doivent être envoyées ou les données qui ont été reçues.

Interface de contrôleur hôte améliorée

L' interface de contrôleur hôte améliorée ( EHCI ) est une norme de contrôleur haute vitesse applicable à l'USB 2.0. Les systèmes basés sur l'UHCI et l'OHCI, tels qu'ils existaient auparavant, entraînaient une complexité et des coûts plus importants que nécessaire. Par conséquent, l' USB Implementers Forum (USB-IF) a insisté sur une spécification publique pour EHCI. Intel a hébergé des tests de conformité EHCI , ce qui a permis d'empêcher l'incursion de fonctionnalités propriétaires.

À l'origine, un PC fournissant des ports à haut débit avait deux contrôleurs, l'un gérant les périphériques bas et haut débit et le second gérant les périphériques haut débit. En règle générale, un tel système avait des pilotes EHCI et OHCI ou UHCI. Le pilote UHCI fournit des interfaces bas et haut débit pour les contrôleurs hôtes USB des chipsets Intel ou VIA sur la carte mère, ou pour tout contrôleur hôte discret VIA connecté au bus d'extension de l'ordinateur. Le pilote OHCI fournit des fonctions à faible et à pleine vitesse pour les ports USB de tous les contrôleurs hôtes USB intégrés des autres fournisseurs de chipsets de cartes mères ou de contrôleurs hôtes discrets connectés au bus d'extension de l'ordinateur. Le pilote EHCI a fourni des fonctions à haute vitesse pour les ports USB sur la carte mère ou sur le contrôleur USB discret. Le matériel plus récent achemine tous les ports via un concentrateur interne de « correspondance de débit » (RMH) qui convertit tout le trafic impliquant tous les ports directement connectés fonctionnant à pleine vitesse et à basse vitesse entre le trafic à grande vitesse présenté au contrôleur EHCI et le trafic à pleine vitesse ou à basse vitesse attendu par les ports fonctionnant à ces vitesses, permettant au contrôleur EHCI de gérer ces périphériques.

La spécification de l'interface logicielle EHCI définit à la fois les versions 32 bits et 64 bits de ses structures de données, de sorte qu'il n'a pas besoin d'un tampon de rebond ou d' IOMMU pour fonctionner avec un système d'exploitation 64 bits si un concentrateur de correspondance de débit est implémenté pour fournir une pleine - connectivité vitesse et faible vitesse au lieu de contrôleurs compagnons utilisant la spécification UHCI ou la spécification OHCI, qui sont toutes deux des spécifications 32 bits uniquement.

Interface de contrôleur hôte extensible

L'interface de contrôleur hôte extensible ( xHCI ) est la toute dernière norme de contrôleur hôte qui améliore la vitesse, l'efficacité énergétique et la virtualisation par rapport à ses prédécesseurs. L'objectif était également de définir un contrôleur hôte USB pour remplacer UHCI/OHCI/EHCI. Il prend en charge toutes les vitesses de périphériques USB (USB 3.1 SuperSpeed+, USB 3.0 SuperSpeed, USB 2.0 basse, pleine et haute vitesse, USB 1.1 basse et pleine vitesse).

Interface de contrôleur d'hôte virtuel

L'interface de contrôleur d'hôte virtuel ( VHCI ) fait référence à un contrôleur virtuel qui peut exporter des périphériques USB virtuels non soutenus par des périphériques physiques. Par exemple, sous Linux, les contrôleurs VHCI sont utilisés pour exposer les périphériques USB d'autres machines, connectés à l'aide du protocole USB/IP .

Voir également

Les références

Liens externes