Partilhar via


Barramento Serial Universal (USB)

O Universal Serial Bus (USB) fornece uma interface serial Plug and Play expansível que garante uma conexão padrão e de baixo custo para dispositivos periféricos. Os dispositivos USB incluem teclados, mouses, joysticks, impressoras, scanners, dispositivos de armazenamento, modems, câmeras de videoconferência e muito mais.

O USB-IF é um Grupo de Interesse Especial (SIGs) que mantém a Especificação Oficial USB, especificações de teste e ferramentas.

Os sistemas operacionais Windows incluem suporte nativo para controladores de host USB, hubs e dispositivos e sistemas que estão em conformidade com a especificação oficial do USB. O Windows também fornece interfaces de programação que você pode usar para desenvolver drivers de dispositivo e aplicativos que se comunicam com um dispositivo USB.

Ícone USB para construtores de dispositivosUSB para ícone de desenvolvedores de driverÍcone USB para desenvolvedores de aplicativosÍcone de certificação USB HCK

USB no Windows

Ferramentas de desenvolvimento

Exemplos de USB

Criar um driver ou aplicativo USB para Windows

Apresenta o desenvolvimento de drivers USB. Fornece informações sobre como escolher o modelo mais apropriado para fornecer um driver USB para o seu dispositivo.

Escrever um driver de cliente USB (KMDF, UMDF)

Esta seção inclui tutoriais sobre como escrever seus primeiros drivers USB no modo de usuário e no modo kernel usando os modelos USB incluídos no Microsoft Visual Studio.

Escrever um driver de controlador de host USB

Se você estiver desenvolvendo um controlador de host xHCI que não esteja em conformidade com a especificação ou desenvolvendo um hardware não xHCI personalizado (como um controlador de host virtual), poderá escrever um driver de controlador de host que se comunique com o UCX. Por exemplo, considere um dock sem fio que dá suporte a dispositivos USB. O PC se comunica com dispositivos USB por meio do dock sem fio usando USB sobre TCP como transporte.

Escrever um driver de controlador de função para um dispositivo USB

Você pode desenvolver um driver de controlador que lida com todas as transferências de dados USB e comandos enviados pelo host para o dispositivo. Esse driver se comunica com a UFX (extensão do controlador de função USB) fornecida pela Microsoft.

Desenvolvendo drivers do Windows para controladores de função USB

Referência de extensão de classe de função USB (UFX)

Escrever um driver de conector USB Tipo C

O Windows 10 apresenta suporte para o novo conector USB: USB Type-C. Você pode escrever um driver para o conector que se comunica com o módulo de extensão de classe fornecido pela Microsoft: UcmCx para lidar com cenários relacionados a conectores Type-C, como quais portas dão suporte a Type-C, quais portas dão suporte ao fornecimento de energia.

Desenvolvendo drivers do Windows para conectores USB Type-C

Referência de extensão de classe do gerenciador de conectores USB (UcmCx)

Escrever um driver de controlador de função dupla USB

Os controladores USB Dual Role agora são suportados no Windows 10. O Windows inclui drivers de cliente in-box para controladores ChipIdea e Synopsis. Para outros controladores, a Microsoft fornece um conjunto de interfaces de programação que permitem que a extensão de classe de função dupla (UrsCx) e seu driver cliente se comuniquem entre si para lidar com a funcionalidade de alternância de função de um controlador de função dupla.

Para obter mais informações sobre esse recurso, consulte:

Arquitetura de pilha de driver de função dupla USB

Referência de programação do driver do controlador de função dupla USB

Escrever um driver USB para dispositivos emulados

Você pode desenvolver um driver de controlador de host USB (Universal Serial Bus) emulado e um dispositivo USB virtual conectado. Ambos os componentes são combinados em um único driver KMDF que se comunica com a UdeCx (extensão de classe de emulação de dispositivo USB) fornecida pela Microsoft.

Desenvolvendo drivers do Windows para dispositivos USB emulados (UDE)

Referência de programação do driver do controlador de host USB emulado

Extensão WDF para desenvolvimento de drivers USB

Escrever um aplicativo UWP

  • Fale com dispositivos USB, do início ao fim: fornece instruções passo a passo sobre como implementar recursos USB em um aplicativo UWP. Para escrever esse aplicativo para um dispositivo USB, você precisa do Visual Studio e do SDK (Software Development Kit) do Microsoft Windows.

  • Windows.Devices.Usb: referência de programação de namespace UWP.

Escrever um aplicativo da área de trabalho do Windows

  • Escrever um aplicativo WinUSB: descreve como um aplicativo pode chamar funções WinUSB para se comunicar com um dispositivo USB.

  • Funções do WinUSB

  • Cenários comuns de programação: lista de tarefas comuns que um driver ou um aplicativo executa para se comunicar com um dispositivo USB. Obtenha informações rápidas sobre as interfaces de programação necessárias para cada tarefa.

Testando dispositivos USB com o Windows

Visão geral dos dispositivos MUTT (Microsoft USB Test Tool)

Obtenha informações sobre as ferramentas que você pode usar para testar seu hardware ou software USB, capturar rastreamentos de operações e outros eventos do sistema e observar como a pilha de driver USB responde a uma solicitação enviada por um driver cliente ou um aplicativo.

Leia uma visão geral dos testes no Kit de Certificação de Hardware que permitem que fornecedores de hardware e fabricantes de dispositivos preparem seus dispositivos USB e controladores de host para o envio da Certificação de Hardware do Windows.

Barramento Serial Universal 4 (USB4™)

Outros recursos para USB

  • Especificação oficial do USB: fornece detalhes técnicos completos para o protocolo USB.

  • Blog da equipe do Microsoft Windows USB Core: confira as postagens escritas pela equipe do Microsoft USB. O blog se concentra na pilha de drivers USB do Windows que funciona com vários controladores de host USB e hubs USB encontrados no Windows PC. Um recurso útil para desenvolvedores de driver cliente USB e designers de hardware USB entenderem a implementação da pilha de driver, resolverem problemas comuns e explicarem como usar ferramentas para coletar rastreamentos e arquivos de log.

  • Listas Online do OSR - ntdev: lista de discussão gerenciada pelo OSR Online para desenvolvedores de driver no modo kernel.

  • Centro de Desenvolvimento de Hardware do Windows: recursos diversos com base em perguntas frequentes de desenvolvedores que são novos no desenvolvimento de dispositivos USB e drivers que funcionam com sistemas operacionais Windows.

Hardware USB para aprendizado

  • Dispositivos MUTT: Os dispositivos MUTT e SuperMUTT e o pacote de software que os acompanha são integrados ao conjunto HCK de testes USB. Eles fornecem testes automatizados que podem ser usados durante o ciclo de desenvolvimento de controladores, dispositivos e sistemas USB, especialmente testes de estresse.

  • Kit de aprendizagem OSR USB FX2: Se você é novo no desenvolvimento de drivers USB. O kit é o mais adequado para estudar amostras USB incluídas neste conjunto de documentação. Você pode obter o kit de aprendizagem na OSR Online Store.

Saiba mais sobre os drivers USB fornecidos pela Microsoft

  • Drivers do lado do dispositivo USB no Windows: descreve a arquitetura da pilha de funções USB.

  • Drivers do lado do host USB no Windows: fornece uma visão geral da arquitetura de pilha de driver USB (Universal Serial Bus). A Microsoft fornece uma pilha principal de drivers que interoperam com dispositivos conectados a controladores EHCI e xHCI.

  • Drivers de classe de dispositivo USB-IF: lista os drivers fornecidos pela Microsoft para as classes de dispositivo USB com suporte. O Windows fornece drivers de classe de dispositivo in-box para muitas classes de dispositivo aprovadas por USB-IF, áudio, armazenamento em massa e assim por diante.

  • Driver de função genérica USB – WinUSB: WinUSB é um driver genérico para dispositivos USB incluído em todas as versões do Windows desde o Windows Vista. Windows fornece Winusb.sys que podem ser carregados como um driver de função para um dispositivo personalizado e uma função de um dispositivo composto.

  • Driver pai genérico USB para dispositivos compostos – Usbccgp: driver pai para dispositivos USB com várias funções. O Usbccgp cria PDOs (objetos de dispositivo físico) para cada uma dessas funções. Esses PDOs individuais gerenciam seus respectivos drivers de função USB, que podem ser o driver Winusb.sys ou um driver de classe de dispositivo USB.