tema 6: pulsadores, teclados, ratones

Documentos relacionados
Tema 9 Periféricos de Entrada

Periféricos II Teclado y ratón PS2

LAB 5. Tarjeta de Desarrollo Spartan-3. Laboratorio de Sistemas Digitales ELO212 Primer Semestre de 2010

EL BUS I2C CARACTERISTICAS. Fernando Remiro

Laboratorio 06. Diseño e implementación de un sistema digital para la captura de caracteres desde teclado

Lógica de petición de interrupciones X. Chip controlador de teclado (8042/8741/8742) línea serie

Practica 1 (3.5 %) 1. Realice el diseño y montaje de un R_S discreto activo en bajo.

LAB 5. Tarjeta de Desarrollo Spartan-3. Laboratorio de Sistemas Digitales ELO212 Primer Semestre de 2012

UNIVERSIDAD DE CASTILLA LA MANCHA ESCUELA SUPERIOR DE INFORMÁTICA. CIUDAD REAL

Además permite programas cualquier circuito integrado DS 1620 como un sistema autónomo, por ejemplo un termostato sin una CPU.

Laboratorio 5: Tarjeta de Desarrollo Spartan-3

4.7 Aplicaciones usando la tarjeta Spartan 3E

3 Interfaz PC DSP. 3.1 Introducción a las comunicaciones serie. 3 Interfaz PC DSP

Figura 2. Formato de un dato serie síncrono.

Arquitectura de Computadoras 2011

Universidad Carlos III de Madrid Grado en Ingeniería Informática Tecnología de Computadores

Arquitectura de computadoras

Laboratorio 2 Puerto con Handshake y Recepción serie

Periféricos Interfaces y Buses

Aplicaciones con Lógica L Programable en Comunicaciones

TARJETA DE ENTRADAS Y CONTADORES RÁPIDOS (MTC-3052)

Análisis y Síntesis. Introducción a los Sistemas Lógicos y Digitales 2016

LECCIÓN Nº 08 DISEÑO DE SISTEMAS SECUENCIALES CON REGISTROS

ELECTRÓNICA DIGITAL INGENIERÍA DE TELECOMUNICACIÓN

MÓDULO Nº7 REGISTROS Y CONTADORES

UNIVERSIDAD CARLOS III DE MADRID. Ejercicios de VHDL. Circuitos Integrados y Microelectrónica. Luis Entrena. Celia López.

Módulo de 16 entradas digitales modbus:

13-Bloques Básicos Secuenciales

SSI INFORMACIÓN GENERAL ENCODERS ABSOLUTOS Y ABSOLUTOS PROGRAMABLES

BOLETIN 7: Subsistemas secuenciales

Curso de. Módulo 10 MSSP: I2C. Ricardo Gómez González Andrés Prieto-Moreno Torres

Tema 7. Entrada / Salida

Tema 2: Circuitos Secuenciales

Integración de Equipos para Comunicaciones

DISEÑO DE SISTEMAS ELECTRÓNICOS DIGITALES AVANZADOS

ARQUITECTURA DE SISTEMAS PARALELOS (3º ING. TÉC. INFORMATICA DE SISTEMAS) PRACTICA (CURSO 2004/05) ENTRADA/SALIDA.

PRÁCTICA 2: SISTEMAS DIGITALES

Maqueta: Adaptador de teclado del PC

Memoria y Entrada/Salida Tecnología Organización - Expansión

Contador Universal CU13. Contador Universal. Out_bcd3 Out_bcd2 Out_bcd1 Out_bcd0 Overflow End of Conversion. Medidor de Frecuencias

CURSO: Electrónica digital UNIDAD III: CIRCUITOS SECUENCIALES - TEORÍA

Laboratorio 5: Tarjeta de Desarrollo Spartan-3

Módulo 2 n. Figura 2.1. Simbología de un contador

Manual de Usuario BALANZA ELECTRÓNICA AUR E03P / AUE E06P / AUE E15P

MODULO TRANSCEPTOR DE DATOS PUNTO A PUNTO WIZ-434-SML-IA

Problemario Electrónica Digital

MÁQUINAS DE ESTADO FINITAS. Dpto. Ingeniería Eléctrica, Electrónica, Automática y Física Aplicada

Registros y latches multibit. EL-3213 Circuitos Digitales I. Registro de 8 bits (octal register) Otros registros de 8 bits. 74x175

Organización de Computadoras. Clase 4

Sensores inalámbricos de bajo

EL-3213 Circuitos Digitales I. Registros y latches multibit

APUNTES DE INSTRUMENTACIÓN PARA ELECTRÓNICA DIGITAL

MICROCONTROLADORES PIC

Interface paralelo programable 8255.

Datos técnicos. Datos generales

PAD Manual de instalación

----*************************************************************************

UNIDAD 7: SENSORES INFRARROJOS (IR)

Análisis y Síntesis. Introducción a los Sistemas Lógicos y Digitales 2008

UART. Diseño de Sistemas con FPGA 1er cuatrimestre 2013 Patricia Borensztejn

Comunicación Serial: Conceptos Generales

Diseños con entrada/salida de audio. José Manuel Mendías Cuadros Hortensia Mecha López

(Tecla Shift pequeña) ó (Tecla Shift grande) Estas teclas, también tienen la función de poner la letra en Mayúsculas.

HOJA DE PROBLEMAS 8: ELEMENTOS DE MEMORIA

Estructura interna de una memoria RAM estática

Problema resuelto de Máquinas de estado.

Estructura interna de una memoria RAM estática

ESTRUCTURA DE COMPUTADORES I (Capítulo 16:El Teclado) 1/5 16-EL TECLADO

INSTRUMENTACIÓN AVANZADA Departamento de Ingeniería Eléctrica y Electromecánica Facultad de Ingeniería Universidad Nacional de Mar del Plata

INSTRUMENTACIÓN AVANZADA Departamento de Ingeniería Eléctrica y Electromecánica Facultad de Ingeniería Universidad Nacional de Mar del Plata

INSTRUMENTACIÓN AVANZADA Departamento de Ingeniería Eléctrica y Electromecánica Facultad de Ingeniería Universidad Nacional de Mar del Plata

Prof: Zulay Franco Puerto Ordaz, Agosto

EDU_NA005 Mouse PS/2 Emulado por el EDUKIT08...

CONTADORES. Son sistemas secuenciales con una entrada de pulsos que representan en su salida la cantidad de pulsos dados.

INTRODUCCIÓN. Comunicación Serial.


TUTORIAL DE ENTRADA/SALIDA

1.5 Técnicas de comunicaciones de datos

MANUAL DE TARJETA POKER GAME P5

ESCUELA UNIVERSITARIA DE INFORMÁTICA DE SISTEMAS UNIVERSIDAD NACIONAL DE EDUCACIÓN A DISTANCIA. Apuntes de la asignatura de: 3(5,)e5,&26

Telegrama TP1. KNX Association

Circuitos Secuenciales: concepto de estado

Universidad Carlos III de Madrid Electrónica Digital Ejercicios

CIRCUITOS ELECTRÓNICOS DIGITALES ESCUELA POLITÉCNICA SUPERIOR UNIVERSIDAD AUTÓNOMA DE MADRID

Ejercicios de repaso. 1.- Diseñe un contador asíncrono ascendente módulo 16 utilizando 74XX76. Debe poseer RESET externo.

Definición del Interfaz entre los descodificadores y los módulos de extensión externos (en lo sucesivo llamados módulos-susi ).

CURSO: MICROCONTROLADORES UNIDAD 4: COMUNICACIÓN SERIE- ARDUINO PROFESOR: JORGE ANTONIO POLANÍA

CIRCUITOS ELECTRÓNICOS DIGITALES ESCUELA POLITÉCNICA SUPERIOR UNIVERSIDAD AUTÓNOMA DE MADRID

Práctica 3: Sistemas secuenciales sincrónicos

Relación de Problemas de Circuitos Secuenciales

Titulación: Grado en Ingeniería Informática Asignatura: Fundamentos de Computadores. Bloque 1: Introducción Tema 1: Introducción a los computadores

05/06. Instrumentación programable. Juan A. Montiel-Nelson. Last Revision:

Laboratorio 5: Diseño Jerárquico de Sistemas Digitales

Unidad de conexión de encoder S.S.I. CJ1W-CTS21. Introducción Hardware Conexionado Puesta en marcha Configuración Operación

TEMA 5.3 SISTEMAS DIGITALES

Transcripción:

1 tema 6: pulsadores, teclados, ratones Diseño o Automático tico de Sistemas José Manuel Mendías Cuadros Dpto. Arquitectura de Computadores y Automática tica Universidad Complutense de Madrid 2 interruptores y pulsadores La lectura del estado de un interruptor mecánico por parte de un sistema digital (lo suficientemente rápido) presenta dos problemas: Asincronismo: el cambio de estado del interruptor puede ocurrir en cualquier momento, pudiento llevar al sistema a un estado metaestable. Presencia de rebotes: cuando el estado del interruptor cambia, la señal presenta un vaiven transitorio. 10KΩ pulsadores switches rebote de presión 0.3 ms 100 ms (min) rebote de depresión 0.1 ms 50 ms 0.5 ms ~ µs Synchronizer Debouncer Deb Deb

3 eliminador de rebotes Debouncer Deb rst no no esperafinreboted esperapresion esperadepresion Deb* no esperafinrebotep Deb* puertos: : in : 1 bit : log. negativa : in : 1 bit : lógica positiva Deb : out : 1 bit : log. negativa := 1 : out : 1 bit : log. positiva := 0 estado inicial: esperapresion no CONT 0-N timer keypads Un teclado es una colección de pulsadores cuyo estado puede ser conocido individualmente La configuraciones mas comunes son: teclados lineales: cada pulsador tiene una línea dedicada para conocer su estado teclados matriciales: los pulsadores se disponen en filas y columnas, de manera que los pulsadores de la misma fila compartan la línea que permite conocer su estado pulsador V cc V cc V cc S 0 S 1 S n R 0 R 1 R m poner a 0 todas las columnas esperar a que alguna fila valga 0 esperar fin de rebotes poner a 0 una única columna dejando el resto a 1 vale 0 la fila SI NO Algoritmo de detección de pulsaciones en un teclado matricial teclado maticial generar el código de tecla

5 interfaz de keypad (i) timer S R S scaner Sync 0111 0XXX 0001 0111 10XX 0100 0111 110X 0111 0111 1110 1110 1011 0XXX 0010 1011 10XX 0101 1011 110X 1000 1011 1110 0000 10KΩ 1 2 3 A 5 6 B 7 8 9 C * 0 # D keypad R synchronizer 1101 0XXX 0011 1101 10XX 0110 1101 110X 1001 1101 1110 1111 1110 0XXX 1010 1110 10XX 1011 1110 110X 1100 1110 1110 1101 resto resto XXXX encoder keycode SS R L C codereg keycode keypressed 6 interfaz de keypad (ii) Sync puertos: : in : 1 bit : log. negativa Sync : in : 1 bit : log. negativa : in : 1 bit : lógica positiva : out : 1 bit : log. positiva := 0 ketpressed : out : 1 bit : log. positiva := 0 S : out : bits := 0000 estado inicial: esperapresion esperapresión S 0000 * Sync* * * esperafinreboted S 0000 Sync* Sync esperadepresión S 0000 keypressed * esperafinrebotep S 0000 * scancol1 S 0111 * scancol S 1110 scancol3 S 1101 scancol2 S 1011

7 interfaz de keypad (iii) El interfaz descrito funciona correctamente cuando se pulsa una sola tecla: Si se pulsan varias teclas de la misma fila, reconoce la ubicada más a la izquierda Si se pulsan varias teclas de la misma columna, reconoce la ubicada más arriba. No obstante, puede darse el caso de que dos o más teclas estén pulsadas simultáneamente porque Se pulsen conscientemente (caso de teclas como SHIFT, ALT, etc) Se esté tecleando muy rápidamente La capacidad de detectar más de una pulsación simultánea se llama key roll-over: Por ejempo, un controlador capaz de detectar una segunda tecla pulsada cuando aún no se ha levantado la primera se dice que tiene 2 key roll-over. Requisitos: Una cola de registros de códigos (codereg) Un codificador completo de códigos de scan y retorno. Una máquina de estados que cheque todas las filas. La espera de presiones y depresiones individualizadas 8 teclados y ratones PS/2 (i) Un teclado o ratón tipo AT-PS/2 utiliza para comunicarse con un sistema un protocolo bidireccional serie síncrono de 11 bits usa dos lineas a colector abierto con resitencias de pullup TTL (por defecto en ALTA): CLK, para transmitir el reloj de sincronización DATA, para transmitir los datos serie el reloj siempre debe ser generado por el dispositivo con una frecuencia entre 10 y 30 KHz. aunque puede ser forzado a BAJA por el sistema. los datos pueden ser generados por el dispositivo o por el sistema el formato de datos es: 1 bit de start (0), 8 bits de datos (primero LSB), 1 bit paridad impar, 1 bit de stop (1) 5 Pin DIN 1. KBD Clock 2. KBD Data 3. N/C. GND 5. (VCC) PS/2 1. KBD Clock 2. GND 3. KBD Data. N/C 5. (VCC) 6. N/C

9 teclados y ratones PS/2 (ii( ii) Transmisión de dispositivo a sistema: transmisión de datos El dispositivo inicia una transmisión cuando ha sucedido un evento en el periférico o ha recibido una solicitud del sistema comprueba que CLK y DATA estan en ALTA Una vez iniciada la trensferencia, el sistema debe muestrear la señal de DATA a flancos de bajada de CLK. puede abortarla antes del 10º ciclo fijando CLK a BAJA, típicamente el dispositivo chequea cada 100 ms la señal de CLK la retransmisión de un dato abortado debe ser solicitada por el sistema El sistema puede inhabilitar las transmisiones fijando CLK a BAJA, en cuyo caso los datos se almacenan temporalmente en el dispositivo. Si el sistema además fija DATA a BAJA indica al dispositivo su intención de enviarle información. 10 teclados y ratones PS/2 (iii( iii) Transmisión de dispositivo a sistema: teclado Cada vez que se pulsa una tecla, el dispositivo envía de 3 a n códigos: Scancodes de presión: indicando el momento y la tecla pulsada, si la tecla permanece pulsada el teclado reenvía el código periódicamente (intervalo programable). Código de depresión (F0): indicando el momento en que se ha dejado de pulsar una tecla. Scancodes de depresión: indicando la tecla que se ha dejado de pulsar. Los scancodes compuestos y el código de depresión junto con los scancodes correspondientes se envían en ráfaga. PS2 scancodes

11 teclados y ratones PS/2 (iv( iv) Transmisión de dispositivo a sistema: ratón Cada vez que se mueve el ratón o cambia el estado de los pulsadores, el dispositivo envía una ráfaga de 3 códigos: Información de estado del ratón bit 0, overflow vertical bit 1, overflow horizontal bit 2, sentido vertical (0 positivo, 1 negativo) bit 3, sentido horizontal (0 positivo, 1 negativo) bit, 5, 10 bit 6, estado pulsador derecho (1 pulsado) bit 7, estado pulsador izquierdo (1 pulsado) Información de desplazamiento horizontal 8 bits indicando su magnitud (primero el MSB) Información de desplazamiento vertical 8 bits indicando su magnitud (primero el MSB) 12 teclados y ratones PS/2 (v) Transmisión de sistema a dispositivo: transmisión de comandos El sistema puede iniciar una transmisión hacia el dispositivo fijando DATA a baja sin embargo para evitar evitar colisiones con los posibles datos en transmisión es conveniente fijar primero CLK a BAJA durante al menos 60 μs y no después del 10º ciclo. estando DATA a BAJA y tras poner CLK a ALTA, el dispositivo comienzará a generar la señal de reloj antes de 10 ms, provocando el primer flanco de bajada El dispositivo muestrea la señal DATA a cada flanco de bajada, por lo que el sistema debe poner un nuevo bit cuando CLK está en ALTA, que debe estar estable 1μs después del flanco de subida. tras mandar el bit de paridad, el sistema debe liberar la línea de datos, (que subirá a ALTA, bit de stop), si no lo hace el interfaz sigue mandando pulsos por CLK El interfaz reconoce la recepción de datos poniendo la línea de DATA a BAJA durante el 11º ciclo

13 Transmisión de sistema a dispositivo: códigos teclados y ratones PS/2 (vi( vi) Comandos más interesantes: Set/reset indicadores de estado (ED), controla los LEDs de estado del teclado, responde con ACK y espera el byte de estado: (b0,b1,b2,0,0,0,0,0) donde b0 scrolllock, b1, NumLock, b2 CapsLock, mandando un 1 cambia el indicador. Disable (F5), resetea teclado, suspende escaneado, devuelve ACK Echo (EE), solicita que el dispositivo reponda con ECHO Enable (F), borra buffer, devuelve ACK Resend (FE), solicita la retransmisión del último scancode Reset (FF), resetea el dispositivo, inicia power-on test, responde con el power-on byte Intervalo/retardo de autorepetición (F3), responde con ACK y espera con un byte de b6- b7 (00=250 ms, 11=1000ms), b..b0 (00000=30/s, 11111=2/s), vuelve a responder con ACK. Códigos de respuesta del dispositivo: ACK (FA), respuesta a algunos comandos power-on satisfactorio (AA) ECHO (EE) Resend (FE), el dispositivo solicita el reenvío del comando Error (00 ó FF), error o desbordamiento del buffer 1 interfaz de teclado PS2 (i) 80 µs 10-20 KHz start paridad data 0 data 1 data 2 data 3 data data 5 data 6 data 7 stop impar 20 µs presión 15 µs depresión scancode scancode F0 100 ms 100 ms scancode ps2clk ps2data Interfaz de PS2 8 data newdata newdataack coste para XC010XL 10 CLBs 2 FF (9 en IOBs) 17 LUTs de entradas 2 LUTs de 3 entradas rst

15 interfaz de teclado PS2 (ii( ii) ps2clk synchronizer edgedetector sampleps2data goodparity ps2data L C SHIFTER ps2datareg 11 shtps2data clearps2data lastbitrcv 8 validdata lddata DataReg data 16 interfaz de teclado PS2 (iii( iii) FallingEdge tipo Moore (2 biestables) RisingEdge Det. flancos FallingEdge RisingEdge tipo Mealy (1 biestable) FallingEdge rst rst D Q D Q tipo Moore RisingEdge

17 interfaz de teclado PS2 (iv( iv) no datavalid retrasan el flanco ciclos = 320 ns << 20 µs esperandodatos ps2clk synchronizer edgedetector SHIFTER ps2data ps2datareg 11 L C validdata newdataack lddata esperandoack newdata no newdataack validdata 8 lddata datareg data