USB – Universal Serial Bus
História
USB 1.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
USB 2.0
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
Estrelaem
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. Energizado
2. Padrão
3. Endereçado
4. Configurado
5. Plugado
6. 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
Ligaum 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:
BitStuffing;
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 de Controle
Transferência em Massa
Transferência de Interrupção
Transferência 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 Topologia em árvore
em camadas Controle dos
Controle do host dispositivos
Comunicações host- Comunicações entre
dispositivo dispositivos
Implementação Implementação
simples e barata complexa e cara
OBJETIVO: Baixo custo OBJETIVO: Máxima
e simplicidade 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. - [Link];
[4] Everything USB... We Mean Everything! –
[Link];
[5] [Link]: tomorrow’s device technology today -
[Link];
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;