CARACTERÍSTICAS DA USB Idealizada em 1995 por um grupo de empresas de alta tecnologia (Compaq, DEC, IBM, Intel, Microsoft, NEC e outras) e desenvolvido pelo USB Implementers Forum (http://www.usb.org) composto por fabricantes. Barramento de expansão externo ao computador, para conexão de periféricos. Propõe-se a substituir os muitos e diferentes conectores existentes nos computadores atuais. Permite fácil instalação de periféricos tais como câmeras digitais, teclados, mouses, impressoras, zip-drives, gravadores de CD, discos rígidos, etc., através de um conector padronizado disponível na placa-mãe do micro. USB NO PC Arquiteturas recentes.
ESPECIFICAÇÕES BÁSICAS De modo geral, todas as placas-mãe padrão ATX têm conectores USB. Os sistemas operacionais Windows 98/Me/2000 e XP e Linux suportam USB, sem a necessidade de grandes configurações. Oferece possibilidade de conexão simultânea de até 127 dispositivos anexando periféricos através de hubs externos interconectados. Capacidade de hot-plugging.
OBJETIVOS DA USB Desempenho Aplicação Velocidades OBJETIVOS DA USB
ORGANIZAÇÃO EM CAMADAS A topologia USB é organizada em camadas, sendo que vários dispositivos (Dev) podem estar conectados em um esquema em estrela, sendo que um único nó pode conter vários dispositivos. Camadas de Hardware O sistema USB é composto de: Controlador HOST. Interconexões e Dispositivos USB (nos periféricos) Controlador Host (HC) circuito onde serão feitas as conexões de todos os dispositivos USB e que executa eletronicamente os comandos programados pelo HCD. Dispositivos USB periféricos que usam esse tipo de barramento.
CONTROLADOR HOST Localizado no hub-raiz. É o elemento da rede USB que faz a ponte entre os periféricos USB e o barramento (FSB, PCI, ou PCMCIA) implementado pelo chipset, ao qual está conectado. normalmente as placas-mãe implementam a ponte do host no FSB. FSB, PCI ou PCMCIA ponte Controlador Host Hub raiz Função ou raiz Função ou raiz Função ou raiz DISPOSITIVO USB Elementos básicos de um dispositivo USB.
ESPECIFICAÇÃO USB 1.1 Velocidades de transmissão: 1,5 Mbps (baixa velocidade). 12 Mbps (média velocidade). Número máximo de conexões: 127. Simplificação: eliminação da necessidade de efetuar configurações de recursos de hardware para a definição de IRQ s, canais de DMA ou endereços de I/O. Desvantagens: Não é um substituto global para conectar tudo ao computador. A sua velocidade máxima (12 Mb/s) não é suficiente para a velocidade das redes, vídeo digital, discos rápidos e outros periféricos de alto desempenho. ESPECIFICAÇÃO USB 1.1 Barramento físico dos sinais USB. Resistor pull-down R1=15kΩ. Resistor pull-up R2= 1.5kΩ. pull-up ligado à D- indica operação (low-speed) a 1.5Mb/s. pull-up ligado à D+ indica operação (full-speed) a 12Mb/s.
ESPECIFICAÇÃO USB 1.1 Composto de um controlador hub-raíz e dispositivos de baixa (1,5MB/s) e plena (12 MB/s) velocidade, ligados ou não através de hubs. ESPECIFICAÇÃO USB 1.1 Os hubs (raíz e de camadas) evitam que as transações de velocidade plena (12 MB/s) atinjam dispositivos de baixa (1,5 MB/s) velocidade
ESPECIFICAÇÃO USB 1.1 Transações de baixa velocidade são ouvidas por todos os dispositivos conectados no barramento, independente se são de baixa ou de alta velocidade.. ESPECIFICAÇÃO USB 1.1 O software camada de aplicação - inicia uma transação USB. O Cliente é a parte do programa que demanda alguma ação do dispositivo USB. System Host Software cliente avisa que quer realizar uma transação..o software USB do sistema cria uma estrutura de dados (descritores de transferências) que são buscados e executados pelo controlador Host.
ESPECIFICAÇÃO USB 1.1 Geração das transactions USB. Descritores de transferências (lista encadeada de estrutura de dados) Alvo 1- Host (HC) busca os descritores Durante um intervalo de 1 ms (frame), o host busca e executa uma série de descritores. ESPECIFICAÇÃO USB 1.1 Transactions USB. A direção do fluxo de dados é dada em relação ao host (controlador). IN significa dados lidos.
ESPECIFICAÇÃO USB 1.1 1 2 3 2 Resumo das ações: teclado é verificado periódicamente para saber se foi acionado. ESPECIFICAÇÃO USB 1.1 Conteúdo dos descritores de transferências: Endereço do dispositivo USB (atribuído durante a configuração) Direção da transferência de dados. IN (read) ou OUT (write). Volume de dados a ser transferido. Velocidade da transação. Localização do buffer de dados na memória. O endereço do próximo descritor na memória.
ESPECIFICAÇÃO USB 1.1 Geração do Frame. Contador conta 12.000 (bits) a 12 MB/s bits, quando transações são executadas. Relógio de 12 MHz incrementa contador que gera um carry para cont=12000. O segundo relógio de 1 KHz (1ms) conta o número do frame que dá a localização do primeiro descritor na lista de descritores. ESPECIFICAÇÃO USB 1.1 Vários dispositivos compartilham o barramento. Alguns dispositivos usam o barramento a cada frame. Outros usam apenas periodicamente. Para evitar confusão alguns dispositivos são acessados apenas quando o software cliente faz uma requisição para transferências, vinda de um determinado dispositivo ou indo para ele.
ESPECIFICAÇÃO USB Compartilhamento do barramento Dispositivos relatam o maior tamanho do pacote durante a configuração. Quando dois ou mais dispositivos querem usar o barramento simultaneamente, o software do sistema tem de programar quais transações deverão ser executadas em cada frame. O software do sistema determina a ordem da execução da transação via listas de descritores de transferências que o HC executa. ESPECIFICAÇÃO USB 1.1 Largura de banda teorica = 12.000 bits/ms ou 1,5kB/ms (1,5MB/s). O overhead associado com uma transação assíncrona pode ser de até 14 bytes (112 bits), incluindo o atraso de propagação. O overhead associado com uma transação isócrona pode ser de mais de 10 bytes, incluindo o atraso de propagação. Os tamanhos dos pacotes são limitados pela especificação para assegurar algum grau de justeza no compartilhamento do barramento.
ESPECIFICAÇÃO USB 2.0 É uma evolução natural da especificação 1.1. É compatível com as especificações anteriores. Emprega os mesmos cabos e conectores. Não foi introduzida nenhuma mudança fundamental no modelo de comunicação. Aumento da taxa de transferência por até 40 vezes. Maior banda de passagem para que um maior número de periféricos trabalhem simultaneamente. Mesmo modelo de conexão e desconexão. Mesmo protocolo básico Token, data, handshake. Mesmo configuração e modelo de driver Descritores. Drivers de classes. LIMITES DA USB 2.0 Não dá suporte à comunicação entre pares Ainda é centrada no host (esquema mestre/escravo). A comunicação entre dispositivos requer um computador hospedeiro (host). Não foi projetada para aparelhos eletrônicos fabricados para o mercado consumidor. IEEE-1394 está bem estabelecida. Possui interface para câmeras filmadoras. Alguns PC s oferecem as duas possibilidades IEEE- 1394 e USB 2.0.
DISPOSITIVOS USB 2.0 A especificação 2.0 admite também dispositivos de baixa, média e alta velocidade. Quando dispositivos LS/FS são conectados a uma porta HS, as transactions (transações) são dividas (split) para que o dispositivo seja acessado. Uma seqüência de transactions é realizada em três passos: DISPOSITIVOS USB 2.0 Dispositivos HS (alta velocidade) devem ser projetados para operarem em velocidade-plena (FS) quando conectados ou a um controlador-host que atende ao padrão 1.0 ou a um hub que atende ao padrão 1.x.
DETEÇÃO DE PERIFÉRICOS Quando um novo periférico é conectado ao barramento USB, ocorre a seguinte seqüência de eventos: BARRAMENTO FÍSICO Composto de cabo blindado com 4 condutores, impedância diferencial de 90Ω: Vbus (+5V) alimentação para dispositivos sem fonte. GND condutor de retorno da alimentação. D +, D - - sinais de comunicação do barramento.
Cabo Periférico USB Cabo USB A-B: CABOS USUAIS a ponta tipo A é utilizada no micro ou no hub. ponta tipo B no periférico. Comprimento do cabo varia entre 0,5 e 5 metros. CARACTERÍSTICAS CONSTRUTIVAS Cabos para diferentes velocidades tem arranjos e blindagens diferentes. Cabos para baixa-velocidades é recomendado, mas não requerido: o uso de par de condutores-trançado; o uso de cabos com blindagem externa. condutor de dreno. Cabos para altas-velocidades é requerido o uso de par-trançado de condutores para as linhas de dados. blindagem interna e externa. condutor de dreno. atraso de propagação de até 26ns.
COMUNICAÇÃO SERIAL Para um aplicativo realizar uma transferência o sistema operacional irá passar o requerimento para o device driver apropriado, que transfere o requerimento para o controlador host iniciar a transferência no barramento. Uma transferência típica consiste de vários elementos como mostrados na figura. TIPOS DE TRANSFERÊNCIAS Control para configurar ou transmitir parâmetros de controle a um dispositivo. Bulk utilizada para a transmissão de grande quantidade de dados (impressoras ou scanners). Interrupt requisitada pelo Host, consiste em uma transferência de pequena quantidade de dados de forma sincronizada. O número máximo de dados enviados é igual ao dos tipos anteriores e chega a, no máximo, 64 bytes,. Isochronous permite o tráfego de dados que são criados, enviados e recebidos continuamente em tempo real. A quantidade de dados que pode ser enviada chega até 1023 bytes.
PROTOCOLO DO BARRAMENTO A transmissão de dados (transação) via USB é baseada no envio de pacotes : O Host envia um pacote SETUP descrevendo o tipo e a direção da transmissão, o endereço do dispositivo e o referido nº de endpoint. O dispositivo USB decodifica o campo de endereço, reconhecendo que o pacote lhe é referente. A fonte da transmissão envia um pacote de dados (DATA PACKET). O destino responde com um pacote indicando se a transferência obteve sucesso (HANDSHAKE PACKET). COMUNICAÇÃO SERIAL
COMUNICAÇÃO SERIAL Uma transação é uma distribuição de serviços para um endpoint. Esses serviços podem significar que: o host enviou um quadro de informações para o dispositivo. o host requereu e recebeu um quadro de informações do dispositivo. Cada transação inclui: identificação, verificação de erro, informação de status e controle, assim como dados para serem trocados. Uma transferência completa pode incluir várias partes de um quadro. Uma transação é uma comunicação única que deve ser completada sem interrupção. Nenhuma outra comunicação pode acontecer no meio de uma transação. Ao término da transação o dispositivo deve ser capaz de responder imediatamente, retornando o dado ou informação. COMUNICAÇÃO SERIAL Cada transação contém o endereço do dispositivo e o endereço do endpoint. Quando um dispositivo recebe uma transação de: OUT ou de Setup contendo o endereço do dispositivo, o hardware armazena o dado recebido em uma posição apropriada para o endpoint e tipicamente inicia uma interrupção. Uma rotina de serviço de interrupção do dispositivo então processa o dado recebido e executa o que foi solicitado na transação. IN contendo seu endereço, se o dispositivo tem dado pronto para ser enviado para o host, o hardware envia o dado a partir do endpoint especificado através do barramento e tipicamente inicia uma interrupção. Uma rotina de serviço de interrupção executa o que for necessário para o dispositivo esteja pronto para próxima transação IN. Poucos dados podem exigir apenas uma transação. Muitos dados podem demandar várias transações.
COMUNICAÇÃO SERIAL - USB Os pacotes são enviados em intervalos de 1ms. esses intervalos são denominados de quadros. O host define a região de memória onde será escrito os descritores, que contém as informações das transações que ocorrem nos quadros. O número de dispositivos na rede USB é, na maioria das vezes, maior que 1. durante um quadro, vários pacotes provenientes de dispositivos diferentes podem ser enviados. ELEMENTOS DE TRANSFERÊNCIA Endpoints de dispositivos é um parte do dispositivo USB que possui um endereço único, podendo ser fonte ou sorvedouro de informações em um fluxo de informações entre o host e o dispositivo. tipicamente, é um bloco de dados na memória ou registro no chip controlador. o host não tem endpoints, embora tenha buffers para dados. O único endpoint que é bidirecional é o endpoint-0. Pipes é um canal de comunicação entre o host e do endpoint do dispositivo. antes de ocorrer qualquer transferências o host e o dispositivo tem de estabelecer um pipe.
TIPOS DE PACOTES Identificadores definem o propósito e assim, o formato e conteúdo de um pacote. Pacotes são agrupados em 3 categorias: Token 1 enviados no início da transação. define o dispositivo alvo e o endereço do endpoint. número do endpoint e direção da transferência. SOF, Setup, IN e OUT. Data2 seguem as mesmos regras estabelecidas. DATA0 e DATA1. Handshake3 tipicamente enviados pelo dispositivo que recebe os dados. ACK, NAK, STALL. PID: Packet Identifier ADDR: Address ENDP: no. do ENDPOINT CRC: Cyclic Redudancy Checks DATA: bits de dados PACOTES
COMUNICAÇÃO SERIAL Sincronismo (SYNC) cada pacote se inicia com uma seqüência de sincronização de 8 bits. transmitido pelo Hub. usada como um relógio de sincronização com o pacote recebido. antes da chegada do pacote, o cabo e a interface estão no estado idle (estado-j) constituído pela transmissão da seqüência de estados KJKJKJKK (00000001). Identificador do pacote (PID) seqüência de 8 bits também transmitido pelo Hub. Definido pelos 4 primeiros estados (Ex.: KJJJ 1011)). quatro estados seguintes são construídos a partir dos complementos dos 4 estados anteriores. COMUNICAÇÃO SERIAL Campo opcional. depende do tipo de pacote. outros campos de dados (até 1024 bytes) podem ser transmitidos. direção da informação, depende do tipo de pacote. EOP indica o término da transmissão. transmissão de dois estados SEO. barramento volta ao estado ocioso. Caso o hub amostre SEO durante 3 períodos de clock (12 MHz) consecutivos, o periférico é considerado desconectado.
ARQUITETURA USB Nos modernos sistemas operacionais multitarefa, a comunicação com os periféricos deve ser feita através de um device driver. Os devices drivers são os elementos que permitem a comunicação com o periférico externo e com os programas aplicativos. ARQUITETURA USB Os aplicativos e os drivers possuem linguagens próprias para comunicar com o sistema operacional. Os aplicativos usam as funções API do Win32. Os drivers se comunicam utilizando estruturas chamadas IO request packet (IRPs). O Windows define um conjunto de IRPs que os drivers podem usar. Cada IRPs solicita uma simples operação de entrada ou saída. O driver de função para um dispositivo USB usa os IRPs para comunicar com os drivers de barramento que processa a comunicação.
ARQUITETURA USB Certos dispositivos possuem mais de dois drivers. esses drivers adicionais são denominados drivers-filtro. Alguns drivers filtro simplesmente observam o desempenho de I/O do driver de função. É comum serem fornecidos pelos fabricantes de hardware e de software, com o objetivo de modificar o funcionamento do driver de função existente. O driver filtro superior observa os IRPs antes do driver de função, e têm a chance de suportar características adicionais que os drivers de função desconhecem. FiDO Driver de filtro superior FDO Driver Funcional FiDO Driver de filtro inferior PDO Driver de barramento Figura - - Estrutura dos drivers no WDM IRP A arquitetura de um dispositivo USB estabelece três camadas lógicas que descrevem o relacionamento entre o host e o hardware do dispositivo e seus respectivos softwares. ARQUITETURA USB Essas camadas são: Interface do Barramento USB. Dispositivo USB. Função.
COMUNICAÇÃO SERIAL - USB As transferências entre um driver-cliente e um endpoint (dispositivo) na rede USB requerem chamada ao driver-usb. Esta transferência é denominada I/O Request Packet (IRP). algumas transferências consistem em um grande bloco de dados. USB é um barramento compartilhável. grandes blocos quase nunca são transferidos de uma única vez. transferências são dividas e executadas durante um longo período de tempo, através de segmentos denominados transações. Uma transação é a transmissão de um conjunto de pacotes. primeiro pacote iniciado por um hub. Hub é o iniciador (mestre) do barramento. pacotes seguintes podem ser iniciados por hub ou função. Pacotes possuem (pelo menos) três campos: SYNC, PID e fim. SINAIS E CÓDIGOS Estados do barramento A especificação define vários estados para o barramento que corresponde tanto ao sinal de tensão quanto às condições que essas tensões representam. Diferentes segmentos do barramento podem estar em diferentes estados ao mesmo tempo. Assim como diferentes velocidades, baixa/plena e alta velocidade, possuem diferentes definições de estados de barramento, ainda que muito similares. Diferencial 1 e diferencial 0. Single-Ended Zero (SE0). Single-Ended One (SE1). Estado Data J e Data K. Estado Ocioso. Estado de Reinicio. Start-of Packet (SOP). End-of-Packet (EOP). Estado Desconectado Estado Conectado Estado de Reset.
ESTADOS DO BARRAMENTO SE0 single end zero Ocorre quando ambos D + e D estão em nível baixo. Sinaliza entrada em END-OF-PACKET, DISCONNECT e RESET. Estados J e K para dados Definidos com base no estado do barramento: Se Diferencial-0 ou Diferencial-1 e se o segmento de cabo é de baixa ou plena velocidade. Com isso é possível o uso de uma terminologia para descrever um evento ou estado lógico, mesmo se as tensões em baixas e plenas velocidades são diferentes. Estado Diferencial - 0 Estado de Dados LS FS J K Diferencial -1 K J COMUNICAÇÃO SERIAL ESTADOS Diferencial 1 Diferencial 0 SINGLE-END-ZERO driver de origem D + >V OH (min) e D <V OL (max) D > V OH (min) e D + < V OL (max) D + e D < V OL (MAX) Níveis de sinalização receptor (D + )-(D ) > 200mV e D + > V IH e (D + )-(D ) > 200mV e D > V IH e D + e D < V IL (MAX) Estado Dados J Estado Dados K LS Diferencial 0 FS Diferencial 1 LS Diferencial 1 FS Diferencial 0
COMUNICAÇÃO SERIAL IDLE (inativo) ESTADOS RESUME SOP EOP FS LS driver de origem NA NA SE0 durante 2 bits seguido de um estado J por 1 bit Níveis de sinalização Estado de dados K receptor D > V IH (min) e D + < V IL (max) D + > V IH (min) e D < V IL (max) Linha de dados mudam de IDLE para K SE0 por período 1 bit seguido de estado J por 1 bit DISCONNECT RESET NA D + e D < VSE por 10ms SE0 2,5 µs SE0 2,5 µs COMUNICAÇÃO SERIAL Estados de barramentos para velocidade baixa e plena Dispositivos podem ser configurados para os mesmos estados de barramento, embora possam ser definidos diferentemente. Na transferência de dados, os estados indicam uma mudança de nível lógico (ou bit stuff). São eles: Diferencial-1: D + - nível lógico alto e D nível lógico baixo. Diferencial-0 D + - nível lógico baixo e D nível lógico alto. Os níveis diferenciais 0s e 1s aqui não podem ser diretamente convertidos nos correspondentes binários.
COMUNICAÇÃO SERIAL Regra para transformar J s e K s em 1 s e 0 s. codificação NRZI (non-reversed zero inverted). para transmitir 0 estados (J e K) nas linhas D + e D - são invertidos. para transmitir 1 - estados nas linhas são mantidos. Ex.: (KJJJ 1011). COMUNICAÇÃO SERIAL Bit-stuffing O barramento não deve permaneçer em estado J (D + em alto e D - em baixo) por muito tempo durante um pacote. após cada seqüência de 6bits 1 deve ser transmitido um bit zero de forma redundante. Este bit deve ser desprezado na recpção.