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



Documentos relacionados
Curso sobre Microcontroladores Familia HC9S08 de Freescale

Curso sobre Microcontroladores Familia HC9S08 de Freescale

TEMA EL BUS I 2 C (Inter Integrated Circuit Bus) I2C EN C

BUS I2C. IES Los Viveros Sevilla Dpto. Electrónica. 1

podemos enfocar al funcionamiento del robot, es decir la parte de electrónica. Para que el

Memoria 24LC256 I. I NTRODUCCIÓN

INGENIERIA EN MICROCONTROLADORES. Protocolo RS-485. Introducción

BUS I2C: IMPLEMENTACIÓN PRÁCTICA CON MICROCONTROLADORES PIC MEMORIAS EEPROM SERIE

Comunicación Serie IIC: Inter-Integrated Circuit

AD a 24Vcc 100mA (1) SI SI SI 100 mw 1Km (2) 256 bytes AD a 24Vcc 500mA (1) SI SI SI 500 mw 3km (2) 256 bytes

TRABAJO PRÁCTICO Nº 6: PUERTO SERIE

Como sacarle mayor provecho a las herramientas disponibles para la familia HC908

DIRECCIONAMIENTO IPv4

AUTOMATIZACIÓN INDUSTRIAL

INGENIERÍA AUTOMOTRIZ DISEÑO Y CONSTRUCCIÓN DE UN BANCO PARA COMPROBACIÓN Y DIAGNÓSTICO DE ECUS UTILIZADAS EN LA LÍNEA CHEVROLET EN ECUADOR

Buceando en el HC908...

Ejercicio 1. Desarrollar un pequeño juego para practicar mecanografía.

M95 SHIELD PARA ARDUINO. SIGMA ELECTRONICA

SISTEMA InfoSGA Manual de Actualización Mensajeros Radio Worldwide C.A Código Postal 1060

Curso sobre Microcontroladores Familia HC9S08 de Freescale

EL MODELO DE ESTRATIFICACIÓN POR CAPAS DE TCP/IP DE INTERNET

PROGRAMACION LADDER PLC BASICA. Descripción del lenguaje ladder

Paquete de regulación solar KNX, de RTS

Manual de usuario para Android de la aplicación PORTAFIRMAS MÓVIL

SPI. Teoría y Aplicaciones. INGENIERIA EN MICROCONTROLADORES Protocolo SPI( Serial Peripherical Interface) Protocolo

REGISTROS DE DESPLAZAMIENTO

Manual del usuario de GenLI-RS

Semana 3: Entorno de programación CX Programmer

Manual Usuario Programa Poscale

Modos de ahorro de energía a en los chips CMOS

Tema: Central telefónica (central office)

Sistema electrónico de presentación del informe conforme al artículo 15 del Convenio

Teclado sobre una PDA para Personas con Parálisis Cerebral

... partes internas del computador!...

Instructivo de Microsoft Windows

PUERTOS DE COMUNICACIÓN EXTERNOS TIPO VELOCIDAD DESCRIPCION GRAFICO

Bienvenido al sistema de Curriculum Digital CVDigital

Componentes: RESISTENCIAS FIJAS

Guía de uso de Moodle para participantes

Temas de electricidad II

Sistema Dupline de Guiado en Parking Interfaz para Modbus/RTU Modelo GP

SISTEMA DE BECAS AL EXTERIOR

Diapositiva 1. Por supuesto, también se puede hacer lo contrario. Un demultiplexor envía una señal a una de muchas líneas.

HERRAMIENTA DE CONTROL DE PLAGIOS MANUAL DE AYUDA

Guía rápida para la activación de la Alarma

ESPAÑOL BLACK-VS. Guía de uso e instalación

Práctica de laboratorio 5.5.1: Examen del gateway de un dispositivo

I2C. Ing. Pablo Martín Gomez

5. Despliegue en la PC

Escuela Universitaria Politécnica Grado en Ingeniería Informática Fundamentos de Programación II ENUNCIADO DE PRÁCTICAS CONVOCATORIA DE SEPTIEMBRE

PIC MICRO ESTUDIO Timer Monoestable/Biestable ajustable hasta 99H 59M 59S Timer 2T Clave:

Comunicación serial por Aircable Lessly Marlene Sabido Calzada. Seminario del Proyecto de Investigación en robótica Humanoide

Manual de Usuario. Railton da Encarnação Cardoso Teléfono:

INSTRUCTIVO PLATAFORMA ITM VIRTUAL itmvirtual.itm.edu.co

UTILIZACIÓN DE UNA CUENTA DE CORREO ELECTRÓNICO (NUEVO) Acceso al correo electrónico

Proceso Transaccional

TRANSFERIR ARCHIVOS E INSTALAR BIBLIOTECAS (librarys)

ÍNDICE 1.0 INTRODUCCIÓN INSTALACIÓN Inserción de la tarjeta en el dispositivo Inserción del dispositivo CAM tdt en el televisor 4

GUÍA DE INSTALACIÓN DE SOFTWARE SISTEMA MULFIFUNCIÓNAL DIGITAL INTRODUCCIÓN ANTES DE LA INSTALACIÓN

Descarga Automática. Manual de Usuario. Operador del Mercado Ibérico de Energía - Polo Español Alfonso XI, Madrid

Práctica 2NivelFisico: Estudio del nivel físico en la RS232 y en la RS485

CÓMO CREAR NUESTRO CATÁLOGO

GUÍA DE USUARIO TARJETA PERSONAL

Centro de Capacitación en Informática

Toplogías: Tipo Bus (barra), tipo Star (estrella), tipo Ring (anillo), tipo Starshaped Ring (Anillo estrellado): Forma general.

Programación De interfaces

JHAN EVER ANDRADE CASTRO

PROCESO DE SIMULACIÓN EN PROTEUS

Practica de Control y Programación de Robots ROBOT HERMES. Curso

Concepto y tipo de redes

INSTRUCCIÓN DE SERVICIO NOCIONES BÁSICAS PARA DIAGRAMAS DE FLUJO. MICROSOFT VISIO

SISTEMA ACADEMICO-ADMINISTRATIVO MANUAL BÁSICO

Cómo funciona un control proporcional derivativo (PD)?

Práctica 5. Circuitos digitales: control del nivel de un depósito

Control Teaching de un Brazo Robot de Cinco Grados de Libertad

5. Solución de Problemas

Diseño e Implementación de un Sistema de Monitoreo Inalámbrico para Sistemas Embebidos

Tableta OnePAD 970 Preguntas Frecuentes

Un kilobyte (KB) son 1024 bytes, un Megabyte (MB) son 1024 KB, un Gigabyte son 1024 Mb

PARKING ZONE v1.8 MANUAL DEL USUARIO

Módulo II - PowerPoint

SOFTWARE CSU-485. Para conectar el dispositivo CSU-485 lo podemos hacer de dos maneras:

Redes de Datos 1er parcial año 2010

Microchip Tips & Tricks...

Anexo B. Comunicaciones entre mc y PC

GUÍA PGA SISTEMA EXTRANJERO

Ensamblador. Interrupciones. Dentro de una computadora existen dos clases de interrupciones:

Twido Twido Windows Executive Loader Wizard Ayuda en pantalla. spa Versión 3.2

Guía de inicio rápido de Zello para TORQUE de Kyocera

RECAUDACIÓN COBROS BANCO BOLIVARIANO

Actividades para mejoras. Actividades donde se evalúa constantemente todo el proceso del proyecto para evitar errores y eficientar los procesos.

Servicio de tecnología de voz IP VoIP.

PROYECTO SAGA ENDESA, CHILECTRA, ENERSIS Y FILIALES LATAM MANUAL DEL PROVEEDOR

REGLAMENTO PARA EL USO DEL SISTEMA DE VIDEOCONFERENCIA DEL PODER JUDICIAL DE LA PROVINCIA DE CORRIENTES CONTENIDO FUNDAMENTO...

MODO DE EMPLEO. TechGrow AM-1 DETECTOR DE ALARMAS detector de alarmas inalámbrico para seguridad, vigilancia e información remota

Int. a las ciencias computacionales

En el presente capítulo se describe la programación del instrumento virtual y cómo

Portal INAPI INAPI Conecta Instructivo de Gestión en Sitio Web

Descripción técnica. Sicherheit-TES Versión 1.0

Configuración de las direcciones IP NOTA DE APLICACIÓN (M028E A)

Transcripción:

COMENTARIO TECNICO Mundo EDUKIT08 Por: Ing. Roberto Simone Ingeniero de aplicaciones Freescale robertosimone@arnet.com.ar Ing. Daniel Di Lella D.F.A.E www.edudevices.com.ar dilella@arnet.com.ar (MDO_EDUKIT_013) EDU_NA005 Mouse PS/2 Emulado por el EDUKIT08... Primera Parte. E.E.T. Henry Ford Coordinador: Prof. Pablo E. Lanfranco planfranco@henryford.esc.edu.ar Alumnos: - Nicolás Antuña - Gustavo Bentancor - Sacha Landesmann - Cristian Faroppa Esta serie de artículos estará dedicada a los muy buenos proyectos realizados por las diferentes escuelas técnicas que participaron de programas de entrenamiento con el sistema didáctico EDUKIT08. En esta primera serie de artículos presentaremos el proyecto realizado por los alumnos de la Escuela Técnica Henry Ford una de las escuelas participantes de dicho programa.

Descripción: La nota de aplicación trata el Protocolo PS/2 y la Interface PS/2 para Mouse, y como utilizar un microcontrolador de la familia HC908 para emular un Mouse PS/2. El EDUKIT08 se configura para utilizar uno de los puertos de uso general (CN4), que se conectará a un ordenador (PC o Computadora Portátil) con conector para Mouse PS/2. Las rutinas cargadas en el EDUKIT08 emulan un Mouse PS/2 estándar para engañar al ordenador haciéndole creer que hay conectado un Mouse, también se posee control del cursor con los interruptores SW1 a SW4 y el botón izquierdo del Mouse emulado por el interruptor SW7 (IRQ1). Las rutinas son fácilmente adaptables a cualquier HC908. El protocolo para Mouse/Teclado PS/2 Reseña Los mouses vienen en un sinnúmero de formas y tamaños (e interfaces). El tipo más común es probablemente el mouse PS/2, sin embargo los que utilizan el puerto USB están ganando popularidad. Hace unos años, los mouses con conector para puerto serie (RS-232) fueron también muy populares, pero los fabricantes de ordenadores están abandonándolo en apoyo de los dispositivos USB y PS/2. Este documento sólo se aplica a los mouses PS/2 y no se hará referencia a lo relacionado con teclados PS/2 que comparten el mismo protocolo. Conexión Física El puerto PS/2 para ratón utiliza el conector denominado mini-din de 6 pines. El estándar DIN fue creado por la Organización de Normalización Alemana (Deutsches Institut fuer Norm). Su sitio web está en http://www.din.de (el sitio está en alemán, pero la mayoría de sus páginas también están disponibles en Inglés.). Aquí se presenta un diagrama del conector PS/2 utilizado por los mouses: Macho Hembra Mini-DIN 6 pines (PS/2): Mouse Ordenador 1 Data 2 No implementado 3 Ground 4 Vcc (+5V) 5 Clock 6 No implementado

Interface eléctrica Vcc y Ground le proveen energía al mouse, la tensión de operación puede estar entre 4,5V y 5,5V. La corriente de consumo del mouse no debe superar los 275mA y se deben evitar picos de corriente, los cuales se presentan al conectar el mouse al ordenador encendido. Originalmente el mouse PS/2 no fue diseñado para conectarse con la computadora encendida. Es decir, si se desconecta el mouse y se lo vuelve a conectar este no responderá hasta que se reinicie el ordenador. Sin embargo, se consiguen mouses que permiten esta modalidad y se auto configuran al conectarse. Las líneas Data y Clock son ambas del tipo colector abierto con resistencias a Vcc (pullup). Una interface a "colector abierto" tiene dos estados: bajo, o de alta impedancia. Esto es útil para buses que pueden llegar enviar información cruzada al mismo tiempo y podrían llegar a quemarse los buffers de las las salidas. En el estado "bajo", el transistor conecta la línea a masa (ground). En "alta impedancia", la interfaz actúa como un circuito abierto y la línea no tiene un estado alto o bajo definido, por ello la resistencia de "pullup" se encarga de llevar el estado de la línea a alto si ninguno de los dispositivos (mouse o computadora) lo tienen en bajo. El valor de esta resistencia no es muy importante (1 ~ 10 kohms), un valor más alto de resistencia disminuye el consumo de energía y uno menor disminuye el tiempo de flanco de subida. Para este caso se utiliza la siguiente interface: +5V HC908 10K 10K PORTC.2 PORTC.3 PORTC.4 1K CLOCK DATA +V PS/2 10K GND PS/2 Para lograr que un microcontrolador que no posee salidas a colector abierto funcione como tal, se puede resolver de la siguiente manera: El estado lógico del puerto debe ajustarse con valor de salida 0, y el estado en el pin se podrá controlar cambiando la configuración del puerto poniéndolo como entrada o salida. Cuando lo ponemos como salida tendremos un estado bajo, pero cuando lo configuremos como entrada el estado será llevado a alto por la resistencia de pullup.

Comunicación. Descripción General El mouse PS/2 implementa un protocolo bidireccional serie sincrónico, el bus está en reposo (idle) cuando ambas líneas están en alto. Este es el único estado donde el mouse puede enviar información al ordenador. El ordenador siempre tiene el control sobre el bus, y puede inhibir la comunicación en cualquier momento llevando la línea de Clock a un estado bajo. El mouse es el que siempre genera la señal del reloj. Si el ordenador quiere enviar datos, primero debe inhibir la comunicación llevando la línea de Clock a un estado bajo. Luego lleva la línea Data a bajo y libera a Clock (alto). Este estado se denomina Request to Send (petición de envío) y le indica al mouse que empiece a generar pulsos de reloj. Estados del bus: Data = 1, Clock = 1 : En reposo (Idle) Data = 1, Clock = 0 : Comunicación Inhibida Data = 0, Clock = 1 : Petición de envío por parte de ordenador Todos los datos son enviados de a un byte por vez en un paquete de 11 a 12 bits con el siguiente formato: - 1 bit de arranque. Siempre vale 0-8 bits de datos. El bit menos significativo primero - 1 bit de paridad (paridad impar) - 1 bit de parada. Siempre vale 1-1 bit de reconocimiento (solo cuando el ordenador envía) El bit de paridad vale 1 si el número de 1 s en el byte de datos es una cantidad par y vale 0 si la cantidad es impar. La cantidad de 1 s que hay en el byte de datos de 8 bits junto con la paridad (en total 9 bits) siempre es impar (de ahí el nombre paridad impar). Esto sirve para detección de errores en la comunicación. El mouse debe chequear este bit y si es incorrecto debe responder como si hubiera recibido un comando equivocado. Los datos enviados del mouse al ordenador son leídos en el flanco de bajada de la señal de reloj, y los datos enviados desde el ordenador deben ser leídos por el mouse en el flanco de subida. El rango de frecuencia del reloj puede ir de 10KHz a 16,7KHz. Esto quiere decir que el reloj debe estar en alto de 30 a 50 microsegundos y bajo de 30 a 50 microsegundos. Cuando el mouse envía información se recomienda hacer el cambio de estado en la línea de datos de 15 a 25 microsegundos antes de que baje el reloj, y si los datos son enviados por el ordenador, conviene leerlos de 15 a 25 microsegundos antes de que el reloj suba.

Comunicación. Mouse a Ordenador El estado del bus para que el mouse pueda enviar información debe ser el de reposo (idle), como se menciona en el apartado anterior. Si la línea Clock está en bajo, es porque el ordenador está inhibiendo la comunicación y el mouse entonces debe mantener los datos a enviar y debe esperar a que salga de ese estado para enviar la información. Clock debe estar continuamente en alto por al menos 50 microsegundos antes de que el mouse pueda comenzar a transmitir. Como se mencionó antes, el paquete de bits que será enviado al ordenador consiste en un conjunto de 11bits (1 bit de arranque, 8 bits de datos, 1 bit de paridad y 1 bit de parada). El mouse debe escribir los datos mientras la línea Clock está en alto y el ordenador los leerá mientras Clock está en bajo. La siguiente figura muestra el timing de la comunicación: El tiempo desde el flanco de subida del reloj al momento de cambiar la línea de datos debe ser al menos de 5 microsegundos, y el tiempo desde el cambio de datos al flanco de caída del reloj debe ser al menos 5 microsegundos y no más grande que 25 microsegundos. El ordenador puede inhibir la comunicación en cualquier momento poniendo en bajo la línea de Clock por al menos 100 microsegundos. Si la transmisión es inhibida antes 11avo pulso de reloj, el mouse deberá enviar nuevamente el paquete de datos completo que estaba enviando al momento de la inhibición. Esto quiere decir que si el mouse estaba enviando un paquete de tres bytes y la comunicación quedó inhibida durante el envío del tercer byte, se deberán enviar nuevamente los tres bytes. Si el ordenador inhibe la comunicación antes de la primera transición de alto a bajo de la línea de Clock o después del flanco de caída del último pulso de reloj, el mouse no deberá retransmitir ninguna información. Comunicación. Ordenador a Mouse La forma en que se envía el paquete de bits desde el ordenador al mouse es un tanto diferente al caso anterior. Si el ordenador quiere enviar datos primero debe poner el bus en el modo Request to Send (petición de envío), para ello primero debe inhibir la comunicación llevando la línea de Clock a 0 por al menos 100 microsegundos, luego lleva al bus al estado de Request to Send poniendo la línea Data en bajo y liberando la línea Clock (estado alto ).

El mouse debe chequear este estado de a intervalos que no superen los 10 milisegundos. Cuando el mouse detecte este estado comenzará a enviar pulsos de reloj. El ordenador cambia los datos cuando la línea Clock esta en bajo y el mouse los lee cuando Clock está en alto (al contrario de lo que sucedía con la comunicación Mouse a Ordenador). Después de que el bit de parada es recibido, el mouse deberá enviar un bit de reconocimiento llevando la línea Data a un estado bajo y luego generar el último pulso de reloj. Si el ordenador no libera la línea Data luego del último pulso de reloj, el mouse deberá seguir generando pulsos hasta que se libere Data, y luego se deberá comunicar el error al ordenador. El ordenador puede abortar la transmisión antes del 11avo pulso de reloj (bit de reconocimiento) llevando la línea Clock a 0 por al menos 100 microsegundos. La figura siguiente muestra el timing del bus mientras se envía información del ordenador al mouse. Observe el cambio en el timing durante el bit de reconocimiento (ACK), el mismo cambia cuando Clock está en alto y no cuando está en bajo como el resto de los bits, esto es porque ese bit lo envía el mouse. En la próxima figura puede observarse como manejan las líneas de datos y reloj, el mouse y ordenador por separado, cuando este envía un dato. Hay varios tiempos que el ordenador analiza cuando tiene que enviar un dato: a) es el tiempo que toma el mouse en empezar a generar los pulsos de reloj desde que el ordenador inicialmente inhibió la comunicación llevado Clock a un estado bajo, este tiempo no debe superar los 15ms. b) Es el tiempo que toma el paquete de bits para ser enviado, el cual no debe ser mayor a 2ms. Si alguno de estos límites de tiempo no es respetado, el ordenador generará un error. Inmediatamente después de que el bit de reconocimiento es recibido por el ordenador, este puede inhibir la comunicación para procesar la información. Si el comando enviado por el ordenador requiere una respuesta, el mouse no deberá tardar más de 20ms en responder después de que el ordenador libere el bus, si no hay respuesta del mouse, el ordenador generará un error.

Para facilitar la comprensión del protocolo de comunicación se adjuntan los siguientes diagramas de flujo:

Diagrama de flujo: Comunicación Mouse a Ordenador Inicio Libera el Bus: CLOCK=1, DATA=1 Carga en X la cant. de datos a enviar (DataSize) Clocks=10 (bit arranque + 8bits de datos + paridad) BXH=1 (bit de paridad) BXL=Dato a enviar (indexado por X) CLOCK=1 por al menos 50µs? Petición de envío? ( DATA=0?) C=0 (bit de arranque) DATA=C CLOCK=0 Espera 30µs CLOCK=1 Hay inhibición por más de 100µs? Se enviaron los 8bits de datos? Copia la paridad para enviarla. BXL=BXH Prepara el bit a ser enviado, lo almacena en C: lsr BXL Calcula la paridad y la guarda en BXH Decrementa Clocks. llegó a 0? DATA=1 (bit de parada) CLOCK=0 Espera 30µs CLOCK=1 Decrementa X llegó a 0? Se libera el BUS. CLOCK=1 DATA=1 Retorna

Diagrama de flujo: Comunicación Ordenador a Mouse Inicio Libera el Bus: CLOCK=1, DATA=1 Clocks=9 (8 bits de datos + paridad) Limpia BXL (Dato a recibir) Limpia BXH (paridad) Petición de envío? ( CLOCK=1 DATA=0?) Hay bit de parada? ( DATA=1?) DATA=0 (bit de reconocimiento) Devuelve Error (BXL=$80) Espera 30µs (bit de arranque) CLOCK=0 Espera 30µs (el ordenador fija DATA) CLOCK=1 CLOCK=0 (último pulso de reloj) Espera 30µs Libera el BUS (DATA=1, CLOCK=1) Hay inhibición por más de 100µs? Se libera DATA? ( DATA=1?) Devuelve Error (BXL=$80) y sigue enviando pulsos de reloj hasta que se libere DATA Lee el bit recibido y lo coloca en C Calcula la paridad en BXH Almacena el bit en BXL: rol BXL CLOCK=0 Carga el acumulador con el valor a devolver. A=BXL Retorna Decrementa Clocks. llegó a 0? La paridad es correcta? ( BXH=1?) Devuelve Error (BXL=$80) Espera 30µs CLOCK=1 Hay inhibición por más de 100µs? Continuará...

El lector puede encontrar este y otros artículos anteriores del Mundo EDUKIT08, así como el código de ejemplo, en el sitio web dedicado a la educación y al kit didáctico y sus programas de ejemplo: http://www.edudevices.com.ar/articulos_edukit.htm Solicite información en: EduDevices. www.edudevices.com.ar e-mail: info@edudevices.com.ar