ID do artigo: 323594 - Última revisão: terça-feira, 9 de agosto de 2005 - Revisão: 3.0

As noções básicas sobre desenvolvimento de driver de dispositivo de barramento serial universal (USB)

Dica do SistemaEste artigo aplica-se a um sistema operativo diferente do que está a utilizar. Foi desactivado o conteúdo do artigo, que pode não ser relevante para si.

Nesta página

Expandir tudo | Recolher tudo

Sumário

Com a crescente popularidade de barramento serial universal (USB), muitos fornecedores de hardware devem oferecer uma interface USB para dispositivos que atualmente oferecem suporte apenas a interface serial ou paralelo.

Este artigo discute o seguinte:
  • Diferenças importantes entre a interface USB e as interfaces paralelas ou seriais
  • Por que aplicativos de modo de usuário não podem acessar diretamente um dispositivo USB
  • Os recursos básicos que são necessárias para desenvolver o driver para um dispositivo USB recém-criado

Mais Informações

Complexidade

Em comparação com portas paralelas ou seriais, o USB é um barramento complexo. Por exemplo, cada dispositivo que está conectado a esse barramento recebe um endereço e pacotes de dados são trocadas entre o computador host e o dispositivo endereçado. Além disso, dispositivos podem operar em várias velocidades, e dispositivos podem ser temporariamente desconectados do barramento se eles não entenderem as transferências de alta velocidade. Em geral, transferência de dados em USBs é muito mais complexa e depende de um protocolo bem definido que é semelhante, em alguns aspectos, a um baixo nível protocolo de rede.

Por esses motivos, dispositivos USB incorporam algumas "inteligência" para que eles podem lidar corretamente com pacotes de dados que são trocados em USB. Não é geralmente possível implementar uma interface USB, usando componentes eletrônicos distintos ou de pequena escala integrar ou escala de média integrar circuitos como você pode em interfaces seriais e paralelas. Em vez disso, um microprocessador costuma ser usado no dispositivo para lidar com comunicação sobre o USB.

Porque um dispositivo USB é complexo, apenas não é possível abrir e acessar um dispositivo USB de um aplicativo de modo de usuário. No nível de hardware, um dispositivo USB oferece vários pontos de extremidade . O host pode estabelecer um pipe estiver conectado a cada ponto de extremidade e pode conversar com o dispositivo por meio deste pipe. Você precisará fazer esse trabalho no modo kernel. Portanto, um dispositivo USB deve ter um driver associado. A arquitetura Plug and Play também requer um driver, pois assim que você conecte o dispositivo, o sistema tenta encontrar um driver adequado para ele.

Driver de exemplo

Um exemplo no Windows DDK, que é chamado BulkUSB (DDKdir \src\wdm\usb\bulkusb), permite que um aplicativo de modo usuário para ler e gravar dados brutos diretamente o ponto de extremidade do dispositivo USB. O trabalho básico do driver de exemplo é copiar dados de e para o aplicativo e o ponto de extremidade. Você pode facilmente adaptar esse exemplo para praticamente qualquer dispositivo USB. No entanto, dispositivos comerciais geralmente faça o seguinte:
  • Ter um driver mais completo do dispositivo, que abstrai sua funcionalidade.
  • Oferece um interface para o aplicativo de modo de usuário de programação de nível superior.
  • Obedecer a uma classe de interface de dispositivo específica (se o dispositivo for um tipo de periférico comum).
Em resumo, há cenários limitados onde esse exemplo pode ser usado com personalização de nenhum ou pouco:
  • Para fins de teste
  • Para se familiarizar com desenvolvimento de driver USB
  • Para dispositivos muito simples que você sabe com antecedência serão acessados por um programa específico

Portabilidade

Um driver de dispositivo USB é escrito para o Windows XP e para o Windows 2000 usando somente funções WDM (Windows Driver Model) é portátil para o Windows Millennium Edition e Windows 98, geralmente com alterações de poucos ou nenhum. Para obter informações adicionais sobre como a porta WDM drivers do Windows XP ou do Windows 2000 para Windows Millennium Edition ou Windows 98, consulte a seção "Referências" (do Walter Oney livro, Apêndice A).

Recursos de terceiros

Alguns fornecedores de terceiros oferecem chipsets pré-compilados, que você pode incorporar para implementar a interface USB. Muitos fornecedores também oferecem kits de desenvolvimento de hardware com o qual você pode criar protótipos ao redor de seu conjunto de chips. Para obter mais informações, consulte a seção "Referências" deste artigo (livro do Walter Oney, Capítulo 11).

Alguns fornecedores de terceiros oferecem drivers USB genéricos, o que você pode personalizar usando arquivos de dados sem ter que usar programação de modo kernel. Algumas empresas também oferecem componentes ActiveX (por exemplo, OCXs) acessem seu driver a partir de clientes de automação OLE, como Visual Basic.

Referências

  • universal serial Bus System Architecture 2nd Edition , Don Anderson/Dave Dzatko, Mindshare Inc, Addison Wesley, ISBN 0-201-30975-0.
  • Windows Driver Development Kit, suporte de sistema para barramentos, USB, criar referência.
Para obter mais informações sobre como desenvolver seu próprio produto de chipsets oferecidas por um fornecedor de terceiros ou como a porta drivers WDM, consulte o seguinte livro:
  • o modelo de driver do Microsoft Windows de programação , Walter Oney, Microsoft Press, ISBN 0-7356-0588-2. (Este artigo especificamente menciona capítulo 11 e o Apêndice a.)

A informação contida neste artigo aplica-se a:
  • Microsoft Windows XP Driver Development Kit
  • Microsoft Win32 Device Driver Kit for Windows 2000
  • Microsoft Windows Server 2003 Driver Development Kit (DDK)
Palavras-chave: 
kbmt kbinfo KB323594 KbMtpt
Tradução automáticaTradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 323594  (http://support.microsoft.com/kb/323594/en-us/ )