Adaptador de teclado PS2 para MSX – Parte 12

Olá pessoal;

Chegamos a etapa crucial de nosso projeto, agora vamos iniciar as ligações de nosso circuito para que o mesmo possa funcionar adequadamente com o teclado PS2 no MSX.

O que vou demonstrar aqui nesse primeiro momento é como capturar o scancode do teclado do PC-PS2 utilizando o microcontrolador PIC 16f628a e enviando isso para o nosso LCD 16 x 2.

O primeiro passo de todo o projeto é entender como são ligados os pinos do teclado no conector PS2, como demonstro logo abaixo na figura;

Tendo em mente a descrição de todos os pinos, precisamos é lógico realizar a ligação do conector de teclado Ps2 ao PIC.

Em um primeiro momento, isso pareçe uma tarefa relativamente simples, mas antes de realizar essa tarefa vamos precisar saber algumas informações sobre o funcionamento do protocolo Ps2.

Dando uma lida a respeito do protocolo, percebemos  a necessidade de adicionar em sua linha de dados (KBD_DATA) e clock (KBD_CLOCK) resistores de pull-up, isso se justifica devido ao fato de alguns teclados possuirem essas linhas em coletor aberto.

Devido essa especificação, teremos o seguinte circuito;

Como é possivel perceber nesse esquema temos os resistores de pull-ups ligados aos Pinos do PIC e também ligados aos 5V.

Resistores pull-up são resistores usados nos projeto de circuitos lógicos eletrônicos para garantir que entradas para sistemas lógicos se ajustem em níveis lógicos esperados se dispositivos externos são desconectados. Eles também podem ser usados na interface entre dois diferentes tipos de dispositivos lógicos, possivelmente operando em tensões diferentes.

A idéia de um resistor pull-up é que ele fracamente “puxe(pulls)” a tensão do condutor que ele está conectado para 5V (ou qualquer tensão que represente o nível lógico “alto”). Contudo, o resistor é intencionalmente fraco(alta-resistência) o suficiente que, se qualquer outra coisa que puxe fortemente a tensão do condutor para 0V, a tensão irá para 0V. Um exemplo de algo que fortemente puxaria a tensão para 0V seria o transistor em uma saída de coletor aberto que é o caso de alguns teclados PS2.

Em tempo, gostaria de salientar que esse tipo de conexão aplicada entre o PIC e o PS2, pode ser aplicada não somente para utilização do teclado como também a utilização de mouse, pois seguem o mesmo conceito de ligação. Além disso, você pode tranquilamente utilizar dessa ligação para quaisquer outros tipos de projetos que deseje desenvolver envolvendo conexões PS2, utilizando-se de quaisquer tipo de microcontroladores, processadores e etc.

PROTOCOLO PS2

Na figura acima podemos ter uma idéia de como isso aconteçe, o pino 1 e o pino 5 do PS2 são os responsáveis pelo tráfego desses sinais.

Abaixo da figura você pode notar a letra “P =” que é a letra que utilizo para demonstrar o protocolo que é do tamanho de 11 bits, que representam;

(1) bit inicial (“0”); (2) 8 bits de dados (primeiro LSB), (3) bit de paridade (paridade “ímpar”); (4) stop bit (” 1 “)

O protocolo PS2 para teclado e mouse são sincronos e bidirecionais, ou seja, as informações trafegam de ambos os lados, e o estado “idle” para se iniciar as transmissão somente ocorre quando ambas as linhas estejam em alta (coletor aberto);

DADO EM ALTA E CLOCK EM ALTA    =>  INATIVO;

DADO EM ALTA E CLOCK EM BAIXA  => INIBIR COMUNICAÇÃO;

DADO EM BAIXA E CLOCK EM BAIXA =>PEDIDO DE ENVIO FEITO PELO ANFITRIÃO.

Em resumo, essas são apenas  algumas das informações iniciais que devemos saber para que possamos fazer com que o nosso microcontrolador possa trabalhar corretamente com o protocolo PS2.

O resultado obtido na figura pode ser obtido utilizando-se de um osciloscópio, dessa forma você poderá confirmar a forma de onda gerada no processo.

Na figura acima utilizamos 2 canais de nosso osciloscópio afim de conseguir interpretar o pressionamento da tecla “Q” (15h).

Observamos que o canal representa o sinal de clock e o canal é o sinal da dados.

Quando falamos em estado “idle” estamos querendo dar referência a um estado de repouso ou inatividade, naquele momento.

PS/2 – TEORIA DE SAÍDA

Esta seção vai procurar analisar os dados que saem do teclado PS / 2 para que possamos saber o que esperar ou capturar no PIC.

Como os computadores não têm idéia do que são as teclas A, B ou C cabe a nós codificar cada chave em um número binário. Estes números codificados são chamados de códigos de verificação, e se você der uma olhada nas duas fotos acima você pode ver que todas as teclas de um teclado tem um código de verificação, e algumas teclas especiais até ter um código de dupla ou mais de digitalização. No entanto, as letras e os números principais são todos de 8 bits. Esses códigos de verificação são chamados de scancodes.

Para um exemplo simples de como o teclado se comunica, a qualquer momento que for detectado um pressionamento de tecla, ele vai apresentar o scancode dessa chave. Quando a tecla é liberada, ele envia uma OxFO que é o código da chave de verificação.

Outra função do protocolo PS / 2 é que você pode enviar dados de volta para a teclado para dizer-lhe para fazer coisas como ligar o LED do CapsLock, ou apagar. Este processo utiliza praticamente o mesmo método para enviar dados, como vimos acima, para a recepção de dados, mas para simplificar, vamos nos concentrar exclusivamente em receber dados.

[]´s

MsxRevival

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s