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;