Como funciona o USB?

 

A interface USB usa cabos formados por quatro fios. Dois dos fios são usados para transferir e receber informação simultaneamente e os restantes são energia e terra. O dispositivo USB poderá ser auto-alimentado ou ter uma fonte de energia externa.

 

Cabo USB

 

Antes de continuar é conveniente ficar a par dos diferentes tipos de informação que o USB pode transmitir:

·        Control

·        Interrupt

·        Bulk

·        Isochronous

 

As transferências de control são usadas para configurar, controlar e verificar o estado do dispositivo USB. Um pedido é enviado do dispositivo para o computador (host) e a transferência de informação é feita através dos canais apropriados. Mais tarde, o indicador de estado do dispositivo é retornado para o host. O canal usado para este tipo de transferência poderá ser bidireccional. Adicionalmente, um dispositivo apenas lida com um pedido de cada vez. O host aguardará a resposta à informação enviada antes de enviar novos pedidos.

 

As transferências Isochronous são transferências cuja precisão da informação enviada não é muito importante. O USB trata este tipo de transferências de uma forma especial, dando-lhe maior prioridade para garantir uma taxa de transmissão constante com a largura de banda necessária. Para assegurar que o USB tem tempo para lidar com o fluxo máximo de informação (1023 bytes) para cada frame, uma verificação é feita durante a configuração inicial e os canais apenas serão configurados se esta verificação for concluída com sucesso. Este método de transferência usa canais unidireccionais e não tem procedimentos para lidar com erros. Embora um erro possa ser assinalado na resposta a um pedido, o canal não será fechado e o software é que deverá decidir o que fazer.

 

As transferências Interrupt são usadas para pequenas e ocasionais transferências de dados que requerem prioridade sobre outros pedidos. Tal como nas transferências Isochronous a configuração dos canais é garantida, quer o sistema consiga ou não lidar com o tamanho máximo das frames dentro do tempo disponível. Estas transferências têm a restrição de não poderem usar mais de 90% da frame, podendo ainda impedir outras transferências de ocorrer. O intervalo entre pedidos é configurado inicialmente, e após cada pedido o dispositivo USB retorna um sinal NACK (negative acknowledge) se não existir informação para enviar. Este tipo de canal é, no seu propósito, semelhante aos canais IRQ dos periféricos tradicionais.

 

As transferências Bulk, como o nome sugere, têm o propósito de transmitir grandes quantidades de informação. Este tipo de transferência tem a prioridade mais baixa. Os canais que usam este método apenas podem transmitir quando existe suficiente largura de banda. Isto significa que um host carregado com muitos dispositivos USB pode ter transferências Bulk relativamente lentas, comparando com um que tenha menos dispositivos. Este tipo de transferência seria útil para a troca de informação entre um scanner e um host.

 

Existe uma classe especial de dispositivos USB conhecidos como de baixa velocidade (como por exemplo os joysticks). Estes são semelhantes aos de alta velocidade mas contêm algumas restrições:

- O tamanho máximo dos pacotes é de 8 bytes

- Não podem utilizar transferências Isochronous ou Bulk

        Esta simplificação torna este tipo de dispositivos mais baratos e mais fácil de implementar.

 

Voltar