Barramento Serial Universal (USB)

O Barramento Serial Universal (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 SIGs (Grupos de Interesse Especial) que mantém a Especificação USB Oficial, as especificações e as ferramentas de teste.

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 USB oficial. 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 de USB para construtores de dispositivosÍCONE USB para 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 do driver USB. Fornece informações sobre como escolher o modelo mais apropriado para fornecer um driver USB para seu dispositivo.

Gravar 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.

Gravar 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), você poderá escrever um driver de controlador de host que se comunica com UCX. Por exemplo, considere um encaixe sem fio que dê suporte a dispositivos USB. O computador se comunica com dispositivos USB por meio do encaixe sem fio usando USB via TCP como transporte.

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

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

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

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

Gravar um driver de conector USB Tipo C

Windows 10 apresenta suporte para o novo conector USB: USB Tipo 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 ao Tipo C, que as portas dão suporte à entrega de energia.

Desenvolvendo drivers do Windows para conectores USB Tipo C

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

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

Agora há suporte para controladores usb de função dupla em 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 UrsCx (extensão de classe de função dupla) e seu driver cliente se comuniquem entre si para lidar com a funcionalidade de troca 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 de driver de controlador de função dupla USB

Gravar um driver USB para dispositivos emulados

Você pode desenvolver um driver de controlador de host USB (Barramento Serial Universal) emulado e um dispositivo USB virtual conectado. Ambos os componentes são combinados em um único driver KMDF que se comunica com a extensão de classe de emulação de dispositivo USB (UdeCx) 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 do WDF para desenvolver drivers USB

Escrever um aplicativo UWP

  • Converse com dispositivos USB, comece a concluir: 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 o WinUSB Functions 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 envio da Certificação de Hardware do Windows.

Barramento Serial Universal 4 (USB4™)

Outros recursos para USB

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

  • Blog da equipe do Microsoft Windows USB Core: confira as postagens escritas pela Equipe USB da Microsoft. O blog se concentra na pilha de driver USB do Windows que funciona com vários controladores de host USB e hubs USB encontrados no computador Windows. Um recurso útil para desenvolvedores de driver de cliente USB e designers de hardware USB para entender a implementação da pilha de driver, resolve problemas comuns e explicar 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: dispositivos MUTT e SuperMUTT e o pacote de software que acompanha são integrados ao pacote HCK de testes USB. Eles fornecem testes automatizados que podem ser usados durante o ciclo de desenvolvimento de controladores USB, dispositivos e sistemas, especialmente testes de estresse.

  • Kit de Aprendizagem USB FX2 do OSR: se você não estiver familiarizado com o desenvolvimento de driver USB. O kit é o mais adequado para estudar amostras usb incluídas neste conjunto de documentação. Você pode obter o kit de aprendizagem da OSR Online Store.

Saiba mais sobre 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 da pilha de driver do Barramento Serial Universal (USB). 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: o WinUSB é um driver genérico para dispositivos USB que está incluído em todas as versões do Windows desde o Windows Vista. O Windows fornece Winusb.sys que podem ser carregadas 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 de Winusb.sys ou um driver de classe de dispositivo USB.