Paso 1: Algunos antecedentes
Estrictamente hablando, PS2 tipo conexión utiliza 2 cables para transmitir datos, que se llaman datos y reloj. Cuando usted presiona el botón en el teclado, el microcontrolador que es dentro del teclado envía paquetes de 11 bits de información de cable de datos. Cada bit es acompañado por una señal de borde de reloj descendente, lo que significa que sólo debe leer los datos cuando la señal de reloj se cae y no la otra vez. El primer bit es START bit, entonces hay 7 pedacitos de DATA0-6, luego un bit de paridad y por último pedacito de parada. Después de que los datos recibidos y comprueba que es correcto (arranque, paridad y STOP bits tienen valores adecuados) sólo necesitará mantener DATA0-6 pedacitos y deshacerse del resto.
Ahora buscando más amplio, cuando se pulsa un botón, el teclado envía un paquete de 11 bits a que botón se presionó. Si la tecla es pulsada y luego empieza otra vez enviar el mismo paquete. Finalmente soltar el botón envía otro 2 paquetes, diciendo que se suelta el botón y el botón fue lanzado. Esto es un poco diferente para diferentes para así llamado extendido botones, donde envía un paquete más y saber qué código debe ser le pueden leer manual o permite decir
.
La frecuencia transmite los datos es bastante baja y puede variar desde 10 kHz hasta 16,7 kHz. Esto es importante, cuando se utiliza una FPGA con velocidades de 50 MHz y más grandes. Tienes que reducir la frecuencia de algún factor, de lo contrario usted leyendo la señal de reloj incorrecta (por ejemplo se leerán los datos mientras que la señal de reloj aún está cambiando...). Escalamiento de la Junta FPGA a alrededor de 30-50 kHz debe hacer el trabajo, pero nuevamente esto dependerá del teclado.
Por último es importante describir lo que sucederá si recibes menos de 11 bits como a veces esto sucede así. Sucede muy raramente, pero todavía... Lo que hice es poner un temporizador para decirle si ha pasado suficiente tiempo desde la recepción de la broca y si el plazo es demasiado largo hasta recibir el siguiente bit, limpia todo lo que recibió hasta este punto.
Usted siempre puede leer más sobre el protocolo en aquí o simplemente google 'PS2 tipo protocolo', que se trabaja dan mejor visión sobre él. Realmente te recomiendo leer más sobre si desea implementar los controladores usted mismo! Manual de placa BASYS 2 también proporciona información acerca de cómo tal cosa podría ser implementado en la página 5-7 del manual.