Bus periferico semplice (SPB)
Nota
Questo articolo contiene riferimenti al termine slave, che Microsoft non usa più. Quando il termine verrà rimosso dal software, verrà rimosso anche dall'articolo.
Questo argomento illustra i consigli per simple peripheral bus in Windows 10. Windows include il supporto per bus semplici a basso consumo, ad esempio I²C (Inter Integrated Circuit) e (I²C) e Simple Peripheral Interface (SPI), usando estensioni del framework dell'architettura KMDF (Kernel Mode Driver Framework). I driver del controller non sono inclusi nella casella. I fornitori di chipset, OEM o IHD devono sviluppare un driver controller implementato in KMDF. L'architettura fornisce topologie flessibili di configurazione dei dispositivi che supportano l'uso simultaneo di bus per le transazioni di controllo e dati, nonché GPIO per la segnalazione e l'interruzione. La definizione completa del dispositivo viene definita tramite Advanced Configuration and Power Interface (ACPI).
In Windows i bus sono supportati tramite i driver del controller KMDF. Con l'aiuto della piattaforma KMDF, il driver controller viene usato principalmente per definire le interfacce specifiche dell'hardware necessarie per abilitare la funzione del controller.
L'infrastruttura Di Windows supporta i dispositivi che condividono autobus, autobus multipli sulla stessa linea e la configurazione dei dispositivi tramite ACPI. Windows usa ACPI come mezzo principale per l'identificazione, la configurazione e il controllo dei dispositivi.
Nella tabella seguente viene riepilogato il supporto per simple peripheral bus.
Bus | Supporto posta in arrivo | Estensione del framework fornita | Terze parti consentite | Dettagli aggiuntivi sul supporto |
---|---|---|---|---|
I²C | No | Sì | Sì, usando l'estensione SPB Framework | Solo master "Chiamata generale" non è supportata Accesso diretto alla memoria (DMA) supportato |
SPI | No | Sì | Sì, usando l'estensione SPB Framework | Solo master, "Chiamata generale" non è supportato Full duplex supportato DMA supportato |
MIPI-HSI | No | No | Sì, usando Windows Driver Foundation (WDF) | |
MIPI-SLIMbus | No | No | Sì, usando WDF | |
MIPI-CSI | No | No | Sì, usando WDF | |
UART | No | Sì | Sì, usando l'estensione Serial Framework (SerCx2) | DMA supportato Modalità di trasferimento personalizzate supportate con SerCx2 |
Considerazioni sulla progettazione per SPB
Di seguito sono riportate alcune considerazioni generiche per SPB:
SPB non è un autobus Plug and Play. I dispositivi periferici hanno in genere connessioni fisse a un spb e non possono essere rimossi. I produttori di sistema devono garantire informazioni accurate in ACPI per enumerare i dispositivi periferici connessi a SPB per il gestore Plug and Play e specifica le risorse hardware dedicate a ogni dispositivo.
Non è disponibile alcun supporto di interrupt in banda per SPB. La maggior parte delle periferiche supporta la segnalazione dei dispositivi tramite un meccanismo di interrupt separato (spesso basato su GPIO) e mappato accuratamente in ACPI.
Windows offre supporto per l'estensione della classe SPB (spbcx.sys) in Windows 8 e versioni successive. I partner SoC sono responsabili dello sviluppo e della ridistribuzione del driver del controller SPB appropriato.
I driver periferici per i dispositivi SPB sono in genere forniti dai partner del dispositivo SPB. Microsoft fornisce un driver di classe per i dispositivi SPB per HID su I²C (hidi2c.sys).
Le classi di dispositivi possono fornire requisiti HLK o linee guida weg per gli argomenti seguenti correlati a I²C:
- Condivisione del controller I²C con altri dispositivi
- Velocità di segnalazione I²C preferita
- Scenari di risparmio energia e riattivazione su I²C e GPIO.
Inter Integrated Circuit (I²C): I²C è il bus primario convalidato come parte di SPB ed è altamente consigliato nei sistemi SoC.
Microsoft fornisce i requisiti del programma di compatibilità hardware di Windows per I²C. Usare Windows Hardware Lab Kit (HLK) per testare i dispositivi in base a tali requisiti.
Simple Peripheral Interface (SPI): il supporto per SPI è facoltativo e fino al partner SoC. Il programma di compatibilità hardware di Windows non contiene requisiti specifici per il bus SPI.
Supporto per SPB tra sistemi
Microsoft supporta SPB nei sistemi Arm e nelle piattaforme x86/x64 (in esecuzione in configurazioni S3). Microsoft supporta SPB su piattaforme in esecuzione in entrambe le configurazioni di Connected Standby (CS) e S3.
Contattare il provider della piattaforma per i driver e il supporto tecnico.
Esistono diversi scenari di dispositivo che sfruttano SPB per la connettività. I²C è disponibile nel modello di alimentazione tradizionale CS e S3. I soc moderni con core a basso consumo del sensore SoC possono implementare soluzioni non I²C in base alle esigenze.
I dispositivi nei dock rimovibili/porte devono anche seguire le indicazioni relative agli scenari di ancoraggio, inclusi anche nel weg. Alcuni di questi dispositivi possono avere più senso rispetto agli autobus come USB anziché I²C.
Estensione del framework SPB
La libreria di estensioni del framework SPB estende Windows Driver Framework per supportare i driver SPB. Il framework SPB semplifica lo sviluppo di un driver controller SPB e migliora la compatibilità tra i driver delle periferiche e il driver controller fornendo l'implementazione comune del "top-half" del driver che elabora le richieste di I/O (rispetto alla "metà inferiore", che è guidata dalla metà superiore e controlla l'hardware). L'estensione SPB Framework è una libreria di estensioni KMDF. Gestisce l'elaborazione iniziale della richiesta SPB e la sequenza in cui vengono consegnati al driver del controller. L'estensione del framework SPB è progettata per supportare i bus I²C e SPI e può essere appropriata per altri bus con semantica simile.
Estensione del framework seriale
La libreria di estensioni del framework seriale estende il framework driver di Windows per supportare i driver del controller seriale. Analogamente al framework SPB, il framework seriale semplifica lo sviluppo di un driver controller seriale e migliora la compatibilità tra i driver periferici e il driver controller fornendo l'implementazione comune del "top-half" del driver che elabora le richieste di I/O. L'estensione del framework seriale è una libreria di estensioni KMDF. Gestisce l'elaborazione iniziale delle chiamate alle API seriali e la sequenza in cui vengono consegnati al driver controller. L'estensione del framework seriale è progettata per supportare i controller UART moderni e semplificare l'implementazione e la diagnosbilità dei driver del controller.
Requisiti di I²C e UART HLK
Esistono requisiti del programma di compatibilità hardware per i controller I²C e UART. Anche i requisiti per SPI vengono presi in considerazione per il futuro. I requisiti del logo sono destinati principalmente ai fornitori di processori SoC per l'hardware dell'interfaccia bus e per i driver controller associati. Gli OEM e gli ODM non sono necessari per riconvalidare l'hardware o il driver del controller, ma sono invitati a eseguire i test, se necessario. Per convalidare questi requisiti sono necessari passaggi speciali di configurazione. La configurazione include quanto segue:
- Sistema aperto con pin/porte I²C /UART accessibili
- Modifiche in ACPI per esporre il dispositivo di test I²C/UART al software
- Un dispositivo di test specifico (WITT) collegato al sistema in fase di convalida
Per altre informazioni sulla configurazione, vedere la documentazione di Hardware Lab Kit (HLK).
Driver di periferica
Le periferiche sono enumerate da ACPI e sono in genere statiche. I driver delle funzioni periferiche determinano le risorse del bus appropriate interagendo con le estensioni del framework. Le periferiche e i controller non sono gerarchici e le periferiche possono usare diversi bus SPB, GPIO, Serial e altri bus ad alta velocità. I driver periferici che accedono a dispositivi incorporati, ad esempio sensori, dispositivi di input, modem e radio, possono essere scritti in modalità kernel o utente. Questi driver possono essere portabili in diverse configurazioni della scheda ODM o OEM, purché l'ACPI venga aggiornato in modo appropriato.
Firmware
Le impostazioni ACPI del controller e i parametri del bus sono specifici del fornitore e dipendono dal controller specifico. La tabella seguente riepiloga le impostazioni ACPI per il controller e il bus periferico.
Bus | Impostazioni ACPI del controller | Impostazioni ACPI periferiche |
---|---|---|
I²C | Indirizzi del controller Configurazione dei pin |
Indirizzo del bus Frequenza di clock Modalità slave Modalità di indirizzamento |
SPI | Indirizzi del controller Configurazione dei pin |
Selezione chip linea Frequenza di clock Polarità dell'orologio Fase dell'orologio Modalità di collegamento Selezione del dispositivo Polarità di selezione dei dispositivi Modalità slave |
UART | Indirizzo/pin del controller Configurare la velocità iniziale di baud |
Velocità iniziale di baud Parity Lunghezza bit di avvio e bit di arresto Metodo di controllo del flusso (Hardware/Software/None) Righe in uso Dimensioni del buffer di ricezione Trasmettere le dimensioni del buffer Endian-ness |
Per un esempio ACPI, vedere Come ottenere le impostazioni di connessione per un dispositivo. Per altre informazioni su come integrare i dispositivi su bus a basso consumo, vedere Accesso a dispositivi GPIO, I2C e UART.
Strumenti e riferimenti tecnici
Titolo della risorsa | Tipo di contenuto | Descrizione | Collegamento |
---|---|---|---|
Uso di Windows Driver Framework per creare driver migliori | Video | Illustra in che modo WDF può migliorare l'affidabilità dei driver e come realizzare meglio il risparmio energetico e distribuire i driver in più versioni di Windows. | Channel 9 |
Informazioni sugli autobus di Low-Power | Video | Illustra come integrare un dispositivo sui nuovi autobus e creare un conducente. Si apprenderà come scrivere ACPI per enumerare la periferica e iniziare a scrivere e testare un driver periferico. | Channel 9 |
Guida alla progettazione di driver di Kernel-Mode | Articolo | Introduce Kernel-Mode Driver Framework (KMDF). | MSDN |
Guida alla progettazione di UMDF 1.x | Articolo | Introduce User-Mode Driver Framework (UMDF). | MSDN |
Programma di compatibilità hardware Di Windows | Articolo | Fornisce informazioni sul programma di certificazione Windows. | MSDN |