Você está na página 1de 14

Usos e evoluo do USB

Carlos E. Morimoto - 09/02/2010

Graas sua grande flexibilidade, o USB de longe o barramento externo mais usado atualmente. Alm de ser usado para a conexo de todo o tipo de dispositivos, ele fornece uma pequena quantidade de energia, permitindo que os conectores USB sejam usados tambm por carregadores e todo o tipo de utilidades e bugigangas, incluindo luzes, ventiladores, aquecedores de xcaras de caf, brinquedos, etc. Existem at mesmo pequenos "refrigeradores USB", que usam um pequeno peltier para manter uma lata de refrigerante a uma temperatura ligeiramente mais baixa que a ambiente.

Existem trs padres USB: o padro 1.x (o padro original, criado em 1996), o USB 2.0 (o padro mais usado atualmente, introduzido em abril de 2000) e o novo padro USB 3.0 (finalizado em novembro de 2008) que est ainda em processo de popularizao.

No USB 1.x, as portas transmitem a apenas 12 megabits (o que pouco para HDs, pendrives, drives de CD, placas wireless e outros perifricos rpidos), mas no USB 2.0 a velocidade foi ampliada para 480 megabits (ou 60 MB/s), suficiente para a maioria dos dispositivos. Existem quatro tipos de conectores USB, o USB tipo A, que o mais comum, usado por pendrives e topo tipo de dispositivo conectado ao PC, o USB tipo B, que o conector "quadrado" usado em impressoras e outros perifricos, alm do USB-mini (ou mini-5P) e do USB-micro, dois formatos menores, que so utilizados por cmeras, smartphones, players de udio e outros gadgets.

Os quatro tipos utilizam a mesma pinagem, o nico diferencial mesmo o formato fsico. Existem ainda alguns formatos de conectores proprietrios, geralmente verses levemente modificadas de um destes quatro formatos. Por serem intercompatveis, relativamente fcil encontrar adaptadores diversos para permitir encaixar cabos com conectores de formatos diferentes:

Existem ainda adaptadores USB para portas seriais, portas paralelas, rede (com um conector RJ45) e at mesmo para sadas VGA, mas eles incluem circuitos adicionais e dependem da instalao de drivers para funcionar.

Adaptador de vdeo USB

Pinagem, energia e outros usos


O USB um barramento serial, por isso os conectores possuem apenas 4 contatos, sendo dois para a transmisso dos dados (um para enviar, outro para receber) e os outros dois para a transmisso de eletricidade. Os dois pinos para a transmisso de dados so os dois centrais, enquanto os para energia so os dois externos. Olhando um conector USB com os contatos virados para baixo, o pino da direita o positivo, enquanto o da esquerda o neutro. Dentro do cabo, o fio vermelho o positivo, o preto o neutro, enquanto o verde e o branco so os usados para transmisso de dados:

Essa simplicidade explica a existncia de tantas bugigangas que podem ser ligadas s portas USB. Voc pode descartar os pinos de dados e usar a eletricidade oferecida pelo conector para alimentar qualquer dispositivo que consuma at 2.5 watts de energia (os 2.5 watts correspondem ao padro oficial, mas a maioria dos fabricantes de placas optam por oferecer valores consideravelmente mais altos para manter uma boa margem de tolerncia). Pode ser desde um carregador para celular, at um ventilador em miniatura. A praticidade em carregar smartphones e outros gadgets atravs da porta USB fez com os carregadores USB se tornassem rapidamente populares. O movimento foi logo adotando tambm por muitos fabricantes, que passaram a fornecer cabos USB para o carregamento, eliminando assim a necessidade de incluir uma fonte externa. O movimento se intensificou a partir de 2009, com a adoo do micro-USB como conector padro para o carregamento de celulares e smartphones na Unio Europeia. O inverso tambm possvel, ou seja, um conector USB fmea, ligado a uma bateria, que sirva como fonte de energia para seu iPod, smartphone, ou outro dispositivo carregado atravs da porta USB. A maioria dos projetos envolve usar uma fonte de energia qualquer, que fornea 5V ou mais, e um resistor para reduzir a tenso ao valor apropriado. Um bom exemplo de aplicao do conceito so os muitos carregadores de pilhas Ni-MH que oferecem uma porta USB, alimentada pela energia das pilhas:

Como 4 pilhas Ni-MH oferecem de 4.8 a 5.6 volts (de acordo com o nvel de carga), relativamente simples construir o circuito que converta a tenso nos 5V/500mA da porta USB. E a carga das pilhas mais do que suficiente para uma carga completa na maioria dos celulares e players de mdia (se voc tiver um hub USB mo, possvel at mesmo carregar mais de um dispositivo ao mesmo tempo, embora nesse caso a carga demore muito mais). Com uma variedade to grande de perifricos USB, as 4 portas traseiras oferecidas na primeira gerao de placas ATX acabavam nunca sendo suficientes. Os fabricantes passaram ento a incorporar mais e mais portas USB no painel traseiro, alm de equiparem as placas com 4 (ou mais) portas adicionais, adicionais atravs de headers disponveis na placa-me. Os headers podem ser ligados s portas frontais do gabinete, ou a conectores adicionais instalados na parte traseira. O maior problema que os conectores frontais do gabinete geralmente utilizam conectores separados para cada um dos fios, de forma que voc precisa se orientar usando o diagrama no manual da placa para conect-los corretamente. O fio vermelho o +5V, o preto o GND, o verde o USB+ (ou D+) e o branco o USB- (ou D-):

Ligar os pinos incorretamente pode causar um curto e danificar perifricos USB, ou o prprio controlador da placa-me. Para evitar esse tipo de catstrofe, a maioria das placas inclui circuitos que desligam a alimentao em caso de problemas (de forma que a porta simplesmente no funciona at que voc conecte os fios na ordem correta), mas de qualquer forma melhor no dar chance para o azar.

Hubs, alimentao e compartilhamento de banda


Temos ainda a possibilidade de usar hubs USB para conectar vrios dispositivos mesma porta. Em teoria, cada porta USB permite a conexo de at 127 dispositivos, o que permite at mesmo ligar um hub USB no outro. O maior problema que tanto a banda, quanto a energia fornecida pela porta so compartilhadas entre todos os perifricos ligados ao hub, de forma que dispositivos de mais alto consumo, como mouses pticos e HDs externos (do tipo que usa a energia da porta USB, ao invs de uma fonte prpria) podem no funcionar, dependendo de quais outros dispositivos estejam ligados ao hub. A soluo nesse caso comprar um hub com fonte externa (tambm chamados de "powered hubs"). Eles possuem uma fonte prpria de energia, que complementa a energia fornecida pela porta, permitindo o uso de mais perifricos simultneos. Os powered hubs so relativamente raros, devido ao custo adicional da fonte, mas muitos hubs incluem a porta para alimentao externa, suportando o uso de um carregador de celular.

No USB, os 12 ou 480 megabits de banda no so compartilhados entre as portas. Cada par de portas (ligadas a um controlador dedicado na placa me) equivale a um barramento prprio, independente dos demais. O compartilhamento ocorre apenas quando as duas portas dentro do par so usadas simultaneamente, ou quando vrios dispositivos so plugados na mesma porta, atravs de um hub. Algumas combinaes podem ser um pouco problemticas, j que temos tanto dispositivos que transmitem grandes volumes de dados (um HD externo, por exemplo) quanto dispositivos que transmitem um volume pequeno, mas precisam de urgncia, como o teclado e o mouse. Voc no gostaria que o mouse ficasse com as respostas lentas ao salvar um grande arquivo no HD externo, por exemplo. Prevendo isso, o USB suporta trs modos de operao distintos, chamados de interrupt (interrupo), bulk (grande volume) e isochronous (isocrnico). O modo de interrupo um modo de alta prioridade, destinado a teclados, mouses e outros dispositivos de entrada. O controlador reserva 10% da banda disponvel para eles, mantendo sempre um canal descongestionado. O modo isocrnico destinado a dispositivos que precisam transmitir dados via streaming, como, por exemplo, caixas de som e headsets USB. Eles transmitem um volume relativamente pequeno de dados, mas tambm precisam de uma certa prioridade. Finalmente, temos as transferncias em modo bulk, onde temos grandes pacotes de dados, transmitidos com baixa prioridade (como no caso do HD externo). Como os canais para os outros dois modos so reservados primeiro, as grandes transferncias podem ser feitas utilizando a banda disponvel, sem atrapalhar os outros dispositivos. Essa poltica de uso de banda similar utilizada em redes, onde os dados so transmitidos na forma de frames ou pacotes. Isso permite que dispositivos USB 1.1 sejam conectados em portas USB 2.0 sem reduzir a velocidade para outros dispositivos conectados na mesma porta. O controlador simplesmente disponibiliza 12 megabits para

o dispositivo USB 1.1 e continua disponibilizando o restante da banda para os demais dispositivos. Outra caracterstica interessante do USB a capacidade de enumerar e reconhecer novos dispositivos, coisa que no existia na poca das portas seriais. Detectar mouses ou modems seriais era um pesadelo para qualquer programador, j que no existia uma simples de saber que tipo de dispositivo estava plugado na porta, ou mesmo se a porta estava sendo usada ou no. A nica forma era apelar para tcnicas indiretas, enviando dados atravs da porta e tentando deduzir quem estava do outro lado a partir das respostas. por isso que algumas distribuies Linux antigas pediam que voc movimentasse seu mouse serial num certo ponto da instalao, para que ele pudesse ser detectado. No USB as coisas funcionam de forma muito mais eficiente. O controlador percebe quando um dispositivo conectado e envia um pacote de controle, que o dispositivo responde enviando uma srie de informaes, incluindo a classe, velocidade, fabricante, string de identificao e assim por diante. Alm de permitirem que o controlador reserve corretamente os recursos usados pelo dispositivo, essas informaes so enviadas ao sistema operacional. Isso permite que o dispositivo seja ativado e o programa ou o aviso correspondente seja mostrado na tela. Aqui temos um exemplo de mensagens de kernel geradas por uma distribuio Linux ao plugar um joystick USB: usb 1-3: new low speed USB device using ohci_hcd and address 3 usb 1-3: configuration #1 chosen from 1 choice input: Logitech WingMan Precision USB as /class/input/input2 input: USB HID v1.10 Joystick [Logitech WingMan Precision USB] on usb0000:00:02.0-3

As informaes permitem tambm programar aes para quando determinados dispositivos so plugados. No caso do Linux, por exemplo, isso feito atravs do udev, o daemon responsvel por detectar mudanas no hardware e a conexo de novos dispositivos. possvel executar automaticamente um script de backup quando o HD externo plugado, ou abrir um determinado jogo quando voc pluga o joystick. O mais interessante que as aes podem ser relacionadas com o cdigo de identificao do dispositivo (que nico), de forma que o backup seja feito apenas ao plugar um HD especfico, evitando que seus dados sejam copiados por engano quando um amigo plugar um pendrive, por exemplo. Falar sobre as regras do udev sai do escopo deste tpico, mas voc pode aprender mais sobre elas no meu livro Linux Ferramentas Tcnicas 2 edio, ou atravs dos tutoriais disponveis no site.

O que muda no USB 3.0

O USB surgiu originalmente como um substituto para as portas seriais e paralelas usadas at ento. Como a aplicao inicial era a conexo de mouses, impressoras, scanners e PDAs, os 12 megabits iniciais foram considerados mais do que suficientes. Entretanto, com o passar do tempo o USB passou a ser cada vez mais usado por cmeras, pendrives e outros dispositivos "rpidos", que demandam velocidades muito maiores. Surgiu ento o USB 2.0, uma atualizao indolor que aumentou a taxa de transferncia terica para 480 megabits, sem quebrar a compatibilidade com o padro antigo. Na prtica, ele permite taxas de transferncia entre 30 e 45 MB/s, que so uma pesada limitao no caso dos HDs externos, interfaces de rede e outros dispositivos atuais. Como a demanda por banda no para de crescer, apenas questo de tempo para que os 480 megabits do USB 2.0 se tornem uma limitao to grande quanto os 12 megabits do USB original foram no passado. Assim como o SATA, o USB uma barramento serial, onde os dados so transmitidos usando um nico par de fios, com um segundo par dando conta da alimentao eltrica. O principal problema que o USB suporta o uso de cabos mais longos e hubs, o que torna complicado atingir taxas de transferncia muito maiores que os 480 megabits do USB 2.0. Isso fez com que logo no incio, os trabalhos se concentrassem em desenvolver novos cabos e conectores, que permitissem o uso de mais banda. O primeiro rascunho do USB 3.0 foi apresentado em 2007 pela Intel, que props o uso de um par de cabos de fibra ptica, complementando os dois pares de fios de cobre. O uso de fibra ptica elevaria a taxa de transferncia para respeitveis 5 gigabits, sem quebrar a compatibilidade com dispositivos antigos. O grande problema com o padro da Intel era o custo, j que tanto os cabos quanto os dispositivos seriam muito mais caros. Ele tambm no fazia nada com relao capacidade de fornecimento eltrico, mantendo os mesmos 2.5 watts por porta do USB 2.0, que so insuficientes para muitos dispositivos. No preciso dizer que ele foi bastante criticado e acabou sendo abandonado em 2008, dando lugar ao padro definitivo. O USB 3.0 oferece 4.8 gigabits de banda (10 vezes mais rpido que o 2.0 e apenas 4% menos que o padro proposto pela Intel) utilizando fios de cobre. Os 4.8 gigabits do USB 3.0 so chamados de "Super-Speed", aumentando a confuso relacionada aos nomes dos padres de sinalizao USB. Com a adio temos agora 4 padres e uma nomenclatura ainda mais confusa:

Super-Speed: 4800 megabits (introduzido pelo USB 3.0) High-Speed: 480 megabits (introduzido pelo USB 2.0) Full-Speed: 12 megabits (USB 1.x operando na velocidade mxima) Low-Speed: 1.5 megabits (usado por dispositivos lentos, como teclados e mouses)

Para possibilitar um aumento to dramtico na velocidade de transmisso, foram adicionados dois novos pares de cabos para transmisso de dados (um para envio e outro para recepo) e um neutro, totalizando 5 novos pinos, que nos conectores tipo A so posicionados na parte interna do conector:

Essa organizao permitiu manter a compatibilidade com dispositivos antigos, j que os 4 pinos do USB 2.0 continuam presentes. Ao plugar um dispositivo antigo em um conector USB 3.0, apenas os 4 pinos de legado so usados e ele funciona normalmente. O inverso tambm funciona, desde que o dispositivo USB 3.0 seja capaz de trabalhar em modo de legado, dentro das limitaes eltricas do USB 2.0. Por outro lado, os conectores USB tipo B (os usados por impressoras) e micro-USB (adotados como padro para os smartphones) oferecem uma compatibilidade de monica, onde voc pode plugar um dispositivo USB 2.0 em uma porta 3.0, mas no o contrrio, devido ao formato dos conectores. O tipo B ganhou um "calombo" com os 5 pinos adicionais e o USB micro ganhou uma seo adicional:

Alm dos novos conectores, outra novidade foi o aumento no fornecimento eltrico das portas, que saltou de 500 mA (2.5 watts) para 900 mA (4.5 watts), o que permite que as portas USB desam usadas para alimentar uma variedade ainda maior de dispositivos. possvel por exemplo criar gavetas para HDs de 2.5" alimentadas por uma nica porta USB, sem falar de gavetas para HDs regulares de 3.5" alimentadas por trs ou at mesmo duas portas USB 3.0, j que muitos HDs "verdes" de 5.400 RPM trabalham tranquilamente abaixo dos 10 watts. Voc pode contar tambm com toda uma nova safra de ventiladores, LEDs e bugigangas diversas tirando proveito da energia adicional. Para reduzir o consumo eltrico dos controladores, o padro inclui tambm um novo sistema de interrupes, que substitui o sistema de enumerao usado no USB 2.0. Em resumo, em vez de o controlador manter a porta ativa, constantemente perguntando se o dispositivo tem algo a transmitir, o host passa a manter o canal desativado at que o dispositivo envie um sinal de interrupo. Alm de oferecer uma pequena reduo no consumo do host (suficiente para representar um pequeno ganho de autonomia no caso dos netbooks) o novo sistema reduz o consumo nos dispositivos plugados, evitando que a bateria da cmera se esgote por que voc a esqueceu plugada na porta USB, por exemplo. Para diferenciar os conectores, foi adotada a cor azul como padro tanto para os cabos quanto para a parte interna dos conectores. Naturalmente, os fabricantes no so necessariamente obrigados a usarem o azul em todos os produtos, mas ao ver um conector azul, voc pode ter certeza de que se trata de um 3.0. Os primeiros dispositivos comearam a chegar ao mercado no final de 2009, mas no espere que eles se tornem comuns antes de 2011 ou 2012. Inicialmente, os lanamentos se concentraro em HDs e SSDs externos (que so severamente limitados pelo USB 2.0), mas eventualmente ele chegar a outros dispositivos, substituindo o 2.0 gradualmente. Apesar disso, ainda demorar alguns anos at que o USB 3.0 substitua o padro anterior completamente, j que os controladores USB 2.0 so muito mais simples e baratos, e o desempenho mais do que suficiente para muitas aplicaes. No faria sentido lanar um mouse ou um adaptador bluetooth USB 3.0, por exemplo, a no ser que fosse por simples hype. Existem tambm vrias complicaes tcnicas em equipar uma placa-me com um grande nmero de portas USB 3.0. Os controladores so caros e cada par de portas precisa ser conectado a um par de linhas PCI Express 2.0 (ou quatro linhas PCIe 1.x) para que o desempenho no seja penalizado. Considerando que muitos chipsets possuem apenas 20 ou 24 linhas PCI Express, perfeitamente compreensvel que a primeira gerao de placas tenham apenas duas portas USB 3.0 (em azul), complementadas por mais 6 ou 10 portas USB 2.0:

Isso deve mudar a partir do momento em que a Intel, nVidia e AMD passarem a produzir chipsets com um nmero maior de portas integradas, mas isso deve acontecer apenas em 2011. A Intel a mais avanada, graas ao trabalho no padro xHCI (sucessor do EHCI e OHCI, usados no USB 2.0). Embora ele seja um padro aberto de controladores, a Intel realizou a maior parte do desenvolvimento e por isso acabou desenvolvendo uma dianteira em relao aos outros fabricantes, liberando o projeto do controlador apenas depois que ele j estava concludo. Assim como aconteceu na poca do USB original, temos tambm uma grande oferta de placas adaptadoras, conectadas atravs de um slot PCI-Express x1 ou (mais raramente) de um slot x4. Elas incluem um nico controlador e duas portas USB 3.0 e so usadas sobretudo por gavetas para HDs externos, que so a classe de dispositivos que mais se beneficia da maior velocidade:

Usando uma porta USB 2.0, a velocidade mxima de transferncia de um HD externo fica em torno de 32 MB/s, que o limite prtico da interface (lembre-se, as taxas de transferncia obtidas na prtica so sempre inferiores aos limites tericos dos barramentos, j que incluem diferentes camadas de modulao e outros tipos de perdas). Considerando que os HDs de 3.5" e 7200 RPM atuais so capazes de oferecer taxas de leitura sequencial em torno dos 150 MB/s e mesmo HDs de 2.5" j se aproximam da marca dos 100 MB/s, no difcil entender a frustrao de muitos. Ao usar o USB 3.0, por outro lado, possvel obter taxas de transferncia superiores a 100 MB/s, limitado apenas pelo desempenho do HD e do controlador da gaveta. Placas adaptadoras plugadas em slots PCI Express x1 possuem um limite prtico em torno de 200 MB/s devido ao barramento, mas portas ligadas a controladores integrados placame (ou a slots PCIe 2.0) podem oferecer taxas superiores a 300 MB/s, o que as posiciona como concorrentes diretas das portas eSATA. Dependendo do modelo, a adaptadora pode usar um conector molex (como a da foto) ou extrair a energia necessria para alimentar as portas diretamente do conector PCI Express. As gavetas de HDs e outros dispositivos USB 3.0 podem ser perfeitamente usadas em PCs com portas USB 2.0 (pelo menos no caso das gavetas com fontes externas, que no dependem da alimentao eltrica da porta), mas nesse caso a velocidade de transmisso limitada pela porta. Com relao aos drivers, temos suporte no Linux a partir do kernel 2.6.31. A verso inicial do Windows 7 ainda no inclui drivers, mas eles devem ser adicionados atravs

de uma atualizao posterior, que deve se estender ao Vista. A dvida fica por conta do Windows XP e anteriores, dos quais a Microsoft quer se livrar o mais rpido possvel.