Uma Visão Geral do Funcionamento
Quanto à organização das camadas de software necessárias para operar-se um dispositivo, o sistema USB HOST é composto por vários níveis de hardware e programas, conforme mostrado na Figura 1.
Figura 1: Camadas de software necessárias para operarem-se dados via USB.
Conforme a Figura 1 indica, um aplicativo requer o acesso a um periférico USB da forma padrão, como é feita para os periféricos comuns: chama funções da API.
Num segundo estágio, a API chama rotinas do driver Cliente do periférico USB instalado. Este driver traduz os comandos da API para comandos USB. O driver Cliente é geralmente parte do sistema operacional ou vem instalável com o dispositivo USB.
A terceira camada de software indicada é o driver USB (USBD), que é aquela que dá ao sistema operacional o suporte ao USB.
A quarta camada de interesse é o driver do controlador HOST (HCD), que funciona a nível de Kernel do sistema operacional. O HCD provê o nível de software entre o hardware do controlador HOST e o USBD. É esta camada que realiza os acessos de I/O necessários para a operação do dispositivo USB. O HCD interpreta as chamadas do USBD e constrói uma lista de estruturas, um descritor de transferências, uma fila principal e um buffer de dados para o controlador HOST.
A Figura 1 apresenta também duas camadas de hardware.
A primeira delas é o Controlador HOST (HC), que é o circuito onde serão feitas as conexões de todos os dispositivos USB. Tal circuito executa eletronicamente os comandos programadas pelo HCD, além de registrar o estado das transações do USB. Sua operação é gerenciada pelo HCD.
A segunda delas é constituída pelo conjunto de Dispositivos USB conectados, que são os periféricos que usam esse tipo de barramento.
Uma característica extremamente inovadora do USB é a possibilidade de conectar-se um novo dispositivo durante a execução do aplicativo. Neste caso, o controlador HOST detecta a conexão e envia uma mensagem ao HCD para avisá-lo do fato. Em seguida, o HCD faz a mesma notificação ao driver USB (USBD). Este, então, inicializa o driver cliente do periférico conectado e, em seguida, torna-o operacional, de forma que o aplicativo já possa dispor de seus recursos. Tal seqüência está ilustrada na Figura 2.
Figura 2: Seqüência de eventos desde a conexão da placa até a inicialização dos drivers.
Respostas recomendadas
Crie uma conta ou entre para comentar
Você precisa ser um usuário para fazer um comentário
Criar uma conta
Crie uma nova conta em nossa comunidade. É fácil!
Crie uma nova contaEntrar
Já tem uma conta? Faça o login.
Entrar agora