Redes de Computadores I

 

 

Trabalho sobre USB e Wireless USB small logo

Descrição do Sistema USB  

Topologia do barramento USB

A Topologia trata da distribuição geográfica de Elos e Nodos do sistema.

O USB conecta dispositivos USB com hosts USB. A interconexão fisica USB é uma topologia de estrela em camadas (tiered star topology). Um hub é o centro de cada estrela. Cada fio é uma conexão ponto-a-ponto entre host e um hub ou função, ou um hub conectado a outro hub ou função. A figura abaixo ilustra a topologia do USB.

Devido a restrições de propagação de tempo para hub e cabos, o número máximo de camadas permitidas é sete (incluindo a camada root). Somente funções podem ser ativadas na camada sete. A figura abaixo demonstra uma ligação típica entre host, hubs e dispositivos USB e a figura abaixo mostra uma representação das camadas.

O host é responsável por: detectar a inserção e a remoção de um dispositivo, por gerenciar o fluxo de dados e de controle, monitorando o estado das transferências, e por controlar a interface elétrica entre ele e os dispositivos.

Um dispositivo USB pode ser de dois tipos: função ou hub. A função é capaz de transmitir ou receber dados ou informações de controle pelo barramento. Ela serve para aumentar a capacidade do sistema. Exemplos de funções são: mouse, teclado, impressora e adaptador telefônico como um ISDN. Cada função contém informações descrevendo suas capacidades e os recursos dos quais necessita.

O hub é o elemento chave na topologia USB, pois é ele que permite a expansão do número de conexões do sistema. Cada hub converte um ponto de conexão em outros múltiplos pontos. A arquitetura USB permite o uso de múltiplos hubs.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Host (Anfitrião)

O host é responsável pela maior parte do trabalho necessário para que a comunicação tenha lugar.É ele que interage com os dispositivos através do controlador host. Mais especificamente o Host é responsavél por detectar a coneção e a remoção de dispositivos USB, bem como gerenciar o fluxo de controle de dados entre ele e os periféricos. É responsável também por coletar estatísticas de atividades e estado, assim como formecer a limentação aos dispositivos conectados a ele.  

    O software do sistema USB no host gerencia interações entre dispositivos USB e o software do dispositivo instalado no próprio hospedeiro.

    Existem cinco áreas de interação entre o software do sistema USB e o software do dispositivo:

  • Enumeração e configuração do dispositivo.
  • Transferências isossíncronas de dados.
  • Transferências assíncronas de dados.
  • Gerenciamento de energia.
  • Gerenciamento de informações de barramentos e dispositivos.

    Sempre que possível, o software do sistema usa interfaces existentes no host para gerenciar as interações acima.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Hubs

Hubs são elementos chave na arquitetura plug and play do USB. Estes dispositivos servem para simplificar a conectividade de acordo com as perspectivas usuários, além de oferecer segurança a baixo custo e complexidade.

Fios concentrados constituem os hubs. Estes por sua vez ativam as características de conexão do USB. Pontos de conexão são chamados de portas. Cada hub converte um simples ponto de conexão em vários outros. A arquitetura suporta a concatenação de hubs.

A porta principal (upstream port) de um hub o conecta como o host. Cada porta secundária (downstream port) permite a conexão de outro hub ou função.

Os hubs podem detectar a conexão e a remoção de um dispositivo, tanto de baixa quanto de alta velocidade, nas portas secundárias, além de distribuir energia para estes.

Duas partes constituem um hub: o controlador e o repetidor. Este último é um protocolo de mudança controlado entre as portas secundárias e a primária. Também possui suporte de hardware para reiniciar e suspender a transmissão de sinais. O controlador do host propicia aos registradores da interface permitir a comunicação de/para o host. Comandos de controle e estados específicos permitem ao host configurar um hub, além de monitorar e controlar as suas portas.

 

 

 

 

 

 

 

Funções

Uma função é um dispositivo que é capaz de transmitir ou receber dados ou informações de controle do barramento, estando conectado, por um cabo, a uma porta ou hub. Além disso, um pacote físico pode conter funções múltiplas e possuir hosts embutidos. Estes são conhecidos como dispositivos compostos e aparecem para o host como um hub com um ou mais dispositivos não-removíveis.

Cada função contém informações de configurações que descrevem suas capacitações e recursos exigidos. Antes de poder utilizar uma função, o host deve configurá-la Esta configuração inclui a alocação da banda de transmissão e a seleção das opções específicas para a configuração da função.

Exemplos:

 

 

 

  

  

 

Protocolo de comunicação

A transmissão de dados via USB é baseada no envio de pacotes. Todas as transações do barramento envolvem a transmissão de até trés pacotes. A transmissão começa quando o Controlador Host envia um pacote (Token Packet) descrevendo o tipo e a direção da transmissão, o endereço do dispositivo USB e o referido número de endpoint. A transmissão de dados pode ser realizada em ambos os sentidos, ou seja, tanto do Host para o dispositivo quanto do dispositivo para o host. E quem define a direção da transferência é o Token Packet. O endpoint de um dispositivo é a única porção endereçável do dispositivo em um fluxo de comunicação entre o host e o dispositivo que enviou a mensagem. E este, endpoint é codificado em 4 bits . O dispositivo USB decodifica o campo de endereço, reconhecendo que o pacote lhe é referente. A seguir, a fonte da transmissão envia um pacote de dados (Data Packet) ou indica que não há dados a transferir. O host responde com um pacote de Handshake (Handshake Packet) indicando se a transferência obteve sucesso.

 

 

 

 

 

Token Packet

 

 

 

 

Data Packet

 

 

 

Handshake Packet

  • PID (Packet Identifier): composto de oito bits. Os quatro mais significativos identificam e descrevem o pacote e os restantes são bits de verificação para prevenção de erros (check bits). Esses check bits são constituídos pelo complemento um dos quatros bits identificadores;
  • ADDR (Address): endereço do dispositivo USB envolvido. Composto de 7 bits, limita o número de dispositivos endereçáveis em 127;
  • ENDP (Endpoint): possui 4 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): bits destinados à detecção de erros na transmissão;
  • DATA : bits de dados.

Um Token Packet pode identificar a transmissão como sendo de transferência para o Host (IN), de transferência para a função (OUT), de início de frame (SOF) ou de transferência de informações de controle para o endpoint (SETUP). O CRC de um Token Packet possui 5 bits e atua apenas sobre os campos ADDR e ENDP, uma vez que o PID possui seu próprio sistema de prevenção contra erros. Os dados transmitidos via Data Packet devem ter um número inteiro de bytes. O CRC de um Data Packet possui 16 bits e age apenas sobre o campo DATA. O Handshake Packet é constituído apenas de um PID. Esse pacote pode significar que o receptor recebeu os dados livres de erros (ACK), que o receptor não pode receber os dados, que o transmissor não pode transmitir (NAK) ou que o endpoint está em parado (STALL).

 

Detecção de erros

Cada pacote inclui campos protegidos contra erros de sinais transientes. Quando há perdas de dados de dispositivos ou violação da integridade de dados um procedimento de recuperação de erro pode ser solicitado através de hardware ou software.

O protocolo inclui CRC’s separados para o controle e campos de dados para cada pacote. Um CRC falho indica um pacote corrompido.

 

Fluxo de dados comuns  

A transferência do tipo Control serve para configurar ou transmitir parâmetros de controle a um dispositivo. Inicialmente, em idle, ele recebe um Token de SETUP oriundo do Controlador Host. Em seguida, o Host envia um Data Packet para o endpoint de controle da função. A função envia, então, ao Host um Handshake Packet de reconhecimento (ACK) e entra em idle.

A transferência Bulk é utilizada para a transmissão de grande quantidade de dados, como em impressoras ou scanners. Ela garante uma transmissão livre de erros por meio da detecção de erros e de novas retransmissões, se necessário. Caso o Host deseje receber uma grande quantidade de dados, ele envia um Token de IN e a função devolve um Data Packet. Se houver algum problema, a função envia um STALL ou NAK e entra em idle. Ao final, o Host devolve um ACK. Se, em vez de receber, o Host desejar enviar dados, ele manda um Token de OUT em vez de IN.

A transmissão do tipo Interrupt é requisitada pelo Host e consiste numa transferência de pequena quantidade de dados. Os dados podem representar a notificação de algum evento, como os de um mouse ou caneta ótica.

A transferência tipo Isochronous permite o tráfego de dados que são criados, enviados e recebidos continuamente em tempo real. Nessa situação não há handshake, devido à própria continuidade com que os dados são transmitidos. Caso contrário, haveria atraso e a transmissão em tempo real seria comprometida.

Conexão de dispositivos

Todos os dispositivos são conectados ao USB através de portas ou hubs. Os hubs possuem indicadores de estado que alertam para a conexão ou remoção de um dispositivo em suas portas. No caso de uma conexão, o host ativa a porta e endereça o periférico através do control pipe indicando o endereço padrão (default).

O host atribui um único endereço USB para o dispositivo e somente então determina se a nova ligação é um hub ou uma função. Este processo é estabilizado utilizando o endereço USB atribuído e o número para o ponto final zero(zero endpoint).

Caso um hub seja conectado e possua dispositivos USB nele ligados, o procedimento anterior é seguido para cada um dos periféricos conectados.

Se uma função for conectada, então notificações de conexão serão manipuladas pelo software do host apropriado para esta função.

Remoção de dispositivos

Quando um dispositivo USB está sendo removido de uma porta de um hub, este desabilita a porta e indica a remoção ao host . Esta indicação é utilizada por um software do sistema apropriado.

Caso o dispositivo USB seja um hub, o software de sistema deve alertar sobre a remoção do hub quanto a dos dispositivos nele conectados.

A conexão e a remoção dos dispositivos em qualquer instante é responsabilidade da enumeração que é uma atividade initerrupta para o software do sistema pois dela depende a identificação e a atribuição dos endereços únicos para os dispositivos ligados ao barramento.