Eduardo Rapoport - rapoport [at] ig [dot] com [dot] br
Igor Moraes - igormoraes [at] uol [dot] com [dot] br
Marco Bicudo - marcobicudo [at] openlink [dot] com [dot] br
Pedro Lemos - pedrolemos [at] uol [dot] com [dot] br
ÍndiceEvolução das Portas de Comunicação
§ 1.1 – Objetivos de desenvolvimento do USB
Capítulo II - Arquitetura USB§ 2.1 – Descrição de um sistema USBBibliografia§ 2.1.1 – Topologia USB§ 2.2 – Interface Física§ 2.1.1.1 – Host USB
§ 2.1.1.2 – Dispositivos USB§ 2.2.1 – Elétrica§ 2.3 – Energia (Alimentação)
§ 2.2.2 – Mecânica§ 2.3.1 – Distribuição§ 2.4 – Protocolo USB
§ 2.3.2 – Gerenciamento§ 2.5.1 – Detecção de Erros§ 2.6 – Configuração do Sistema§ 2.6.1 – Conexão de dispositivos USB§ 2.7 – Tipos de Fluxo de Dados
§ 2.6.2 – Remoção de dispositivos USB
§ 2.6.3 – Enumeração§ 2.7.1 – Transferências de Controle§ 2.8 – Dispositivos USB
§ 2.7.2 – Transferências de Volume
§ 2.7.3 – Transferências Interruptas
§ 2.7.4 – Transferências Isossíncronas
§ 2.7.5 – Alocando a Banda de Transmissão§ 2.8.1 – Caracterização de Dispositivos§ 2.9 – Host USB: Hardware e Software
§ 2.8.2 – Descrição de Dispositivos§ 2.8.2.1 – Hubs
§ 2.8.2.2 – Funções
§ 2.10 – Extensões de Arquitetura
No início da década de 80, quando a IBM estava desenvolvendo seu primeiro micro PC (personal computer). Já havia sido definido que o barramento ISA seria utilizado para permitir que o computador pessoal pudesse receber placas de expansão. Porém, faltava algum tipo de porta que permitisse o acoplamento de dispositivos externos, tais como impressoras e mouse, artigos de luxo para época.
Desde então os PC’s incorporaram dois tipos de portas para a conexão de periféricos externos: as portas seriais e a porta paralela.
A porta serial, como diz o nome, transmite um bit de dados por vez. É usada, por exemplo, pelo mouse. Já a porta paralela transmite 8 bits de dados por vez.
Originalmente, as taxas de transferência de dados eram de 9600 bps e 150 KBps respectivamente para a porta serial e a paralela.
A partir de meados da década de 90 ambas as portas foram aperfeiçoadas. As portas seriais passaram a transmitir a 115 Kbps e foi criado o ECP, padrão atual para a porta paralela que transmite a taxa de 1,2 MBps.
Apesar disto, persiste a limitação quanto ao número de portas, duas seriais e uma paralela. Na época em que se utilizava apenas um mouse e uma impressora isto era mais do que suficiente. Atualmente a situação é diferente. A utilização de outros dispositivos – scanners, modems externos, câmeras digitais – faz com que a mesma porta seja compartilhada por vários periféricos diferentes, tornando as ações extremamente lentas.
Para resolver este problema, surgiu o padrão USB (Universal Serial Bus). A partir de 1997 a maioria das placas-mãe passou a contar com duas portas USB , mas o problema não foi totalmente solucionado, já que os cabos necessários a conexão não acompanhavam as placas. Hoje em dia os cabos USB são facilmente encontrados em lojas de informática custando cerca de vinte reais (R$ 20,00).
Atualmente já existem vários periféricos USB, desde teclados e mouses, até gravadores de CD e placas de rede.
O barramento USB , versão 1.1, transmite a 1,5 MBps (ou 12Mbps), existindo a possibilidade de acoplar dezenas de periféricos a cada porta mediante a utilização de hubs, dispositivos que permitem mais encaixes, similares aos "benjamins".
O problema da utilização de hubs é que a taxa de transmissão, 1,5 MBps, será compartilhada por todos os periféricos conectados a porta. Quando se tem vários "periféricos rápidos", placas de rede e gravadores de CD por exemplo, ligados a mesma saída o funcionamento dos mesmos pode ser limitado. Maiores detalhes sobre as características e o funcionamento do USB serão vistos adiante.
Como resposta a esta limitação surgiu o Fireware, um novo padrão que tem várias características em comum com o USB. Porém é extremamente rápido, podendo atingir taxas de transferência de até 400 MBps. Este padrão foi desenvolvido pela Sony, que o utiliza em vários aparelhos de áudio e vídeo, assim como em alguns micros portáteis.
Um dado importante é que o Fireware é um padrão aberto, por isso tem boas chances de tornar-se popular nos próximos anos.
Apesar de todas as previsões positivas, tudo que se tem até o momento são promessas. Embora o Fireware disponha de inúmeras vantagens, existe uma certa resistência por parte dos fabricantes em adotar este padrão pois isto envolveria grandes investimentos.
Idealizado em 1995 por um grupo de empresas de tecnologia, o padrão USB (Barramento Serial Universal), permite que sejam conectados até 127 equipamentos em cada micro – já foram conectados 111 periféricos em uma demonstração pública – com velocidades de transmissão de 1,5 MBps ou 12 Mbps. Tudo isso sem a necessidade de desligar o computador para fazer as ligações e com reconhecimento automático doa aparelhos adicionados. É o chamado plug and play.
A configuração do USB é automática, sendo desnecessária a preocupação com drivers e programas ao acrescentar novos dispositivos. As controladoras USB detectam automaticamente a conexão ou remoção de um periférico. Estas também gerenciam e controlam o driver e a largura da banda exigida por cada dispositivo, além também de definir a alimentação elétrica correta.
A proposta deste padrão é substituir a infinidade de conectores diferentes empregados nos computadores atuais. Uma rápida observação de um PC típico revela em média cinco encaixes diferentes, entre portas seriais, paralelas, saídas para teclado, mouse, joystick e outros acessórios. Em pouco tempo o USB pode substituir todos estes.
O padrão USB pode ser utilizado na maior parte dos acessórios de média e baixa velocidade. Como visto anteriormente, os PC’s possuem duas portas USB . Utilizando hubs é que se consegue atingir o número de 127 dispositivos conectados. Existem hubs de diversas capacidades. Eles costumam ser ligados à tomada para que possam fornecer energia elétrica para dispositivos de baixo consumo. Alguns dispositivos de maior porte, como monitores, possuem hubs embutidos, permitindo a ligação de outros periféricos a ele.
Uma aplicação interessante para o USB é a possibilidade de interligar computadores para efetuar troca de arquivos com velocidade muito superior ao Laplink tradicional.
Ambiente USB
Neste capítulo será apresentada uma breve descrição do ambiente USB, incluindo objetivos de desenvolvimento características do barramento e tecnologias existentes.
§ 1.1 – Objetivos de desenvolvimento do USB
O padrão USB é especificado para ser um padrão industrial de extensão para a arquitetura atual dos PC’s, focado principalmente na integração entre computadores e a telefonia (CIT – Computer Telefony Integration), consumidores e aplicações visando o aumento da produtividade.
Os critérios listados a seguir forma aplicados na definição da arquitetura para o USB.
*Obs.: Dados assíncronos são transferidos em intervalos irregulares de tempo. Já os dados isossíncronos, tem seu sincronismo imposto pela taxa de distribuição dos mesmos.Facilidade na adição de periféricos ao PC. Baixo custo, suportando taxas de transferência de até 12 Mbps. Suporte completo para dados de voz, áudio e vídeo em tempo real. Flexibilidade de protocolo para transferências isossíncronas* de dados e assíncronas* de mensagens. Compreensão de várias configurações de PC e formulários de administradores. Previsão de um padrão de interface capaz de espalhar-se rapidamente entre novos produtos. Possibilitar a criação de novas classes de dispositivos capazes de aumentar a capacidade dos computadores pessoais.
§ 1.2 – Performances, Atributos e Aplicações
A tabela a seguir nos mostra o alcance do tráfego de dados oferecidos
pelo USB:
Performance | Aplicações | Atributos |
Baixa Velocidade
-Dispositivos Interativos - 10 – 100 Kbps |
Teclado, mouse
Periféricos para jogos Periféricos para realidade virtual Configuração de monitores |
Custo reduzido
Plug and play Fácil utilização Periféricos múltiplos |
Média Velocidade
-Telefone, áudio, vídeo compressado - 500 Kbps – 10 Mbps |
ISDN
PBX POTS Áudio |
Custo reduzido
Largura da banda garantida Fácil utilização Conexão e remoção dinâmicas Dispositivos múltiplos |
Tabela 1.1 – Aplicações
Tipicamente, dados de média velocidade são isossíncronos enquanto dados de baixa velocidade vem de dispositivos interativos.
As principais características do padrão USB estão abaixo listadas de acordo com os benefícios propiciados por estas:
à Fácil utilização para usuários comuns
à Amplo alcance de aplicaçõesModelo único para cabos e conectores Detalhes elétricos, com as terminações do barramento isolados do usuários. Auto-identificação de periféricos, configuração e mapeamento de drivers automático Conexão dinâmica e reconfiguração de periféricos.
à Largura da banda isossíncronaSensível a dispositivos cuja largura da banda de transmissão vai de poucos Kbps até alguns Mbps. Suporta transferências isossíncronas assim como assíncronas para o mesmo conjunto de fios Suporta operações concorrentes de vários dispositivos ( conexões múltiplas). Suporta até 127 periféricos. Suporta transferência de dados múltiplos e correntes de mensagens entre o host (hospedeiro, geralmente um PC) e os dispositivos conectados. Protocolo reduzido, resultando em uma alta utilização do barramento.
à FlexibilidadeLargura garantida e baixa latência apropriadas para telefonia, áudio, entre outros.
à RobustezSuporta um grande número de pacotes de tamanhos variados O controle de capacidade de fluxo nos cabos é feito dentro do protocolo.
à Integração com a indústria de computadores pessoais (PC)Erros de conexão e falha no mecanismo de recuperação são implementados no protocolo. A inserção e remoção dinâmica de periféricos é identificada e percebida em tempo real pelo usuário. Suporta a identificação de equipamentos defeituosos.
à Baixo custo de implementaçãoA implementação e a integração do protocolo são simples. Consistente com a arquitetura plug and play dos PC’s. Compatível com as interfaces dos sistemas operacionais existentes.
à AtualizaçõesBaixo custo do sub-canal em 1,5 Mbps. Sensível ao desenvolvimento de periféricos de baixo custo. Conectores e cabos de custo reduzido.
A arquitetura permite atualizações (upgrades) para o suporte de múltiplos controladores do host do sistema.
Arquitetura USB
Este capítulo apresentará uma visão superficial da arquitetura do Barramento Serial Universal e definirá alguns conceitos importantes.
O USB é um barramento de cabos que suporta a troca de dados entre um computador (host) e um grande número de periféricos acessados simultaneamente. Os equipamentos conectados repartem a banda de transmissão segundo ordem imposta pelo host.
O barramento permite que periféricos sejam conectados, configurados, utilizados e desconectados enquanto o computador esteja operando. Mais detalhes sobre os componentes USB serão abordados adiante.
§ 2.1 – Descrição de um sistema USB
Um sistema USB é descrito por três áreas de definição:
A interconexão é o modo com o qual dispositivos USB são conectados e se comunicam com o host.Interconexão Dispositivos Host
Isto inclui:
Topologia do Barramento :
O barramento USB conecta dispositivos e hosts que suportam este padrão. A interconexão física da USB usa a topologia tiered-star (estrela disposta em camadas/níveis). Um hub, conector, é o centro de cada estrela. Cada segmento de cabo é uma conexão pontual entre o host e hub ou função, ou um hub conectado a outro hub ou função. A figura seguinte ilustra a topologia do USB:
Figura 2.1 – A topologia USB.
Existe apenas um host num sistema USB. A interface USB para o sistema do computador hospedeiro refere-se ao controlador do mesmo. O controlador do host pode ser implementado em combinação de hardware e software. Um hub pode prover mais pontos de conexão.
Um dispositivo USB pode ser um:
As transferências de sinal e eletricidade são feitas através de um cabo, com quatro fios, como o seguinte:
Figura 2.2 – O cabo USB.
A transmissão de sinais ocorre em dois fios, ponto a ponto, em cada segmento.
Existem duas taxas de transferência:
A largura da banda de transmissão é definida como a quantidade de dados transmitida por unidade de tempo.
O clock é transmitido, codificado, junto com os dados diferenciais (utiliza-se um par diferencial para a transmissão de dados). O esquema NRZI (Non Return to Zero Invert) é utilizado para codificar o clock. Neste método de codificação de dados serias, zeros e uns são representados pelo oposto em voltagens, alta e baixa, alternadas onde não há retorno para a voltagem zero (referência) entre bits codificados. Elimina-se então a necessidade por pulsos de clock.
Um campo SYNC precede cada pacote de dados permitindo ao receptor sincronizar o bit de recuperação de clocks.
O cabo possui os fios VBUS e GND em cada segmento para distribuir energia aos dispositivos. VBUS é nominalmente +5V na fonte. O USB permite a utilização de segmentos de cabo variáveis até alguns metros, escolhendo-se um padrão adequado de condutores. Para fornecer níveis de voltagem de entradas garantidos e impedâncias apropriadas nas terminações, são utilizadas terminações parciais no fim da cada cabo. Estas terminações permitem a detecção da conexão e remoção em cada porta e a diferenciação entre dispositivos de alta e baixa velocidade.
As especificações mecânicas detalhadas para cabos e conectores encontram-se em capítulos adiante e nas especificações USB(www.usb.org).
Os cabos possuem quatro condutores: um par para transmissão de sinais e outro par para distribuição de energia elétrica.
Os conectores possuem quatro pinos protegidos e de fácil conexão e remoção.
As especificações abrangem dois aspectos : a distribuição e o gerenciamento de energia.
Cada segmento USB fornece para o interior do cabo uma quantidade limitada de energia. As fontes de energia do host provêm alimentação para os dispositivos USB conectados diretamente. Estes são chamados de dispositivos alimentados pelo barramento (bus-powered devices). No mais, qualquer outro dispositivo deve possuir sua própria fonte de alimentação, dispositivos auto-alimentados (self-powered devices). Um hub também fornece energia para os periféricos a ele conectados.
Um hospedeiro (host) deve Ter um sistema de gerenciamento de energia independente do USB. O software de sistema do USB interage com o gerenciador de alimentação do host para manipular os eventos elétricos do sistema, como a suspensão e a interrupção do fornecimento.
Além disto, dispositivos USB tipicamente implementam características adicionais de gerenciamento de energia do USB permitindo que estes sejam gerenciados pelo software do sistema.
As características de distribuição e gerenciamento de energia do USB permitem que este seja desenvolvido para o sistema de alimentação sensível como computadores portáteis.
O USB é um barramento receptor (ou de contagem). O controlador do host inicia todas as transferências de dados.
Todas as transações do barramento envolvem a transmissão de até três pacotes. Cada transação se inicia quando o controlador do host, em uma base listada, envia um pacote USB descrevendo o tipo e a direção da transação, o endereço do dispositivo USB e o número do ponto final (endpoint). O ponto final de um dispositivo é a única porção endereçável deste que é a fonte de informação em um fluxo de comunicações entre o host e o próprio. O número de endpoint é um valor de 4 bits entre 0H e FH, inclusive, associado a um ponto final de um periférico USB.
Este primeiro pacote é conhecido como "pacote de sinal" (token packet).
O dispositivo USB, que é endereçado, seleciona a si mesmo pela decodificação do endereço apropriado. Em uma dada transação, dados são transferidos do host para o dispositivo ou vice-versa. A direção da transferência é especificada no token packet. A fonte da transação envia então um pacote de dados ou indica que não há mais dados para serem transferidos. O destinatário, em geral, responde com um "pacote aperto de mão" (handshake packet), indicando o sucesso da transferência.
O modelo para transferências de dados entre a fonte ou um destino no host e um ponto final de um dispositivo é conhecido como pipe (tubo ou canal). Existem dois tipos de pipe: correntes (stream) e mensagens.
Uma corrente de dados não possui uma estrutura USB definida, enquanto as mensagens possuem.
Além disto, os tubos possuem associações com as bandas de transmissão de dados, tipos de serviços de transferência e características de endpoint, como direção e tamanho de buffers. A maioria dos tubos passam a existir quando um dispositivo é configurado. Uma mensagem de pipe, default control pipe, sempre existe enquanto o dispositivo está sendo alimentado, para que possa fornecer acesso as configurações, informações de controle e status deste.
A listagem da transações permite o controle do fluxo para várias correntes de tubos (stream pipes). O mecanismo de controle de fluxo permite a construção de listas flexíveis, que acomodam serviços concorrentes de misturas heterogêneas de stream pipes. Múltiplas correntes de pipes podem ser "servidas" em diferentes intervalos e com pacotes de diferentes tamanhos.
Existem vários atributos do USB que contribuem para sua robustez:
Cada pacote inclui campos protegidos contra erros de sinais transientes. Quando a integridade de dados é requisitada, assim como perdas de dados de dispositivos, um procedimento de recuperação de erro pode ser solicitado através de hardware ou software.
O protocolo inclui CRC’s separados para o controle e campos de dados para cada pacote. Um CRC falho indica um pacote corrompido.
§ 2.6 – Configuração do Sistema
Como visto anteriormente, o USB suporta a conexão e remoção de dispositivos a qualquer instante. Consequentemente, o software de sistema deve acomodar mudanças dinâmicas na topologia física do barramento.
§ 2.6.1 – Conexão de dispositivos USB
Todos os dispositivos são conectados ao USB através de portas ou hubs. Os hubs possuem indicadores de estado que alertam para a conexão ou remoção de um dispositivo em suas portas. No caso de uma conexão, o host ativa a porta e endereça o periférico através do control pipe indicando o endereço padrão (default).
O host atribui um único endereço USB para o dispositivo e somente então determina se a nova ligação é um hub ou uma função. Este processo é estabilizado utilizando o endereço USB atribuído e o número para o ponto final zero(zero endpoint).
Caso um hub seja conectado e possua dispositivos USB nele ligados, o procedimento anterior é seguido para cada um dos periféricos conectados.
Se uma função for conectada, então notificações de conexão serão manipuladas pelo software do host apropriado para esta função.
§ 2.6.2 – Remoção de dispositivos USB
Quando um dispositivo USB está sendo removido de uma porta de um hub, este desabilita a porta e indica a remoção ao host . Esta indicação é utilizada por um software do sistema apropriado.
Caso o dispositivo USB seja um hub, o software de sistema deve alertar sobre a remoção do hub quanto a dos dispositivos nele conectados.
A enumeração é a atividade que identifica e atribui endereços únicos para os dispositivos ligados ao barramento. Por permitir a conexão e remoção de dispositivos em qualquer instante de tempo, a enumeração é uma atividade ininterrupta para o software do sistema.
Além disso, a enumeração também inclui a detecção e o processo de remoção de periféricos.
§ 2.7 – Tipos de Fluxo de Dados
O barramento suporta dados funcionais e substituição de controles entre o host e periféricos, assim também como um conjunto de pipes uni ou bidirecionais. As transferências de dados realizam-se entre o software do host e um endpoint particular em um dispositivo USB. Algumas destas associações é que são chamadas de pipes (tubos ou canais). Geralmente, o movimento de dados através de um tubo é independente do fluxo de dados em outro tubo.
Um dado dispositivo USB deve possuir vários endpoints. Por exemplo, o dispositivo deve ter um ponto final que suporte um tubo transportando dados para o dispositivo e outro que suporte o transporte de dados no sentido contrário.
A arquitetura USB compreende quatro tipos básicos de transferências de dados:
§ 2.7.1 – Transferências de Controle
Dados de controle são usados pelo software de sistema do USB para configurar os dispositivos durante a primeira conexão destes. Outros drivers podem ser escolhidos para utilizar transferências de controle em implementações específicas. A distribuição de dados é perdida.
§ 2.7.2 – Transferências de Volume
Volume de dados, tipicamente, consistem em grandes quantidades destes, assim como os usados em impressoras e scanners. Este tipo de dado é seqüencial. Trocas de dados confiáveis são asseguradas por hardware utilizando a detecção de erros do próprio. Vale lembrar também que a largura das bandas de transmissão para este tipo de transferência de dados pode variar dependendo de outras atividades concorrentes do barramento. É um tipo de transmissão que assegura a integridade dos dados mas não a velocidade de transmissão. Esta é apenas garantida pelo melhor esforço, isto é, caso haja possibilidade de transmissão mais rápida, esta será feita.
§ 2.7.3 – Transferências Interruptas
Uma transferência pequena e limitada de ou para um dispositivo é chamada de interrupta. Alguns dados podem ser apresentados para transferências por um dispositivo em qualquer instante e é distribuída pelo USB a uma taxa nunca mais lenta quanto a especificada pelo dispositivo.
Dados interruptos consistem tipicamente de notificações de eventos, caracteres ou coordenadas que são organizadas com um ou mais bytes.
§ 2.7.4 – Transferências Isossíncronas
Dados isossíncronos são contínuos e em tempo real na sua criação e distribuição. Informações relacionadas ao sincronismo são sugeridas pela taxa fixa em que cada dado isossíncrono é recebido e transferido.
Este tipo de dado deve ser distribuído de acordo com a taxa de recepção para que o seu sincronismo seja mantido. Além disso, a taxa de distribuição deve ser sensível a atrasos nesta atividade. Para pipes isossíncronos a banda de transmissão se baseia em amostras características das funções associadas.
Um exemplo típico de dado isossíncrono é a voz. Caso a taxa de distribuição destes dados não seja mantida, irão ocorrer "saltos" na corrente de dados. Ainda se o dado é distribuído na taxa apropriada pelo hardware USB, atrasos de distribuição introduzidos por software podem degradar aplicações que necessitam de transmissões em tempo real, como telefonia e áudio conferências.
Correntes isossíncronas de dados são alocados em uma determinada porção da banda de transmissão para assegurar que os dados serão distribuídos na taxa desejada.
§ 2.7.5 – Alocando a Banda de Transmissão
A banda de transmissão USB é alocada entre canais (pipes). O barramento aloca a banda para alguns pipes quando um destes é estabilizado.
A capacidade da banda de transmissão pode ser alocada entre diferentes correntes de dados. Isto aumenta significativamente o número de componentes que podem ser conectados ao barramento. Além disso, dispositivos com diferentes taxas de transmissão são suportados operando corretamente.
Dispositivos USB são divididos em diversas classes. Estes componentes são necessários para carregar informações, auto-identificação e configurações genéricas.
§ 2.8.1 – Caracterização de Dispositivos
Todos os dispositivos USB são acessados por um endereço atribuído durante sua conexão e enumeração. Cada componente adicionado suporta um ou mais pipes através dos quais o host pode se comunicar com eles. Todo componente USB também suporta um canal especialmente designado no ponto final zero para que seja incluído o canal de controle (control pipe). Através deste pipe de controle, dispositivos USB suportam um mecanismo de acesso comum para obter informações.
O canal de controle no endpoint zero é a informação necessária para descrever completamente o dispositivo USB. Esta informação é dividida em três categorias:
Existem duas classes majoritárias de dispositivos: hubs efunções. Somente os hubs possuem a característica de fornecer pontos adicionais de conexão ao barramento. Funções propiciam um aumento de capacidade ao host.
Hubs são elementos chave na arquitetura plug and play do USB. A figura seguinte mostra um hub típico.
Figura 2.3 – Um típico hub USB
Estes dispositivos servem para simplificar a conectividade de acordo com as perspectivas usuários, além de oferecer segurança a baixo custo e complexidade.
Fios concentrados constituem os hubs. Estes por sua vez ativam as características de conexão do USB. Pontos de conexão são chamados de portas. Cada hub converte um simples ponto de conexão em vários outros. A arquitetura suporta a concatenação de hubs.
A porta principal (upstream port) de um hub o conecta como o host. Cada porta secundária (downstream port) permite a conexão de outro hub ou função.
Os hubs podem detectar a conexão e a remoção de um dispositivo, tanto de baixa quanto de alta velocidade, nas portas secundárias, além de distribuir energia para estes.
Duas partes constituem um hub: o controlador e o repetidor. Este último é um protocolo de mudança controlado entre as portas secundárias e a primária. Também possui suporte de hardware para reiniciar e suspender a transmissão de sinais. O controlador do host propicia aos registradores da interface permitir a comunicação de/para o host. Comandos de controle e estados específicos permitem ao host configurar um hub, além de monitorar e controlar as suas portas.
A figura seguinte ilustra como os hubs provêm conectividade em um típico ambiente computacional.
Figura 2.4 – Hubs em um típico sistema computacional.
Uma função é um dispositivo que é capaz de transmitir ou receber dados ou informações de controle do barramento, estando conectado, por um cabo, a uma porta ou hub. Além disso, um pacote físico pode conter funções múltiplas e possuir hosts embutidos. Estes são conhecidos como dispositivos compostos e aparecem para o host como um hub com um ou mais dispositivos não-removíveis.
Cada função contém informações de configurações que descrevem suas capacitações e recursos exigidos. Antes de poder utilizar uma função, o host deve configurá-la Esta configuração inclui a alocação da banda de transmissão e a seleção das opções específicas para a configuração da função.
Abaixo seguem alguns exemplos de funções:
§
2.9 – Host USB:
Hardware e Software
O host USB interage com os dispositivos através do controlador do mesmo. O host é responsável por:
Existem cinco áreas de interação entre o software do sistema USB e o software do dispositivo:
§ 2.10 – Extensões de Arquitetura
A arquitetura USB compreende extensões na interface entre o driver de controle do host e o driver do USB. Implementações com múltiplos controladores associados a drivers de controle são possíveis.
*Obs.: Quando nos referimos a hardware, um pad I/O dirige uma carga externa. Quando nos referimos a software, o programa responsável pelo interfaceamento de um dispositivo de hardware, que é um driver de um dispositivo.
(1) "Universal Serial Bus Specification", Compaq, Intel, Microsoft, NEC, Revision 1.1, 23 de Setembro de 1998.
(2) www.usb.org