stringtranslate.com

Dispositivo de interfaz humana

Un dispositivo de interfaz humana o HID es un tipo de dispositivo informático generalmente utilizado por humanos que recibe información de los humanos o les proporciona resultados .

El término "HID" se refiere más comúnmente a la especificación USB HID . El término fue acuñado por Mike Van Flandern de Microsoft cuando propuso que el comité USB creara un grupo de trabajo de clase de Dispositivo de entrada humana. [ ¿cuando? ] El grupo de trabajo pasó a llamarse clase Dispositivo de interfaz humana por sugerencia de Tom Schmidt de DEC porque el estándar propuesto admitía la comunicación bidireccional. [ ¿cuando? ]

estándar oculto

El estándar HID se adoptó principalmente para permitir la innovación en dispositivos de entrada de PC y simplificar el proceso de instalación de dichos dispositivos. Antes de la introducción del concepto HID, los dispositivos generalmente se ajustaban a protocolos estrictamente definidos para mouse , teclados y joysticks ; por ejemplo, el protocolo de mouse estándar en ese momento admitía datos relativos de los ejes X e Y y entrada binaria para hasta dos botones, sin soporte heredado. Todas las innovaciones de hardware requirieron sobrecargar el uso de datos en un protocolo existente o la creación de controladores de dispositivos personalizados y la evangelización de un nuevo protocolo para los desarrolladores. Por el contrario, todos los dispositivos definidos por HID entregan paquetes de autodescripción que pueden contener cualquier cantidad de tipos y formatos de datos. Un único controlador HID en una computadora analiza datos y permite la asociación dinámica de E/S de datos con la funcionalidad de la aplicación, lo que ha permitido una rápida innovación y desarrollo, y una prolífica diversificación de nuevos dispositivos de interfaz humana.

Un comité de trabajo con representantes de varias empresas destacadas desarrolló el estándar HID. La lista de participantes aparece en el documento "Definición de clase de dispositivo para dispositivos de interfaz humana (HID)" [1] . El concepto de un protocolo extensible autodescriptivo surgió inicialmente de Mike Van Flandern y Manolito Adan mientras trabajaban en un proyecto llamado "Raptor" en Microsoft , e independientemente de Steve McGowan, quien trabajó en un proyecto "SIM" que definió un protocolo de dispositivo para el auricular VFX1 VR y sus periféricos basados ​​en ACCESS.bus mientras estuvo en Forte Technologies. SIM también era autodescriptivo y extensible, sin embargo, se centraba más en dispositivos de SIMulación utilizados para realidad virtual y captura de movimiento. Después de comparar notas en una Conferencia de desarrolladores de juegos para consumidores, Steve y Mike acordaron colaborar en un nuevo estándar para el emergente Universal Serial Bus (USB).

Antes de HID (c.1995), era necesario instalar controladores propietarios para casi todos los dispositivos conectados a una PC. Esto significaba que los proveedores de dispositivos necesitaban realizar un seguimiento de las versiones de los sistemas operativos, ofrecer periódicamente controladores actualizados para sus dispositivos y desarrollar controladores para cada sistema operativo que querían admitir. Además, en ese momento, cualquier dispositivo novedoso, por ejemplo, joysticks diseñados para simuladores de vuelo con botones adicionales o D-pads , requería soporte de software no solo por parte del conductor, sino de cada juego que los admitiera para habilitar nuevos controles. Esto significaba que los desarrolladores de dispositivos tenían la responsabilidad adicional de habilitar cada juego que querían admitir. La capacidad de un dispositivo HID para describirse a sí mismo a través de un descriptor de informe, desvinculó a los desarrolladores de dispositivos de hardware de los desarrolladores de juegos. El concepto de Descriptor de informe también significaba que los proveedores de sistemas operativos podían escribir un controlador HID (Parser) que pudiera adaptarse a casi cualquier dispositivo HID que un proveedor pudiera imaginar, sin que el proveedor tuviera que escribir o mantener un controlador para cada sistema operativo que quisiera admitir.

Por lo tanto, la clase HID desacopló a los proveedores de dispositivos de los proveedores de juegos y sistemas operativos, lo que permitió a los proveedores de dispositivos innovar más rápido y reducir sus costos de desarrollo (por ejemplo, sin controladores ni soporte para desarrolladores de juegos). El documento Tabla de uso de HID define miles de controles que pueden presentar los dispositivos HID. Los proveedores de juegos pueden consultar el analizador HID del sistema operativo para identificar el conjunto de controles que presenta un dispositivo y luego asignar esos controles a las funciones de su juego. Desde su lanzamiento original, al documento HID Usage Table (HUT) se le han agregado cientos de usos nuevos.

El protocolo HID tiene sus limitaciones, pero todos los sistemas operativos convencionales modernos reconocerán dispositivos USB HID estándar, como teclados y ratones, sin necesidad de un controlador especializado. Sin embargo, su versatilidad ha quedado demostrada por el hecho de que no se ha actualizado en más de 22 años y todavía es compatible con todos los PC, tabletas y teléfonos móviles que se fabrican en la actualidad. Los dispositivos USB, y por lo tanto HID, se pueden conectar en caliente, por lo que cuando se instalan, generalmente aparece en la pantalla un mensaje que dice "Se ha reconocido un 'dispositivo compatible con HID'". En comparación, este mensaje normalmente no aparecía en dispositivos conectados a través de conectores DIN PS/2 de 6 pines que precedían al USB. Normalmente, PS/2 no admitía plug-and-play , lo que significa que conectar un teclado o mouse PS/2 con la computadora encendida no siempre funciona y puede representar un peligro para la placa base de la computadora. Asimismo, el estándar PS/2 no soportaba el protocolo HID. La clase de dispositivo de interfaz humana USB describe un USB HID.

El protocolo HID (Descriptor de informe y mecanismo de informe) se ha implementado en muchos buses distintos de USB, incluidos Bluetooth e I2C .

También hay una serie de extensiones de HID definidas en los "Documentos de la tabla de uso integrado de HID", que incluyen fuentes de alimentación ininterrumpida , controles de monitores de video , dispositivos de punto de venta y dispositivos de juegos y juegos ( máquinas tragamonedas ).

Descriptor del informe

El descriptor de informe expone los mensajes que genera o acepta un dispositivo HID. Cada mensaje se denomina "Informe". Los informes pueden definir bits/controles en un dispositivo que pueden leerse o escribirse, o generarse periódicamente para mantener un host actualizado sobre el estado actual del dispositivo. Por ejemplo, un mouse generalmente genera un informe 200 veces por segundo para informar al host de cualquier movimiento o pulsación de botón. Los descriptores de informes están "orientados a bits", lo que significa que los controles pueden presentar entre 1 y 32 bits de información. Cada control definido en un Descriptor de Informe tiene un ID y define su tamaño y posición en su Informe. Un Descriptor de Informe puede definir muchos Informes, cada uno de los cuales reporta un conjunto o combinación de información diferente.

Por ejemplo, un mouse básico define un informe de 3 bytes donde el bit menos significativo (0) del informe es el botón izquierdo, el siguiente (1) bit es el botón central y el tercer (2) bit es el botón derecho. Para permitir que las coordenadas de posición X e Y de 8 bits del mouse aterricen convenientemente en los límites de bytes, se define un 'pad' de 5 bits. Luego, la coordenada X se define como un valor relativo de 8 bits (es decir, el número de 'mickeys' desde el informe anterior) que reside en las posiciones de bits 8 a 15, y la coordenada Y se define como un valor relativo de 8 bits que reside en las posiciones de bits 16 a 24, lo que da como resultado un paquete de datos que se presenta al host.

Un Descriptor de Informe es extremadamente versátil y permite que un dispositivo especifique la resolución, el rango y muchas otras características de cada control que presenta. Al estar diseñada en una época en la que un controlador de mouse o teclado tenía la suerte de tener 1 KB de ROM para todo su código y datos, la sintaxis del descriptor de informes tiene muchas características que permiten minimizar su tamaño, por ejemplo, los parámetros de control seleccionados pueden persistir en múltiples definiciones de control. , y solo es necesario volver a declararlos si su valor cambia. Los informes generados por un mouse básico se pueden describir en 50 bytes y un teclado 104 en 65 bytes.

Descriptor físico

Una característica poco conocida o comprendida de HID es el descriptor físico. El Descriptor Físico se utiliza para definir las partes del cuerpo humano que interactúan con los controles individuales definidos en el Descriptor de Informe. Al controlar un juego, el dedo índice y el pulgar se suelen utilizar para invocar acciones repetitivas. Debido a que se considera que estos dedos tienen la respuesta de "contracción" más rápida, generalmente se usan para apretar el gatillo de un arma o activar una función de juego de uso frecuente. El descriptor físico permite al proveedor de dispositivos identificar qué dedos se encuentran en cada control y priorizar el conjunto de controles a los que puede acceder un dedo individual. Esta característica permite a un proveedor de juegos presentar de forma inteligente la mejor asignación de botones predeterminada, incluso para un dispositivo que no existía cuando se desarrolló el juego. El descriptor físico también permite que un dispositivo HID presente información de captura del movimiento del cuerpo completo, es decir, el ángulo, la orientación, la posición relativa o absoluta de cualquier articulación del cuerpo humano. Y a través del Descriptor de informe, los datos de captura de movimiento se pueden presentar en cualquier resolución que admita el dispositivo.

Componentes del protocolo HID

En el protocolo HID existen 2 entidades: el "host" y el "dispositivo". El dispositivo es la entidad que interactúa directamente con un humano, como un teclado o un mouse. El host se comunica con el dispositivo y recibe datos de entrada del dispositivo sobre las acciones realizadas por el ser humano. Los datos de salida fluyen desde el host al dispositivo y luego al humano. El ejemplo más común de host es una PC , pero algunos teléfonos móviles y PDA también pueden ser hosts.

El protocolo HID hace que la implementación de dispositivos sea muy sencilla. Los dispositivos definen sus paquetes de datos y luego presentan un "descriptor HID" al host. El descriptor HID es una matriz codificada de bytes que describe los paquetes de datos del dispositivo. Esto incluye: cuántos paquetes admite el dispositivo, el tamaño de los paquetes y el propósito de cada byte y bit del paquete. Por ejemplo, un teclado con un botón de programa de calculadora puede indicarle al host que el estado presionado/liberado del botón se almacena como el segundo bit en el sexto byte en el paquete de datos número 4 (nota: estas ubicaciones son solo ilustrativas y específicas del dispositivo) . El dispositivo normalmente almacena el descriptor HID en la ROM y no necesita comprender ni analizar intrínsecamente el descriptor HID. Algunos hardware de mouse y teclado en el mercado actual se implementan utilizando solo una CPU de 8 bits .

Se espera que el anfitrión sea una entidad más compleja que el dispositivo. El host necesita recuperar el descriptor HID del dispositivo y analizarlo antes de poder comunicarse completamente con el dispositivo. Analizar el descriptor HID puede resultar complicado. Se sabía que varios sistemas operativos habían enviado errores en los controladores de dispositivos responsables de analizar los descriptores HID años después de que los controladores de dispositivos se lanzaran originalmente al público. Sin embargo, esta complejidad es la razón por la que es posible una rápida innovación con los dispositivos HID.

El mecanismo anterior describe lo que se conoce como "protocolo de informe" de HID. Debido a que se entendió que no todos los hosts serían capaces de analizar descriptores HID, HID también define "protocolo de arranque". En el protocolo de arranque, solo se admiten dispositivos específicos con características específicas porque se utilizan formatos de paquetes de datos fijos. El descriptor HID no se utiliza en este modo por lo que la innovación es limitada. Sin embargo, el beneficio es que aún es posible una funcionalidad mínima en hosts que de otro modo no podrían admitir HID. Los únicos dispositivos compatibles con el protocolo de arranque son

Un uso común del modo de inicio es durante los primeros momentos de la secuencia de inicio de una computadora. La configuración directa del BIOS de una computadora a menudo se realiza usando únicamente el modo de inicio. A veces aparecerá un mensaje informando al usuario que el dispositivo ha instalado el controlador correcto y que ahora se puede utilizar.

Definición de un dispositivo

Según la especificación HID, un dispositivo se describe, durante el modo de informe, como un conjunto de controles o grupo de controles. Los controles coinciden con un campo que contiene los datos y otro que contiene una etiqueta de uso. Cada etiqueta de uso se describe en la especificación, ya que el constructor sugirió el uso de los datos descritos en el modo de informe.

La herramienta de descriptores HID (#Enlaces externos) es una aplicación de Windows que se puede utilizar para generar todos los descriptores asociados con un dispositivo HID (consulte el enlace a continuación). Realiza verificación de sintaxis y puede generar archivos C, encabezados C y binarios para los descriptores HID. Sus archivos de definición de tablas de uso basados ​​en texto también se pueden ampliar fácilmente para definir usos propietarios (tipos de control) o tablas de uso (el conjunto de usos asociados con un dispositivo o función).

Otros protocolos que utilizan HID

Desde la definición original de HID sobre USB, HID ahora también se utiliza en otros buses de comunicación de computadoras . Esto permite que los dispositivos HID que tradicionalmente solo se encontraban en USB también se utilicen en buses alternativos. Esto se hace porque el soporte existente para dispositivos USB HID generalmente se puede adaptar mucho más rápido que tener que inventar un protocolo completamente nuevo para admitir mouse, panel táctil, teclados y similares. Los autobuses conocidos que utilizan HID son:

Ver también

Referencias

  1. ^ Definición de clase de dispositivo para dispositivos de interfaz humana (HID): especificación de firmware - final 30/01/97. Foro de implementadores de USB. 1997 . Consultado el 28 de abril de 2014 .
  2. ^ "OCULTO sobre I2C". Microsoft . Consultado el 19 de enero de 2016 .
  3. ^ "Introducción a HID sobre SPI: controladores de Windows". docs.microsoft.com . Consultado el 6 de septiembre de 2022 .

enlaces externos