Os teclados USB apenas enviam sinais ou também os recebem?

A maioria de nós nunca pensa muito em nossos teclados, desde que funcionem bem, mas se você parar para pensar por um momento, eles apenas enviam sinais para nossos computadores ou há um processo ativo de ida e volta em funcionamento ? O post de perguntas e respostas do superusuário de hoje tem a resposta para a pergunta de um leitor curioso.

A sessão de perguntas e respostas de hoje chega até nós como cortesia do SuperUser – uma subdivisão do Stack Exchange, um grupo de sites de perguntas e respostas voltado para a comunidade.

A questão

O leitor de superusuário Ne Mo quer saber se os teclados USB apenas enviam sinais ou se também os recebem:

Um teclado USB não precisa receber nenhum sinal de um computador, apenas energia, certo? Ou ele precisa receber sinais, além de enviá-los?

Os teclados USB enviam apenas sinais ou também os recebem?

A resposta

Os colaboradores do SuperUser LawrenceC e Dmitry Grigoryev têm a resposta para nós. Primeiro, LawrenceC:

Da especificação “ Definição de classe de dispositivo para dispositivos de interface humana (HID) ”:

Para alterar os LEDs do teclado, o teclado aceita um comando para fazer isso. Portanto, não é um dispositivo “apenas de entrada” (o que significa que apenas envia dados para o host). Dito isso, há um processo de negociação e enumeração com todos os dispositivos USB que requerem uma conversa de ida e volta entre o host e o dispositivo. Você não pode ter um dispositivo USB “somente leitura”. Mesmo antes do USB, o controlador de teclado do computador aceitaria comandos porque fazia algumas coisas além de ler o teclado ( referência ):

Seguido pela resposta de Dmitry Grigoryev:

Qualquer dispositivo USB, independentemente de sua classe, requer comunicação bidirecional para funcionar. Cada dispositivo USB (ou função em termos de especificações USB) é representado como um conjunto de terminais que podem ser considerados como buffers que aceitam ou recebem dados. No entanto, mesmo os terminais que só podem enviar dados esperam por um pacote especial chamado token antes de poderem responder:

As caixas cinza representam o host USB, enquanto as caixas brancas representam as funções USB ( fonte do gráfico ).

Até mesmo as chamadas transferências de interrupção são feitas dessa maneira, com o host USB fazendo polling dos dispositivos conectados usando pacotes de token. O que difere entre as transferências regulares (em massa) e as transferências de interrupção é que o tempo de votação é pequeno e garantido no último caso. Ainda assim, todas as transferências são iniciadas pelo host.


Tem algo a acrescentar à explicação? Som desligado nos comentários. Quer ler mais respostas de outros usuários do Stack Exchange com experiência em tecnologia? Confira o tópico de discussão completo aqui .

Recomendado:  Como desinstalar um aplicativo iOS que você não consegue encontrar na tela inicial

Crédito da imagem: Luke Jones (Flickr)