Compartilhar via


SPB (Barramento periférico simples)

Observação

Este artigo contém referências ao termo servidor subordinado, um termo que a Microsoft não usa mais. Quando o termo for removido do software, também o removeremos deste artigo.

Este tópico aborda as recomendações para o Barramento Periférico Simples no Windows 10. O Windows inclui suporte para barramentos simples e de baixa potência, como I²C (Inter-Integrated Circuit) e (I²C) e SPI (Simple Peripheral Interface), usando extensões de estrutura da arquitetura KMDF (Kernel Mode Driver Framework). Os drivers do controlador não são fornecidos na caixa. Fornecedores de chipset, OEMs ou IHVs devem desenvolver um driver de controlador implementado no KMDF. A arquitetura fornece topologias de configuração de dispositivo flexíveis que dão suporte ao uso simultâneo de barramentos para transações de controle e dados, bem como GPIO para sinalização e interrupções. A definição completa do dispositivo é definida por meio da ACPI (Advanced Configuration and Power Interface).

No Windows, os ônibus têm suporte por meio de drivers de controlador KMDF. Com o auxílio da plataforma KMDF, o driver do controlador é usado predominantemente para definir as interfaces específicas de hardware necessárias para habilitar a função de controlador.

A infraestrutura do Windows dá suporte a dispositivos que compartilham barramentos, barramentos que são multiplexados na mesma linha e configuração de dispositivo por meio de ACPI. O Windows usa ACPI como o principal meio para identificação, configuração e controle do dispositivo.

A tabela a seguir resume o suporte para o Barramento Periférico Simples.

Barramento Suporte à caixa de entrada Extensão de estrutura fornecida Terceiros permitidos Detalhes adicionais de suporte
I²C No Sim Sim, usando a extensão do SPB Framework

Somente mestre

Não há suporte para "Chamada Geral"

DMA (Acesso Direto à Memória) com suporte

SPI No Sim Sim, usando a extensão do SPB Framework

Somente mestre, não há suporte para "Chamada Geral"

Duplex completo com suporte

DMA com suporte

MIPI-HSI No No Sim, usando o WDF (Windows Driver Foundation)
MIPI-SLIMbus No No Sim, usando o WDF
MIPI-CSI No No Sim, usando o WDF
UART No Sim Sim, usando a extensão da Estrutura Serial (SerCx2)

DMA com suporte

Modos de transferência personalizados com suporte com SerCx2

Considerações de design para SPB

Veja a seguir algumas considerações genéricas sobre o SPB:

  • O SPB não é um barramento Plug and Play. Os dispositivos periféricos normalmente têm conexões fixas com um SPB e não podem ser removidos. Os fabricantes do sistema devem garantir informações precisas no ACPI para enumerar os dispositivos periféricos conectados ao SPB para o gerenciador de Plug and Play e especificar os recursos de hardware dedicados a cada dispositivo.

  • Não há suporte para interrupção em banda para SPB. A maioria dos periféricos dá suporte à sinalização de dispositivo por meio de um mecanismo separado de interrupção (geralmente baseado em GPIO) e mapeado com precisão no ACPI.

  • O Windows dá suporte à Extensão de Classe SPB (spbcx.sys) em Windows 8 e além. Os parceiros do SoC são responsáveis por desenvolver e redistribuir o driver do Controlador SPB apropriado.

  • Drivers periféricos para dispositivos SPB geralmente são fornecidos por parceiros de dispositivo SPB. A Microsoft fornece um driver de classe para dispositivos SPB para HID por I²C (hidi2c.sys).

  • As classes de dispositivo podem fornecer requisitos de HLK ou diretrizes de WEG sobre os seguintes tópicos relacionados ao I²C:

    • Compartilhando o controlador I²C com outros dispositivos
    • Velocidade de sinalização I²C preferencial
    • Cenários de gerenciamento e ativação de energia em I²C e GPIO.
  • I²C (Inter-Integrated Circuit): I²C é o barramento primário que é validado como parte do SPB e é altamente recomendado em sistemas SoC.

    A Microsoft fornece requisitos do Programa de Compatibilidade de Hardware do Windows para I²C. Use o Kit de Laboratório de Hardware do Windows (HLK) para testar dispositivos em relação a esses requisitos.

  • SPI (Interface Periférica Simples): o suporte para SPI é opcional e até o parceiro do SoC. O Programa de Compatibilidade de Hardware do Windows não contém requisitos específicos para o barramento SPI.

Suporte para SPB entre sistemas

A Microsoft dá suporte a SPB em sistemas Arm e plataformas x86/x64 (em execução em configurações S3). A Microsoft dá suporte ao SPB em plataformas em execução nas configurações CS (Connected Standby) e S3.

Entre em contato com seu provedor de plataforma para obter drivers e suporte.

Há vários cenários de dispositivo que aproveitam o SPB para conectividade. O I²C está disponível no modelo de energia tradicional CS e S3. SoCs modernos com núcleos de baixa energia do sensor on-SoC podem implementar soluções não I²C conforme necessário.

Os dispositivos em encaixes/portas removíveis também devem seguir as diretrizes sobre cenários de encaixe, também incluídos no WEG. Alguns desses dispositivos podem fazer mais sentido sobre ônibus como USB em vez de I²C.

Extensão da estrutura SPB

A biblioteca de extensão da estrutura SPB estende o Windows Driver Framework para dar suporte a drivers SPB. A estrutura SPB simplifica o desenvolvimento de um driver de controlador SPB e melhora a compatibilidade entre drivers periféricos e o driver do controlador fornecendo a implementação comum da "metade superior" do driver que processa solicitações de E/S (em comparação com a "metade inferior", que é controlada pela metade superior e controla o hardware). A Extensão do SPB Framework é uma biblioteca de extensões KMDF. Ele lida com o processamento inicial da solicitação SPB e a sequência na qual elas são entregues ao driver do controlador. A extensão da estrutura SPB foi projetada para dar suporte a ônibus I²C e SPI e pode ser apropriada para outros ônibus com semântica semelhante.

Extensão do Serial Framework

A biblioteca de extensão da estrutura serial estende a estrutura de driver do Windows para dar suporte a drivers de controlador serial. Da mesma forma que a estrutura SPB, a estrutura serial simplifica o desenvolvimento de um driver de controlador serial e melhora a compatibilidade entre drivers periféricos e o driver do controlador, fornecendo a implementação comum da "metade superior" do driver que processa solicitações de E/S. A extensão da estrutura serial é uma biblioteca de extensões KMDF. Ele lida com o processamento inicial das chamadas para as APIs seriais e a sequência na qual elas são entregues ao driver do controlador. A extensão da estrutura serial foi projetada para dar suporte aos controladores UART modernos e simplificar a implementação e a diagnóstico do driver do controlador.

Requisitos de HLK de I²C e UART

Há requisitos do Programa de Compatibilidade de Hardware para controladores I²C e UART. Os requisitos para SPI também estão sendo considerados para o futuro. Os requisitos do logotipo destinam-se principalmente aos fornecedores de silício soc para o hardware da interface de barramento e os drivers de controlador associados. Os OEMs e os ODMs não são necessários para revalidar o driver de hardware ou controlador, mas são bem-vindos para executar os testes, se desejado. Etapas especiais de configuração são necessárias para validar esses requisitos. A configuração inclui o seguinte:

  • Um sistema aberto com pinos/portas I²C /UART acessíveis
  • Modificações no ACPI para expor o dispositivo de teste I²C/UART ao software
  • Um WITT (dispositivo de teste) específico anexado ao sistema em validação

Para obter informações adicionais de configuração, consulte a documentação do HLK (Hardware Lab Kit).

Drivers periféricos

Periféricos são enumerados pelo ACPI e geralmente são estáticos. Os drivers de função periféricos determinam seus recursos de barramento apropriados interagindo com as extensões da estrutura. Periféricos e controladores não são hierárquicos e os periféricos podem usar vários SPB, GPIO, Serial e outros barramentos de alta velocidade. Drivers periféricos que acessam dispositivos inseridos, como sensores, dispositivos de entrada, modems e rádios, podem ser gravados no modo kernel ou no modo de usuário. Esses drivers podem ser portáteis em diferentes configurações de placa ODM ou OEM, desde que o ACPI seja atualizado adequadamente.

Firmware

As configurações de ACPI do controlador e os parâmetros de barramento são específicos do fornecedor e dependem do controlador específico. A tabela a seguir resume as configurações de ACPI para o controlador e o barramento periférico.

Barramento Configurações de ACPI do controlador Configurações de ACPI periférico
I²C

Endereços do controlador

Fixar configuração

Endereço do barramento

Taxa de relógio

Modo subordinado

Modo de endereçamento

SPI

Endereços do controlador

Fixar configuração

Linha de seleção de chip

Taxa de relógio

Polaridade do relógio

Fase do relógio

Modo de transmissão

Seleção de dispositivo

Polaridade de seleção de dispositivo

Modo subordinado

UART

Endereço/pino do controlador

Configurar a taxa de baud inicial

Taxa de baud inicial

Parity

Iniciar bit e parar o comprimento do bit

Método de controle de fluxo (Hardware/Software/None)

Linhas em uso

Tamanho do buffer de recebimento

Tamanho do buffer de transmissão

Endian-ness

Para obter um exemplo de ACPI, consulte Como obter as configurações de conexão de um dispositivo. Para obter mais informações sobre como integrar dispositivos em barramentos de baixa energia, consulte Acessando dispositivos GPIO, I2C e UART.

Ferramentas e referência técnica

Título do Recurso Tipo de conteúdo Descrição Link
Usando a Estrutura do Driver do Windows para criar drivers melhores Vídeo Discute como o WDF pode melhorar a confiabilidade do driver e como obter melhor economia de energia e implantar drivers em várias versões do Windows. Channel 9
Noções básicas sobre barramentos Low-Power Vídeo Demonstra como integrar um dispositivo nos novos ônibus e criar um driver. Você aprenderá a escrever ACPI para enumerar seu periférico e começar a escrever e testar um driver periférico. Channel 9
Guia de design da estrutura do driver do Kernel-Mode Artigo Apresenta o KMDF (Kernel-Mode Driver Framework). MSDN
Guia de design do UMDF 1.x Artigo Apresenta User-Mode Driver Framework (UMDF). MSDN
Programa de Compatibilidade de Hardware do Windows Artigo Fornece informações sobre o Programa de Certificação do Windows. MSDN