Trabalho Prático Nº6 Porta USB Processo de Enumeração 1. OBJECTIVOS - Compreender o funcionamento geral de um dispositivo USB. - Entender e descrever em detalhe o processo de enumeração de um dispositivo USB e a instalação do seu Driver. 2. INTRODUÇÃO Uma das características associadas ao USB é a detecção da ligação e remoção de dispositivos do barramento. No arranque do sistema (PC), o HOST faz a amostragem dos concentradores para verificar se existem dispositivos ligados. Mesmo após a sequência de início o HOST continua a amostrar periodicamente os concentradores para identificar a inserção ou remoção de dispositivos no barramento. Aquando da detecção de um dispositivo no barramento, o HOST envia uma série de pedidos ao concentrador a que se encontra ligado o dispositivo, o que resulta num caminho de comunicação entre o HOST e o dispositivo. O HOST inicia o processo de enumeração, pelo envio de um pedido padrão ao endpoint 0 do dispositivo. Assim devido a este mecanismo todos os dispositivos USB devem suportar as transferências por controlo e pedidos padrão USB no endpoint 0. Para que o processo de enumeração seja bem sucedido, o dispositivo deve responder aos pedidos do HOST, fornecendo toda a informação solicitada e efectuar as tarefas que lhe são requisitadas. Do ponto de vista do utilizador do computador, este processo de enumeração deve ser invisível e automático quando o dispositivo já foi previamente instalado. No caso de se tratar de um novo dispositivo e caso seja necessário utilizar um device driver especifico é solicitado a utilização de um ficheiro.inf e do device-driver correspondente. Quando finalizado o processo de instalação do dispostivo o sistema operativo adiciona-o à janela de Gestor de Dispositivos, onde é possível identificar as diversas propriedades associadas ao dispositivo USB, como sejam o tipo de dispositivo, o fabricante, a localização, o controlador, Microprocessadores III ano lectivo 2004/2005 Página 1 Trabalho Prático Nº6
3. O processo de enumeração Um dispositivo USB pode estar num dos seguintes estados: Alimentado, Defeito, Endereçado, Configurado, Ligado e Suspenso. Durante a fase de enumeração podemos encontrar o dispositivo num destes estados: Alimentado, Defeito, Endereçado, Configurado. 1. Inserção do dispositivo num porto USB O dispositivo é ligado a um concentrador USB. O concentrador alimenta o dispositivo e este passa ao estado Alimentado. 2. O concentrador detecta o dispositivo e identifica a velocidade de funcionamento Através da monitorização dos potencias nas linhas de dados o concentrador identifica a inserção do dispositivo e qual o seu tipo. 3. O HOST obtém informação sobre o dispositivo Cada concentrador utiliza o seu interrupt pipe para informar sobre eventos do concentrador ao HOST. Quando existe a indicação de um evento, o HOST envia um pedido GET_PORT_STATUS, em que o concentrador indica ao HOST que foi ligado um dispositivo no porto referido 4. O concentrador detecta se o dispositivo é Low ou Full SPeed Pela monitorização dos potenciais das duas linhas de dados, o concentrador identifica a velocidade de funcionamento do dispositivo. Essa informação é enviada ao HOST Ana resposta a um pedido de GET_PORT_STATUS Microprocessadores III ano lectivo 2004/2005 Página 2 Trabalho Prático Nº6
5. O concentrador efectua RESET ao dispositivo O concentrador HOST envia um pedido de SET_PORT_FEATURE, que solicita ao concentrador que efectue um RESET ao dispositivo 6. O HOST identifica se é um dispositivo Full ou High SPeed Esta detecção é efectuada durante o RESET 7. Estabelecimento de caminho entre o dispositivo e o barramento Depois de efectuado o RESET o dispositivo entra num estado designado estado por defeito e está pronto a responder as solicitações efectuado no modo de transferência de controlo efectuadas sobre o endpoint 0. O dispositivo pode comunicar com o HOST, usando o endereço por defeito 00h. O dispositivo pode solicitar ao barramento até 100mA. 8. O HOST envia um GET_DESCRIPTOR para identificar o tamanho máximo do pacote de pipe Como o HOST só identifica um dispositivo de cada vez, independente do número de dispositivos ligados. O HOST envia pedidos ao dispositivo de endereço 00h. Os oito bytes do tamanhão do descritor. Contêm o tamanho máximo dos pacotes suportados pelo endpoint 0. 9. O HOST atribui um endereço O HOST atribui um endereço ao dispositivo, e que é único para cada dispositivo. O dispositivo recebe o pedido e devolve um Acknowledge e guarda o novo endereço. Neste estado o dispositivo designa-se Endereçado. Este endereço é válido até que o dispositivo seja desligado. Numa próxima enumeração deste dispositivo pode acontecer que não lhe seja atribuído pelo HOST o mesmo endereço. Microprocessadores III ano lectivo 2004/2005 Página 3 Trabalho Prático Nº6
10. O HOST identifica as características do dispositivo São solicitados ao dispositivo os descritores de configuração, os descritores de interface para cada configuração e os descritores de endpoint para cada interface. 11. O HOST atribui e carrega o Device Driver Depois do HOST ter identificado as características de funcionamento do dispositivo pelo seu descritor chama o seu device-driver, para gerir a comunicação com o dispositivo. Esta identificação é efectuada tendo como base o ficheiro inf, que fornece uma série de informação sobre o driver, identificação do dispositivo, do fabricante o sistema operativo efectua o carregamento do driver. Caso este não exista o sistema operativo tenta verificar se existe algum driver padrão do sistema operativo que possa ser atribuído ao dispositivo. 12. O device-driver do HOST seleciona a configuração O driver faz um pedido de configuração, enviando um SET_CONFIGURATION com a configuração desejada. O dispositivo passa ao estado configurado. O DISPOSITIVO ESTÁ INSTALADO E PRONTO A SER USADO! Microprocessadores III ano lectivo 2004/2005 Página 4 Trabalho Prático Nº6
Figura 6.1: Descrição do processo de enumeração Figura 6.2: Janela do Gestor de dispositivos do Windows, que mostra o aspecto que deverá ter o termómetro Cypress quando instalado correctamente. Microprocessadores III ano lectivo 2004/2005 Página 5 Trabalho Prático Nº6
3. TRABALHO 3.1 Instalação do Kit Termómetro e teste de Funcionamento. i. Efectue a instalação do Kit Termómetro ii. Efectue a descrição detalhada do processo de enumeração. Identificando os diversos estados do dispositivo. iii. Identifique os diversos descritores associados ao dispositivo. iv. Teste o funcionamento da aplicação. Microprocessadores III ano lectivo 2004/2005 Página 6 Trabalho Prático Nº6