1)
Introdução sobre o Universal
Serial Bus (USB)
3.1) Funcionamento do USB conectado ao
PC
6)
Wireless USB
6.1) Introdução
6.2) Características
e Vantagens
6.3) Topologia
do Wireless USB
6.4) Características
do Protocolo
7)
Conclusão
8)
Bibliografia
Universidade Federal do Rio de Janeiro
Departamento de Engenharia Eletrônica
Trabalho sobre USB 1.1,
USB 2.0 e Wireless USB.
Disciplina: Redes de
Computadores I
Prof. Otto Período: 2004/2
Aluno:
DRE 100119088
Universal Serial
Bus (USB) ou em português, Barramento Serial Universal é um tipo de dispositivo
de conexão que foi projetado para preencher algumas lacunas deixadas pelos
outros barramentos seriais. Foi desenvolvido por companhias do ramo de
telecomunicações e de computadores pessoais. Estas companhias são: Compaq,
Hewlett-Packard, Intel, Lucent, Microsoft, NEC, Philips. O USB , basicamente, tem
como objetivo conectar periféricos externos ao computador sem que se tenha a
necessidade de abrir o gabinete para instalar placas em slots e ainda permite
alternar entre periféricos sem ter que desligar o PC. O USB traz ao usuário
diversas vantagens como a versatilidade, a facilidade no uso e a alta
velocidade.
O USB está cada
vez mais difundido no mercado atual. Suas portas e conectores podem ser
encontrados na sua maioria em sistemas Windows, iMac da Apple, G3 e G4 Power
PCs rodando OS 9. Muitos produtos já saem de fábrica compatíveis com a porta
USB e isso já é quase que um pré-requisito essencial para o sucesso do produto.
A porta USB tem uma taxa de transferência 100 vezes mais rápida que a porta
paralela de 25 pinos, a serial DB-9, DB-25 e RS-232 que são encontrados em
vários computadores (quadro comparativo adiante).
A interface USB é
mais comumente usada em conexões de periféricos de baixa à média banda, como
câmeras digitais, leitores de cartões de memória Flash, joysticks, impressoras
e scanners.
Comparando com
o padrão de conexão de periféricos
IEEE-1394 FireWire, o USB tem um custo bem inferior, sendo assim, o mais usado
em periféricos domésticos de baixo e médio custo. Contrariamente ao FireWire,
que é usado, por exemplo, comumente em estações de trabalho, servidores de
grande porte e estações multimídia de edição de imagens.
Outro benefício
que traz o USB é o fato de que permite que o dispositivo tenha tanto
alimentação elétrica própria como alimentação via barramento. Na maioria das vezes,
os que utilizam alimentação via barramento, esta se dá através do gabinete, e
os de alimentação própria, por uma fonte própria.
Com relação aos
cabos e conectores, o sistema de USB, é bastante simples. De modo a
simplificar, usa somente um tipo de cabo e um tipo de conector em cada
extremidade. São dois tipos de conectores, o conector que é ligado ao PC é
achatado e o conector que se conecta ao periférico tem um formato quadrado(vide
figuras). Os cabos de USB não podem exceder o limite de 5 metros de
comprimento.
O crescimento do
uso de dispositivos USB é vertiginoso, e estima-se que de 6 milhões de
computadores em 1996 chegamos à mais de 700 milhões ao final de 2003.
A versão atual do
USB, que é a 2.0, possui uma maior taxa de transferência de dados (480 Mbits/s)
e mesmo assim não deixa de ser compatível com sua versão anterior, a 1.1. A
nova versão é cerca de 40 vezes mais rápida que a anterior.
O USB possui um
conector universal para todos os tipos de conexões USB. Abaixo tem uma figura
para facilitar o reconhecimento de uma porta USB e dos conectores USB.
Conector que
entra na porta
Conector que
entra no dispositivo
Para utilizar o USB não há necessidade
de um software específico. Muitos dispositivos usam o software que
precisam à partir do próprio sistema
operacional ou então de algum CD ou disquete de instalação que vem de fábrica
com o produto. O sistema operacional se encarrega de selecionar o software
adequado para o seu dispositivo, dispensando um maior conhecimento do usuário.
O usuário pode se utilizar do plug-and-play, não necessitando configurar nenhum
recurso de hardware como IRQs, canais de DMA e endereços de I/O.
Também podemos encontrar
hoje em dia as portas USB em laptops. Isso permite que o usuário possa
facilmente compartilhar seus periféricos do laptop.
Existem muitos tipos de
periféricos compatíveis com USB, vou citar alguns dos mais freqüentemente
utilizados: câmeras digitais, modems, telefones, teclados, mouses, joysticks,
drives de cd-rom, drives de disquete, drives de fita, scanners, impressoras,
produtos que transmitem vídeo e muitos outros.
Uma área que promete em
termos de crescimento futuro é o da
integração entre telefone e computador, e o papel do USB é de grande
importância para fornecer uma interface para os PABXs digitais e ISDN
(Integrated Services Digital Network).
Em termos de custo, a existência do USB pouco afeta
o preço final dos computadores de hoje em dia. Olhando por outro lado, pode-se
dizer que até barateia os custos, devido ao fato de que o USB elimina a
necessidade de placas adicionais e fontes elétricas extras nos PCs. Inclusive a
capacidade de compartilhar periféricos reduz ainda mais o custo final para o
usuário.
Existem muitas dúvidas referentes à quantidade de dispositivos USB que pode-se conectar de uma vez em um mesmo PC. Considerando que alguns dispositivos demandam alguma banda, o limite prático fica menor que o teórico que é de 127, isso mesmo, cento e vinte e sete dispositivos individuais simultaneamente! Existe ainda a possibilidade de se utilizar placas de PCI-USB que fornecem portas USBs adicionais, permitindo que ainda mais periféricos sejam conectados.
A mais recente versão,
o USB 2.0, chamada de "High Speed USB" possui uma velocidade de
transferência de 480 Mbits/s que é 40 vezes mais rápida que o USB 1.1. O termo
"High Speed USB" é usado somente para a velocidade de 480Mb/s que é
uma parte do USB 2.0. Diferente de usarmos o termo USB 2.0 que inclui tanto o
"High Speed USB" quanto as demais taxas inferiores à essa(12 Mbits/s
e 1,5 Mbits/s).
Abaixo, um quadro
comparativo das taxas de transferência de dados de diversos dispositivos. A
partir dessas taxas, dá pra termos uma noção de quão veloz é a nova versão da
tecnologia USB.
Dispositivo |
Taxa (MBytes/s) |
Serial Port |
0,014 |
Standard Parallel Port |
0,115 |
Original USB |
1,5 |
ECP/EPP Parallel Port |
3 |
IDE |
3,3 - 16,7 |
SCSI-1 |
5 |
SCSI-2 (Fast SCSI, Fast Narrow SCSI) |
10 |
Fast Wide SCSI (Wide SCSI) |
20 |
Ultra SCSI (SCSI-3, Fast-20, Ultra Narrow) |
20 |
UltraIDE |
33 |
Wide Ultra SCSI (Fast Wide 20) |
40 |
Ultra2 SCSI |
40 |
IEEE-1394 FireWire |
12,5 – 50 |
Hi-Speed USB |
60 |
Wide Ultra2 SCSI |
80 |
Ultra3 SCSI |
80 |
Wide Ultra3 SCSI |
160 |
FC-AL Fiber Channel |
100 – 400 |
Abaixo, podemos ver como interagem as
camadas de software e hardware que constituem o funcionamento da conexão do USB
com um computador.
O acesso à periféricos comuns funciona da
mesma forma que o acesso à um periférico USB. Ambos chamam funções da API.
O próximo passo será a comunicação da API
com o driver do periférico conectado na porta USB. Esse driver, ao receber as
informações da API, as traduz para USB. Tal driver, fica armazenado no próprio
sistema operacional ou vem juntamente com o CD de instalação do dispositivo
USB.
Depois disso, temos a camada do Driver USB,
que torna o sistema operacional compatível com o USB.
O quarto passo, inclui a camada de software
chamada Driver do Controlador Host. Este driver, funciona à nível de Kernel do
sistema operacional e é ele que realiza os acessos de I/O mediante à recepção
das chamadas vindas do Driver USB. Essas chamadas são organizadas por este driver,
para serem acessadas pelo Controlador Host.
Na primeira camada da parte de hardware,
temos o Controlador Host. Este controlador, é um circuito eletrônico que
interpreta as rotinas enviadas pelo Driver do Controlador Host e ao mesmo tempo
conecta todos os periféricos USB.
A última camada da figura, é constituída
pelos dispositivos USB propriamente ditos.
Uma das grandes vantagens já citadas do
USB, é o fato de podermos conectar um periférico ao computador mesmo estando
ele ligado. Isso ocorre em uma seqüência de eventos que serão mostrados na
Figura 2 abaixo. Essa seqüência ocorre no sentido oposto ao descrito nos
parágrafos acima. Quando conecta-se um periférico na porta USB, o Controlador
Host detecta esta conexão e avisa ao Driver do Controlador Host que por sua vez
avisa ao Driver USB. O Driver USB faz com que o Driver Cliente seja iniciado
tornando possível a utilização do periférico recém-conectado.
Já podem-se observar inúmeros benefícios
que o USB traz para os usuários de PCs nos dias de hoje. Mais especificamente,
em jogos, em que no meio de uma partida em andamento, novos jogadores podem se
conectar ao mesmo ambiente sem que haja uma pausa na fluidez do jogo.
Nota-se
grande vantagem também em conexões de rede e Internet. Com a possibilidade de
conectarmos modems externos de alta velocidade sem a necessidade de placas de
rede internas. Essa solução é muito utilizada hoje em dia em conexões ADSL como
Velox e Speedy. Inclusive, a implementação de redes fica mais versátil, pois ao
invés de reiniciarmos cada computador à fim de incluí-lo ou substituí-lo na
rede, simplesmente conectamos / desconectamos o cabo USB.
Cabe ressaltar a importância da porta USB
no compartilhamento de periféricos entre computadores, como telefones,
equipamentos de segurança, monitores e etc. Com essa sintonia entre telefones e
computadores, podemos criar verdadeiras centrais telefônicas à partir de um
simples desktop doméstico. Isso possibilita a gravação de ligações telefônicas
de voz para dados, a seleção de chamadas, a criação de um banco de dados para
armazenar conversas um sem número de outras aplicações.
O cabo do barramento do USB é composto por
quatro fios, +Vcc, +D, -D e o Ground.
O +Vcc fornece alimentação ao dispositivo
USB que não tenha fonte própria. Num sistema USB, existem hubs e dispositivos que necessitam do +Vcc e
outros que possuem alimentação própria. A voltagem nominal do +Vcc é de +5V.
O fios +D e –D, como utilizam uma alta taxa
de transmissão, são entrelaçados entre si, e é por eles que os dados trafegam.
O Ground como o nome já diz é o fio terra.
Na fotografia abaixo podemos ver bem
definidos os fios conectados diretamente à uma placa-mãe.
No esquema abaixo, pode-se ver como é o funcionamento
interno dessas conexões.
Os resistores de pull-up mudam de posição
de modo a definir se o dispositivo é de baixa ou alta velocidade. Quando não temos
um dispositivo conectado à porta, os resistores de pull-down baixam +D e –D
abaixo de um limiar de tensão para a detecção de um dispositivo conectado à
porta. Caso este estado persista por um tempo maior que 2,5 µs reconhece-se
como se o dispositivo foi desconectado. No caso inverso, se uma das duas
tensões de +D ou –D for maior que o limiar de tensão, e isso se estender por
mais de 2,5 µs reconhece-se como se um dispositivo foi conectado.
O USB funciona sob um protocolo de
transferência. Sua transferência de dados se dá através de pacotes e começa
quando o Controlador Host envia um pacote inicial(Token Packet) indicando a
direção, o tipo de transmissão, o endereço do dispositivo USB e o referido
número de endpoint. O sentido da transmissão dos dados pode ser tanto do
dispositivo para o host com do host para o dispositivo. Assim, o dispositivo
USB decodifica o campo de endereço, verificando se o pacote lhe é destinado.
Depois, vem o pacote de dados(Data Packet) ou o sinal de que não há pacotes a
serem transmitidos, e em seguida o
destinatário responde com um pacote de Handshake(Handshake Packet) avisando que
o pacote foi recebido com êxito.
Na figura acima, temos os campos que
compõem o Token Packet.
O PID
é a sigla para Packet Identifier e possui 8 bits. Os 4 bits mais significativos
identificam o formato, o tipo e o tipo de detecção de erro utilizado no pacote
e os outros 4 desses bits são bits que servem para checar a integridade dos
dados.
No campo ADDR(Address), que possui 7 bits, encontramos o endereço do
dispositivo USB que está trocando informações e portanto, limita o número de
dispositivos USB para até 127.
Em ENDP(Endpoint)
temos 4 bits e com ele permite-se um endereçamento mais flexível das funções em
que mais de um Endpoint é necessário. No caso de um dispositivo ser um Hub com
outros dispositivos conectados.
O campo de bits CRC(Cyclic Redundancy Checks) possui 5 bits. Este campo tem a
função de informar ao destinatário se ocorreram erros durante o tráfego dos
dados. Ele atua somente sobre os bits de ADDR e de ENDP visto que os bits de
PID já possuem detecção de erros própria.
Acima, temos o esquema de um Pacote de
Dados(Data Packet).
Os 8 bits de PID já foram descritos para o
Token Packet e têm a mesma função.
Os 16 bits de CRC também tem a mesma função
já citada, exceto pelo fato de que este CRC atua exclusivamente sobre os bits
de dados(DATA)
O campo de dados(DATA) possui o tamanho de 0 à 8192 bits, variando de acordo com a
quantidade de dados à serem transmitidos. Como estes pacotes só transportam
números inteiros de bytes, falarei em quantidade de bytes e não mais de bits
para o campo DATA. O tamanho máximo do pacote de dados para dispositivos de
baixa velocidade é de 8 bytes, e para os de alta velocidade é de 1024 bytes.
Esta figura acima mostra a estrutura de um pacote de
aperto-de-mão(Handshake Packet) e
possui somente um campo, o PID de 8 bits. Este campo, nesse pacote específico,
se restringe às seguintes informações: ACK, NAK, STALL basicamente. Para
tráfego de alta velocidade temos ainda NYET e ERR.
O ACK é enviado ao emissor quando um pacote
de dados sem erros chega ao receptor.
O NAK
é enviado quando o receptor não pode aceitar pacotes de dados ou quando o
emissor não pode enviar pacotes de dados.
O STALL ocorre quando o Endpoint está
parado.
O Wireless USB surge num momento em que o
Wired USB já se consolidou, portanto um momento bastante oportuno. Ele oferece
todas as vantagens do USB com fio e mais toda comodidade de usar um dispositivo
sem fio.
De
fácil instalação e montagem assim como o USB com fio, compatível com o USB com
fio, e um baixo custo de implementação.
O dispositivo é seguro, pois possui uma
autenticação associada à um determinado usuário. Os dados que são transmitidos
são criptografados pelo aplicativo e um baixo overhead, o que minimiza a perda
de desempenho. A criptografia utilizada é a AES-128 CCM. Esta criptografia tem
como mecanismo fundamental o IP-Free 128 bit block cipher com proteção da
integridade dos dados.
Com relação a bateria, que é uma questão
fundamental para qualquer dispositivo wireless existe um mecanismo de redução
de consumo. Este mecanismo se baseia no modo de “sleep” em que o dispositivo
fica num estado de baixo consumo enquanto o usuário não utiliza diretamente o
periférico Wireless USB. Durante esse estado, o dispositivo fica em “listen”
esperando algum sinal para que o modo “wake” seja acionado fazendo com que o
periférico volte ao estado normal de consumo e funcionamento.
O desempenho do Wireless USB no que condiz
à taxa de transferência, é de 480Mbits/s assim como a última versão Wired USB
2.0 na máxima velocidade. Essa taxa se mantém até uma distância menor ou igual
a 3 metros do receptor wireless(porta USB do computador com o adaptador
wireless). Sendo que esta taxa não é um limite físico , pois esta arquitetura e
estrutura de protocolo é escalonável para taxas superiores à 1Gbit/s!
Essa figura acima mostra que o Wireless USB também
suporta vários dispositivos assim como o Wired USB. Essas conexões são feitas
cada uma ponto à ponto do Dispositivo Wireless USB para o Wireless HOST.
Como
dito anteriormente, ele tem um baixo consumo de energia. É também, escalonável
caso a conexão aumente a taxa de transferência. Sendo assim, o protocolo não
age como um degradador de desempenho do sistema como um todo. Outra
característica que cabe ressaltar, é o fato do Wireless USB ser análogo ao
Wired USB no que condiz à comandos sinalizadores como suspend, resume, connect,
disconnect e etc...
A transmissão dos dados no ar é feita
utilizando-se o TDMA como forma de modulação.
Abaixo, temos uma figura que mostra os dois tipos de
adaptadores de Wireless USB para diferentes situações e necessidades:
Tanto o USB com fio quanto o sem fio tem um futuro bastante
promissor. Suas vantagens com relação ao custo, à facilidade no manuseio, à
comodidade fazem com que essas tecnologias tenham tudo pra dominar de vez o
mercado de dispositivos eletrônicos.
Seu sucesso atual é incontestável, e com a
escalabilidade de sua arquitetura, o USB se manterá assim mesmo com o aumento
da demanda por banda de transmissão.
Portanto, veremos daqui para frente um aumento
vertiginoso dos mais variados equipamentos eletrônicos acompanhados de plugs
USB, assim como já acontece com telefones celulares vendidos em qualquer loja
hoje em dia.
(1) “Universal Serial Bus Specification” Compaq,
Hewlett-Packard, Intel, Lucent, Microsoft, NEC, Philips, Revision 2.0, 27 de
Abril de 2000.
(2) http://www.baboohardware.com.br
(3) http://www.clubedohardware.com.br