370 likes | 570 Views
4. Dispositivos de posicionamiento. Fundamentos físicos y clasificación. Estructura y funcionamiento de un ratón. Ejemplo de aplicación. 4. Dispositivos de posicionamiento. Bus Serie PS/2. Mediante cables. Interconexión. Radiofrecuencia Infrarrojos. Inalámbricos.
E N D
4. Dispositivos de posicionamiento. • Fundamentos físicos y clasificación. • Estructura y funcionamiento de un ratón. • Ejemplo de aplicación. 4. Dispositivos de posicionamiento.
Bus • Serie • PS/2 Mediante cables Interconexión • Radiofrecuencia • Infrarrojos Inalámbricos 4.1. Fundamentos físicos y clasificación. • Bola • Sensores de contacto Mecánicos Detección del movimiento Ópticos (alfombrilla especial) 4.1. Fundamentos físicos y clasificación.
4.2. Estructura y funcionamiento de un ratón. 4.2. Estructura y funcionamiento de un ratón.
+5 V +5 V +5 V S1 S2 S1 S2 S1 S2 Codificador vertical Codificador horizontal Izquierda Derecha 4.2. Estructura y funcionamiento de un ratón.
CD = Carrier detect DSR = Data Set Ready RxD = Received Data RTS = Request to Send TxD = Transmitted Data CTS = Clear to Send DTR = Data Terminal Ready RI = Ring Indicator Gnd = Masa Comunicación entre ratón y PC. PC Ratón TxD RxD DTR RTS Gnd RxD TxD DTR (alimentación) RTS Gnd 4.2. Estructura y funcionamiento de un ratón.
1 I D Y7Y6 X7X6 0 X5X4X3X2X1X0 0 Y5Y4Y3Y2Y1Y0 El formato Microsoft • Según la interfaz de comunicación: • Capa física: • Capa de enlace de datos. X7 .. X0 = Desplazamiento en X (Mickeys) Y7 .. Y0 = Desplazamiento en Y (Mickeys) L = 1 Botón izquierdo pulsado D = 1 Botón derecho pulsado 4.2. Estructura y funcionamiento de un ratón.
El formato Microsoft 4.2. Estructura y funcionamiento de un ratón.
Modos de vídeo. La pantalla virtual del ratón. Pantalla virtual Modo texto (320, 96) (40,12) 640 x 200 80 x 25 (Tamaño casilla de carácter 8 x 8 pixels) 4.2. Estructura y funcionamiento de un ratón.
ATRIBUTOS ASCII Byte impar Byte par Modo texto RAM 0000:0000 0 1 78 79 FILA 0 B800:0000 RAM de Vídeo FILA 24 FFFF:FFFF • b0..b3: Color del carácter ( f f f f ) • b4..b6: Color de fondo ( b b b ) • b7: Intermitencia ( B ) 4.2. Estructura y funcionamiento de un ratón.
B b b b f f f f ASCII Byte impar Byte par Modo texto: Atributos del carácter. b b b Color f f f f . Gris 1 0 0 0 = 8 Azul claro 1 0 0 1 = 9 Verde claro 1 0 1 0 = 10 Cyan claro 1 0 1 1 = 11 Rosa 1 1 0 0 = 12 Magenta claro 1 1 0 1 = 13 Amarillo 1 1 1 0 = 14 Negro 1 1 1 1 = 15 Color f f f f . Negro 0 0 0 0 = 0 Azul 0 0 0 1 = 1 Verde 0 0 1 0 = 2 Cyan 0 0 1 1 = 3 Rojo 0 1 0 0 = 4 Magenta 0 1 0 1 = 5 Marrón 0 1 1 0 = 6 Blanco 0 1 1 1 = 7 4.2. Estructura y funcionamiento de un ratón.
Modo texto. Máscaras de cursor y pantalla. Puntero del ratón Memoria de pantalla Memoria de pantalla Máscara de Pantalla Máscara de Cursor = AND XOR Bit en pantalla Screen Mask Cursor Mask Bit resultante b 0 0 0 b 0 1 1 b 1 0 b b 1 1 /b (invertido) 4.2. Estructura y funcionamiento de un ratón.
Modo texto. Máscaras de cursor y pantalla. 0 0 0 0 1 1 1 0 0 1 0 0 0 0 0 1 ‘A’ = 41h Amarillo sobre Negro AND 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 Máscara de pantalla (Screen Mask) = 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 XOR 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 Máscara de cursor (Cursor Mask) = 0 0 0 0 1 1 1 0 0 0 0 1 1 0 0 0 Amarillo sobre Negro 4.2. Estructura y funcionamiento de un ratón.
Modo texto. Máscaras de cursor y pantalla. 0 0 0 0 1 1 1 0 0 1 0 0 0 0 0 1 ‘A’ = 41h Amarillo sobre Negro AND 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 Máscara de pantalla (Screen Mask) = 0 0 0 0 1 1 1 0 0 1 0 0 0 0 0 1 XOR 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 Máscara de cursor (Cursor Mask) = 1 1 1 1 0 0 0 1 0 1 0 0 0 0 0 1 ‘A’ Azul sobre Blanco (parpadeo) 4.2. Estructura y funcionamiento de un ratón.
Modo gráfico Pantalla virtual Modo gráfico (320, 96) (320, 96) 640 x 200 640 x 200 4.2. Estructura y funcionamiento de un ratón.
Modo gráfico. Máscaras de cursor y pantalla. Cursor 16x16 pixeles: Blanco/negro 9Fh FFH 8Fh FFh 87h FFh 83h FFh 81h FFh 80h FFh 80h 7Fh 80h 3Fh 80h 1Fh 80h FFh 88h 7Fh 98h 7Fh FCh 3Fh FCh 3Fh FEh 3Fh 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 1 0 0 0 0 1 1 1 1 1 1 1 1 0 0 1 1 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 1 1 1 1 1 11 1 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00h 00H 20h 00h 30h 00h 38h 00h 3Ch 00h 3Eh 00h 3Fh 00h 3Fh 80h 3Fh C0h 3Eh 00h 33h 00h 23h 00h 01h 80h 01h 80h 00h 00h Máscara de pantalla Máscara de cursor 4.2. Estructura y funcionamiento de un ratón.
00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF 33 33 33 33 33 33 33 33 33 33 33 33 33 00 00 00 FF 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FF 00 33 88 88 88 88 88 88 88 88 33 00 00 00 00 00 FF FF 00 00 00 00 00 00 00 00 FF FF FF FF FF FF 00 00 33 88 88 88 88 88 88 33 00 00 00 00 00 00 00 00 00 33 88 88 88 88 88 33 33 33 00 00 00 00 FF FF FF 00 00 00 00 00 00 00 00 00 FF FF FF FF 00 00 00 00 33 88 88 88 88 88 88 88 33 33 00 00 FF FF FF FF 00 00 00 00 00 00 00 00 00 00 FF FF 00 00 00 00 00 33 88 88 88 88 88 88 88 88 33 00 FF FF FF FF FF 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 33 88 33 33 33 33 33 88 88 33 00 00 00 00 00 00 00 33 33 00 00 00 00 33 33 00 FF FF FF FF FF FF FF 00 00 FF FF FF FF 00 00 FF FF FF FF FF FF FF FF FF 00 FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00 33 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF Modo gráfico. Máscaras de cursor y pantalla. Cursor 16x16 pixeles: 256 COLORES Máscara de cursor Máscara de pantalla 4.2. Estructura y funcionamiento de un ratón.
El ‘Driver’ del ratón. Pantalla IRQ3 o IRQ4 Botones L, R desplazam. X desplazam. Y evento IRET Controlador de eventos INT 33h Resto del programa Esperar evento (ratón o teclado) 4.2. Estructura y funcionamiento de un ratón.
La interfaz del ratón. Int. Software 33h. • FUNCIÓN 00h Averiguar si hay un ratón conectado • La función cero devuelve el estado del hardware y de las rutinas de control del ratón. Si se ha instalado el ratón y se han cargado las rutinas, el valor retornado en el registro AX será FFFFh. Si la función retorna 0000h puede ocurrir que no hay ratón instalado o bien que no se han instalado las rutinas de control. • Entrada: AX = 00h • Salida : AX = FFFFh - Hay un ratón instalado • = 0000h - No hay un ratón instalado • BX = Número de botones del ratón • FUNCIÓN 01h Mostrar el cursor del ratón en la pantalla • Esta función incrementa el indicador interno del ratón en 1. Normalmente este contador tiene el valor –1; Después de la llamada a esta función el cursor del ratón se hace visible en la pantalla. A partir de ese momento sigue los movimiento del ratón. • Entrada: AX = 01h • Salida : No tiene 4.2. Estructura y funcionamiento de un ratón.
La interfaz del ratón. Int. Software 33h. • FUNCIÓN 02h Eliminar de la pantalla el cursor del ratón • Esta función decrementa el indicador interno del cursor en 1 y elimina de la pantalla el cursor del ratón. Aunque el cursor del ratón no sea visible, continua siguiendo los movimientos del ratón. • Entrada: AX = 02h • Salida : No tiene • FUNCIÓN 03h Obtener la posición y el estado de los botones • La llamada a esta función devuelve la posición actual del cursor del ratón en la pantalla y el estado de los diferentes botones del ratón. • Entrada: AX = 03h • Salida : BX = Estado de los botones del ratón • Bit Significado • 0 1 = pulsado botón izquierdo • 1 1 = pulsado botón derecho • 2 1 = pulsado botón central • 3–15 no tienen ningún significado • CX = Posición horizontal del cursor del ratón • DX = Posición vertical del cursor del ratón 4.2. Estructura y funcionamiento de un ratón.
La interfaz del ratón. Int. Software 33h. • FUNCIÓN 04h Situar el cursor del ratón en una posición determinada • Con la llamada a esta función se sitúa el cursor del ratón en una posición de la pantalla pasada como parámetro, sino ha sido desactivado utilizando la función 02h o si todavía no ha sido activado con la función 01h. • Entrada: AX = 04h • CX = Posición horizontal virtual del cursor del ratón • DX = Posición vertical virtual del cursor del ratón • Salida: No tiene • FUNCIÓN 07h Determinar zona de movimiento horizontal para el cursor • Define la zona de movimiento horizontal, dentro de la cual se puede mover el cursor del ratón. Para el usuario no existe ninguna posibilidad de situar el cursor del ratón fuera de esta zona. En combinación con la función 08h se puede definir una ventana de movimiento del ratón. • Entrada: AX = 07h • CX = Posición virtual mínima del cursor del ratón • DX = Posición virtual máxima del cursor del ratón • Salida: No tiene 4.2. Estructura y funcionamiento de un ratón.
La interfaz del ratón. Int. Software 33h. • FUNCIÓN 08h Determinar zona de movimiento vertical para el cursor • Define la zona de movimiento vertical, dentro de la cual se puede mover el cursor del ratón. Para el usuario no existe ninguna posibilidad de situar el cursor del ratón fuera de esta zona. En combinación con la función 07h se puede definir una ventana de movimiento del ratón. • Entrada: AX = 08h • CX = Posición vertical mínima del cursor del ratón • DX = Posición vertical máxima del cursor del ratón • Salida: No tiene • FUNCIÓN 09h Definir el cursor del ratón en el modo gráfico • Esta función determina la forma y el modo de proceder del cursor en modo gráfico. La mascara de pantalla y la mascara de cursor son suministradas en este orden dentro de un buffer1. • Entrada: AX = 09h • BX = Punto activo horizontal • CX = Punto activo vertical • ES = Dirección del segmento donde se encuentra el buffer1 • DX = Desplazamiento dentro del segmento • Salida: No tiene 4.2. Estructura y funcionamiento de un ratón.
La interfaz del ratón. Int. Software 33h. • FUNCIÓN 0Ah Definir el cursor del ratón en el modo texto • Define el cursor de ratón que se va a usar en modo texto (hardware o software) y también determina las mascaras de pantalla y cursor. • Entrada: AX = 0Ah • BX = Tipo de cursor • 0 Cursor software • 1 Cursor hardware • CX = Máscara de pantalla para el cursor software o línea inicial • del cursor hardware • DX = Máscara de cursor para el cursor software o línea final del • cursor hardware 4.2. Estructura y funcionamiento de un ratón.
La interfaz del ratón. Int. Software 33h. • FUNCIÓN 0Ch Instalar controlador de eventos • Esta función le permite a un programa instalar un controlador de eventos, que es llamado por el driver de ratón al ocurrir un evento determinado relacionado con el ratón. • Entrada: AX = 0Ch • Salida: CX = Eventos que deben provocar la llamada del controlador • Bit Significado • 0 1 = movimiento del ratón • 1 1 = pulsado botón izquierdo • 2 1 = liberado botón izquierdo • 3 1 = pulsado botón derecho • 4 1 = liberado botón derecho • 5 1 = pulsado botón central • 6 1 = liberado botón central • 7-15 No tienen significado • ES = Dirección del segmento donde se encuentra el código • ejecutable del controlador • DS = Desplazamiento dentro del segmento 4.2. Estructura y funcionamiento de un ratón.
La interfaz del ratón. Int. Software 33h. La siguiente información es suministrada por la rutina de servicio de la interrupción del ratón al controlador de eventos. • AX = Máscara de eventos. Los diferentes bits corresponden con los eventos, tal y como se indicaron en el registro CX durante la instalación del controlador. Los bits que están a 1 informan al controlador sobre cual es el evento por el cual ha sido llamado. • BX = Estado de los botones del ratón • Bit Significado • 0 1 = pulsado botón izquierdo • 1 1 = pulsado botón derecho • 2 1 = pulsado botón central • 3–15 no tienen ningún significado • CX = Posición horizontal virtual del ratón • DX = Posición vertical virtual del ratón • SI = Longitud del último movimiento hor. del ratón (mickeys) • DI = Longitud del último movimiento ver. del ratón (mickeys) • DS = Dirección del segmento de datos del driver de ratón 4.2. Estructura y funcionamiento de un ratón.
La interfaz del ratón. Int. Software 33h. • FUNCIÓN 0Fh Establecer relación entre mickeys y pixeles • Esta función define la relación entre mickeys y pixeles, que desde el punto de vista del usuario determina la sensibilidad del ratón, y por tanto la velocidad con la que se mueve el cursor del ratón en la pantalla. • Entrada: AX = 0Fh • CX = Número de mickeys horizontales • DX = Número de mickeys verticales • Salida: No tiene • FUNCIÓN 13h Fijar umbral para la duplicación de la velocidad de ratón • Esta función define el umbral en mickeys por segundo para el cual la velocidad del cursor en la pantalla pasa a duplicarse. El valor por defecto del umbral es 64. • Entrada: AX = 13h • DX = Valor del umbral (mickeys por segundo) • Salida: No tiene 4.2. Estructura y funcionamiento de un ratón.
4.3. Ejemplo de aplicación: ratón óptico. 4.3. Ejemplo de Aplicación.
Procesado en el ratón óptico: • Ratones ópticos en el mercado: • Agilent Technologies (HP). • Microsoft. 4.3. Ejemplo de Aplicación.
Sistema de adquisición de la imagen. Sensor óptico. CMOS (Complementary Meta-Oxide Semiconductor). • CMOS vs CCD (Charged Coupled Device) • Más rapidez que CCD. • Menor precisión. • Menor consumo y menor coste de fabricación. • DSP. • Identificación del movimiento mediante solapamiento de imágenes. • 18 MIPS. • Conversor de salida. • Modo PS/2. • Modo QUAD. 4.3. Ejemplo de Aplicación.
Implementación: Agilent HDNS-2000. 4.3. Ejemplo de Aplicación.
Protocolo de comunicación. • Según la interfaz de comunicación: • Puerto Serie. • Capa física:Protocolo Microsoft. • Capa de enlace de datos: Protocolo Microsoft. • PS/2. 4.3. Ejemplo de Aplicación.
Configuración para interfaz serie, USB, PS/2. 4.3. Ejemplo de Aplicación.
Protocolo de comunicación. • PS/2. • Capa física: • Ratón -> CPU • Cambio de la línea de datos en flancos de subida y lectura en flancos de bajada. • CPU -> ratón • El reloj lo pone el ratón. 4.3. Ejemplo de Aplicación.
XV XY XS YS 1 0 D I X7X6X5X4X3X2X1X0 Y7Y6Y5Y4Y3Y2Y1Y0 • Capa de enlace de datos. 1º byte. 2º byte. 3er byte. XV y YV = Desbordamiento XS y YS = Signo del desbordamiento X7 .. X0 = Desplazamiento en X (Mickeys) Y7 .. Y0 = Desplazamiento en Y (Mickeys) I = 1 Botón izquierdo pulsado D = 1 Botón derecho pulsado 4.3. Ejemplo de Aplicación.
1 0 Y5 Y4 Y3 Y2 Y1 Y0 1 0 X5 X4 X3 X2 X1 X0 1 0 B4 M R3 R2 R1R0 1 1 D I Y7 Y6 X7 X6 • Capa de enlace de datos por Logitech. 1º byte. 2º byte. 3er byte. 4º byte: Sólo se envía cuando se provoca un evento de scroll o del 3er y 4º botón pulsado XV y YV = Desbordamiento XS y YS = Signo del desbordamiento X7 .. X0 = Desplazamiento en X (Mickeys) Y7 .. Y0 = Desplazamiento en Y (Mickeys) I = 1 Botón izquierdo pulsado D = 1 Botón derecho pulsado 4.3. Ejemplo de Aplicación.