Introdução ao USB: Vantagens, Desvantagens e Arquitetura (Parte 1/6)

Introdução ao USB: Vantagens, Desvantagens e Arquitetura (Parte 1/6)

Universal Serial Bus (USB) é a interface de fato para periféricos de computador se comunicarem com computadores pessoais. A interface que viu a luz do dia em meados da década de 1990 foi um esforço conjunto de sete empresas – Compaq, DEC, IBM, Intel, Microsoft, Nortel e NEC. Estas empresas pretendiam substituir as então portas paralelas e os carregadores de energia externos por um padrão de comunicação universal que pudesse simplificar a troca de dados e também duplicar a tarefa de fornecimento de energia.

Hoje em dia, USB é a interface padrão e obrigatória em quase todas as placas-mãe, computadores de placa única e placas de microcontroladores incorporadas e quase todos os periféricos digitais, desde periféricos comuns de computador, como teclado, mouse e joysticks, até dispositivos digitais inteligentes, como câmeras, pen drives, smartphones. e tablets, todos vêm equipados com porta(s) USB. Até agora, o USB 3.1 (lançado em julho de 2013) foi lançado e o padrão agora é mantido e desenvolvido pela Fórum de implementadores USB.

Qualquer interface USB conecta dois dispositivos onde um dispositivo está conectado como Host e o outro dispositivo como periférico. Por exemplo, quando uma unidade flash USB (pen drive) é inserida na porta USB de um computador pessoal, a unidade flash é o periférico e um computador pessoal é o dispositivo host. Por “Host”, aqui significa que a comunicação de dados é gerenciada pelo dispositivo host com a ajuda do software de driver relevante. Muitos periféricos podem ser conectados a um único dispositivo host. Até mesmo uma única porta USB pode ser estendida para várias portas USB usando um hub de extensão.

As versões iniciais do USB (versões de pré-lançamento e USB 1.0) foram desenvolvidas para dispositivos mais lentos. Mas no ano 2000, a procura por comunicações de alta velocidade aumentou e o USB 2.0 foi lançado para satisfazer as expectativas. A versão atual do USB 3.0 suporta quatro modos diferentes de transferência de dados:

Modos Desempenho Aplicativo
Baixa velocidade 1,5Mbit/s Teclado, mouse, periféricos de jogo
Velocidade máxima 12Mbit/s Scanner, impressora, áudio digital
Alta velocidade 480Mbit/s Banda larga, armazenamento em massa, imagem
Super velocidade 5Gbit/s Streaming em tempo real, dispositivos SDtorage portáteis

Os lançamentos das novas versões do USB obviamente apresentam maiores velocidades de transferência de dados para diferentes formatos de arquivo:

Tamanho dos dados Tempo gasto
USB 1.0 USB 2.0 USB 3.0
Imagem/MP3 (4 MB) 5,3 segundos 0,1 seg. 0,01 seg.
Unidade flash (1 GB) 22 minutos 33 segundos 3,3 segundos
Filme HD (16 GB) 9,3 horas 13,9 minutos 70 segundos

Vantagens do USB:

• Fácil de usar: O USB foi, por razões óbvias, projetado para ser uma interface simplificada. A simplicidade da interface reside nos seguintes aspectos:

• Interface única para vários dispositivos: A natureza versátil do USB elimina a complexidade dos diferentes tipos de conectores e requisitos de hardware para cada periférico

• Configuração automática: O sistema operacional do dispositivo host só precisa instalar o driver do dispositivo USB uma vez. Posteriormente, sempre que o dispositivo periférico for conectado, o driver será carregado automaticamente para configurar o dispositivo conectado. Normalmente, o driver de dispositivo específico para qualquer periférico USB é instalado automaticamente na primeira vez que o dispositivo é conectado ao host.

• Fácil de expandir: Geralmente os computadores pessoais (placas-mãe) possuem 3 ou 4 portas USB. Caso sejam necessárias mais portas USB, os hubs USB podem ser usados ​​para adicionar portas externas.

• Tamanho compacto: As tomadas USB têm dimensões pequenas em comparação com as portas RS232 ou paralelas. • Não é necessária alimentação externa: A interface USB foi desenvolvida desde o primeiro dia para funcionar como fonte de alimentação CC. Qualquer dispositivo host através de sua porta USB pode fornecer 5 Vcc, fornecendo 500 mA (USB 1.0 e 2.0) a 900 mA (USB 3.0) ao periférico.

• Velocidade: O USB oferece vários modos de velocidade que o tornam mais eficiente e rápido em comparação com portas RS232 e paralelas. Ele oferece faixas de velocidade de 1,5 Mbit/s a 5 Gbit/s. Com a introdução do USB 3.1 em 2013, a velocidade foi aumentada para 10 Gbit/s. Também é conhecido como Super Speed+.

• Confiabilidade: O protocolo USB pode detectar erros durante a transferência de dados e notificar o transmissor para retransmitir os dados. O driver USB genérico e o software de driver específico garantem uma comunicação de dados sem erros.

• Baixo custo: Com sua natureza versátil e alta demanda, tornou-se barato fabricar dispositivos com suporte USB, pois a fabricação pode ser facilmente dimensionada. Portanto, os componentes, o conector e o cabo também estão facilmente disponíveis a baixo custo.

• Baixo consumo de energia: Os dispositivos USB geralmente funcionam em +5V e consomem corrente em miliamperes. Durante Modo de suspensãoo periférico consome 500 microamperes ou menos para USB 2.0 e 2,5 miliamperes ou menos para USB 3.0.

Além de tantas vantagens, existem algumas limitações que tornam o USB ineficaz para algumas tarefas.

Limitações:

• Velocidade: Com a introdução do USB 3.0, é possível atingir 5 Gbits/seg. Mas ainda é inferior ao Gigabit Ethernet. O FireWire 800 (IEEE-1394b) também é um concorrente do USB.

• Comunicação ponto a ponto: De acordo com o padrão USB, a comunicação ocorre entre o host e o periférico. Dois hosts não podem se comunicar diretamente entre si. O mesmo acontece com um periférico. Por outro lado, interfaces como FireWire suportam comunicação de periférico para periférico. Para superar esta limitação, o USB introduziu o conceito de OTG (On The Go). O dispositivo OTG normalmente funciona como periférico, mas também pode funcionar como host com alguma capacidade limitada quando necessário.

• Distância: De acordo com os padrões USB, o cabo de conexão pode ter até 5 metros, além dos quais é necessário usar hubs USB para expandir a conectividade.

• Transmissão: O Universal Serial Bus não fornece o recurso de transmissão, apenas mensagens individuais podem ser comunicadas entre o host e o periférico.

Arquitetura do sistema USB

O USB é controlado por um host; pode haver vários periféricos, mas apenas um host por barramento. O host pode ser considerado mestre e periférico como escravo, sendo o primeiro responsável por gerenciar a conexão, as transações e o agendamento da largura de banda. O sistema USB usa topologia de início em camadas. Consiste em endereçamento de 7 bits; isso significa que ele pode suportar até 127 dispositivos ao mesmo tempo.

O cabo de conexão consiste em 4 fios blindados, dos quais dois são para alimentação (+5V e terra) e os restantes são sinais de dados diferenciais de par trançado que usam o esquema NRZI (Non Return to Zero invert) para transmitir dados. Para sincronizar os relógios do host e do receptor, o campo Sync é usado.

Pontos finais

No USB, as informações fluem entre o host e o dispositivo. Os endpoints são fontes ou sumidouros de informações em um canal de comunicação. Estes são blocos de memória em um chip controlador contendo buffers para transmissão e recepção.

Os dois pontos finais podem ter o mesmo número de ponto final, mas direções diferentes. Quando o dispositivo está conectado, apenas o endpoint padrão 0 fica acessível. Este endpoint recebe solicitação de controle e status do host durante o processo de enumeração. Os outros endpoints são declarados conforme o requisito após a configuração do dispositivo.

Imagem mostrando terminais USB

Fig. 1: Imagem mostrando terminais USB

Tubos

Um pipe é uma conexão lógica de dados entre o software do controlador host e o endpoint do dispositivo. As informações são trocadas através deste canal. Ele é criado durante o processo de enumeração. Quando o dispositivo é desconectado, os tubos desnecessários são removidos.

Existem dois tipos de tubos:

• Canais de mensagens: Estes são tubos bidirecionais que seguem um formato de pacote definido. Eles são controlados pelo host e suportam apenas transferência de controle.

• Tubulações de fluxo: São tubos unidirecionais que não seguem nenhum formato de dados específico. Eles podem ser controlados por host ou dispositivo (periférico) e suportam transferências em massa, isócronas e de interrupção.

O Tubo de controle padrão é um tipo especial de canal de mensagem que é bidirecional e suporta o tipo de transferência de controle. Ele usa o terminal 0-IN e o terminal 0-OUT. Este tubo pode ser acessado quando um dispositivo está conectado.

Imagem mostrando canais lógicos USB

Fig. 2: Imagem mostrando tubos lógicos USB

Tipos de transferência

Existem quatro tipos de modos ou tipos de transferência que podem ser usados ​​para comunicação:

• Transferência de controle: Este tipo de transferência é usado para transferir as informações de controle durante a identificação e configuração do dispositivo.

• Transferência em massa: Neste tipo de transferência, uma grande quantidade de dados é movida e o tempo não é um fator crítico aqui. Pode ser usado como enchimento.

• Interromper transferência: Este tipo de transferência destina-se à transmissão de pequenos dados com atenção imediata.

• Transferência Isócrona: É uma transferência em que o tempo é um fator crítico. A transferência deve ser concluída em um determinado momento.

Imagem mostrando tipos de transferência USB

Fig. 3: Imagem mostrando os tipos de transferência USB

Transação

Uma única transação contém a transmissão de até três pacotes. Esses pacotes são:

• Pacote de Tokens: Este pacote é sempre enviado pelo Host

• Pacote de dados: Este pacote pode ser enviado por Host ou Dispositivo.

• Pacote de aperto de mão: Este pacote fornece informações de sucesso/fracasso para o pacote de dados recebido. Se o Host transmitir o pacote de dados, o dispositivo enviará o pacote de handshake e vice-versa.

Aperto de mãos

Handshaking é um mecanismo para verificar o sucesso/falha de uma solicitação ou para verificar a entrega de um pacote. Isso é feito para evitar perda de pacotes e garantir uma transmissão bem-sucedida. Termos relacionados ao aperto de mão:

• RECONHECIMENTO – confirmação de recebimento de dados (sucesso)

• NÃO – reconhecimento negativo significa que não há dados

• PARAR – solicitação não suportada ou endpoint interrompido

• NYET – ainda não. Um caso pode ocorrer quando o dispositivo está ocupado e não está pronto para o próximo pacote de dados

• ERRO – erro de transação dividida

• Sem resposta

Imagem mostrando transações USB e handshake

Fig. 4: Imagem mostrando transações USB e handshake

Estados do dispositivo USB

Um dispositivo USB pode ter vários estados possíveis, conforme descrito abaixo:

• Estado Anexado: Este estado ocorre quando o dispositivo está conectado ao Host.

• Estado energizado: Após o dispositivo ser conectado, o Host fornece energia ao dispositivo se ele não tiver sua própria fonte de alimentação. O dispositivo não deve consumir mais de 100 mA neste estado.

• Estado padrão: Este estado ocorre quando o dispositivo é reinicializado e não recebeu um endereço exclusivo. Neste estado, o dispositivo usa o canal de controle padrão para comunicação e o endereço padrão 0.

• Estado endereçado: O dispositivo USB entra neste estado depois de obter um endereço exclusivo que é usado para comunicações futuras.

• Configurado: Quando o Host obtém as informações necessárias do dispositivo, ele carrega o driver apropriado para o dispositivo. O host configura o dispositivo selecionando uma configuração. O dispositivo agora está pronto para realizar as operações para as quais foi projetado.

• Estado Suspenso: O dispositivo USB entra no estado suspenso quando o barramento permanece ocioso por mais de 3mS. Neste estado, o dispositivo não deve consumir mais de 500uA de corrente.

Enumeração

Enumerar é tornar o dispositivo periférico reconhecível no host. Para tornar a enumeração bem-sucedida, algumas etapas devem ser seguidas -:

• Escrevendo código de firmware para o chip controlador: Este firmware será responsável por enviar a descrição do dispositivo, decodificar os pacotes e responder ao host.

• Um driver de dispositivo precisa ser instalado no host: Para janelas, um INF é necessário que contenha as informações sobre o dispositivo. Às vezes, o próprio dispositivo USB contém drivers para o host.

Após a enumeração bem-sucedida, o dispositivo será conhecido pelo host e será necessário um aplicativo para fazer uso da comunicação USB. O aplicativo usa sistema operacional API (por exemplo, API do Windows). O aplicativo pode transmitir ou receber dados usando Buffers.

Classe de dispositivo

Cada dispositivo USB possui uma classe de dispositivo que define a funcionalidade e a finalidade desse dispositivo. O host carrega o driver adequado de acordo com a classe do dispositivo. As classes de dispositivos mais comuns são:

• Dispositivo de Interface Humana (HID): Esta classe é geralmente usada por dispositivos que utilizam Interrupt Transfer para comunicação de dados. Exemplos são teclado, mouse ou joystick.

• Armazenamento em massa: Dispositivos que precisam transferir uma grande quantidade de dados por meio de transferência em massa implementam esta classe. Exemplos são unidade flash USB, leitor de cartão de memória ou disco rígido externo.

• Áudio: Esta classe é implementada por dispositivos de áudio como microfone, alto-falante, placa de som externa, etc. O dispositivo usa transferência isócrona para comunicação de dados.

• Hub USB: É usado por hubs USB para expandir o número de portas.

• Imagem: Usado por um dispositivo como uma webcam ou scanner.

• Impressora: Usado por impressora a laser, impressora jato de tinta ou máquinas CNC

• Sem fio: Usado pelo adaptador externo para comunicação sem fio. Exemplo – Bluetooth, 802.11

Tabela listando classes comuns de dispositivos USB

Fig. 5: Tabela listando classes de dispositivos USB comuns

O próximo artigo aborda o protocolo USB que define os vários tipos de campos de pacote. Fique ligado nos próximos detalhes do USB da série.

Bloga dön

Yorum yapın

Yorumların yayınlanabilmesi için onaylanması gerektiğini lütfen unutmayın.