Introdução
Neste trabalho vamos abordar dois tipos
de barramentos externos: o USB e seus descendentes
(principalmente o USB 2.0) e o FireWire
e também os seus descendentes.
O nosso trabalho irá consistir
primordialmente num estudo debruçado sobre as arquitecturas
protocolares em cima referidas, sendo também um dos nossos objectivos
esclarecer os utilizadores menos experientes, visto que actualmente
muitas pessoas, independentemente do grau de conhecimentos informáticos, são
confrontados com ambas e possivelmente não sabem tirar o melhor rendimento que
elas lhes poderão oferecer.
Vamos começar
por abordar o USB referindo algumas das suas características mais conhecidas e
relevantes.
USB
O Universal
Serial Bus (USB) é uma nova filosofia de barramento
serial para o fluxo de dados entre um computador e dispositivos periféricos e
foi projectado para preencher certas lacunas
deixadas, até então, pelos outros barramentos
seriais.
O USB permite
uma maior comodidade para o utilizador, que não necessita de configurar o
dispositivo, pois o próprio sistema encarrega-se desta tarefa. Incorpora a
filosofia Plug and Play e é
possível a expansão no número de portas, visto que pode endereçar até 127
dispositivos.
Caso seja um dispositivo novo, o sistema operativo detecta-o e solicita os drivers (se o sistema operativo for o Windows XP ou uma das
ultimas versões do Mandrake, a detecção é feita
automaticamente). No caso de já estar instalado, ele é activado
e é estabelecida automaticamente a ligação. É possível desligar um dispositivo
USB em qualquer altura sem que o computador ‘crashe’
ou tenha que ser reiniciado, ou seja, os dispositivos USB são “Hot Swappable”. Convém ainda dizer que o USB usa uma
codificação NRZI.
A figura
seguinte ilustra uma os principais passos duma conexão de um dispositivo USB.
O sistema USB é
composto pelo Controlador Host USB, por dispositivos
USB e por inter-conexões. A figura que segue mostra a topologia de um sistema
USB. O host é responsável
por detectar a inserção e a remoção de um dispositivo, pela gerência do fluxo
de dados e de controlo, monitorizando o estado das transferências e por
controlar a interface eléctrica entre ele e os
dispositivos.
Um dispositivo
USB pode ser de dois tipos: função ou hub. A função é
capaz de transmitir, receber dados ou informações de controlo pelo barramento e serve para aumentar a capacidade do sistema.
Exemplos de funções são: rato, 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 noutros múltiplos pontos, permitindo o uso de
múltiplos hubs.
O USB permite
dois modos de comunicação: um de alta velocidade, operando a 12 Mbps, e outro de baixa velocidade, a 1,5 Mbps. O modo de baixa velocidade visa a atender a um
pequeno número de dispositivos com largura de banda estreita, como ratos.
Nesta operação
o computador decide para cada dispositivo o tipo de transferência de dados que
vai utilizar, tendo para isso três hipóteses de escolha:
·
Interrupt: utilizado
para dispositivos com pouco fluxo de dados como por exemplo
um rato ou um teclado;
·
Bulk: utilizado
para dispositivos que recebem dados num grande pacote de uma só vez, com por exemplo impressoras e scanners;
·
Isochronous: utilizado nos
casos em que os dados flúem em tempo real e sem correcção de erros, entre o computador e o dispositivo como
por exemplo as colunas de som;
Os dispositivos
são enumerados, como já vimos, e o computador controla a largura de banda total
que todos os dispositivos “interrupt” e “isochronous” solicitam. Eles podem consumir até 50% e dos
12 Mbps de largura de banda disponíveis. Após a
utilização dos 90% o computador nega o acesso a qualquer dispositivo que seja
do tipo “interrupt” ou “isochronous”.
Os pacotes de dados para os dispositivos do tipo “bulk”,
como era de esperar, usam os restantes 10% da largura de banda disponível.
Estrutura Física
O cabo USB é composto por quatro fios: VBus, D+, D- e GND. O fio VBus é o meio de fornecimento de alimentação para os
dispositivos que necessitarem de um consumo mais baixo (tensão de alimentação
de 5 Volts). O condutor VBus é de cor vermelha,
enquanto que o GND (“massa”) é de cor castanha. Temos ainda, um par de
condutores entrançados, D+ e D-, para o transporte de dados de cores amarela e
azul. A envolver os quatro condutores existe uma blindagem para prevenir
interferências externas.
A ligação dos equipamentos USB faz-se
através de um cabo, que pode estar ou não embutido nele. Normalmente encontra-mos na ponta do cabo um conector tipo A, caso
contrário o periférico terá um socket que aceita um
conector tipo B. Aqui estão representados, respectivamente,
um conector do tipo A e um do tipo B.
Uma Visão Geral do Funcionamento
Quanto à organização
das camadas de software necessárias para se operar um dispositivo, o sistema
USB HOST é composto por vários níveis de hardware e software, conforme é
mostrado na figura que se segue.
Conforme a
figura mostra, um aplicativo requer o acesso a um periférico USB da forma
padrão, como é feita para os periféricos comuns: chama funções da API.
Num segundo
estágio, a API chama rotinas do driver Cliente do
periférico USB instalado. Este driver traduz os
comandos da API para comandos USB. O driver Cliente é
geralmente parte do sistema operacional ou vem disponível para instalação com o
dispositivo USB.
A terceira
camada de software indicada é o driver USB (USBD),
que é aquela que dá ao sistema operativo o suporte ao USB.
A quarta camada
de interesse é o driver do controlador HOST (HCD),
que funciona a nível do Kernel do sistema operativo.
O HCD provê o nível de software entre o hardware do controlador HOST e o USBD.
É esta camada que realiza os acessos de I/O
necessários para a operação do dispositivo USB. O HCD interpreta as chamadas do
USBD e constrói uma lista de estruturas, um descritor de transferências, uma
fila principal e um buffer de dados para o controlador HOST.
A figura
apresenta também duas camadas de hardware.
A primeira delas
é o Controlador HOST (HC), que é o circuito onde serão feitas as conexões de
todos os dispositivos USB. Tal circuito executa electronicamente
os comandos programado pelo HCD, além de registrar o estado das transacções do USB. Esta operação é controlada pelo HCD.
A segunda delas
é constituída pelo conjunto de Dispositivos USB conectados, que são os
periféricos que usam esse tipo de barramento.
USB 2
Esta nova
versão do USB (USB 2.0) possui uma taxa máxima de transferência de 480 Mbps (aproximadamente 60 Mbps),
ou seja, uma taxa maior que a do FireWire e muito
maior do que a versão anterior do USB, que é a versão que ainda temos hoje em
muitos periféricos usando taxas de transferência de 12 Mbps
(aproximadamente 1,5 Mbps) ou 1,5 Mbps
(aproximadamente 192 Kbps), dependendo do periférico.
O grande
problema do USB era sem dúvida a sua taxa de transferência. Basta nos
lembrarmos que a maioria dos discos rígidos existente hoje no mercado funcionam
com uma taxa de 66 Mbps. Com o anterior barramento USB só transferia 1,5 Mbps,
um disco rígido externo conectado ao micro, o que é extremamente lento. Para
aplicações mais comuns - como impressoras, scanners e cameras
de vídeo - a taxa de transferência do USB 1.1 é satisfatória. O problema mesmo
é na conexão de periféricos que exijam altas taxas de transferência,
basicamente sistemas de armazenamento de dados, como discos rígidos, gravadores
de CD e Zip-drives.
A porta USB 2.0
continua compatível com periféricos USB 1.1. Ao iniciar a comunicação com um
periférico, a porta tenta comunicar-se a 480 Mbps.
Caso não tenha êxito, ela abaixa a sua velocidade para 12 Mbps.
Caso a comunicação também não consiga ser efectuada,
a velocidade baixa para 1,5 Mbps.
A grande
vantagem do USB 2.0 sobre o FireWire é, portanto, a compatibilidade
com os periféricos USB já existentes. Lembramos também que o FireWire foi destinado basicamente ao mercado de áudio e
vídeo, permitindo que cameras de vídeo e novos
equipamentos de áudio e vídeo profissionais pudessem ser ligados ao micro com
um custo muito abaixo do que o hardware normalmente necessário para esse tipo
de conexão. Podemos dizer, portanto, que o mercado alvo do USB e do FireWire são, de certa forma, diferentes.
FireWire
A FireWire, ou IEEE 1394, é uma forma de barramento
em série inventado pela Apple Computer.
Foi em 1995 que a especificação IEEE-1934
High Performance Serial Bus foi tornada standard.
Em geral, a FireWire é bastante semelhante ao USB, principalmente à
versão mais recente do último, o USB 2.0. As principais características que
esta tecnologia possui são, entre muitas outras:
·
Facilidade de utilização, no que respeita à montagem dos
equipamentos;
·
Hot Swappable;
·
Plug And Play;
·
Possibilidade de alimentação do dispositivo (ver mais
abaixo);
·
Permite transferências até 400Mbps.
A FireWire tem agora uma nova versão, a FireWire
800 ou IEEE 1934b, que permite uma taxa de transferências de dados na ordem dos
800Mbps.
Funcionamento:
Quando o
computador arranca, ele atribui a cada um dos dispositivos ligados ao barramento um endereço, tal como acontece com o USB. Visto
que é uma tecnologia Plug And Play, não
são necessários grandes conhecimentos a nível informático para facilmente
instalar um dispositivo FireWire. A operação será tão
simples como ligar o cabo do periférico a uma porta FireWire
e o sistema operativo tratará de estabelecer a comunicação com ele. Caso o
periférico ainda não esteja instalado, são solicitados os drivers
ao utilizador.
A FireWire é também Hot
Swappable, o que quer dizer que o dispositivo
poderá ser ligado e desligado quando o utilizador assim o entender, sem causar
nenhum dano ao computador.
A nível de
endereçamento, a FireWire usa um esquema de
endereçamento fixo de 64 bits, ao contrário do USB que usa 24 bits. Um pacote
de informação FireWire é dividido em três partes
distintas: ID de barramento,
ID Físico e Área de Armazenamento.
O ID de barramento
é usado somente para saber de que barramento FireWire vieram os dados, enquanto que o ID físico (64 bits) permite saber qual o
periférico no barramento enviou os dados. A Área de
Armazenamento, tem 48 bits e é capaz de endereçar 256 Terabytes de informação por cada nó.
Juntos, o ID de
Barramento e o ID Físico compõem o ID de Nó de 16
bits, que permite que um sistema possua 64.000 nós!
Estrutura:
Um cabo FireWire poderá ter no máximo 4,5 metros. No entanto, essa
limitação pode ser ultrapassada se for usada uma topologia “daisy-chain”,
ou seja, ligar o equipamento a outro, que por sua vez está ligado a outro, etc.
Assim, usando este método, poderá ser transmitida informação num máximo de
alcance de 72 metros, podendo ser interligados no máximo 63 dispositivos.
Uma das
características do FireWire é a alimentação dos
equipamentos, que podem ou não ser alimentados via porta FireWire,
consoante a exigência dos dispositivos ou as características da porta FireWire. É obvio que, por exemplo, um disco externo não
pode ser alimentado por uma corrente que no máximo é de 1,5 A. No entanto,
periféricos como câmaras digitais podem ser facilmente alimentadas, visto que
não têm grandes exigências.
Outro aspecto
interessante é são portas FireWire. Um cabo FireWire normal tem 6 pinos, onde 2 deles são para a
alimentação do dispositivo. No entanto, com o intuito de poupar energia
(principalmente nos computadores portáteis), há portas que vêm só com 4 pinos.
Obviamente que os 2 pinos que “faltam” não são de transferência de dados, são
os que permitiam a alimentação dos periféricos. Nestes casos não há escolha
possível, a alimentação tem que ser externa, o que se torna uma desvantagem
face aos USBs.
Os restantes 4
fios estão separados em 2 pares entrançados e são usados para o transporte de
dados. A figura que se segue mostra ao pormenor as estruturas de um cabo FireWire.
FireWire 800:
Também
conhecida por IEEE 1394b, é uma tecnologia que permite um débito na ordem dos
800Mbps, como o próprio nome indica. Como era de esperar, é compatível com os
produtos FireWire (400), tal como acontece entre o
USB e o USB 2.0. Num futuro próximo, as taxas de transferências apontadas para
a FireWire rondaram os 3200Mbps, ou seja, 3.2 Gbps. Se isso se verificar, este meio vai ser indispensável
para a transferência massiva de informação.
Uma das
vantagens que apresenta é a de suportar diversos tipos de cabo, o que permite
atingir distancias ate 100 metros, como se pode ver na figura seguinte.
A nível de arquitectura, a FireWire 800
apresenta dois grandes passos em relação à versão 400. O primeiro melhoramento
está na codificação da informação, que é baseada em códigos usados na
tecnologia Gigabit Ethernet
e canais de fibra. Ao usar esta codificação, de nome técnico 8B10B, o sinal
apanha menos distorção que na codificação usada na FireWire
400.
O segundo melhoramento é o facto de nesta versão ser usado um novo esquema de
arbitragem para todos os dispositivos que compartilham o bus FireWire altamente eficiente. Para que os dados sejam emitidos e recebidos com
sucesso (como de uma camera digital para um
computador, ou de um computador par um disco), os vários dispositivos do FireWire devem determinar que dispositivo começa transmitir
e quando começa a transmitir. Se isto não se verificasse, os pacotes dos
dados colidiriam e reduziriam a taxa de transferência dos dados.
Mesmo com todos
estes melhoramentos, com o aumento da taxa de transferência, codificações
alternativas, etc., o problema de um dispositivo poder não ter a opção de ser
alimentado via FireWire mantém-se. Apesar de o FireWire 800 ter 9 pinos, ainda há portas que só aceitam 4
ou 6, mantendo-se assim o problema.
Mas, contra factos não há argumentos, realmente a FireWire
é bem mais rápida que o USB e quando se pretende rapidez e eficácia, como por
exemplo em transferências de dados em tempo real, esta tecnologia está muito
mais desenvolvida e pronta a fornecer melhor soluções que a tecnologia USB. A
figura seguinte mostra os valores “teóricos” das várias tecnologias.
DIFERENÇAS
ENTRE USB E FIREWIRE
Com o
aparecimento da nova versão do USB, o USB 2.0, cada vez se nota menos a diferencia
entre os dois tipos de barramento. Como sabemos, a
tecnologia tem tendência a evoluir a um ritmo muito elevado e as taxas de
transferência destes já se encontram muitíssimo próximas. Por isso mesmo,
talvez a grande diferença entre estas duas tecnologias não esteja relacionada
com débitos. O USB é baseado em host, quer isto dizer que os dispositivos USB necessitam
obrigatoriamente de um computador para poderem comunicar entre si. O mesmo não
se passa com os periféricos que usam a tecnologia FireWire,
que são suportados pela tecnologia par-a-par,
ou seja, não necessita de um computador para estabelecer ligação.
O USB tem a
possibilidade de integrar hubs de UBSs.
Esta característica torna-se bastante prática, visto que normalmente um
computador não vem com muitas portas USB e desta forma é possivel
endereçar um total de 127 dispositivos, encadeando vários hubs.
O mesmo já não acontece com o FireWire que, quando se
pretende ligar mais que um dispositivo, só dispõe da opção “daisy-chain”,
permitindo apenas a ligação de 63 equipamentos. O funcionamento do “daisy-chain” já foi anteriormente explicado.
E importante
ficar com a ideia com ideia
que, sendo estes dois tipos de barramento diferentes
a nível arquitectural, eles têm que existir os dois
por isso mesmo. É bom que haja estas diferenças, pois elas são importantíssimas
no momento de escolher qual a tecnologia que vamos usar para um certo
periférico.
CONCLUSAO:
Depois de
termos efectuado enumeras pesquisas, analisarmos
varias tabelas de comparação, confrontarmos os “prós” de uns com os “contras”
dos outros, concluímos que não há um tipo de barramento
que seja absolutamente melhor que o outro. A nível de velocidades,
provavelmente a FireWire tenha uma performance
melhor, mesmo em relação à USB 2.0 que apresenta um débito teórico de 480Mbps.
No entanto, mesmo se a USB 2.0 alcançasse a mesma velocidade da FireWire 800, ela ainda conta com duas grandes
desvantagens:
1. Não é possivel fazer boot a partir dos drivers
da USB 2.0;
2. Os USBs compartilham a largura de banda e nivelam a
performance de velocidade por baixo.
São sistemas diferentes e terão de
existir sempre os dois. Mesmo que a FireWire vença a
guerra devido exclusivamente à performance de velocidade, a USB 2.0 tem o seu
lugar, pois há uma grande gama de aparelhos se conecta a ela. FireWire para impressoras é um exagero, não se justifica.
Isto já para não falar um ratos ou teclados, que seria ridículo. No entanto, a
saída FireWire é perfeita para cameras
fotográficas digitais, embora o seu uso ainda não tenha se popularizado da
mesma forma como aconteceu com as cameras de vídeo.
Sendo assim, a escolha entre FireWire e USB é feita
consoante as características do periférico em causa, pois tem que se ter em
atenção a exigência dele a nível de largura de banda e a nível das suas portas
de saída (via USB ou FireWire) para assim se poder
avaliar qual a melhor solução.
Tendo em conta
alguns resultados que encontramos na WWW, podemos constatar que a USB 2.0 é
muito mais rápida do que a USB 1.1, como era de esperar, mas é muito mais lenta
do que a FireWire. Teoricamente, a USB 2.0 deveria ser
mais rápida do que a FireWire. Porém, na vida real o
caso é outro.
Perguntas e
Respostas
Tal como exigido
no enunciado, aqui ficam duas perguntas pertinentes acerca destas tecnologias
assim como as respectivas respostas.
Perguntas
1.
Será o USB um bom Bus de dados para periféricos como
CD-R’s ou discos duros externos?
2.
Um aluno do DEI que possui um Compaq
Armada 100S e um PC com uma motherboard MSI K7T266Pro, ligou os dois computadores em rede através de
portas USB, usando o adaptador GeneLink.
Na transferência de um ficheiro de um PC para o outro
viu-se confrontado com uma taxa de transferência 7,3KB/s. É esta a taxa de transferência ideal através de
portas UBS? Se não, que explicação dá a este facto e
qual a taxa de transferência que considera ideal?
Respostas
1.
A viabilidade ou não depende do que o
utilizador entender por um resultado aceitável. Se o
dispositivo for para o uso frequente então será preferivel uma instalação permanente para o desempenho e a
integração mecânica. Não é suposto o USB estabelecer uma conexão permanente de
alta velocidade com um periférico. Se
o uso for ocasional ou for para um periférico que esteja a ser compartilhado
entre muitos computadores, o desempenho do USB seria mais do que suficiente. A
conveniência do USB e da conexão que ele trará compensaria taxas de
transferência altíssimas.
Não, a taxa de transferência que obteve
está longe do que seria de esperar. Na verdade, a taxa de transferência com
produtos de rede USB está entre 400KB/s e um pouco mais de 800KB/s – a largura
de banda máxima anunciada pela MSI é de cerca de 1MB/s. Sem informação
adicional torna-se difícil descobrir a causa desta lentidão, que poderá
dever-se a vários factores: utilização de outros
periféricos USB em simultâneo, não atribuição de um IRQ ao controlador USB (ver
BIOS), conflito entre o controlador USB e outro dispositivo do sistema (verificar
Gestor de dispositivos). Seria bom que ligasse o PC a outro computador (sem o
portátil) para descobrir se o problema está na configuração do portátil ou do
PC.
GLOSSARIO
Aqui ficam os significados
de alguns termos que podem não ser do conhecimento geral.
·
API Significa Application Porgramming Interface
e é um conjunto de funções e sub-rotinas usadas pelos programadores que dizem
respeito ao sistema operativo como executar determinada tarefa;
·
Barramento
Condutores eléctricos por onde navegam os dados
internos da CPU:
·
barramento
de controlo - usado para activar, desactivar e controlar os fluxos de informações;
·
barramento
de dados - gerem os dados e instruções a serem executadas;
·
barramento
de endereços - indica donde os dados e as instruções devem ser enviados ou
retirados.
·
Boot Processo de inicialização do computador, onde é lido primeiramente a
BIOS (BASIC Input / Output System), o POST (Power On Self
Test) e em seguida carregado o sistema operativo e
programas;
·
CAT 5 Cabo de Cobre
de pares entrançados de Categoria 5 com largura de banda de 100MHz;
·
Daisy-Chain Todos os
dispositivos formam uma cadeia (Daisy Chain)
de forma que o sinal só é propagado para o dispositivo seguinte se o anterior
não estiver solicitando o barramento. Se um
dispositivo receber o sinal e não estiver solicitando o barramento
ele propaga este sinal para o próximo dispositivo.
·
Driver Conjunto de
rotinas que permitem ao Sistema Operativo aceder a um periférico. Assemelha-se
de certa forma a um tradutor entre o periférico e o sistema operativo ou
programas que o estejam a utilizar. Por ser especializado, funciona apenas para
o dispositivo para o qual foi escrito. Geralmente, existe uma versão de um driver para cada sistema operativo;
·
Host Em português
significa Servidor. O termo está ligado ao conceito de rede, onde ele é o
computador que armazena ficheiros ou recursos
(impressoras, por exemplo) que serão acedidos pelos outros computadores (guests) que estão ligados a essa rede.
·
Hot Swappable É um recurso
que permite desligar e ligar um dispositivo de um computador sem causar nenhum
problema a este.
·
Hub É também
conhecido por Concentrador principalmente em ambiente de redes informáticas.
Neste contexto, um hub, permite conectar periféricos como
impressora, scanners, discos rígidos externos ou câmeras digitais a um
computador, contornando assim o problema de ter poucas portas USB disponiveis.
·
Abreviatura para Interrupt Request Line. É um número usado
para descrever uma interrupção. Um IRQ pode ser qualquer número de 0 a 15,
inclusive. Problemas de IRQ ocorrem quando duas peças de hardware tentam usar o mesmo.
·
ISDN Significa Integrated Services Digital Network e é também conhecida por RDIS (Rede Digital de
Integração de Serviços). Permite aceder à rede Internet a 128Kbps usando uma
linha telefónica.
·
Marketing e Serviços de Informações cuja missão é prestar
serviços de informações para as áreas de Marketing.
·
NRZI Mantém
constante um pulso de tensão durante um tempo de 1
bit, onde os dados são codificados com a presença ou ausência de um sinal de
transição no começo do bit time.
·
Plug and Play É um recurso que permite que um
periférico seja reconhecido mal se ligue a uma certa porta (normalmente USB ou FireWire) e esteja pronto a ser
usado. Somente no caso de ser a primeira vez que ele foi ligado é que o
computador solicita os drivers de instalação.
BIBLIOGRAFIA
Curso Técnico
de HARDWARE FCA
José Gouveia, Alberto Magalhães
Engenharia de
Redes Informáticas FCA
Edmundo Monteiro, Fernando Boavida
World Wide Web
http://www.colourcorp.co.za/apple0204/
http://www.apple.com.br/produtos/firewire/FireWire.htm
http://djmeucci.sites.uol.com.br/duvidas/conversoresusb.htm
http://www.umd.es/prensa/noticias/usb2.htm
http://www.dealerinfo.nl/1999/902/firewire.htm
http://www.clubedohardware.com.br/
Trabalho
realizado no âmbito da cadeira de Arquitectura de
Computadores 2, leccionada no Departamento de
Engenharia Informática da Faculdade de Ciências e Tecnologias da Universidade
de Coimbra, pelos alunos:
Telmo Rafael Portas Ferreira Simões
Luís Miguel da Silva Arede
optimizado para 1152 por 864 pixels