Mouse ps2 ● ● ● Al igual que el teclado, el mouse emplea comunicación bidireccional. Aunque en el teclado no es necesaria, el mouse requiere ser inicializado, por lo tanto envía y recibe información. Un mouse esta diseñado para detectar el movimiento en dos dimensiones sobre una superficie. Sus circuitos miden la distancia relativa de movimiento y revisan el estado de los botones. Ésta información es empaquetada en tres bytes que es enviada al host a través del puerto ps2. En el modo stream, el mouse envía los paquetes continuamente a una frecuencia establecida. Cuando los datos son transmitidos al host, el contador el inicializado a cero y reinicia el conteo. El contenido del contador es representado por un entero con signo de 9 bits. Un número positivo indica el movimiento a la derecha y arriba, y un número negativo indica movimiento a la izquierda y abajo. ● ● ● La distancia se puede medir mediante el parámetro de resolución. El estándar es 4 cuentas por un milímetro. Cuando el mouse se mueve continuamente envía los paquetes a una frecuencia de 100 muestras por segundo. Cuando el movimiento ocasiona que se desborde el contador interno o la velocidad a la que se mueve el mouse es mayor que la frecuencia de envío, se presenta un sobreflujo. Paquetes ● ● ● ● ● ● ● x8 . . . x 0 : movimiento en el eje x, en formato de complemento a dos. x v : sobreflujo en el movimiento del eje x. y 8 . . . y 0 : movimiento en el eje y, en formato de complemento a dos. y v : sobreflujo en el movimiento del eje y. l : estado del botón izquierdo, '1' cuando es presionado. m : estado del botón medio, '1' cuando es presionado. r : estado del botón derecho, '1' cuando es presionado. Inicialización del mouse ● ● ● El mouse cuenta con diferentes modos, el más común es el stream, el cual envía los datos de movimiento de los ejes x y y, así como de los botones. Se pueden modificar parámetros del mouse, para lo cual se envía esta información y él responde con un comando de reconocimiento. Para nuestros fines, solo se desea inicializar el mouse y activar el modo stream. Inicialización ● ● ● ● ● Cuando un mouse se alimenta envía el comando AA, indicando que pasó la prueba de inicio, después envía un 00 que es su identificador. El FPGA (host) envía el comando, F4, para habilitar el modo stream. El mouse responde con FE indicando el reconocimiento del comando recibido. El mouse entra al modo stream y envía los paquetes de datos. Cuando el mouse se conecta a la tarjeta (FPGA) envía los comando AA 00. Considerando que estos comando son recibidos, el trabajo consistirá en enviar el comando FA y recibir FE para entrar a la operación normal. Se puede reiniciar el mouse enviando el comando FF, a lo cual el mouse respondera con FE y después enviará AA, y por último 00. Señales ps2c y ps2d Las señales de datos y reloj, tienen la función de enviar y recibir, por lo tanto deben ser tratadas como señales de tres estados. Inicialización 1. El host aplica un '0' en la señal de reloj, por al menos 0.1 ms. 2. El host hace la señal de datos '0' y pone en alta impedancia la señal de reloj. Envío del bit de inicio al mouse. 3. El mouse ahora es responsable de generar la señal de reloj (ps2c). Después de detectar el '0' genera una transición de '1' a '0'. Inicialización 4. El host una vez detectada la transición envía el primer dato por ps2d, este valor se mantiene hasta que se detecta otra transición. 5. Repetir el paso 4 para los 7 bits de datos restantes y el bit de paridad. 6. Después de enviar el bit de paridad el host deshabilita la línea ps2d (alta impedancia). El mouse envía la señal ps2d a '0', indicando la finalización de la transmisión. El host puede verificar la transición de '1' a '0' en ps2c para confirmar la correcta transmisión del paquete.