Condividi tramite


Architettura e panoramica per HID sul trasporto SPI

Questo articolo descrive lo stack di driver per i dispositivi che supportano HID sul trasporto SPI.

Architettura e panoramica

Lo stack di driver HID SPI è costituito da componenti nuovi e esistenti forniti da Microsoft, nonché componenti forniti dal produttore del processore SPI. La figura seguente illustra lo stack e questi componenti.

Stack di driver HID su SPI.

Windows offre un'interfaccia per bus semplici e a basso consumo per comunicare in modo efficace con il sistema operativo. Questa interfaccia è definita bus periferico semplice (SPB) e supporta bus come I2C (Inter-Integrated Circuit) e Serial Peripheral Interface (SPI). Per altre informazioni su SPB, vedere l'argomento Simple peripheral bus (SPB).

Windows fornisce un driver miniport HID basato su KMDF che implementa la versione 1.0 della specifica del protocollo per HID su SPI. Questo driver è denominato HIDSPI.sys. Windows carica questo driver in base a una corrispondenza ID compatibile, esposta dall'ACPI (Advanced Configuration and Power Interface). Gli integratori di sistema possono usare un'estensione INF per caricare questo driver in base all'ID hardware della periferica. Il driver garantisce che le app che usano la compatibilità a livello di applicazione IOCTLs HID per il software che sfrutta i IOCTLs HID e il set di API. Viene fornita una connessione GPIO al driver, che consente al dispositivo di asserire un interrupt quando richiede attenzione o contiene dati.

Nota

Il driver di dispositivo HIDSPI.sys supporta solo il bus SPI. Non supporta I2C, SMBUS o altri bus a basso consumo in Windows.

Driver del controller SPI

Il driver del controller SPI espone un'interfaccia IOCTL (Serial Peripheral Bus) (SPB) per eseguire operazioni di lettura e scrittura. Questo driver fornisce gli intrinseci del controller effettivi, ad esempio SPI. L'estensione della classe SPB, per conto del driver del controller, gestisce tutte le interazioni con l'hub risorse e implementa le code necessarie per gestire destinazioni simultanee.

Nota

Il driver HID SPI non funzionerà nei sistemi che non dispongono di un bus SPI compatibile con la piattaforma SPB. Contattare il produttore del sistema per determinare se il bus SPI nel sistema del dispositivo è compatibile con la piattaforma SPB.

Driver del controller GPIO

Il controller GPIO (General Purpose Input/Output) fornisce interruzioni dal dispositivo tramite GPIO. Si tratta spesso di un semplice componente subordinato che usa pin GPIO per segnalare Windows di nuovi dati o altri eventi. GPIO può anche controllare il dispositivo in base a approcci diversi dal canale SPI.

L'hub delle risorse

Le connessioni su una piattaforma SoC sono in genere non individuabili, perché non esistono standard per l'enumerazione dei dispositivi negli autobus usati in SoC. Di conseguenza, questi dispositivi devono essere definiti staticamente nell'interfaccia ACPI (Advanced Configuration and Power Interface). Inoltre, i componenti spesso hanno più dipendenze che si estendono su più bus, anziché una struttura ad albero di diramazione rigorosa.

L'hub delle risorse è un proxy che gestisce le connessioni tra tutti i dispositivi e i controller del bus. Il driver HIDSPI usa l'hub risorse per reindirizzare le richieste di apertura del dispositivo al driver controller appropriato. Per altre informazioni sull'hub risorse, vedere l'argomento ID connessione per dispositivi connessi SPB.

Estensione della classe HIDSPI (HIDSPICx)

Per le implementazioni che richiedono prestazioni o integrazione maggiori, è possibile che i produttori di sistemi sviluppino processori personalizzati per l'elaborazione delle transazioni HIDSPI. Per questo motivo, l'estensione della classe HIDSPICx viene fornita con Windows. HIDSPICx consente lo sviluppo di un driver di controller HIDSPI HWA personalizzato senza usare SpbCx.

Per i dispositivi HWA, il fornitore fornisce un driver client responsabile dell'implementazione dell'interfaccia definita dall'estensione della classe e della comunicazione con l'estensione della classe.

Stack di driver HIDSPICx e HWA.