# Dispositiu d'interfície humana

HID (per les seves sigles en anglès Human Interface Device), o dispositiu d'interfície humana, fa referència a un tipus d'interfícies d'usuari per a ordinadors que interactuen directament, prenent entrades provinents d'humans, i poden lliurar una sortida als humans. El terme HID comunament es refereix a l'especificació USB-HID. Aquest va ser encunyat per Mike Van Flandern de Microsoft quan va proposar al comitè USB de crear un grup de treball per a la classe Human Input Device. El nom del grup de treball es va canviar a la classe Human Interface Device suggerit per Tom Schmidt de DEC, ja que la norma proposada suportava la comunicació bidireccional.

## Objectius

Les principals motivacions per HID eren les de permetre innovacions en els dispositius d'entrada a la computadora i simplificar el procés d'instal·lar aquests dispositius. Abans d'HID, els dispositius normalment s'ajustaven a molt estrictes protocols pel ratolí, teclats i palanques de control. Qualsevol innovació en el maquinari requeria sobrecarregar l'ús de dades en un protocol existent o la creació d'un nou controlador i l'evangelització d'un nou protocol pels desenvolupadors d'aplicacions. En contrast amb tots els dispositius HID, lliuren paquets autodescriptius que poden contenir una infinitat variada de tipus de dades i formats. Un sol controlador HID en la computadora analitza sintàcticament les dades i permet una associació dinàmica de dades d'entrada i sortida (I/O) amb la funcionalitat de l'aplicació. Aquest té habilitat la innovació ràpida i proliferació de nous dispositius d'interfície humana.
Els objectius principals i subjacents de la definició de classe HID són:
* Ser el més compacte possible per estalviar espai de dades del dispositiu.
* Permetre l'aplicació de programari per ometre informació desconeguda.
* Ser extensible i robust.
* Que suporti la implantació i les col·leccions.
* Ser autodescriptivo per permetre aplicacions de programari genèriques.

## Història

L'estàndard de l'HID va ser desenvolupat per una comissió de treball amb representants de diverses empreses. El concepte d'un autodescribible protocol lliure va ser inicialment concebut per Mike Van Flandern i Manolito Adan quan es trobaven treballant en el projecte anomenat Raptor en Microsoft i independentment per Steve McGowan mentre treballava en el protocol d'un dispositiu per Access Bus en Forte. Després de comparar notes en la conferència de Consumer Game Developer, Steve i Mike van acceptar col·laborar en un nou estàndard per a l'emergent Universal Serial Bus (USB).

## Dispositius HID

* Teclat.
* Ratolí, ratolí de bola, touchpad, pointing stick.
* Tauleta gràfica.
* Palanca de control (Joystick)
HID menys comuns:
* Dispositius simuladors de la conducció i dispositius per a simulació de vol, tals com a palanques i comandament, volants i pedals.
* Power Glove de Nintendo.
* Plataforma de ball.
* Wiimote.
La majoria dels sistemes operatius reconeixen dispositius estàndards USB HID, com el són els teclats i els ratolins, sense necessitat d'un controlador especial. Quan es connecten, generalment es desplega un missatge en la pantalla dient que «un dispositiu HID-compliant ha estat reconegut».
En comparació, aquest missatge usualment no apareix per als dispositius que són connectats a connectors de 6 pins PS/2, els quals precedeixen a l'USB. El connector PS/2 no suporta plug-and-play, la qual cosa significa que connectar un teclat o ratolí PS/2 amb el computador encès no sempre funcionaran fins al reinicio posterior. A més, PS/2 no suporta el protocol HID.

## Components del protocol HID

En el protocol HID existeix 2 entitats: el host i el dispositiu. El dispositiu és l'entitat que directament interactua amb l'humà, com ho fa un teclat o un ratolí. El host es comunica amb el dispositiu i rep dades d'entrada del dispositiu en les accions executades per l'humà. Les dades de sortida van del host al dispositiu i després a l'humà. L'exemple més comú d'un host és un computador, però alguns cel·lulars i PDA també poden ser hosts.
El protocol HID realitza la implementació dels dispositius de manera senzilla. Els dispositius defineixen els seus paquets de dades i després presenten un descriptor HID al host. El descriptor HID és codificat com un grup de bytes que descriuen els paquets de dades del dispositiu. Això inclou: quants paquets suporta el dispositiu, la grandària dels paquets, i el propòsit de cada byte i bit en el paquet. Per exemple, un teclat amb un botó que executa el programa de calculadora pot dir-li al host que l'estat de pressionar/deixar anar aquest botó, és emmagatzemat en el 2º bit del 6º byte en el paquet de dades número 4 (nota: aquestes localitzacions solament són il·lustratives i són específiques de cada dispositiu). El dispositiu normalment emmagatzema el descriptor HID en la ROM i no es necessita intrínsecament analitzar sintàcticament el descriptor HID. Alguns maquinari de ratolins i teclats al mercat d'avui, són implementats usant solament una CPU de 8 bits.
S'espera del host que sigui una entitat més complexa que el dispositiu. El host necessita obtenir el descriptor HID del dispositiu i ho analitza abans que es pot entaular la comunicació amb el dispositiu. Analitzar el descriptor HID pot ser complicat. Se sap que alguns sistemes operatius tenien shipped bugs en els controladors dels dispositius per analitzar els descriptores HID, anys abans que els controladors del dispositiu anessin originalment llançats al públic. No obstant això, aquesta complexitat és la raó del perquè va ser possible la innovació ràpida amb dispositius HID.
El mecanisme anterior descriu el que és conegut com «la manera de reporti» HID. Ja que es coneix que no tots els hosts tindran la capacitat d'analitzar els descriptores HID. L'HID també defineix «la manera d'arrencada». En manera arrenqui sol dispositius específics suporten característiques específiques, ja que paquets de dades definides són usats. El descriptor HID no és usat en aquesta manera així que la innovació està limitada. No obstant això, el benefici és que aquesta mínima funcionalitat és encara possible en els hosts que no suporten HID. Els únics dispositius suportats en manera arrenqui són:
* Teclat: solament el nucli de 104 tecles és suportat. Qualsevol funcionalitat avançada no està disponible. Per exemple, un teclat en particular US amb tecles QWERTY funcionaran, però les tecles «calculadora» i «apagar» no.
* Ratolí: solament els eix-X i eix-I, la roda, i els primers 3 botons estan disponibles. Qualsevol característica addicional en el ratolí no funcionarà.
Un ús comú de la manera arrenqui està durant les primeres seqüències quan el computador arrenca. Configurant directament la BIOS de la computadora és sovint feta usant manera d'arrencada. El terme HID comunament es refereix a l'especificació USB-HID. Aquest va ser encunyat per Mike Van Flandern de Microsoft quan va proposar al comitè USB, crear un grup de treball per a la classe Human Input Device. El nom del grup de treball es va canviar a la classe Human Interface Device suggerit per Tom Schmidt de DEC, ja que la norma proposada suportava la comunicació bidireccional.

## Altres protocols usant HID

Ja que HID va ser definit originalment sobre USB, HID també és usat en uns altres busos de comunicació de computadora. Això permet als dispositius HID que normalment solament eren trobats en USB, que també siguin usats en busos alternatius. Això és fet, ja que suportar existents dispositius USB HID poden ser adaptats més ràpidament que haver d'inventar completament un nou protocol que suporti un ratolí, teclat, etc. Busos coneguts que usen HID són:
* Bluetooth HID: Bluetooth és una tecnologia de comunicació sense fil. Molts ratolins i teclats Bluetooth ja existeixen al mercat.
* Serial HID: usat en receptors de control remot en Microsoft Windows Media Center.

## Vegeu també

* Interacció persona-ordinador
* Controlador de dispositiu
* Logitech 2.4GHz

## Notes i referències

* ↑ Universal Serial Bus (USB) HID Usage Tables Version 1.12 (PDF) (en anglès). Usb.com, 28 d'octubre de 2004 [Consulta: 2 maig 2013]. Arxivat 2012-08-19 a Wayback Machine. «Còpia arxivada». Arxivat de l'original el 2012-08-19. [Consulta: 25 gener 2021].
* ↑ La llista de participants pot ser trobada en el document: Universal Serial Bus (USB) Device Class Definition for Human Interface Devices (HID) Firmware Specification 6/27/01 Version 1.11 (en anglès). Usb.com, 27 de juny de 2001 [Consulta: 2 maig 2013]. Arxivat 2014-08-11 a Wayback Machine. «Còpia arxivada». Arxivat de l'original el 2014-08-11. [Consulta: 25 gener 2021].

## Enllaços externs

* The USB Implementers Forum on HID, (anglès).
* The last HID 1.11 Specification Arxivat 2017-05-19 a Wayback Machine.
* The last HID Usage Tables 1.12 Specification Arxivat 2017-05-17 a Wayback Machine.
* HID files for Sony Ericsson phones Arxivat 2008-11-22 a Wayback Machine., (anglès).