USB – Universal Serial Bus
História

USB 1.0





USB 2.0



Lançado em janeiro/1996
Disponível para PCs com Windows 95 OEM Service
Release 2
Low-Speed (1,5 Mbps) e Full-Speed (12 Mbps)
USB 1.1: lançado em setembro/1998
Lançado em abril/2000
Hi-Speed (480 Mbps)
Extensões

USB On-The-Go (OTG)


Conexão direta entre periféricos
Certified Wireless USB (WUSB)


Conexão sem fios
Tecnologia de rádio Ultra Wide Band (UWB)
Dispositivos

Interface

Conectores série A e série B
Assegura conectividade correta
 Evita concatenação de cabos



Transmissão de dados em par
trançado
Fios para fornecimento de energia
Dispositivos

Definição de classes de dispositivos



Facilita o desenvolvimento e a
adaptação de drivers
Quantidade e tipo de endpoints:
obrigatórios na especificação
Itens de descritores padrão e modo de
utilização de dados: opcionais
Dispositivos
Topologia

USB

Estrela em
Camadas
(Tiered Star)

Host centro
da rede: inicia
todas as
transmissões
de dados
Topologia

Wireless USB

Estrela

Ausência de hubs
Enumeração


Procedimento de inserção de um
dispositivo na rede USB
Estados do dispositivo:
1.
2.
3.
4.
5.
6.
Energizado
Padrão
Endereçado
Configurado
Plugado
Suspenso
Enumeração






Conexão do dispositivo
Detecção de presença
Detecção de velocidade
Endereçamento
Obtenção de descritor
Seleção de driver e configuração
Modelo de Transporte

Pipe entre o host e o dispositivo


Liga um buffer de memória no host a um
endpoint no dispositivo
Dois tipos de pipe

Stream Pipe
Comunicação unidirecional
 Transmissão seqüencial


Message Pipe
Comunicação bidirecional
 Comunicação estruturada


O empacotamento de dados não
depende do pipe utilizado
Pacotes

Três tipos de pacotes:

Pacotes “Token”

Pacotes de Dados

Pacotes “Handshake”
Detecção de Erros

Três mecanismos de detecção de
erros:



Bit Stuffing;
Checagem de bits de PID;
CRC’s.
Detecção de Erros em Pacotes
Campo
Erro
Ação
PID
Checagem PID, Bit Stuffing
Ignorar pacote
Endereço
Bit Stuffing, CRC
Ignorar token
Número do Quadro
Bit Stuffing, CRC
Ignorar campo de número do quadro
Dados
Bit Stuffing, CRC
Descartar dados
Pacotes no WUSB


Pacotes definidos na camada
enlace, subcamada MAC (Media
Access Control)
Quatro tipos de pacotes:




Pacotes MMC (Micro-scheduled
Management Control)
Pacotes de Dados
Pacotes de “Handshake”
Pacotes de Notificação
Transferências



Composta de uma ou mais
transações
Cada transação contém um ou mais
pacotes
Tipos de transferência:
Transferência
 Transferência
 Transferência
 Transferência

de Controle
em Massa
de Interrupção
Isocrônica
Transferências

Transferência de controle





Pequenos pedidos de controle enviados pelo
host
2 ou 3 estágios
 Setup: Informações sobre o pedido
 Data: Dados sobre o pedido (estágio opcional)
 Status: Relatório de sucesso
Porção de banda reservada
Comunicação bidirecional
Tratamento de erro
 Três tentativas em caso de erro (Não inclui
NAK)
 Envio de token antes do estágio Status
 Uso de “data toggle”
Transferências

Transferência em massa





Transmissão de dados sem restrição de tempo
Sem banda mínima assegurada
Transferência rápida
 Máxima eficiência da banda disponível
 Pouco overhead de protocolo
Comunicação unidirecional
Tratamento de erro
 Três tentativas em caso de erro
 Persistência sobre NAK – controle feito pelo
driver
 Uso de “data toggle”
Transferências

Transferência de Interrupção




Transmissões imediatas, mas com pouca
freqüência
Garantia de latência máxima entre tentativas de
transação
Comunicação unidirecional
Tratamento de erro
 Três tentativas em caso de erro
 Persistência sobre NAK – ausência de controle
 Uso de “data toggle”
Transferências

Transferência Isocrônica




Transmissões em tempo real
 Taxa constante
 Tolerância a erros
Verificação de banda disponível antes da
configuração
 Host recusa a configuração caso não haja
banda disponível
Comunicação unidirecional
Nenhum tipo de tratamento de erro
 “Data toggle” ignorado
 Ausência de pacotes de “handshaking”
Transferências

Transferências em WUSB


Estrutura de transferências igual à do
protocolo USB
Alta taxa de erros: diferenças nas
transações isocrônicas
Uso de pacotes de “handshaking”
 Reenvio de pacotes em casos de erro de
transmissão
 Envio de pacotes em rajadas



Menos pacotes de “handshaking”
Rajadas com muitos pacotes: alta frequência
de erros
USB vs. FireWire





Topologia em estrela
em camadas
Controle do host
Comunicações hostdispositivo
Implementação
simples e barata
OBJETIVO: Baixo
custo e simplicidade





Topologia em árvore
Controle dos
dispositivos
Comunicações entre
dispositivos
Implementação
complexa e cara
OBJETIVO: Máxima
performance
Perguntas





Por que o barramento USB utiliza o sistema
de dois conectores?
Quantos tipos de pacotes existem no
protocolo USB? Quais são eles?
Por que as transferências em massa são o
tipo de transferência mais rápida, apesar
de possuírem a menor prioridade de todas?
Quais diferenças existem entre
transferências isocrônicas em USB e em
WUSB? Porque elas são necessárias?
Por que a especificação USB define classes
de dispositivos?
Referências Bibliográficas





[1] AXELSON, J., USB Complete: Everything You Need to Develop
Custom USB Peripherals, 3ª edição, Lakeview Research LLC,
2005, ISBN 978-1-931448-03-1;
[2] TAN, W. M., Developing USB PC Peripherals, 1ª edição,
Annabooks, 1997, ISBN 0-929392-38-8;
[3] USB Implementers Forum, Inc. - www.usb.org;
[4] Everything USB... We Mean Everything! –
www.everythingusb.com;
[5] DeviceForge.com: tomorrow’s device technology today www.deviceforge.com;
Referências Bibliográficas



[6] Compaq Computer Corporation, Hewlett-Packard Company,
Intel Corporation, Lucent Technologies Inc, Microsoft
Corporation, NEC Corporation, Koninklijke Philips Electronics
N.V., Universal Serial Bus Specification, Revisão 2.0, 27 de abril
de 2000;
[7] Agere Systems, Inc., Hewlett-Packard Company, Intel
Corporation, Microsoft Corporation, NEC Corporation, Koninklijke
Philips Electronics N.V., Samsung Electronics Co., Ltd., Wireless
Universal Serial Bus Specification, Revisão 1.0, 12 de maio de
2005;
[8] Intel Corporation, Wireless USB: The First High-Speed
Personal Wireless Interconnect, 2004;
Download

USB