quinta-feira, 21 de março de 2013

USB 3.0 dicas e informações

USB 3.0

Ele foi desenvolvido pela Microsoft e pela Intel com o intuito de acabar com a abundância de interfaces externas existentes na época, como a porta paralela, a porta serial, a porta para joysticks e a SCSI externa (diga-se de passagem, todas acabaram desaparecendo das placas-mãe). O USB também foi criado como uma interface rápida e barata. Três anos depois, em 1998, a versão 1.1 foi apresentada. E no ano 2000, a especificação 2.0 levou à ampla popularização do USB. Aos modos já existentes, Low Speed (baixa velocidade, até 1,5 Mbps) e Full Speed (velocidade máxima, até 12 Mbps), a nova versão acrescentou o modo Hi Speed (alta velocidade, até 480 Mbps) para competir com a interface FireWire IEEE1394a (de 400 Mbps). Mas a verdade é que não havia concorrentes. Graças a um modelo de implementação e licenciamento mais simples, o USB 2.0 rapidamente relegou o FireWire a um pequeno nicho de filmadoras digitais, apesar de algumas vantagens técnicas dele.

É muito fácil entender o Universal Serial Bus. Primeiro, ele tem o controlador de host que gerencia todo o processo de transferência de dados. Esse controlador é conectado a hubs e a dispositivos finais (diretamente ou por meio de hubs). Podem haver até 128 dispositivos em uma árvore. Um hub USB pode ser passivo ou ativo. O hub ativo tem uma fonte de alimentação dedicada, e pode alimentar os dispositivos conectados sem consumir corrente elétrica do controlador de host. O hub passivo não é lá muito passivo. Trata-se de um dispositivo eletrônico bastante complexo.

Então, o controlador de host consulta os dispositivos regularmente, dedicando a eles intervalos de tempo para que possam transferir dados. Os pontos negativos desse mecanismo são bastante claros: a banda USB é compartilhada por todos os dispositivos. Quanto mais dispositivos você conectar, menos banda cada um deles terá. Esse problema é, em certo nível, mitigado pelos múltiplos tipos de conexões lógicas que podem ser estabelecidas entre o host e os periféricos. Podemos ter um canal de controlepara a transferência de comandos pequenos, ou um canal de interrupçãopara comando pequenos com tempo de entrega garantido, ou um canal isócronocom tempo de entrega garantido para um certo número de pacotes em um período específico, ou um canal de transferência em massaque garante a entrega mas não especifica a velocidade e a latência. Logo, há diferentes tipos de canais para dispositivos diferentes (um canal de interrupção para um mouse ou teclado, um canal isócrono para discos rígidos etc). Durante cada período de operação, o barramento transmite pacotes de interrupção primeiro. Depois, segue a quantidade exigida de pacotes isócronos. O resto do tempo é dedicado ao controle e à transferência em massa de pacotes.

Todo esse processo também é governado pelo controlador de host, que contata os dispositivos conectados, escuta interrupções nos períodos dedicados a essa funcionalidade e manda os dispositivos "dormirem". Um dispositivo conectado não pode adormecer ou acordar, iniciar uma transferência de dados ou dizer algo importante ao host (por exemplo, comunicar um estouro de buffer) por conta própria. Além disso, cada canal desses é meio-duplex, e não pode enviar e receber dados simultaneamente. Não há igualdade na arquitetura USB. Seja qual for o dispositivo conectado, um deles tem que ser o host, e os outros precisam prestar contas a ele.

Conforme os dispositivos USB foram ficando mais populares, as placas-mãe foram oferecendo mais portas USB. Os fabricantes resolviam o problema do barramento único do USB acrescentando mais alguns barramentos. Por exemplo, o popular chipset Intel P55 tem sete controladores UHCI (responsáveis por dispositivos Low Speed e Full Speed) combinados a sete hubs de duas portas, e dois controladores EHCI (responsáveis por dispositivos Hi Speed). O resultado é uma árvore intrincada, com múltiplas raízes e alguns troncos!

O último aspecto do USB que vamos discutir é a alimentação que ele fornece. A capacidade de carga de uma porta limita-se a 0,5 ampères, e você deve se certificar de que vários dispositivos conectados a ela não sobrecarreguem a porta. Há um mecanismo simples para isso. Quando conectado, o dispositivo deve dizer ao host de quanta alimentação elétrica ele necessita, e permanece em suspensão até que o host permita que ele seja ativado. Se o consumo total da corrente for maior do que 0,5 ampères, o host não permite que o último dispositivo conectado seja ativado. O mecanismo tem uma vulnerabilidade. Embora seja possível verificar se o dispositivo de fato consome a quantidade de energia que solicita, essa verificação tornaria o controlador USB muito complexo e caro. Sendo assim, a maioria dos hosts USB apenas acredita no que diz o dispositivo. Por um lado, isso pode sobrecarregar o host e até danificá-lo. Por outro, os dispositivos USB que consomem um pouco mais do que 0,5 ampères podem funcionar. Discos rígidos externos se enquadram nessa categoria. De acordo com nossos testes, eles precisam de 0,7 a 0,9 ampères quando giram. Eles informam ao host o consumo de 0,5 A (e não podem informar uma corrente maior mesmo teoricamente, porque a especificação USB não permite isso) e sua operação depende do controlador de host poder ou não proporcionar a quantidade de energia da qual eles realmente precisam. Vários ventiladores e luzes USB apresentam um comportamento ainda mais irresponsável. Muitas vezes eles não contam com um controlador USB embutido, e não dizem ao host quais são seus requisitos energéticos. Não importa quantos dispositivos estejam conectados, o controlador de host vai pensar que eles não consomem nada.

É claro que não é normal uma grande e popular classe de dispositivos, como a dos HDs externos, depender de capacidades não documentadas, e por isso a baixa capacidade de carga de uma porta USB 2.0 também é um inconveniente. E muitos outros equipamentos, como scanners, sistemas de som compactos, minimonitores e vários carregadores aceitariam de bom grado mais energia.

Para fechar esta visão geral do USB 2.0, vamos falar do nível físico, ou seja, dos cabos. Um cabo USB tem quatro fios: dois para dados, um para o terra e um para a linha de alimentação de +5 V. Na especificação USB original, o conector chato tipo A do lado do controlador de host era destinado ao conector tipo B do lado do dispositivo, mas logo apareceram muitos conectores compactos (algumas versões do mini-USB e do micro-USB).

Agora vamos falar do USB 3.0. A nova versão traz um novo modo de operação, o modo Super Speed (Super Velocidade), que tem taxa de transferência de dados máxima de 4,8 Gbps. Os desenvolvedores da nova versão do USB tentaram mantê-lo compatível com todos os dispositivos USB existentes, porém mantendo a simplicidade de antes.

Para isso, eles somaram aos controladores UHCI e EHCI mais um controlador, responsável pelo modo Super Speed. Dessa forma, garantem a compatibilidade e incluem um novo canal de dados que não será afetado por dispositivos antigos e lentos.

Os cabos e conectores mudaram. Além dos quatro fios existentes, agora há dois novos pares de fios de sinal, um para transferir dados parao controlador; outro, para transferir dados docontrolador. Também há mais um fio para o aterramento. Os conectores USB ganharam cinco pinos novos, mas ainda assim mantêm a compatibilidade com os conectores antigos. Isso ajuda o usuário a identificar facilmente um dispositivo USB 3.0: basta olha o conector.
Além do aumento de velocidade, o USB 3.0 traz muitas outras inovações. Primeiro, a corrente de alimentação cresceu, servindo a periféricos com até 0,9 ampères. Isso é especialmente bom para dispositivos de armazenamento externos baseados em HDs de 2,5 polegadas, que agora não precisam mais do cabo em Y usado anteriormente para obter energia de duas portas USB ao mesmo tempo. Segundo, as duas linhas de transferência de dados permitem ao USB 3.0 enviar e receber dados simultaneamente. Terceiro, a nova versão do USB apresenta um mecanismo de interrupção completo, acabando com a consulta a dispositivos que tomava tanto tempo. Quarto, agora um dispositivo pode estabelecer mais de um canal de transferência de dados.

A economia de energia não ficou para segundo plano. O mecanismo de interrupção permite o gerenciamento do consumo de energia de dispositivos usando modos de baixo consumo iniciados pelo próprio periférico. Na verdade, toda a arquitetura foi dramaticamente revisada, e a compatibilidade com o USB 2.0 pode até ser vista como um novo recurso somado a uma interface totalmente nova.

Nenhum comentário:

Postar um comentário