Introduzione ai dispositivi di interfaccia umana (HID)

Human Interface Devices (HID) è una definizione di classe di dispositivo per sostituire i connettori di tipo PS/2 con un driver USB generico per supportare dispositivi HID come tastiere, mouse, controller di gioco e così via. Prima di HID, i dispositivi potevano usare solo protocolli rigorosamente definiti per mouse e tastiere. L'innovazione hardware richiede l'overload dei dati in un protocollo esistente o la creazione di hardware non standard con un driver specifico. HID offre il supporto per i dispositivi in modalità di avvio, aggiungendo al contempo il supporto per l'innovazione tramite interfacce estendibili, standardizzate e facilmente programmabili.

I dispositivi HID includono schermi alfanumerici, lettori di codice a barre, altoparlanti, auricolari, schermi ausiliari, sensori e molti altri. I fornitori di hardware usano anche HID per i dispositivi proprietari.

HID ha iniziato con USB, ma è stato progettato per essere indipendente dal bus. È stato progettato per dispositivi a bassa latenza, a larghezza di banda ridotta, ma con flessibilità per specificare la velocità nel trasporto sottostante. L'USB-IF ha ratificato la specifica per HID su USB nel 1996. Il supporto per HID su altri trasporti è stato presto seguito. I dettagli sui trasporti attualmente supportati sono disponibili in Trasporto HID supportato in Windows. Anche i trasporti specifici del fornitore di terze parti sono consentiti tramite driver di trasporto personalizzati.

Concetti relativi a HID

HID è costituito da due concetti fondamentali, un descrittore di report e report. I report sono i dati effettivi scambiati tra un dispositivo e un client software. Il descrittore del report descrive il formato e indica i dati supportati dal dispositivo.

Report

Le applicazioni e i dispositivi HID scambiano dati tramite report. Esistono tre tipi di report:

Tipo di report Descrizione
Report di input I dati inviati dal dispositivo HID all'applicazione, in genere quando lo stato di un controllo cambia.
Report di output Dati inviati dall'applicazione al dispositivo HID, ad esempio ai LED su una tastiera.
Report delle funzionalità I dati che possono essere letti e scritti manualmente e sono in genere correlati alle informazioni di configurazione.

Ogni raccolta di livello superiore definita in un descrittore di report può contenere zero o più report di ogni tipo.

Tabelle di utilizzo

Il gruppo di lavoro USB-IF pubblica tabelle di utilizzo HID che fanno parte dei descrittori di report che descrivono le operazioni consentite per i dispositivi HID. Queste tabelle di utilizzo HID contengono un elenco con descrizioni di Utilizzo che descrivono il significato previsto e l'uso di un particolare elemento nel descrittore del report. Ad esempio, viene definito un utilizzo per il pulsante sinistro di un mouse. Il descrittore di report può definire dove in un report un'applicazione può trovare lo stato corrente del pulsante sinistro del mouse. Le tabelle di utilizzo sono suddivise in diversi spazi dei nomi, denominati pagine di utilizzo. Ogni pagina di utilizzo descrive un set di utilizzi correlati per organizzare il documento. La combinazione di un utilizzo e di una pagina di utilizzo definisce l'ID di utilizzo che identifica in modo univoco un utilizzo specifico nelle tabelle di utilizzo.

Vedi anche