Quando eu bato minha mão no meu teclado, apenas um máximo de 6 teclas serão registradas, eu testei isso nos últimos minutos e não consegui obter mais de 6. Isso é o mesmo em todos os teclados? Se não, qual seria o fator diferenciador, Se sim: por que 6 especificamente?
Para esclarecimento: não tenho um caso de uso para isso, estou simplesmente curioso
Nem todos os teclados são assim. O que você está se referindo é chamado de rollover ou rollover de chave . Isso simplesmente se refere à capacidade de um computador de lidar corretamente com vários pressionamentos de tecla simultâneos.
O rollover da tecla X refere-se a quantas teclas você pode pressionar de uma só vez, enquanto ainda está sendo registrado pelo computador.
Não sei se existe um nível "padrão" padrão, mas muitos teclados são de substituição de 6 teclas. Existem alguns teclados de jogos e de ponta que possuem rollover n-key real , o que significa que cada tecla é verificada de forma totalmente independente pelo hardware do teclado. Isso garante que cada pressionamento de tecla seja detectado corretamente, independentemente de quantas outras teclas forem pressionadas ao mesmo tempo.
Dependendo do seu teclado, você pode ter a opção de usar o rollover de 6 teclas ou habilitar o rollover de n teclas reais. Por exemplo, eu tenho um Deck Hassium Pro que possui rollover de 6 teclas por padrão, mas há uma tecla de atalho para habilitar o rollover de n-chave verdadeiro.
Pesquise por substituição de chave .
Um limite ocorre porque a maioria dos teclados não possui fios individuais para cada tecla; em vez disso, o teclado possui uma matriz (ou várias) onde cada tecla conecta uma linha/coluna específica e, quando muitas conexões simultâneas são feitas na mesma matriz, elas se tornam impossíveis de distinguir.
Portanto, o primeiro número de teclas simultâneas depende de como a eletrônica do teclado foi projetada. Pesquise " fantasma de matriz de teclado " para alguns artigos sobre este tópico.
Se o hardware do teclado evita o problema físico, o outro limite ocorre devido ao protocolo utilizado pelos dispositivos USB HID – ou melhor, dois protocolos. Para citar a Wikipédia:
(Se você tem certeza de que o teclado é compatível, pode ser apenas uma questão de trocar o driver no Windows.)
Os teclados não se conectam a cada tecla de forma independente. Os teclados de membrana usam uma espécie de grade esparsa, que é apenas o suficiente para dizer qual tecla está sendo pressionada no momento. Variando conforme o modelo, existem cerca de 20 contatos entre a membrana e a placa controladora, incluindo o terra.
Cada tecla pressionada ou não é 104 bits de dados por intervalo de pesquisa. Se a membrana contivesse componentes semicondutores que pudessem codificar esses dados, ela poderia enviá-los ao controlador. Mas a membrana é apenas um filme plástico com um pouco de traçado de prata - uma interface analógica paralela que não tem mais capacidade do que o número de pinos de contato. Os traços são colocados de forma a identificar algumas teclas sendo pressionadas simultaneamente, mais os modificadores.
Os teclados de última geração são quase universalmente mecânicos, construídos em um PCB, que suporta componentes eletrônicos ativos em qualquer lugar da placa. Os primeiros mecanismos incluíam alguns modelos 6KRO, mas a maioria dos teclados mecânicos hoje suporta NKRO, o que significa que qualquer número de teclas será registrado simultaneamente.
Se você não é propenso a derramamentos e procura um registro de chave garantido, o caminho a percorrer hoje é mecânico. (Com derramamentos, a maioria dos mecânicos retroiluminados morrerá devido à alta corrente para a luz de fundo atingindo o controlador.) Há um pequeno segmento que ainda prefere teclados de membrana em tesoura, e os teclados sem tesoura continuam sendo os segundos teclados práticos mais resistentes a derramamentos, depois dos teclados de Topre. modelos de capacitores, geralmente agrupados com os mecânicos.
Os vídeos não são ótimas respostas neste site, mas mesmo assim recomendo Como funciona o rollover n–key? por Ben Eater. Ele demonstra as diferenças entre um teclado barato com rollover de 2 teclas e um bom teclado com rollover de n teclas, descreve como os circuitos desses teclados funcionam para mostrar o que falta no teclado barato e captura a configuração real do USB e os pacotes de dados do teclados para mostrar exatamente como eles se comunicam com o computador host.
Você pode comparar isso com seu vídeo anterior Então, como funciona uma interface de teclado PS/2? para ver as diferenças entre os protocolos USB e PS/2. Ele também tem alguns vídeos em que escreve o software para um computador baseado em 6502 para converter esses eventos-chave em texto.
O que é mais interessante sobre o protocolo PS/2 é que nada precisa mudar para acomodar o rollover de n teclas, mas apenas porque ele transfere muito do trabalho para o próprio computador. O computador deve ter um buffer grande o suficiente para conter pelo menos um evento de pressionamento de tecla de cada tecla do teclado ou precisa converter esses eventos de pressionamento de tecla em um bitmap de teclas que estão sendo pressionadas no momento. Em teclados USB, o próprio teclado deve manter esse buffer ou bitmap. Esse buffer tradicionalmente tem espaço para seis chaves (embora, em princípio, possa ter qualquer comprimento), o que é longo o suficiente para satisfazer a maioria dos usuários, mas não para suportar a substituição verdadeira de n teclas. Alguns teclados com rollover de menos de 6 teclas, no entanto, possuem um chip USB com um buffer de seis teclas.
Como um aparte, o sistema operacional do seu computador fornece eventos de pressionamento e liberação de tecla para os programas que você está executando, quase exatamente como o protocolo PS/2, portanto, deve converter o buffer em seis a doze eventos. Da mesma forma, o bitmap pode acabar sendo convertido em mais de cem eventos. Os mecanismos de jogo frequentemente convertem esses eventos de volta em um bitmap de teclas que são pressionadas¹ para o jogo examinar.
É basicamente sapatos de palhaço.
¹ Ou, às vezes, um bitmap maior que indica quais teclas começaram a ser pressionadas neste quadro, teclas que foram pressionadas por vários quadros e teclas que foram liberadas neste quadro.