Você está na página 1de 8

Entendendo o USB e o Firewire

Carlos Morimoto - Setembro 20, 2008 – 2:11 pm

O USB é um velho conhecido. Simplesmente o barramento externo mais usado atualmente. O que torna o USB
tão popular é a sua flexibilidade; além de ser usado para a conexão de todo o tipo de dispositivos, ele fornece
uma pequena quantidade de energia, permitindo que os conectores USB sejam usados também por
carregadores, luzes, ventiladores, aquecedores de xícaras de café, etc.

No USB 1.x, as portas transmitem a apenas 12 megabits, o que é pouco para HDs, pendrives, drives de CD,
placas wireless e outros periféricos rápidos. Mas, no USB 2.0, o padrão atual, a velocidade foi ampliada para
480 megabits (ou 60 MB/s), suficiente para a maioria dos pendrives e HDs externos.

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
periféricos, além do USB mini 5P e o USB mini 4P, dois formatos menores, que são utilizados por câmeras,
mp3players, palmtops e outros gadgets.

Os quatro tipos utilizam a mesma pinagem, o único diferencial é mesmo o formato físico. Existem ainda alguns
formatos de conectores proprietários, geralmente versões levemente modificadas de um destes quatro formatos.
Por serem intercompatíveis, é relativamente fácil encontrar adaptadores diversos para permitir encaixar cabos
com conectores de formatos diferentes:

1
O USB é um barramento serial, por isso os conectores possuem apenas 4 contatos, sendo dois para a
transmissão dos dados (um para enviar, outro para receber) e os outros dois para a transmissão de eletricidade.

Os dois pinos para a transmissão de dados são os dois mais centrais, enquanto os para energia são 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 são os usados para transmissão de dados:

Essa simplicidade explica a existência 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 padrão oficial, mas a maioria dos
fabricantes de placas optam por oferecer valores maiores para manter uma boa margem de tolerância). Pode
ser desde um carregador para celular, até um ventilador em miniatura.

O inverso também é possível, ou seja, um conector USB fêmea, ligado a uma bateria, que sirva como fonte de
energia para seu iPod, palmtop, ou outro dispositivo carregado através da porta USB. A maioria dos projetos
envolve usar uma fonte de energia qualquer, que forneça 5V ou mais, e um resistor para reduzir a tensão ao
valor apropriado. Você pode encontrar vários projetos no:
http://home.speedfactory.net/tcashin/ipodbattery.htm

Temos ainda a possibilidade de usar hubs USB para conectar vários dispositivos à mesma porta. Em teoria,
cada porta USB permite a conexão de até 127 dispositivos, de forma que você pode até mesmo ligar um hub
USB no outro. O maior problema é que tanto a banda, quanto a energia fornecida pela porta são compartilhadas
entre todos os periféricos 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 invés de uma fonte própria) podem não funcionar,
dependendo de quais outros dispositivos estejam ligados ao hub.

A solução nesse caso é comprar um hub com fonte externa (também chamados de powered hub). Eles possuem
uma fonte própria de energia, por isso não utilizam a energia fornecida pela porta e suportam a conexão de
vários periféricos “gulosos” simultaneamente. Usar um powered hub também reduz o stress sobre a fonte de
alimentação e circuitos reguladores de tensão da placa-mãe, além de oferecer um seguro contra queima de
portas e outros problemas derivados da conexão de dispositivos USB defeituosos (antes o HUB do que a placa-
mãe inteira).

No USB, os 12 ou 480 megabits de banda não são compartilhados entre as portas. Cada par de portas (ligadas
a um controlador dedicado na placa mãe) equivale a um barramento próprio, independente dos demais. O
compartilhamento ocorre apenas quando as duas portas dentro do par são usadas simultaneamente, ou quando
vários dispositivos são plugados na mesma porta, através de um hub.

Algumas combinações podem ser um pouco problemáticas, 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 urgência, como o teclado e o mouse. Você não gostaria que o mouse ficasse com as
respostas lentas ao salvar um grande arquivo no HD externo, por exemplo.

Prevendo isso, o USB suporta três modos de operação distintos, chamados de Interrupt (interrupção), Bulk
(grande volume) e Isochronous (isocrônico).

O modo de interrupção é um modo de alta prioridade, destinado a teclados, mouses e outros dispositivos de
entrada. O controlador reserva 10% da banda disponível para eles, mantendo sempre um canal
descongestionado.

2
O modo isocrônico é 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 também
precisam de uma certa prioridade.

Finalmente, temos as transferências 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 são reservados
primeiro, as grandes transferências podem ser feitas utilizando a banda disponível, sem atrapalhar os outros
dispositivos.

Essa política de uso de banda é similar à utilizada em redes, onde os dados são 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.

O USB tem um antigo concorrente, o Firewire, que surgiu em 1995 (pouco antes do USB), como um concorrente
do barramento SCSI. Inicialmente ele foi desenvolvido pela Apple e depois submetido ao IEEE, quando passou
a se chamar IEEE 1394. Embora seja mais popularmente usado, o nome “Firewire” é uma marca registrada pelo
Apple, por isso você não vai encontrar referência a ele em produtos ou documentação de outros fabricantes.
Outro nome comercial para o padrão é o “i.Link”, usado pela Sony.

O Firewire é um barramento serial, muito similar ao USB em vários aspectos. A versão inicial do Firewire já
operava a 400 megabits (ou 50 MB/s), enquanto o USB 1.1 operava a apenas 12 megabits. Apesar disso, o USB
utilizava transmissores e circuitos mais baratos e era livre de pagamento de royalties, o que acabou fazendo
com que ele se popularizasse rapidamente. Na época, a indústria procurava um barramento de baixo custo para
substituir as portas seriais e paralelas e, como de praxe, acabou ganhando a solução mais barata.

Atualmente o Firewire enfrenta também a concorrência do eSATA, a versão externa do SATA, que permite a
conexão de HDs e drives ópticos externos, o que o deixa em posição pouco confortável.

O conector Firewire tradicional utiliza 6 pinos, sendo que 2 são usados para alimentação elétrica (como no USB)
e existe também uma versão miniaturizada (sem os pinos de alimentação) que possui apenas 4 pinos e é muito
comum em notebooks. Uma porta Firewire de 6 pinos é capaz de fornecer até 45 watts de energia, quase 10
vezes mais que no USB.

Inicialmente, o concorrente do Firewire não era o USB, mas sim o barramento SCSI, que na época também era
usado para a conexão de scanners e outros dispositivos externos. Embora fosse um pouco mais lento (até 160
MB/s no SCSI, contra 50 MB/s no Firewire), o Firewire era um barramento mais simples e muito mais flexível,
permitindo a conexão de todo tipo de dispositivos de armazenamento, impressoras, scanners, dispositivos de
áudio e vídeo e até mesmo a comunicação direta entre PCs, funcionando como uma interface de rede.

Apesar disso, com o surgimento do USB, o Firewire acabou restrito a alguns nichos. O principal deles é a
transferência de vídeos a partir de uma filmadora digital. Desde o final da década de 1990 as câmeras migraram
das fitas analógicas para o padrão DV (digital video), onde o vídeo é gravado diretamente em formato digital
(numa fita mini-DV, HD ou mesmo memória flash, como em alguns modelos recentes) e depois transferido para
o micro através de uma porta Firewire para que seja editado e finalizado.

» Leia mais: Entendendo o USB e o Firewire

3
USB

O USB é um velho conhecido. Simplesmente o barramento externo mais usado atualmente. O que torna o USB
tão popular é a sua flexibilidade; além de ser usado para a conexão de todo o tipo de dispositivos, ele fornece
uma pequena quantidade de energia, permitindo que os conectores USB sejam usados também por
carregadores, luzes, ventiladores, aquecedores de xícaras de café, etc. Se duvida, veja esses dois exemplos:

No USB 1.x, as portas transmitem a apenas 12 megabits, o que é pouco para HDs, pendrives, drives de CD,
placas wireless e outros periféricos rápidos. Mas, no USB 2.0, o padrão atual, a velocidade foi ampliada para
480 megabits (ou 60 MB/s), suficiente para a maioria dos pendrives e HDs externos.

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
periféricos, além do USB mini 5P e o USB mini 4P, dois formatos menores, que são utilizados por câmeras,
mp3players, palmtops e outros gadgets.

4
Os quatro tipos utilizam a mesma pinagem, o único diferencial é mesmo o formato físico. Existem ainda alguns
formatos de conectores proprietários, geralmente versões levemente modificadas de um destes quatro formatos.
Por serem intercompatíveis, é relativamente fácil 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 saídas VGA, mas eles incluem circuitos adicionais e dependem da instalação de drivers para
funcionar.

Adaptador de vídeo USB

O USB é um barramento serial, por isso os conectores possuem apenas 4 contatos, sendo dois para a
transmissão dos dados (um para enviar, outro para receber) e os outros dois para a transmissão de eletricidade.

Os dois pinos para a transmissão de dados são os dois mais centrais, enquanto os para energia são 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 são os usados para transmissão de dados:

Essa simplicidade explica a existência 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 padrão oficial, mas a maioria dos
5
fabricantes de placas optam por oferecer valores maiores para manter uma boa margem de tolerância). Pode
ser desde um carregador para celular, até um ventilador em miniatura.

O inverso também é possível, ou seja, um conector USB fêmea, ligado a uma bateria, que sirva como fonte de
energia para seu iPod, palmtop, ou outro dispositivo carregado através da porta USB. A maioria dos projetos
envolve usar uma fonte de energia qualquer, que forneça 5V ou mais, e um resistor para reduzir a tensão ao
valor apropriado. Você pode encontrar vários projetos no:
http://home.speedfactory.net/tcashin/ipodbattery.htm

Este é o meu "carregador de emergência", que uso como carregador e bateria externa para o meu Treo. Ele
utiliza 4 pilhas recarregáveis como fonte de energia e um diodo, que evita o refluxo, ou seja, evita que a bateria
do Treo acabe recarregando as pilhas quando elas é que ficam com pouca carga. As pilhas recarregáveis
trabalham com uma tensão nominal de 1.2v, mas quando completamente carregadas, oferecem em torno de
1.4v, suficiente para carregar dispositivos USB:

Com uma variedade tão grande de periféricos USB, as 4 portas traseiras da placa-mãe acabam nunca sendo
suficientes. Os fabricantes passaram então a incorporar portas USB adicionais através de headers disponíveis
na placa-mãe. 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-):

6
Ligar os pinos incorretamente pode causar um curto e danificar periféricos USB, ou o próprio controlador da
placa-mãe. Para evitar esse tipo de catástrofe, a maioria das placas inclui circuitos que desligam a alimentação
em caso de problemas, de forma que a porta simplesmente não funciona até que você conecte os fios na ordem
correta. Mas, de qualquer forma, é melhor não dar chance para o azar.

Temos ainda a possibilidade de usar hubs USB para conectar vários dispositivos à mesma porta. Em teoria,
cada porta USB permite a conexão de até 127 dispositivos, de forma que você pode até mesmo ligar um hub
USB no outro. O maior problema é que tanto a banda, quanto a energia fornecida pela porta são compartilhadas
entre todos os periféricos 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 invés de uma fonte própria) podem não funcionar,
dependendo de quais outros dispositivos estejam ligados ao hub.

A solução nesse caso é comprar um hub com fonte externa (também chamados de powered hub). Eles possuem
uma fonte própria de energia, por isso não utilizam a energia fornecida pela porta e suportam a conexão de
vários periféricos "gulosos" simultaneamente. Usar um powered hub também reduz o stress sobre a fonte de
alimentação e circuitos reguladores de tensão da placa-mãe, além de oferecer um seguro contra queima de
portas e outros problemas derivados da conexão de dispositivos USB defeituosos (antes o HUB do que a placa-
mãe inteira).

Hub USB com alimentação própria

7
No USB, os 12 ou 480 megabits de banda não são compartilhados entre as portas. Cada par de portas (ligadas
a um controlador dedicado na placa mãe) equivale a um barramento próprio, independente dos demais. O
compartilhamento ocorre apenas quando as duas portas dentro do par são usadas simultaneamente, ou quando
vários dispositivos são plugados na mesma porta, através de um hub.

Algumas combinações podem ser um pouco problemáticas, 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 urgência, como o teclado e o mouse. Você não gostaria que o mouse ficasse com as
respostas lentas ao salvar um grande arquivo no HD externo, por exemplo.

Prevendo isso, o USB suporta três modos de operação distintos, chamados de Interrupt (interrupção), Bulk
(grande volume) e Isochronous (isocrônico).

O modo de interrupção é um modo de alta prioridade, destinado a teclados, mouses e outros dispositivos de
entrada. O controlador reserva 10% da banda disponível para eles, mantendo sempre um canal
descongestionado.

O modo isocrônico é 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 também
precisam de uma certa prioridade.

Finalmente, temos as transferências 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 são reservados
primeiro, as grandes transferências podem ser feitas utilizando a banda disponível, sem atrapalhar os outros
dispositivos.

Essa política de uso de banda é similar à utilizada em redes, onde os dados são 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 característica interessante do USB é a capacidade de enumerar e reconhecer novos dispositivos, coisa
que não existia na época das portas seriais. Detectar um mouse ou um modem serial é um pesadelo para
qualquer programador. Não existe forma simples de saber o que está plugado na porta serial, ou mesmo
descobrir SE existe algum dispositivo lá. A única forma é apelar para técnicas indiretas, enviando dados através
da porta e tentando deduzir quem está do outro lado a partir das respostas. É por isso que algumas distribuições
Linux antigas pediam que você movimentasse seu mouse serial num certo ponto da instalação, 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 série de informações,
incluindo sua classe, velocidade, fabricante, string de identificação e assim por diante.

Além de permitirem que o controlador reserve corretamente os recursos usados pelo dispositivo, essas
informações são enviadas ao sistema operacional. Isso permite que o dispositivo seja ativado e o programa ou o
aviso correspondente seja mostrado na tela.

Veja o que aparece no log de uma distribuição Linux atual quando plugo meu 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 usb-0000:00:02.0-3

As informações permitem também programar ações para quando determinados dispositivos são plugados no
Linux, através do udev, o daemon responsável por detectar mudanças no hardware e a conexão de novos
dispositivos. É possível executar automaticamente um script de backup quando o HD externo é plugado, ou abrir
um determinado game quando você pluga o joystick. O mais interessante é que as ações podem ser
relacionadas com o código de identificação do dispositivo (que é único), de forma que o backup seja feito
apenas ao plugar um HD específico, 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 tópico, mas você pode
aprender mais sobre elas no meu livro Linux Ferramentas Técnicas 2ª edição, ou através dos tutoriais
disponíveis no Guia do Hardware.NET.
8

Você também pode gostar