Funcionamento

 

            Portas e Conectores           

O USB utiliza o protocolo chave fechadura para evitar problemas na conexão do dispositivo pelo usuário final. Esse protocolo visa o encaixe perfeito entre os conectores e suas respectivas portas. O USB utiliza seis tipos de conectores, sendo eles do tipo “A”, “B”, “mini-A”, “mini-B”, “micro-A” e “micro-AB”. Os conectores do tipo “A” são utilizados para a  conexão com o computador (ou um host qualquer) ou com portas Downstream de um hub. Os demais conectores são usados para a conexão do cabo com o periférico, sendo o tipo “B” para periféricos de grande porte, como impressora e modem de banda larga, e os demais para conectar periféricos de pequeno porte, como mp4 e celulares. Abaixo temos a imagem de algumas destas portas: 

                                                                                                           Portas e conectores USB

            Nesta imagem pode-se verificar a exclusividade do formato da porta e do conector para cada tipo. Com essa visão fica visível que cada conector só se encaixa com sua respectiva porta. 

            Cabo

             O cabo USB é composto por quatro fios e uma malha com a função de eliminar ruídos simples. Desses fios dois são utilizados para a alimentação e os outros dois para o transporte de dados. Ele utiliza diferentes cores por fio para diferenciar suas funções. O fio vermelho é o VBUS que transporta +5V para a alimentação, o preto é o GND ( terra ), o verde é o Data +  (D+) e o branco é o Data – (D-).

 

Cores dos fios do cabo USB                                                                                              

            Para conseguir o High/Full-Speed o cabo USB se utiliza da tecnologia de transar os fios de dados para anular as interferências eletromagnéticas de fontes externas e interferências mútuas entre os fios. Para utilizar Low-Speed não há a necessidade de se transar os fios.  

                                                                            Par trançado (Twisted pair)

                O cabo USB tem um comprimento máximo de 5 metros, isso acontece porque o tempo máximo permitido para ida e volta no cabo é de 1500ns, quando esse limite é ultrapassado é considerado que a informação foi perdida. Para utilizar cabos com mais deste comprimento é recomendado a utilização de terminais na conexão de cabos com o comprimento máximo de cinco metros. 

            Taxa de Transmissão 

            Como visto a cima, o USB possui três diferentes taxas de transmissão, sendo elas High/Full/Low-Speed. O High-Speed com taxa de 480 Mbps (60 MB/s) é utilizado quando há necessidade de grande banda como transferência de imagens e armazenamento de dados em HDs externos, o Full-Speed 12Mbps (1,5MB/s) é utilizado para bandas médias como transferência de áudio, e o Low-Speed   1,5 Mbps (187,5KB/s) é utilizado para bandas muito pequenas como mouse e teclado. A vantagem do cabo de Low-Speed é por ter um custo muito baixo, o de Full-Speed  é de ter um custo baixo e a largura da banda garantida, enquanto o High-Speed tem como vantagem a banda larga alem da banda garantida.

             Alimentação dos Periféricos

             Os dispositivos USB conectados recebem alimentação pelo cabo. Para cada segmento USB é fornecido no máximo 5V de tensão e 500mA. A energia fornecida é gerenciada pelo software de controle do dispositivo. Quando um hub é usado essa corrente de 500mA é dividida por todos os dispositivos conectados a eles. Os dispositivos que se alimentam pelo cabo USB são conhecidos por dispositivos alimentados pelo barramento. Se o dispositivo necessitar mais de 500mA é necessária uma fonte de alimentação para ele.

            O gerenciamento de energia pelo software de controle possibilita cortes de energia, e suspensão, levando a economia. Essa característica permite que existam softwares de controle voltados para sistemas de alimentação sensíveis como notebook.

            Topologia

            O USB utiliza como interconexão física a topologia estrela disposta em camadas/níveis ( tiered-star ). Para se obter esse topologia são usados hubs para se conectar vários dispositivos em uma mesma porta. A porta original é encontrada no computador, que com um cabo é conectada a um Hub, das portas deste Hub pode-se ligar outros Hubs ou função. O Hub é o centro da estrela. O cabo é a conexão entre o computador e o Hub ou a função.

Função e Hubs são tipos do dispositivos USB. A diferença de função e hub é que a função recebe e envia informações do/para o sistema. Essa função são os aparelhos que são conectados ao computador, aparelhos esse mouse, teclado, mp4 e outros. O Hub é o dispositivo mais importante para a topologia do USB, isso porque é o Hub que conectar múltiplas funções em uma mesma porta. Cada Hub usa uma porta e disponibiliza mais de uma, geralmente quatro ou oito.

            Devido a restrições de tempo de propagação entre cabo e Hub, o número máximo de camadas é sete, sendo a sétima só podendo conectar dispositivos.

             A topologia do USB permiti conectar múltiplos Hubs, chegando ao número teórico de até 127 funções conectadas a mesma porta USB.

            Abaixo pode ser observado duas figuras demonstrando a topologia do USB:

         

 

Host 

Neste trabalho foi descrito que a porta USB está no computador. Mas essa porta USB é também conhecida como host. O host é responsável pelo funcionamento do USB. Ele é responsável por detectar a conexão e a remoção de um dispositivo. É ele que faz a interação com o dispositivo através do controlador host, controla a taxa de transferência entre dispositivo e host e controla a alimentação do dispositivo.

Hub

            O hub é um dispositivo de grande importância para a topologia USB. Sua principal função é converter uma única porta USB em varias outras, normalmente quatro ou oito. Sua porta principal é conhecida como "Upstream port" e suas demais portas são conhecidas como secundárias ou "Downstream port". A porta principal é utilizada para fazer a conexão com o host, enquanto as portas secundárias são utilizadas para conectar o Hub aos outros dispositivos. O Hub é constituído pelo controlador e pelo repetidor. O repetidor amplifica e regenera eletricamente o sinal transmitido pelo meio físico. O controlador gerencia permissões ao repetidor de comunicar com o host ou com os dispositivos.

 

                                                                                             Exemplo de Hub.

 Protocolo de Comunicação

            O protocolo de transferência do USB é baseado em pacotes. A comunicação é iniciada quando o host envia um pacote inicial conhecido como "Token Packet", o qual indica o endereço, o tipo de transmissão, o sentido e o número do endpoint. O sentido pode ser tanto Host-Dispositivo como Dispositivo-Host. O dispositivo USB decodifica o pacote e verifica o campo endereço para verificar se o pacote tem como origem ele. O endpoint é o único campo endereçável de um dispositivo USB, que é a fonte ou ponto de chegada de informação na comunicação entre o host e o dispositivo. Após o pacote inicial é enviado o pacote de dados "Date Packet" ou indicado que não há transferência a ser efetuada. O destinatário responde em seguida com um pacote de Handshake "Handshake Packet" indicando se a transferência obteve sucesso.

             Os três tipos de pacotes são demonstrados nas figuras a baixo:

 

                                                                                                 Token Packet

 

                                                                                                    Data Packet

     Handshake Packet

 # PID (Packet Identifier): Bloco composto por oito bits. Os quatro bits mais significativos identificam e descrevem o pacote, os restantes são bits de verificação para prevenir possíveis erros (Check Bits).

 # ADDR (Address): Bloco destinado ao endereço do dispositivo USB envolvido. Composto de sete bits, limita o número de dispositivos endereçáveis em 127.

 # ENDP (Endpoint): Bloco constituído por quatro bits que representam o número do endpoint envolvido. Permite maior flexibilidade no endereçamento de funções que necessitem de mais de um subcanal.

 # CRC (Cyclic Redundancy Checks): Bloco destinado à detecção de erros na transmissão.

 # DATA: Bloco composto pelos dados à serem enviados.

             O “Tocken Packet” é constituído pelos campos PUD, ADDR, ENDP e CRC. O CRC no “Tocken Packet” possui cinco bits e atua apenas aos campos ADDR e ENDP. O “Data Packet” é composto pelos campos PID, DATA e CRC, e seu CRC possui 16 bits e atua apenas sobre seu campo DATA. O “Handshake Packet” é composto apenas pelo campo PID,e pode ser classificado em ACK, NAK ou STALL.

 # ACK é enviado ao emissor quando o pacote chega ao receptor sem erros.

 # NAK é enviado quando o receptor não pode aceitar pacotes de dados, ou quando o emissor não pode enviar pacotes de dados.

 # STALL é enviado quando o Endpoint está parado.

 As transferências aceitas pelo protocolo USB podem ser classificadas em quatro tipos diferentes; Control, Bulk, Interrupt e Isochronous.

 # Control: Tem a função de configurar ou transmitir parâmetros de controle a um dispositivo.

 # Bulk: É utilizado para transmissão de grande quantidade de dados. Ela garante uma transmissão livre de erros, pois utiliza a detecção de erro e a retransmissão se necessário.

 # Interrupt: Consiste em uma transferência de pequena quantidade de dados.

 # Isochronous: Permite um trafego de dados que são criados, enviados e recebidos continuamente em tempo real. Neste caso não é utilizado a pacote do tipo Handshake, pois levaria a atrasos na transmissão em tempo real.

 Como visto, cada pacote possui bits reservados para detecção de erros. Se é identificado algum erro no pacote, é executado um procedimento de recuperação de erro via hardware ou software.