Lokito
•
Redraven http://picmania.garcia-
Un teclado PS/2 de 104 teclas para PC es un dispositivo razonablemente inteligente. Esto quiere decir que él mismo se encarga de la parte hardware del rastreo de teclas, de evitar los insufribles rebotes y de transmitirnos, mediante una trama perfectamente establecida, de losresultados de nuestras manipulaciones sobre sus teclas. El teclado PS/2 tiene un mapa de teclas a las que asigna un código, de uno o dos bytes, para cada una de ellas y que son los códigos que nos va a transmitir para indicarnos que se está pulsando una tecla determinada. A estos códigos les vamos a llamar códigos de rastreo de teclado. Más abajo os muestro una imagen de un teclado estándar donde semuestran los códigos de rastreo de todas y cada una de las teclas:
•
•
El teclado PS/2 envía el código de rastreo asociado a una tecla al ser ésta pulsada, tantas veces como sea necesario si se mantiene pulsada con una cadencia tal como indique su tiempo de repetición, que es programable, y el mismo código de rastreo con el prefijo del byte F0h al ser soltada, también conocido como BreakCode.
•
Por ejemplo: Para conseguir la letra G Mayúscula debemos pulsar la tecla Shift y mientras la mantenemos pulsada, pulsar la tecla G, soltar la tecla G y soltar la tecla Shift. Esa secuencia de pulsaciones nos va a hacer que el teclado transmita la siguiente secuencia de bytes: Pulsar Shift -> 12h, Pulsar "G" -> 34h, Soltar "G" -> F0h 34h y soltar Shift -> F0h 12h o escribiendo solo losbytes que vamos a recibir: 1h, 34h, F0h, 34h, F0h, 12h
Conexionado eléctrico: • El teclado PS/2 se conecta mediante cuatro hilos. Dos de ellos son para alimentación Vcc a 5V y GND, y otros dos para las señales Data y Clock. El pinout de los conectores Mini-DIN PS/2 tanto hembra, los del PC, como machos, los del Teclado, es tal como se muestra en la imagen inferior:
En el Teclado PS/2 lasseñales Data y Clock con de "colector abierto". Esto quiere decir que para establecer un comunicación eléctricamente correcta debemos nosotros suministrar voltaje para el nivel lógico alto, y es él el encargado de dar los correspondiente niveles lógicos bajos, tirando nuestra señal a GND cuando así sea necesario. Este tema se soluciona conectando dos resistencias de 10K entre dichas líneas y Vcc porlo que siempre tendrán nivel lógico alto, salvo
cuando el teclado disponga lo contrario y lo tire a GND para dar lo correspondientes niveles lógicos bajos. Esto es lo que se llama conectar unas resistencias Pull-Up. Protocolo de comunicación PS/2: • El teclado PS/2 se comunica mediante un Protocolo Serie Síncrono. Utiliza, por lo tanto, una señal de Clock que índica cuando están disponibleslos correspondientes bits en la señal de Data.
•
En reposo la señal de Clock está a nivel alto; a cada pulso a nivel bajo corresponde un pulso a nivel alto o bajo en la señal de Data, que se traducen respectivamente como bits 0 ó 1 del dato a transmitir. La trama completa se compone de 11 bits. Siendo el primero un bit de Start, a continuación los 8 bits del Dato a transmitir enviándose primeroel LSB (ó bit menos significativo), el décimo es el de paridad (usa la Impar, u Odd en Inglés) y por último un bit de ACK o Stop.
•
•
Abajo puede verse un cronograma de esta trama de comunicación PS/2 Teclado (Keyboard) -> PC (host):
•
Este protocolo de comunicación es bidireccional. El teclado PS/2 admite también comandos enviados desde el PC con el mismo formato que estamosestudiando, tal como adelantamos en el primer apartado de este proyecto. Y tal como decíamos allí, nosotros no vamos a implementar el envío de comandos al teclado, pero creo conveniente discutir también su procedimiento de envío, a nivel de protocolo por si alguien desea implementarlos en su propio trabajo.
•
Para poder habilitar la comunicación inversa, del PC (host) al Teclado PS/2 (Keyboard)...
Regístrate para leer el documento completo.