240 likes | 406 Views
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)
E N D
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
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: • 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.
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 Pacotes no WUSB
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
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 USB vs. FireWire
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;