USB: O Guia Completo da Interface Universal
Enviado por Javi e classificado em Tecnologia
Escrito em em português com um tamanho de 24,4 KB.
1. Introdução
O USB (Universal Serial Bus) é uma interface para transmissão de dados e distribuição de energia que foi introduzida no mercado de PCs e periféricos para aprimorar as antigas interfaces seriais (RS-232) e paralelas. A interface é composta por 4 fios, várias velocidades de trabalho e é "plug and play", sem necessidade de energia externa na maioria dos casos.
O Universal Serial Bus é um barramento serial que permite a conexão de até 127 periféricos a uma única porta de um PC, com detecção automática e configuração assim que fisicamente conectado, sem a necessidade de instalar hardware ou software adicional e sem reiniciar o computador. Foi desenvolvido por líderes da indústria de telecomunicações e computadores: Compaq, DEC, IBM, Intel, Microsoft, NEC e Northern Telecom.
2. Características
O barramento USB suporta a troca simultânea de dados entre um computador host e uma vasta gama de periféricos. Todos os periféricos compartilham a largura de banda através de um protocolo de passagem de token. O computador fornece o controle do periférico selecionado e, em seguida, ele retorna o controle em sua resposta. Isso permite que dispositivos sejam conectados/desconectados do barramento sem afetar os outros dispositivos.
Como todos os periféricos compartilham o barramento e as informações podem ser apresentadas a qualquer momento e simultaneamente, estas são divididas em pacotes. O cabeçalho de cada pacote contém um identificador que indica o público-alvo. Os pacotes utilizam um sistema de detecção e correção de erros muito robusto, baseado em um CRC.
2.1 Velocidades
Os dispositivos USB são classificados em quatro tipos de acordo com a taxa de transferência de dados:
- Low-Speed (USB 1.0): tem uma taxa de transferência de até 1.5Mbit/s (192KB/s). Usado principalmente para dispositivos de interface humana, como teclados, mouses e joysticks (ainda em uso porque é mais barato).
- Full Speed (USB 1.1): Taxa de transferência de até 12Mbit/s (1,5MB/s). Este foi o mais rápido antes da especificação USB 2.0. Esses dispositivos dividem a largura de banda da conexão USB entre eles, com base em um algoritmo de buffers FIFO.
- High Speed (USB 2.0): taxa de transferência de até 480Mbit/s (60MB/s).
- Super Speed (USB 3.0): Taxa de transferência de até 4.8Gbit/s (600MB/s). A velocidade do barramento é dez vezes mais rápida que o USB 2.0, devido à substituição da tradicional ligação de cobre por uma fibra óptica que trabalha com conectores de cobre tradicionais, mantendo a compatibilidade com os padrões anteriores.
2.2 Interface Física
O USB define duas linhas de transmissão de dados (D+ e D-) e outras duas para transmitir energia (VBUS e GND), evitando assim o uso de energia externa. Para a transmissão de dados, utiliza-se um algoritmo NRZI (Non Return to Zero Inverted).
O USB transfere sinal e energia para periféricos usando um cabo de 4 condutores, blindado para transmissão de 12 Mbps ou superior, e não blindado para a transmissão de 1,5 Mbps.
No cabo blindado, o par de fios de sinal é torcido e os fios de energia e terra são retos. No caso de cabos não blindados, todos os fios são retos.
Nível de Chave
O cabo USB transfere o sinal e a potência ao longo de quatro fios.
Nível de Alimentação
O cabo fornece a tensão nominal de 5V. É necessário definir corretamente o diâmetro do fio, a fim de que não haja uma queda de tensão muito significativa no cabo. Um resistor de terminação é instalado na linha de dados para detectar a porta e saber sua configuração e velocidade.
Nível de Sinal
Há uma impedância característica de 90Ω. A sensibilidade do receptor deve ser de pelo menos 200mV e ser capaz de sustentar um bom nível de rejeição da tensão de modo comum. O relógio é transmitido no fluxo de dados, a codificação é do tipo NRZI e há um dispositivo que gera um bit de enchimento, que garante que a frequência do relógio permaneça constante. Cada pacote é precedido por uma sincronização de campo.
2.3 Tipos de Conectores
Em relação aos conectores, podemos encontrar dois tipos diferentes, dependendo da plataforma do dispositivo: A e B.
Conectores do Tipo A: De forma retangular, geralmente são usados para dispositivos que não exigem muita largura de banda (como teclado, mouse, câmera web, etc.).
Conectores do Tipo B: Têm um formato quadrado e são usados principalmente para dispositivos de alta velocidade (discos rígidos externos, etc.).
Tipo A | Tipo B
3. Protocolo de Transferência USB
Todos os dispositivos USB são compostos de uma série de endpoints e um único endereço atribuído pelo sistema. Um endpoint é um buffer que armazena os dados no dispositivo. Cada endpoint possui um identificador único que é atribuído a uma determinada fábrica e a direção do fluxo de dados. Todos os dispositivos têm de suportar o endpoint 0, que é utilizado para configuração.
As conexões entre os vários endpoints de um dispositivo e o host são chamadas de Pipes. Os Pipes permitem mover dados entre o software do host e o endpoint do dispositivo. Cada Pipe é determinado pelo tipo de serviço, o número do endpoint, tamanho do pacote, endereço, etc.
Existem quatro tipos distintos de endpoints (Control, Bulk, Isócrono e Interrupt), cada um usado em um tipo de transferência, e as associações (Pipes) que ocorrem entre esses endpoints são:
- Control Pipe ou Mensagem: É um canal de comunicação entre dois endpoints de controle, um de entrada e um de saída, para que se possa estabelecer uma comunicação bidirecional. Todos os dispositivos têm dois endpoints de controle no endereço 0, que podem ser definidos antes de configurar o dispositivo. Através deste endpoint, o host pode ler informações sobre o dispositivo USB antes de iniciar a transferência.
- Stream Pipe: Um canal de comunicação unidirecional entre o sistema e os endpoints Bulk, Isócrono e Interrupt.
As transferências podem ser, dependendo do tipo de endpoint:
Transferência de Controle
Modo utilizado para realizar as configurações: há sempre o endpoint 0. Todos os dispositivos USB têm de suportar a transferência de controle. Os dados de controle são usados para configurar o dispositivo quando conectado ao USB. Alguns drivers específicos podem usar este link para enviar suas próprias informações de controle. Este tipo de transferência não tem perda de dados, uma vez que há detecção de erro e recuperação ativa no USB.
Transferência Isócrona
Modo usado para transmitir áudio ou vídeo compactado. Este tipo de transmissão funciona em tempo real e tem a mais alta prioridade. Apenas os dispositivos Full Speed e High Speed podem incorporar endpoints isócronos. A transmissão de voz é um exemplo dessa aplicação. Se o áudio não é transmitido adequadamente, podem ser ouvidos ruídos (glitches) e o aplicativo pode detectar alguns erros chamados déficits.
Transferência de Interrupção
Modo utilizado para a transmissão de pacotes pequenos e rápidos, destinados à percepção humana (ponteiros de mouse). Esse tipo de transferência é para dispositivos que devem receber atenção regular e utilizam dispositivos de baixa velocidade. Este tipo de transmissão garante a transferência de pequenas quantidades de dados. O tempo de resposta não pode ser inferior ao valor especificado pela interface. O mouse ou outro dispositivo apontador é uma aplicação típica do modo de interrupção.
Bulk Transfers
Este modo é usado para a transmissão de grandes quantidades de informação. Assim como a transferência de controle, esta não tem perda de dados. Esse tipo de transferência é útil quando a taxa de transferência não é crítica, como o envio de um arquivo para impressão ou o recebimento de dados de um scanner. Nessas aplicações, a transferência é rápida, mas pode esperar se necessário. Somente dispositivos de média e alta velocidade utilizam este tipo de transferência.
Enumeração
Ao conectar um dispositivo USB ao PC, ocorre o processo de Enumeração, que é quando o host interroga o dispositivo para saber o que ele é e quais são seus parâmetros, tais como:
- O consumo de energia, expresso em unidades de carga
- Número de endpoints e os tipos de endpoints
- Classe de produto
- Tipo de Transferência
- Modo de controle, e assim por diante.
O processo de enumeração é inicializado pelo host quando ele detecta um novo dispositivo conectado ao barramento. O host atribui um endereço para o dispositivo e permite a configuração que possibilita a transferência de dados.