Condividi tramite


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ì, usando l'estensione SPB Framework

Solo master

"Chiamata generale" non è supportata

Accesso diretto alla memoria (DMA) supportato

SPI No 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ì, 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