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 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. Energizado2. Padrão3. Endereçado4. Configurado5. Plugado6. 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 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 em camadas
Controle do host Comunicações host-
dispositivo 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;
Top Related