USB (Universal Serial Bus): uma visão geral

Comunicação em USB

Imagem mostrando comunicação em USB

Figura 1: Imagem mostrando comunicação em USB

Enquanto Ccomunicação em USB consideramos três partes-

a) Host que pode ser um computador/PC/laptops

b) Cabo e conector USB

c) Dispositivos periféricos, por exemplo. Teclados, mouse, reprodutor de áudio etc.

Os sistemas USB consistem em um computador pessoal (PC) conhecido como host e vários dispositivos periféricos como mouse, teclado e sistema de áudio. O próprio host contém dois componentes, o controlador de host e o hub raiz. Um controlador host é um componente de hardware contido em um computador host. O controlador Host converte os dados na linguagem compreensível para o SISTEMA OPERACIONAL e também gerencia a comunicação no barramento. O controlador host USB possui um hub incorporado chamado hub raiz. Um hub é um ponto de conexão comum que permite que vários dispositivos se conectem na rede. Um hub contém vários portos. O hub raiz conecta o(s) controlador(es) host ao dispositivo periférico e atua como a primeira camada de interface para o USB em um sistema. As portas visíveis no painel traseiro do sistema são as portas do hub raiz. Essas portas fazem parte do hub raiz e, por sua vez, podem ser conectadas ao hub externo, aumentando assim o número de dispositivos USB que podem ser conectados ao host. Um hub externo pode ser usado para estender as conexões até um máximo de 127 dispositivos.

Sempre que um dispositivo USB está conectado ou desconectado, ele é detectado primeiro no hub raiz que, por sua vez, passa informações para o controlador host. USB é um protocolo half duplex onde todos os dados são passados ​​através de uma interface de dois fios chamada D+ (D mais) e D- (D menos).

O anfitrião é responsável pelas seguintes tarefas:

1.Detectar anexo e remoção de dispositivos USB

2. Fornecer e gerenciar energia para dispositivos conectados

3. Monitore a atividade no ônibus e inicie o processo de enumeração

4. Gerencie o fluxo de dados entre host e dispositivos.

Imagem esquemática mostrando vários dispositivos conectados ao USB

Figura 2: Imagem esquemática mostrando vários dispositivos conectados ao USB

Quando discutimos a transferência de dados através do USB, sempre usamos o ponto de vista do host como referência. Por exemplo, se houver uma transferência IN, isso significa que o host receberá os dados. Uma transferência OUT significa que o host irá transmitir dados.

Comunicação USB Parte I (tubos e pontos finais)

CONCEITO DE TUBOS E PONTO FINAL

As portas são usadas para conectar dispositivos periféricos como mouse, teclados ou dispositivos de áudio a elas. Cada dispositivo recebe um endereço específico usado durante o processo de comunicação pelo host. Esses dispositivos são conectados ao hub raiz e, por sua vez, ao host por pipes. Um pipe é uma conexão lógica entre o host e o ponto final e é usado pelo software cliente para transferir dados. Ele define vários parâmetros, como direção do fluxo de dados, comprimento da largura de banda alocada ao dispositivo e que tipo de transferência ocorrerá. Existem dois tipos de pipes no USB: um é o stream pipe e o outro é o message pipe.

· Tubos de fluxo– São tubos de comunicação unidirecionais usados ​​para a maioria das transferências de dados. Esses pipes não possuem formato USB definido. Podemos enviar qualquer tipo de dados de uma extremidade e recuperá-los de outra extremidade. Os dados fluem sequencialmente e têm uma direção predefinida, IN ou OUT. Os tubos de fluxo suportam transferências em massa, isócronas e de interrupção e são controlados pelo host ou pelo dispositivo.

· Canais de mensagens– São canais de comunicação bidirecionais e utilizados apenas para envio/recebimento de mensagens curtas. Esses tubos têm formato USB definido. Eles são controlados pelo host e iniciados por solicitação enviada pelo host. Os dados são transferidos na direção desejada conforme a solicitação. Eles suportam apenas transferências de controle.

Depois de compreendermos os canais, aprenderemos sobre vários tipos de transferência de dados. Dependendo do tipo de dados precisamos decidir que tipo de tubo usar.

Existem quatro tipos diferentes de transferência de dados em USB.

1.Transferência de controle– Serve para enviar comandos aos dispositivos para realização de consultas. Esta transferência usa canais de mensagens.

2. Interromper transferências– É utilizado para enviar pequenas quantidades de dados que requerem um atraso mínimo garantido. Ele usa tubos de fluxo.

3.Transferência em massa– É utilizado para transferir grande quantidade de dados sem garantia de tempo e utiliza Stream pipes

4. Transferências isócronas– é utilizado para transferência de dados que requerem uma taxa de entrega fixa, pois são capazes de largura de banda de barramento fixa e falta de correção de erros. Como não há correção de erros, não há atraso na transferência de dados. Essas transferências usam Stream pipes.

Uma visão geral da comunicação USB

Fig. 3: Uma Visão Geral da Comunicação USB

Entre o dispositivo e o host existe um buffer endereçável que é conhecido como endpoint. Um endpoint é um terminal elétrico que geralmente consiste em um conjunto de registros de memória que armazena os dados temporariamente em dispositivos periféricos USB ao entrar ou sair. Um terminal armazena dados recebidos do host e mantém os dados a serem transmitidos ao host. Um dispositivo USB pode ter vários terminais e cada terminal possui um canal associado a ele. Cada terminal é acessado com um endereço de dispositivo atribuído pelo host e um número de terminal atribuído pelo dispositivo. Os endpoints geralmente vêm em pares, por exemplo, Endpoint 1 In e Endpoint 1 Out. Um conjunto de endpoints, Ponto final 0 In e Ponto final 0 Saída está sempre ativado e é usado para comandos básicos para todos os dispositivos USB.

Imagem mostrando a relação entre host USB e dispositivos

Figura 4: Imagem mostrando a relação entre host USB e dispositivos

A próxima figura mostra todo o sistema USB. Vamos tentar entender o que exatamente acontece quando um dispositivo periférico é conectado ao porta USB e quais são os processos acontecendo entre o host e o dispositivo periférico.

Diagrama de blocos mostrando o sistema USB completo

Figura 5: Diagrama de blocos mostrando o sistema USB completo

Comunicação USB Parte II

ANEXAR EVENTO

Quando qualquer dispositivo é conectado à porta USB do PC, ele, por sua vez, é conectado ao hub raiz. Isso é conhecido como evento de anexação e a remoção do dispositivo é conhecida como evento de desanexação. O dispositivo é detectado pelo hub raiz monitorando as tensões das portas. Um hub possui um resistor pull down nas linhas D+ e D-. Na condição inicial, D+ e D- estão no mesmo potencial de 0V devido aos resistores de 15kohm encontrados no lado do host. Agora, quando um cabo é conectado, um resistor pull up está em D+ ou D- conforme especificado pelo fabricante do dispositivo, portanto, se a mudança de tensão for detectada na linha D-, então é um dispositivo de baixa velocidade e a mudança de tensão está em D+, é um dispositivo de alta velocidade. Uma vez detectada a velocidade, inicia-se o processo de ENUMERAÇÃO.

ENNUMERAÇÃO- É um processo pelo qual o host atribui um endereço a cada dispositivo periférico que permite a comunicação com os dispositivos USB.

O processo de enumeração pode ser dividido em 2 fases: Fase 1onde o host aprende sobre o dispositivo recém-chegado lendo os descritores e carrega o driver de dispositivo apropriado & FASE 2onde o driver do dispositivo configura o dispositivo e o prepara para transferência de dados.

PASSO 1-ATRIBUIÇÃO DOS ENDEREÇOS

O host reconhece o dispositivo recém-conectado por meio de alterações na tensão da porta. Todos os dispositivos no barramento USB receberão um endereço exclusivo do host. Porém quando qualquer dispositivo começa a se comunicar com o host, ele sempre começa a se comunicar usando o endereço 00H. Um terminal de dispositivo é uma parte endereçada exclusivamente de um dispositivo USB que é uma fonte ou coletor de informações.

Depois que as informações iniciais sobre o dispositivo são coletadas pelo host, ele emite uma solicitação ao hub para redefinir o dispositivo recém-conectado. Isso é feito puxando as linhas D+ e D- para o chão. Manter essas linhas baixas por mais de 2,5 nós causa a condição de reinicialização. Este estado de redefinição é mantido por 10 ms pelo hub. Um novo endereço é atribuído a cada dispositivo periférico, uma vez retirado do estado de reinicialização e o dispositivo responde à solicitação dos hosts usando transferências de controle pelo endereço 00h. Os dispositivos USB são enumerados sequencialmente e não simultaneamente.

ETAPA 2- COLETA DE INFORMAÇÕES DOS DESCRITORES

Na próxima parte, o host começa a aprender mais sobre o dispositivo usando descritores de dispositivo. As informações sobre um dispositivo USB são armazenadas em segmentos de sua ROM (memória somente leitura). Cada vez que um periférico é conectado, o host solicitará uma série de estruturas de dados do dispositivo que informarão o host sobre suas capacidades. Essas estruturas de dados são chamadas de “descritores”. Existem quatro tipos de descritores em USB, cada um com uma função específica. A figura abaixo dá uma imagem clara dos descritores.

Uma análise mais detalhada dos descritores USB

Figura 6: Uma análise mais detalhada dos descritores USB

A partir da figura acima, temos o descritor do dispositivo, o próximo é o descritor de configuração seguido pela interface e, por último, o descritor do ponto final. Portanto, após o descritor de dispositivo, hospede solicitações para descritor de configuração, descritor de interface e descritor de ponto final. Cada um desses descritores contém informações necessárias para a comunicação entre dispositivos host e periféricos, conforme descrito abaixo.

Descritores de dispositivos– Contém informações gerais sobre o dispositivo que são aceitas globalmente e comuns em todos os lugares. Um dispositivo USB só pode ter um descritor de dispositivo. Por exemplo, quando uma câmera está conectada à porta USB, os descritores do dispositivo enviarão informações do host, como especificação USB, protocolos suportados, identificação do fornecedor, identificação do pino, número de configurações que um dispositivo pode adotar e número de série, se presente.

Descritores de configuração-Considere um dispositivo periférico multifuncional como uma câmera de vídeo com microfone interno. Às vezes usamos apenas uma câmera de vídeo, como quando clicamos nas fotos, ou usamos um microfone para gravar o som. Em alguma outra situação em que estamos interessados ​​​​na gravação de vídeo que utilizará câmera e microfone. Ambos os arranjos terão requisitos diferentes para seu funcionamento e são denominados configurações. A primeira configuração necessita de menos energia e a segunda necessitará de mais energia. Este é apenas um exemplo de onde existem configurações diferentes em um único dispositivo; pode haver outros dispositivos que terão outra configuração. Uma configuração pode ser vista como uma coleção de recursos periféricos. Assim, os descritores de configuração especificam valores como a quantidade de energia que uma determinada configuração utiliza, em segundo lugar, se ela é autoalimentada ou alimentada por barramento e o último número de interfaces envolvidas.

· Descritores de interface– Com o mesmo exemplo de dispositivo multifuncional como câmera de vídeo com microfone interno podemos ter três configurações alternativas.

Câmera ativada

Microfone ativado

Câmera e microfone ativados

Cada uma dessas configurações diferentes está presente em três interfaces diferentes. Grupo de endpoints forma uma interface. Uma interface pode agrupar zero, um ou vários endpoints. Já sabemos que endpoints são registros de memória temporária que armazenam informações sobre o dispositivo. Os pontos finais de cada interface armazenarão diferentes tipos de informações específicas para aquela configuração. O descritor de interface especifica o número de pontos finais exigidos por um recurso do dispositivo.

Descritores de ponto final Os descritores de endpoint contêm informações sobre a direção de E/S (IN que é do dispositivo para o host ou OUT que é do host para o dispositivo), o tipo de transferência (Controle, Em Massa, Interrupção ou Isócrona) e o pacote máximo suportado tamanho. Os dispositivos publicam descritores de endpoint para permitir que os clientes consultem qual endpoint está disponível e quais características eles possuem.

ATRIBUINDO E CARREGANDO O DRIVER DO DISPOSITIVO

Depois que o host tiver reunido todas as informações sobre o dispositivo, ele precisará carregar um driver de dispositivo para se comunicar com êxito com os dispositivos periféricos. A driver do dispositivo é um programa de computador que opera ou controla um tipo específico de dispositivo conectado a um computador. Um driver normalmente se comunica com o dispositivo através de barramento de computador ao qual o hardware se conecta. Quando um programa é chamado para executar um dispositivo periférico específico, o driver emite comandos para o dispositivo. Depois que o dispositivo envia dados de volta ao driver, o driver pode iniciar rotinas no programa original que está sendo chamado. Os drivers dependem do hardware e específico do sistema operacional. Um sistema operacional possui um amplo grupo de dispositivos de E/S com características semelhantes e usará drivers de classe específica para interagir com os dispositivos.

Imagem mostrando várias classes de driver

Figura 7: Imagem mostrando várias classes de driver

Uma especificação de classe define funções que descrevem como os dados serão transferidos. Eles também definem o número e o tipo de buffers suportados pela classe. As aulas facilitam o desenvolvimento de drivers de dispositivos e firmware de forma padronizada. Dispositivos USB que compartilham muitos atributos ou solicitam serviços semelhantes são agrupados na mesma classe.

Se um dispositivo tiver sido enumerado anteriormente, o sistema operacional usará seu registro para procurar o driver adequado. Depois que um driver é identificado, o host pode solicitar descritores adicionais específicos da classe do dispositivo ou solicitar que os descritores sejam reenviados.

Por exemplo, no caso do Windows, ele usa seus arquivos INF para localizar uma correspondência para o ID do produto e o ID do fornecedor dos dispositivos. Um Arquivo INF é um arquivo de informações de configuração, é um arquivo de texto simples usado por Microsoft Windows para instalação de software e drivers. O dispositivo também pode liberar números de versão que podem ser usados ​​opcionalmente. Se o Windows não conseguir encontrar uma correspondência, ele examinará o driver de uma perspectiva diferente, procurando uma correspondência com qualquer classe, subclasse e protocolo recuperado do dispositivo.

CARREGANDO O SOFTWARE APLICATIVO

Depois que o driver específico é carregado, a troca de dados entre o host e o dispositivo periférico é iniciada. O software aplicativo associado a um tipo específico de dispositivo pode ser usado para melhorar o desempenho do dispositivo. Software gráfico, reprodutores de mídia, software empresarial são alguns exemplos de software aplicativo.

Cabos e Conectores

Cabo USB e conectores

De um exterior visão geral, USB tem dois componentes: cabos e conectores. Esses conectores conectam dispositivos a um host. A cabo USB consiste em vários componentes protegidos por uma capa isolante. Abaixo da jaqueta há uma blindagem externa que contém uma trança de cobre. Dentro da blindagem externa há vários fios: um fio dreno de cobre que é um par trançado de cabo, um fio VBUS (vermelho) e um fio terra (preto). Uma blindagem interna feita de alumínio contém um par trançado de fios de dados.

Vista em corte transversal de cabos e conectores USB

Figura 8: Vista em corte transversal de cabos e conectores USB

Existe um fio D+ (verde) e um fio D- (branco). Em dispositivos de alta e alta velocidade, o comprimento máximo do cabo é de 5 metros. Para aumentar a distância entre o host e um dispositivo, você deve usar uma série de hubs e cabos de 5 metros. Embora existam cabos de extensão USB no mercado, usá-los para exceder 5 metros é contra a especificação USB. Dispositivos de baixa velocidade têm especificações ligeiramente diferentes. O comprimento do cabo é limitado a 3 metros e os cabos de baixa velocidade não precisam ser um par trançado como os fios de dados de par trançado USB. O barramento de tensão fornece uma alimentação constante de 4,40 V – 5,25 V para todos os dispositivos e as linhas de dados fornecem até 3,3 V. A razão para usar o sinal diferencial D+ e D- é rejeitar o ruído de modo comum. Se o ruído for acoplado ao cabo, normalmente estará presente em todos os fios do cabo. Com o uso de um amplificador diferencial no hardware USB interno ao host e ao dispositivo, o ruído de modo comum pode ser rejeitado.

Agora avançamos e aprendemos mais sobre os conectores. A figura abaixo mostra os vários tipos de conectores.

Visão geral de várias portas USB

Figura 9: Visão geral de várias portas USB

Existem muitos tipos diferentes de Portas USB e conectores disponíveis. A conexão upstream sempre usa uma porta e um conector Tipo A, enquanto o dispositivo usa portas e conectores Tipo B. Inicialmente, a especificação USB incluía apenas os conectores maiores Tipo A e Tipo B para dispositivos, mas posteriormente incluiu as conexões Mini e Micro. Esses conectores Mini e Micro foram desenvolvidos inicialmente para USB On-the-Go, que é uma especificação USB que permite que dispositivos que normalmente atuariam como escravos se tornassem hosts, mas posteriormente foram adotados em dispositivos por terem tamanho menor em comparação ao tipo B.

1. Tipo A- É usado para conectar o cabo ao dispositivo host, também conhecido como extremidade upstream. Eles têm formato plano e quatro conexões em linha.

2. Tipo B- É usado para conectar o cabo ao dispositivo periférico e também conhecido como extremidade downstream. Eles têm formato quadrado e duas conexões em ambos os lados do centro.

Não consegui entender a imagem

Figura 10:

Tabela de descrição dos conectores tipo Micro A e Micro B.

Benefícios do USB

BENEFÍCIOS DO USB

USB traz benefícios para todos. Ele ajuda a alcançar o consumidor iniciante de PC, superando barreiras de usabilidade por meio de fácil instalação de periféricos. O usuário final tem uma experiência mais gratificante e produtiva.

Abaixo está uma tabela dos recursos atuais que o USB tem a oferecer:

Tabela que descreve o conector tipo Micro A e Micro B

Figura 11: Tabela que descreve o conector tipo Micro A e Micro B

Conteúdo Relacionado

Voltar para o blog

Deixe um comentário

Os comentários precisam ser aprovados antes da publicação.