USB – Universal Serial Bus. História USB 1.0 Lançado em janeiro/1996 Disponível para PCs com...

Preview:

Citation preview

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;

Recommended