Sie sind auf Seite 1von 11

8.

3 PS2 CDIGO DE ESCANEO DE TECLADO


8.3.1 Visin general del cdigo de escaneo
Un teclado consta de una matriz de teclas y un micro controlador integrado que
monitorea (es decir, escanea) las actividades de las teclas y enva un cdigo de
escaneo en consecuencia. Tres tipos de actividades de la tecla se observan:

Cuando se pulsa una tecla, el cdigo de maquillaje (make code) de la tecla se


transmite.

Cuando una tecla se mantiene pulsada continuamente, una condicin conocida


como typematic, el cdigo de maquillaje se transmite repetidamente a una
velocidad especfica. Por defecto, un teclado PS2 transmite el cdigo de
maquillaje alrededor de cada 100 ms despus de una tecla ha sido presionada por
0.5 segundos.
Cuando se suelta una tecla, el cdigo de ruptura de la tecla es transmitido
El cdigo de maquillaje de la parte principal de un teclado PS2 se muestra en la Figura
8.3. Esto es normalmente 1 byte de ancho y representado por dos nmeros
hexadecimales. Por ejemplo, el cdigo de maquillaje de la tecla A es 1C. Este cdigo
puede ser transportado por un paquete cuando se transmiten. El cdigo de maquillaje de
un puado de teclas de propsito especial, que se conoce como las teclas extendidas,
puede tener 2 a 4 bytes. Algunas de estas teclas se muestran en la Figura 8.3.
Por ejemplo, el cdigo de maquillaje de la flecha superior de la derecha es EO 75.
Mltiples paquetes son necesarios para la transmisin.
Los cdigos de quiebre de las teclas habituales consisten de FO seguido por el cdigo
de maquillaje de la tecla.
Por ejemplo, el cdigo de ruptura de la tecla A es FO 1C.
El Teclado PS2 transmite una secuencia de cdigos de acuerdo a las actividades de la
tecla. Por ejemplo, cuando pulse y suelte la tecla A, el teclado primero transmite su
cdigo de maquillaje y luego el cdigo de ruptura:
1C FO 1C
Si tenemos presionada la tecla por un tiempo antes de soltarlo, el cdigo de maquillaje
se transmitir varias veces:
1C 1C 1 C . . . 1C FO 1 C
Mltiples teclas pueden ser presionados al mismo tiempo. Por ejemplo, primero
podemos presionar la tecla shift (cuyo cdigo maquillaje es 12) y luego la tecla A, y
suelte la tecla A y luego suelte la tecla shift. La secuencia del cdigo transmitido sigue
los cdigos de maquillaje y ruptura de las dos teclas:
12 1 C FO 1 C FO 12
La secuencia anterior es la forma en que normalmente se obtiene una A
mayscula. Ntese que no hay un cdigo especial para distinguir las teclas minsculas y
maysculas. Esto es responsabilidad del dispositivo anfitrin para mantener un
seguimiento de si se pulsa la tecla shift y determinar el caso en consecuencia.

8.3.2 Circuito monitor de cdigos escaneados


El circuito monitor de cdigo escaneado supervisa la llegada de los paquetes recibidos y
muestra los cdigos escaneados en una Ventana de HyperTerminal de PC. El enfoque
bsico de diseo es para primera dividir el cdigo escaneado recibido de exploracin en
dos partes de 4 bits y tratarlos como dos dgitos hexadecimales, y luego convertir los
dos dgitos a palabras de cdigo ASCII y enviar las palabras a un PC a travs de UART.
Los cdigos escaneados recibidos deben mostrarse similar a los ejemplos de las
secuencias anteriores. El programa se muestra en el listado 8.2
Listado 8.2 Teclado PS2 circuito monitor de cdigo escaneado

Un FSM se utiliza para controlar el funcionamiento global. El funcionamiento UART


inicia cuando un nuevo cdigo escaneado es recibido (como se indica por la afirmacin
de scan-done_tick).
El FSM circula a travs de los estados sendl, send0, y sendb, en los que los cdigos
ASCII del dgito hexadecimal mas alto, menor dgito hexadecimal, y el espacio en
blanco se escriben en la UART.
Recordemos que el UART tiene una FIFO de cuatro palabras, y por tanto no se
producir desbordamiento. Tenga en cuenta que el receptor UART no se utiliza y los
puertos correspondientes son asignados a constantes o abierto.

8.4 PS2 TECLADO DE INTERFAZ CIRCUIT


Como se discuti en la Seccin 8.3.1, una secuencia de paquetes es transmitido incluso
para simples actividades del teclado. Ser un poco complicado si queremos cubrir todas
las posibles combinaciones. En esta seccin, se asume que solo una tecla habitual es
presionada y soltada a la vez y disea un circuito que devuelve el cdigo de marca de
esta tecla. Este diseo proporciona una forma sencilla de enviar un carcter o dgito a la
placa de prototipado y deberian ser satisfactorios para nuestros propsitos

Figura 8.4 Diagram de Bloques de un circuito de la ultima tecla soltada

8.4.1 Diseo bsico y cdigo HDL


El circuito de teclado, como un UART, es un circuito perifrico de un sistema grande y
necesita un mecanismo para comunicarse con el sistema principal. Los esquemas de
abanderamiento y buffering en la Seccin 7.2.4 se puede aplicar para el circuito de
teclado tambin. Utilizamos un bfer FIFO de cuatro palabras como la interfaz en este
diseo.
El diagrama conceptual de nivel superior se muestra en la Figura 8.4. Consiste en el
receptor PS2, una buffer FIFO, y un control FSM. La idea bsica es usar el FSM para
mantener un seguimiento del paquete FO del cdigo de ruptura. Despus de que es
recibido, el siguiente paquete debe ser el cdigo de maquillaje de esta tecla y se escribe
en la buffer FIFO. Tenga en cuenta que este esquema no puede ser aplicado a las teclas
extendidas desde sus cdigos maquillaje implicando mltiples paquetes. El
correspondiente cdigo HDL se muestra en el Listado 8.3
Listado 8.3 Teclado PS2 circuito de la ltima tecla soltada

La parte principal del cdigo es la FSM, que muestra el cdigo de ruptura y coordina el
funcionamiento de los dos otros mdulos. Comprueba los paquetes recibidos en el
estado wait_brk continuamente. Cuando se detecta el paquete FO, se mueve al estado
get_code y espera al siguiente paquete, que es el cdigo de maquillaje de la tecla. El
FSM luego afirma la seal seal code_done_tick por un ciclo de reloj y retorna al estado
wait_brk

Figura 8.5 Diagrama de Bloques de un circuito de verificacin de un teclado

8.4.2 Verificacin del circuito


Diseamos una interfaz serial simple y circuito de decodificacin para verificar el
funcionamiento de la interfaz del teclado PS2. El diagrama de bloques de nivel superior
se muestra en la figura 8.5. El circuito convierte el cdigo de maquillaje de una tecla a
el correspondiente cdigo ASCII y luego enva el cdigo ASCII a la UART. El
correspondiente carcter o dgitos pueden ser mostrados en la ventana HyperTerminal.
El cdigo HDL para el circuito de conversin se muestra en el Listado 8.4
Listado 8.4 Cdigo de maquillaje del teclado a cdigo ASCII

El cdigo completo para el circuito de verificacin sigue el diagrama de bloques y se


muestra en el listado 8.5.
Listado 8.5 Circuito de verificacin del teclado

8.5 NOTAS BIBLIOGRFICAS


Tres artculos, PS/2 MouselKeyboard Protocol, PS/2 Keyboard Interface, and PSI2
Mouse Interface, por Adam Chapweske, proporciona informacin detallada sobre el
teclado PS2 y la interface del mouse. Se pueden encontrar en el sitio
http://www.computer-engineering.org.
Rapid Prototyping of Digital Systems: Quartus @ II Edicin por James O. Hamblen et
al.
Tambin contiene un captulo sobre el puerto PS2 y los protocolos de teclado y ratn.

8.6 EXPERIMENTOS SUGERIDOS


8.6.1 Interfaz de teclado Alternativa I
El circuito de interfaz en la Seccin 8.4 devuelve el cdigo de maquillaje de la ltima
tecla soltada y por lo tanto ignora la condicin typematic. Un enfoque alternativo es
considerar la condicin typematic. El circuito de interfaz del teclado debe devolver un
cdigo de maquillaje de la tecla repetidamente cuando se mantiene pulsado e ignora el
cdigo de ruptura final. Para simplificar, suponemos que las teclas extendidas no son
usadas. Disear el nuevo circuito de interfaz, resintetizar el circuito de verificacin, y
verificar el funcionamiento del nuevo circuito de interfaz.

8.6.2 interfaz de teclado Alternativa II


Podemos ampliar el circuito de interfaz para distinguir si se pulsa la tecla shift, de modo
que ambas caracteres minsculas y maysculas se pueden introducir. El circuito
expandido puede ser modificado como sigue:

La salida del cdigo de la tecla debe extenderse a partir de 8 bits a 9 bits. El bit
adicional indica si la tecla shift se mantiene presionado

El FSM debe agregar una rama especial para procesar los cdigos de maquillaje
y de ruptura de la teclas shift y en consecuencia establecer el valor del bit
correspondiente.

La anchura de un buffer FIFO debera extenderse a 9 bits.

Disear el circuito de interfaz ampliada, modificar el circuito key2ascii para manejar


tanto caracteres minsculas y maysculas, resintetizar el circuito de verificacin, y
verificar el funcionamiento del circuito de interfaz ampliado.

8.6.3 PS2 recibiendo subsistema con temporizador de vigilancia


(watchdog timer)
No hay capacidad de control de errores en el PS2 recibiendo subsistema en la Seccin
8.2. El ruido potencial y las interferencias en la seal ps2c puede hacer que el FSMD
estar atrapado en un estado incorrecto. Una forma de tratar este problema es aadir un
temporizador de vigilancia. El temporizador es iniciado cada vez que la seal
fall_edge_tick es afirmada en el estado get-bit. La seal de tiempo de espera se afirma si
el flanco descendente no llega en los siguientes 20 microsegundos, y la FSMD vuelve
al estado de reposo. Disear el subsistema de recepcin modificado, derivar un banco
de pruebas, y uso de simulacin para comprobar su funcionamiento.

8.6.4 Cronmetro controlado por teclado


Considere el cronmetro mejorado en el Experimento 4.7.6. El funcionamiento del
cronmetro es controlado por tres interruptores en la placa de prototipos. Podemos
utilizar el teclado para enviar comandos para el cronmetro:

Cuando la tecla C (para limpiar clear ) es presionada, el cronmetro cancela el


conteo actual, se limpia a cero, y establece la direccin del conteo hacia arriba
up

Cuando la tecla G (para ir go) es presionada, el cronmetro se inicia el


conteo.

Cuando la tecla P (para pause) es presionada, el conteo pausa.

Cuando la tecla U (para up-down) es presionada, el cronmetro invierte la


direccin de conteo

Todas las dems teclas se ignoran.

Disear el nuevo cronmetro, sintetizar el circuito, y comprobar su funcionamiento

8.6.5 Letrero LED giratorio controlado por teclado


Considere el circuito de un letrero LED giratorio en el Experimento 4.7.5. Podemos
utilizar un teclado para controlar su funcionamiento y modificar dinmicamente los
dgitos en el letrero:

Cuando la tecla G (para ir go) es presionada, el letrero LED gira.

Cuando la tecla P (para pause) es presionada, el letrero LED pausa

Cuando la tecla D (para direccin direction) es presionada, el letrero LED


invierte la direccin de rotacin.
Cuando una tecla de dgito decimal (es decir, 0, 1, . . ., 9) es presionada, el
letrero ser modificado.
El letrero puede ser tratado como un bfer FIFO de 10 palabras. El nuevo dgito
se insertar al principio (es decir, la posicin ms a la izquierda) del letrero, y el
dgito ms a la derecha ser desplazado hacia fuera y descartado.
Se ignoran todas las dems teclas.

Diseo del nuevo letrero LED giratorio, sintetizar el circuito, y comprobar su


funcionamiento
CAPTULO 9
MOUSE PS2
9.1 INTRODUCCIN
Un mouse de ordenador est diseado principalmente para detectar el movimiento en
dos dimensiones sobre una superficie. Su circuito interno mide la distancia relativa de
movimiento y comprueba el estado de los botones. Para un mouse con una interfaz PS2,
esta informacin se empaqueta en tres paquetes y es enviado al host a travs del puerto
PS2 En el modo stream, un mouse PS2 enva los paquetes de forma continua en una
frecuencia de muestreo previamente designado.
La comunicacin del puerto PS2 es bidireccional y el host puede enviar un comando al
teclado o el mouse para ajustar ciertos parmetros. Para nuestros propsitos, esta
funcionalidad es apenas requerido por un teclado, y por lo tanto la interfaz de teclado en
el Captulo 8 se limita a
una direccin, desde el teclado a la
FPGA
anfitrin. Sin embargo, a diferencia del teclado, un ratn
est dispuesto a ser en el modo no humeante despus del encendido y no enva ningn
dato. El anfitrin
primero debe enviar un comando al ratn para inicializar el ratn y activar el modo de
secuencia.
Por lo tanto, la comunicacin bidireccional de la
PS2
Se necesita puerto para el
PS2
interfaz de ratn,
y debemos disear un subsistema de transmisin (es decir, a partir de
FPGA
tablero para ratn) para la
PS2
interfaz.
En
este captulo, ofrecemos un breve resumen de la
PS2
protocolo de ratn, disear un bidi-

direccional
PD
interfaz, y derivar una interfaz sencilla ratn

Das könnte Ihnen auch gefallen