tema 6: pulsadores, teclados, ratones

1 tema 6: pulsadores, teclados, ratones Diseñ Diseño Automá Automático de Sistemas José José Manuel Mendí Mendías Cuadros Dpto. Arquitectura de Comp

7 downloads 138 Views 199KB Size

Recommend Stories


3HULIpULFRVGHHQWUDGD 4.1 TECLADOS
 3HULIpULFRVGHHQWUDGD 4.1 TECLADOS Se denomina «teclado» al género de periféricos de entrada, constituidos por un conjunto de botones pulsadores,

TEMA 6. Criterios de evaluación. Contenidos TEMA 6
TEMA 6 TEMA 6 Objetivos • • • • • • • • • Leer un texto narrativo con fluidez. Comprender un cuento. Identificar palabras derivadas. Conocer las dif

Tema 6. Ácidos nucleicos
Tema 6. Ácidos nucleicos. Contenidos: 1. 2. Características químicas. Nucleósidos y nucleótidos. a. Nucleósidos. b. Nucleótidos. c. Nucleótidos de in

Story Transcript

1

tema 6: pulsadores, teclados, ratones

Diseñ Diseño Automá Automático de Sistemas José José Manuel Mendí Mendías Cuadros Dpto. Arquitectura de Computadores y Automá Automá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. rebote de depresión

© J.M. Mendías, 2001

rebote de presión

+5V

pulsadores

0.3 ms

switches

50 ms ~ µs

x

Debouncer

Synchronizer

10KΩ

xDeb x

xDeb

diseñ diseño automá automático de sistemas

100 ms (min)

0.1 ms 0.5 ms

3

eliminador de rebotes Debouncer

x

xDeb

x clk

rst

no x esperaPresion

timerEnd

startTimer

© J.M. Mendías, 2001

no timerEnd

no timerEnd esperaFinReboteP

esperaFinReboteD

xDeb* x

esperaDepresion

startTimer puertos: x : in : 1 bit : log. negativa timerEnd : in : 1 bit : lógica positiva xDeb : out : 1 bit : log. negativa := 1 startTimer : out : 1 bit : log. positiva := 0 estado inicial: esperaPresion

timerEnd

xDeb* no x CONT 0-N startTimer

timer

timerEnd

diseñ diseño automá automático de sistemas

4

keypads ⌦ Un teclado es una colección de pulsadores cuyo estado puede ser conocido individualmente ⌦ La configuraciones mas comunes son:

pulsador

S0

S1

Sn

poner a 0 todas las columnas

esperar a que alguna fila valga 0 Vcc

R0

Vcc

R1

esperar fin de rebotes

poner a 0 una única columna dejando el resto a 1

Vcc

Rm

vale 0 la fila

NO

SI teclado maticial

diseñ diseño automá automático de sistemas

generar el código de tecla

Algoritmo de detección de pulsaciones en un teclado matricial

© J.M. Mendías, 2001

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

5

interfaz de keypad (i) S

R

0111 0111 0111 0111

0XXX 10XX 110X 1110

0001 0100 0111 1110

1011 1011 1011 1011

0XXX 10XX 110X 1110

0010 0101 1000 0000

1101 1101 1101 1101

0XXX 10XX 110X 1110

0011 0110 1001 1111

1110 1110 1110 1110

0XXX 10XX 110X 1110

1010 1011 1100 1101

timer startTimer

timerEnd xSync

scaner S x 1 2 3 A

+5V

*

4 5 6 B

synchronizer

+5V +5V +5V

R

7 8 9 C

keypad

0 # D 4

ldCode

© J.M. Mendías, 2001

10KΩ

4

resto resto

R

LC

4 S

4

codeReg

encoder

S

XXXX

4

4

keyCode

keyCode keyPressed

ldCode

diseñ diseño automá automático de sistemas

6

interfaz de keypad (ii) xSync

© J.M. Mendías, 2001

puertos: x : in : 1 bit : log. negativa xSync : in : 1 bit : log. negativa timerEnd : in : 1 bit : lógica positiva startTimer : out : 1 bit : log. positiva := 0 ketPressed : out : 1 bit : log. positiva := 0 S : out : 4 bits := “0000” estado inicial: esperaPresion

xSync* esperaPresión

startTimer

S ← “0000” timerEnd*

timerEnd

esperaFinReboteD

esperaFinReboteP

S ← “0000”

S ← “0000”

xSync*

x

timerEnd*

xSync startTimer

esperaDepresión

timerEnd x* ldCode

S ← “0000” keyPressed

x*

x*

ldCode

scanCol1 S ← “0111”

x* ldCode

x

ldCode scanCol4 S ← “1110”

scanCol3 x

diseñ diseño automá automático de sistemas

S ← “1101”

scanCol2 x

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.

© J.M. Mendías, 2001

⌦ 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

diseñ diseño automá automático de sistemas

8

teclados y ratones PS/2 (i)

© J.M. Mendías, 2001

⌦ 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 +5V (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 4. GND 5. +5V (VCC)

diseñ diseño automá automático de sistemas

PS/2

1. KBD Clock 2. GND 3. KBD Data 4. N/C 5. +5V (VCC) 6. N/C

9

teclados y ratones PS/2 (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

© J.M. Mendías, 2001

⌦ 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. diseñ diseño automá automático de sistemas

10

teclados y ratones PS/2 (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.

© J.M. Mendías, 2001

⌦ Los scancodes compuestos y el código de depresión junto con los scancodes correspondientes se envían en ráfaga.

PS2 scancodes

diseñ diseño automá automático de sistemas

11

teclados y ratones PS/2 (iv) Transmisión de dispositivo a sistema: ratón

© J.M. Mendías, 2001

⌦ 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 4, 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)

diseñ diseño automá automático de sistemas

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

© J.M. Mendías, 2001

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

diseñ diseño automá automático de sistemas

13

teclados y ratones PS/2 (vi) Transmisión de sistema a dispositivo: códigos ⌦ 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 © J.M. Mendías, 2001

Echo (EE), solicita que el dispositivo reponda con ECHO Enable (F4), 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 b6b7 (00=250 ms, 11=1000ms), b4..b0 (00000=30x/s, 11111=2x/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

diseñ diseño automá automático de sistemas

14

interfaz de teclado PS2 (i) 80 µs 10 - 20 KHz

data0

start

data1

data2

data3

data4

data5

data6

data7

paridad impar

stop

© J.M. Mendías, 2001

20 µs 15 µs

presión

scancode

F0

scancode

100 ms

ps2Clk

coste para XC4010XL data

Interfaz de PS2

newData newDataAck

clk

rst

diseñ diseño automá automático de sistemas

scancode

100 ms 8

ps2Data

depresión

10 CLBs 24 FF (9 en IOBs) 17 LUTs de 4 entradas 2 LUTs de 3 entradas

15

interfaz de teclado PS2 (ii)

ps2Clk

synchronizer

edgeDetector

samplePs2Data

© J.M. Mendías, 2001

SHIFTER shtPs2Data clearPs2Data

ps2DataReg

ps2Data

11

LC

goodParity

lastBitRcv

8 validData ldData

DataReg

data

diseñ diseño automá automático de sistemas

16

interfaz de teclado PS2 (iii) clk x tipo Moore (2 biestables)

xFallingEdge

© J.M. Mendías, 2001

xRisingEdge

x

tipo Mealy (1 biestable)

xFallingEdge

Det. flancos

xRisingEdge xFallingEdge

clk

rst

rst

x

D

Q

D

Q

tipo Moore

clk xRisingEdge

diseñ diseño automá automático de sistemas

17

interfaz de teclado PS2 (iv) no dataValid

retrasan el flanco 4 ciclos = 320 ns

Get in touch

Social

© Copyright 2013 - 2024 MYDOKUMENT.COM - All rights reserved.