Una interfaz de controlador de host ( HCI ) es una interfaz de nivel de registro que permite que un controlador de host para hardware USB o IEEE 1394 se comunique con un controlador de controlador de host en el software. El software controlador se proporciona típicamente con un sistema operativo de una computadora personal , pero también puede implementarse mediante dispositivos específicos de la aplicación, como un microcontrolador .
En la tarjeta de expansión o el controlador de la placa base, esto implica mucha lógica personalizada, con motores lógicos digitales en el chip controlador de la placa base, además de circuitos analógicos que gestionan las señales diferenciales de alta velocidad. En el lado del software , requiere un controlador de dispositivo (llamado controlador de controlador de host o HCD).
IEEE 1394
Interfaz de controlador de host abierta
Open Host Controller Interface ( OHCI ) [1] es un estándar abierto .
Cuando se aplica a una tarjeta IEEE 1394 (también conocida como FireWire ; i.LINK o Lynx ), OHCI significa que la tarjeta admite una interfaz estándar para la PC y puede ser utilizada por los controladores OHCI IEEE 1394 que vienen con todos los sistemas operativos modernos . Debido a que la tarjeta tiene una interfaz OHCI estándar, el sistema operativo no necesita saber de antemano exactamente quién fabrica la tarjeta o cómo funciona; puede asumir con seguridad que la tarjeta comprende el conjunto de comandos bien definidos que se definen en el protocolo estándar .
USB
Interfaz de controlador de host abierta
El estándar OHCI para USB es similar al estándar OHCI para IEEE 1394, pero solo admite USB 1.1 (velocidades máxima y baja); como resultado, su interfaz de registro se ve completamente diferente. En comparación con UHCI, mueve más inteligencia al controlador y, por lo tanto, es mucho más eficiente; esto fue parte de la motivación para definirlo. Si una computadora proporciona USB 1.1 que no es x86, o USB 1.1 x86 desde un controlador USB que no está fabricado por Intel o VIA, probablemente use OHCI (por ejemplo, OHCI es común en tarjetas PCI complementarias basadas en un chipset NEC). Tiene muchas menos restricciones de propiedad intelectual que UHCI. [2] Solo admite direccionamiento de memoria de 32 bits, [3] por lo que requiere una IOMMU o un búfer de rebote computacionalmente costoso para funcionar con un sistema operativo de 64 bits [ cita requerida ] . OHCI interactúa con el resto de la computadora solo con E / S mapeadas en memoria . [3]
Interfaz de controlador de host universal
La interfaz de controlador de host universal ( UHCI ) es una interfaz patentada creada por Intel para USB 1.x (velocidades máxima y baja). Requiere una licencia de Intel. Un controlador USB que usa UHCI hace poco en hardware y requiere un controlador UHCI de software para hacer gran parte del trabajo de administrar el bus USB. [2] Solo admite direccionamiento de memoria de 32 bits, [4] por lo que requiere una IOMMU o un búfer de rebote computacionalmente costoso para funcionar con un sistema operativo de 64 bits [ cita requerida ] . UHCI está configurado con E / S asignadas a puertos y E / S asignadas a memoria, y también requiere E / S asignadas a memoria para las actualizaciones de estado y para los búferes de datos necesarios para contener los datos que se deben enviar o los datos que se recibieron. [4]
Interfaz de controlador de host mejorada
La Interfaz de controlador de host mejorada ( EHCI ) [5] es un estándar de controlador de alta velocidad aplicable a USB 2.0. Los sistemas basados en UHCI y OHCI, como existían anteriormente, implicaban una mayor complejidad y costos de los necesarios. En consecuencia, el Foro de Implementadores de USB (USB-IF) insistió [ ¿cuándo? ] en una especificación pública para EHCI. Intel alojó las pruebas de conformidad de EHCI y esto ayudó a prevenir la incursión de características patentadas.
Originalmente, una PC que proporcionaba puertos de alta velocidad tenía dos controladores, uno manejaba dispositivos de baja y alta velocidad y el segundo manejaba dispositivos de alta velocidad. Normalmente, dicho sistema tenía controladores EHCI y OHCI o UHCI. El controlador UHCI proporciona interfaces de baja y velocidad completa para los controladores de host USB de los chipsets Intel o VIA en la placa base, o para cualquier controlador de host discreto VIA conectado al bus de expansión de la computadora. El controlador OHCI proporciona funciones de velocidad baja y completa para los puertos USB de todos los controladores de host USB integrados de los demás proveedores de chipsets de placa base o controladores de host discretos conectados al bus de expansión de la computadora. El controlador EHCI proporcionó funciones de alta velocidad para puertos USB en la placa base o en el controlador USB discreto. El hardware más reciente enruta todos los puertos a través de un concentrador interno de "coincidencia de velocidad" (RMH) que convierte todo el tráfico relacionado con los puertos conectados directamente que funcionan a máxima velocidad y baja velocidad entre el tráfico de alta velocidad presentado al controlador EHCI y el tráfico de velocidad completa o baja que esperan los puertos que operan a esas velocidades, lo que permite que el controlador EHCI maneje estos dispositivos.
La especificación de la interfaz del software EHCI define las versiones de 32 y 64 bits de sus estructuras de datos, [5] por lo que no necesita un búfer de rebote o IOMMU para funcionar con un sistema operativo de 64 bits si se implementa un concentrador de igualación de tasas. para proporcionar conectividad de velocidad completa y de baja velocidad en lugar de controladores complementarios que utilizan la especificación UHCI o la especificación OHCI, las cuales son especificaciones solo de 32 bits.
Interfaz de controlador de host extensible
La Interfaz de controlador de host extensible ( xHCI ) es el estándar de controlador de host más nuevo que mejora la velocidad, la eficiencia energética y la virtualización en comparación con sus predecesores. El objetivo también era definir un controlador de host USB para reemplazar UHCI / OHCI / EHCI. Admite todas las velocidades de dispositivos USB (USB 3.1 SuperSpeed +, USB 3.0 SuperSpeed, USB 2.0 de baja, completa y alta velocidad, USB 1.1 de baja y completa velocidad).
Interfaz de controlador de host virtual
La interfaz de controlador de host virtual ( VHCI ) se refiere a un controlador virtual que puede exportar dispositivos USB virtuales no respaldados por dispositivos físicos. Por ejemplo, en Linux, los controladores VHCI se utilizan para exponer dispositivos USB de otras máquinas, conectados mediante el protocolo USB / IP .
Ver también
- Interfaz avanzada de controlador de host (AHCI)
- SuperSpeed USB - arquitectura - USB 3.0
- USB inalámbrico (WHCI 1.0)
- Controlador RAID
- Adaptador de host
- LPCIO
Referencias
- ^ [1]
- ^ a b "Preguntas frecuentes sobre USB de Linux" . 27 de agosto de 2007 . Consultado el 13 de abril de 2014 .
- ^ a b [2]
- ^ a b "UHCI11D.DOC" (PDF) . Ftp.netbsd.org . Consultado el 10 de enero de 2017 .
- ^ a b "Especificación de interfaz de controlador de host mejorada" . Intel.com . Consultado el 10 de enero de 2017 .
enlaces externos
- Un documento estándar OHCI para USB de Compaq, Microsoft y National Semiconductor ( PDF )
- Fuente del kernel de Linux: documentación OHCI y EHCI
- Especificación Intel EHCI
- Especificación Intel xHCI