Paper interfaz del mouse por puerto ps 2 usando fpga
1. U. ECCI JECC 2016
INTERFAZ DEL MOUSE POR PUERTO PS/2
USANDO FPGA
Rincón R. Andrés F., Pedraza D. Ángela X.
andres05_31@hotmail.com, angelaxpm@hotmail.com
Universidad Escuela Colombiana de Carreras Industriales
Bogotá D.C., Colombia
Resumen— El presente documento muestra el desarrollo y la
implementación de una interfaz entre un mouse y una FPGA a
través del puerto PS/2.
El proyecto consiste en realizar una interfaz que permita
visualizar el cursor del mouse por medio del puerto VGA, y que
cumpla una función, aplicando una máquina de estados al
programa desarrollado en VHDL.
Abstract- This paper shows the development and
implementation of an interface between a mouse and a FPGA
through the PS / 2 port .The project involves making an
interface to display the mouse cursor through the VGA port ,
and has a function , using a state machine program developed
in VHDL.
Palabras clave: FPGA, Interfaz PS/2, VGA, VHDL.
I. INTRODUCCIÓN
El conector PS/2 o puerto PS/2 toma su nombre de la serie de
computadoras IBM Personal System/2 que es creada
por IBM en 1987, y empleada para
conectar teclados y ratones. Muchos de los adelantos
presentados fueron inmediatamente adoptados por el mercado
del PC, siendo este conector uno de los primeros.
En ambos casos es serial (bidireccional en el caso del teclado),
y controlada por microcontroladores situados en la placa
madre.
El mouse se convirtió en un dispositivo indispensable para cualquier
tipo de usuario, peromuy pocos saben cómo fue inventado y cuál es su
historia completa.
Esta práctica plantea la realización de un controlador de
mouse que a su vez permita visualizar el cursor por medio de
una pantalla utilizando el puerto VGA de la FPGA.
II. DISEÑO Y DESAROLLO
1. INTERFAZ DEL MOUSE A LA FPGA SIN
VISUALIZACION
Un teclado o ratón del tipo AT-PS/2 utiliza para comunicarse
un protocolo bidireccional serie síncrono de 11 bits. Usa dos
líneas a colector abierto con resistencias de “pullup” TTL +5V
(por defecto a uno)
2. U. ECCI JECC 2016
Figura.1
PS/2 INTERFACE
La anterior figura.1 compuesta por tres módulos muestra la
interfaz del módulo PS/2 el cual es responsable para la
comunicación entre el mouse y su controlador.
La interfaz física utiliza cuatro líneas. Los pines del conector
PS/2 son asignados de la siguiente manera:
1 Data
2 Not Implemented
3 Ground
5 VCC (+5V)
6 Clock
8 Not Implemented
1. CLK para transmitir el reloj de sincronización. El reloj
siempre debe ser generado por el
dispositivo con una frecuencia entre 10 y 16,7KHZ.
2. DATA para transmitir los datos serie. Los datos pueden ser
generados por el dispositivo o
por el sistema, y su formato es: 1bit de star(‘0’), 8 bits de
datos (primero el lsb), 1 bit de
paridad impar, 1 bit de stop(’1’).
MOUSE CONTROLLER
El mouse_controller, permite recibir los paquetes de datos
desde el mouse y las salidas de las posiciones del estado de los
botones. El tercer bloque, de resolución del mouse, provee la
activación de los limites en los lados X y Y, este tercer bloque
recibe la información de resolución y calcula el máximo valor
en los lados X y Y y los establece en la posición original del
mouse.
EL mouse reporta un desplazamiento positivo en X cuando es
movido a la derecha y negativo cuando la señal en X es uno lo
que indica un movimiento a la izquierda.
Cuando el mouse es movido en dirección hacia arriba, el
desplazamiento en Yes positivo y cuando es movido hacia
abajo es negativo.
Figura.2
Figura.3
3. U. ECCI JECC 2016
Diagrama de estados del bloque mouse_controller.
2. BLOQUE DE VISUALIZACION DEL
MOUSE
Figura.4
La imagen del cursor es protegida en una ROM de 256x2 bits.
Cuando las coordenadas horizontal y vertical están en la
región del cursor del mouse los bits no trasparentes se
muestran en pantalla.
La posición del mouse es recibida en el bloque de
mouse_controler. El contador horizontal y vertical del video
es recibido desde el bloque vga_module.
Si el contador está dentro de los bordes del cursor del mouse,
la imagen del cursor es enviada.
El cursor del mouse está compuesto por pixeles de
16 x 16 y usa tres colores:
El blanco que compone el interior del cursor.
El negro da forma, marcando los bordes de la figura generada;
y el transparente que permite visualizar solo la figura resaltada
por el negro, y no la matriz de pixeles 16 x 16.
La imagen del cursor es almacenada en una memoria RAM.
Dos bits son usados para codificar el color “00” para negro,
“01” para blanco, “10” o “11” para transparente (los colores
de entrada son salidas). De esta forma, el cursor del mouse
puede aparecer como un reloj, formado en un cuadrado de 16
x 16.
Las direcciones de la memoria RAM son calculadas basado en
la diferencia del contador VGA y la posición del mouse. El
xdiff es la diferencia de 4 bits (porque el cursor tiene un
tamaño de 16 pixeles) entre el contador horizontal del VGA y
la posición de x en el mouse. El ydiff es la diferencia de 4 bits
(porque el cursor es de 16 pixeles de alto) entre el contador
vertical del VGA y la posición del mouse. La dirección de
memoria de la corriente de pixeles es obtenida por la unión de
ydiff y xdiff en ese orden. La distribución de la memoria es
usada para almacenar el cursor del mouse.
Si el color negro está a la entrada desde el vga_module será
activado, esto significa que el flujo de pixeles no está ocultado
y el color de salida será negro.
3. INTERFAZ DEL MOUSE A LA FPGA CON
VISUALIZACION
Figura.5
La figura.5 muestra la unión de los bloques vistos anterior
mente, más un bloque de resolución de 640x60 para la VGA.
Este bloque entrega los colores ROJO, VERDE y AZUL con
lo cual se realiza la quina de estados. Aunque la máquina de
estados depende de una señal CLK, para este caso depende de
la señal del botón izquierdo del mouse que será integrado para
realizar un cambio de color con cada pulsación del botón.
III. MAQUINA DE ESTADOS
.
ROJO
VERDE
4. U. ECCI JECC 2016
La máquina de estados representa la funcionalidad de los
botones del mouse, debido a que cada cambio de estado se
logra a través de un pulso en el botón izquierdo del mouse.
El diagrama muestra cuatro estados, que son representados
por el cambio del color en la pantalla, para el proyecto, la
pantalla fue dividida en tres secciones horizontales y cada
sección cambia de color con un pulso del mouse.
IV.CONCLUSIONES
En el proceso de desarrollo del proyecto fue evidente
presentar con fallas debido a que el puerto PS/2 no se había
manejado teóricamente en la clase.
El principal problema encontrado fue la integración de del
bloque de resolución del VGA con la resolución del mouse,
debido a que manejaban una frecuencia de trabajo diferente.
Por medio del proyecto se entendió el protocolo de
comunicación que tiene el mouse con un sistema operativo y
de esta forma visualizar el cursor.
Para realizar el proyecto fue necesario utilizar material de
apoyo de Xilinx para la integración del teclado por puerto
PS/2 ya que el protocolo de comunicación para datos y el
CLK es el mismo empleado para el mouse.
[1] Pérez, S., Soto, E. y Fernández, S.: Diseño de sistemas digitales con
VHDL. THOMPSON, 2002.
[2] Página de la tarjeta de Desarrollo Digilent Spartan-3.
http://www.digilentinc.com/ Junio, 2013.
[3] Pardo, F. y Boluda, J.: VHDL, Lenguaje para síntesis y modelado de
circuitos. Alfaomega, 3ª edición, 2000.
[4] Integrated Silicon Solutions Inc., “Data sheet IS61LV25616AL”,
December, 2011.
[5] Digilent: User Guide Digilent Spartan-3 Starter Kit Board Board,
Digilent, April, 2004.
[6] Edwards, V., Courtney, M. y Yang, K.: “A FPGA Paint Brush
Application”, Information Systems Education Journal, Vol. 7, No. 36,
Abril, 2009.
[7] Página de la VESA, Video Electronics Standards Association, http://
www.vesa.org, Mayo, 2013.
[8] Maleki, N., & Haghighi, B. Design of a simple and stand-alone RS-
232c interface. Journal Of Chemical Education, 72(4), A78.1995.
[9] Maxim Integrated: “Datasheet DS1265W”, November, 2010.
[10] Maxim Integrated: “Datasheet DS1270W”, November, 2010.
[11] Grout, Ian: Digital Systems Design with FPGAs and CPLDs.
ELSEVIER, 2008.
[12] Página descriptiva API Microsoft Windows,
http://msdn.microsoft.com/enus/library/windows/desktop/aa363214(v=
vs .85).aspx. Junio 2013.
[13] Monteiro, A., & Jordan, T. R. Implementing communication between
Windows PCs and test equipment using RS- 232 and Borland C++
Builder. Behavior Research Methods, Instruments, & Computers, 36(1),
107-112. 2004.
[14] R. González and R. Woods, Digital Image Processing, 3rd. Edition.
Prentice-Hall, 2008.
[15] http://www.computer-engineering.org/ps2mouse/
[16] Manual de referencia de la placa Basys2
AUTORES
B. Angela Ximena Pedraza Martínez
nacida en Bogotá (Cundinamarca),
Colombia, el 9 de Junio de 1986.
Estudiante de ingeniería electrónica.
Tecnóloga en soporte de
telecomunicaciones. Técnica en
telecomunicaciones. A nivel
profesional se ha desarrollado como
directora operativa en proyectos de
seguridad electrónica, fortaleciendo
paralelamente la parte comercial en
proyectos de tecnología. Actualmente
se desempeña como directora comercial y operativa en una empresa
Outsourcing de proyectos de seguridad electrónica, energía
renovable, domótica e inmótica.
AZUL
AZUL+ROJO
A. Andrés Felipe Rincón Ramírez
nacido en Bogotá (Cundinamarca),
Colombia, el 31 de mayo de 1994. Se
graduó como Tecnólogo en
electrónica Industrial el 7 de
octubre de 2014.
Actualmente se encuentra cursando
octavo semestre de Ingeniería Electrónica
en la Escuela Colombiana de Carreras
Industriales.