Mapa de E/S en una PC. Autor: Alejandro Furfaro 12

Documentos relacionados
Gestión de Memoria e Interrupciones en modo protegido

Gestión de Memoria e Interrupciones en modo protegido

Segmentacion e Interrupciones en IA-32

Arquitectura de computadoras

Sistemas Computacionales de 32 bits

Controlador Programable de Interrupciones i8259

Controlador de Floppy Disk - DMA

INTERRUPCIONES. Existen 256 interrupciones En el modo real cada una tiene un vector asociado Vectores de 4 bytes: segmento + offset 32 F0 50 8A

Instrumentación de Tiempo Real

ITT-327-T Microprocesadores

SISTEMAS BASADOS EN MICROPROCESADORES

Integración de Equipos para Comunicaciones

Tema 9 Periféricos de Entrada

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

Entradas y Salidas. Componentes básicos de una PC

(5) Unidad 5. Entrada / Salida SISTEMAS BASADOS EN MICROPROCESADORES. Grado en Ingeniería Informática EPS - UAM

... La Memoria. La Memoria CAPÍTULO. Conceptos Básicos sobre Tecnologías de la Información

Solución 1. Solución usando un 8255 para las entradas y salidas, un 8254 para la temporización y realizando la entrada/salida por polling.

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

PERR TO MOBF INH A2 SYS IBF OBF. Tabla 1: Flags de estado del status register (0x64) en modo PS/2

Centro de Formación Profesional Nº 401 Curso: Reparador de PC Instructor: Walter Carnero

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

APUNTE DEL 8155 ELECTRÓNICA DIGITAL III

BIOS: Basic Input Output System

Sistemas Computacionales de 32 bits

Bus de datos Bus de direcciones Pocos bits, los suficientes para direccionar registros internos (ej: A0 y A1)

Controlador de Puerto Serie

Programando (PC's) Inicio. Basado en Polling o en Interrupt s? Interrupt Vectors

Gestión de los periféricos del i8086. Arquitectura Computadores I

ORGANIZACIÓN DEL MICROCOMPUTADOR

UNIDAD 3 ARQUITECTURA DEL Z80. Microprocesadores Otoño 2011

Lenguaje Ensamblador. Equipo 3. Alberto Abraham Gomez Cruz Edgar

Mapas de Memoria y E/S

Sistemas Computacionales de 32 bits

Microprocesadores, Tema 4:

Arquitectura de la PC

Arquitectura de Computadoras 2011

ARQUITECTURA DE COMPUTADORES DESCRIPCIÓN BUS PCI (Tema 1: Conexión Externa de Procesadores. Buses)

ITT-327-T Microprocesadores

(SPI) Módulo Serial Sincrónico

Contenido TEMA 2 ENTRADA / SALIDA. Interfaz HW: buses del sistema. Interfaz HW de E/S

Informática. Informática = Hardware + Software. Hardware + Software. Hardware = Parte física. Software = Parte lógica

Velocidades Típicas de transferencia en Dispositivos I/O

Apéndice: circuitos integrados E/S

Arquitectura de Computadoras. Clase 2 Interrupciones

Entrada y Salida! EC-2721 Arquitectura del Computador I! Entradas/Salidas: Problemas. Entradas salidas: Criterios. Amplia variedad de periféricos!

8237A. Programación en Ensamblador Ing. Marcelo Tosini

Interrupciones de Reloj y Teclado.

EL BUS I2C CARACTERISTICAS. Fernando Remiro

Programas POST. Conrado Perea

Introducción Ejercicios PIC: Intel 8259 Más ejercicios Preguntas. Entrada/Salida. Polling e Interrupciones. Francisco García Eijó

MICROPROCESADORES I ELECTRONICA DIGITAL III INTERFASE PROGRAMABLE A PERIFERICOS PPI 8255

Modo Real vs Modo Protegido. Pasaje a modo protegido

INTRODUCCIÓN. Comunicación Serial.

Arquitectura de Computadores

Organización del Computador 1 Entradas / Salidas

(7) Unidad 7. Buses básicos de la arquitectura 80x86 SISTEMAS BASADOS EN MICROPROCESADORES. Grado en Ingeniería Informática EPS - UAM

Problema 5. Cálculo de la temporización. Programación del Lectura de la cuenta del temporizador 0

Introducción Ejercicios PIC: Intel 8259 Más ejercicios Preguntas. Entrada/Salida. Polling e Interrupciones. Juan Pablo Galeotti

CUESTIONARIO. Instituto Tecnológico de Iztapalapa Ingeniería en Sistemas computacionales. LENGUAJE ENSAMBLADOR Temas: 1.3 y 1.4

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

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

Introducción a la Computación. Capítulo 7 Entrada/Salida

Introducción a la Entrada/Salida

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

16/11/2011. Contenido. Comunicación con Dispositivos I/O. Comunicación con Dispositivos I/O. Comunicación con Dispositivos I/O.

PROYECTOS EN VHDL PARA CONTROL DE MONITOR VGA DESDE UNA FPGA

Curso de Microcontroladores Familia HC908 Flash de Freescale Parte II. CPU08 Core ING. DANIEL DI LELLA

Estructura de Microprocesadores. Profesor Ing. Johan Carvajal Godínez

RMS1-RM Manual del usuario

Estructura y tecnología de computadores - prácticas en ensamblador

Capítulo 4 Interfase Humana

Velocidades Típicas de transferencia en Dispositivos I/O

UNIDAD 1: - ESTRUCTURA Y FUNCIONAMIENTO DE UN ORDENADOR

EVOLUCIÓN HISTÓRICA DE LOS µp

Arquitectura de Computadoras. Clase 3 Entrada/Salida

Modulo LCD MODULO LCD

Elección de un microcontrolador

ESPACIO DE DIRECCIONES

Códigos de AMI Win BIOS

INTRODUCCIÓN. Interrupciones.

1. Esquema funcional de un ordenador digital.

Reset e interrupciones

Controladores de memoria externa

PRÁCTICA 1. Programación del 8086

SOPORTE FÍSICO O HARDWARE (I)

El ordenador. Codificación binaria. Código ASCII

Taller de Firmware. Introducción al PIC16F877. Facultad de Ingeniería Instituto de Com putación

Examen 22 de Febrero 2006

Organización del Computador. Entradas / Salidas

BIOS (Basic I/O System) Ing. Víctor Valencia PNFSI - Arquitectura del Computador III

Tema 4: Las interrupciones y la ROM-BIOS

RMS1-RM Manual del usuario

El temporizador /contador Intel 8254

UNIDAD CENTRAL DE PROCESO

Interrupciones por hardware Interrupciones por so?ware

ARQUITECTURA DE LOS SISTEMAS BASADOS EN MICROPROCESADOR

Transcripción:

Mapa de E/S en una PC 12

Hardware de Soporte de E/S 8253 / 8254: Timer 0: Dirección 40h. Base de tiempos del sistema. A la entrada CLK0 se conecta un cristal de 1,193,180 MHz. Se programa para generar por OUT0 un pulso cada 55 mseg. Este pin se conecta a la línea IRQ0 del PIC 8259: así se genera una interrupción a dicho intervalo, o como se refiere en la jerga, genera 18,2 (?) interrupciones por segundo. Timer 1: Dirección 41h. Se programa del mismo modo que Timer 0 pero se lo utiliza para activar el sistema de refresco de memoria DRAM. Para ello, OUT1 va conectado a la entrada DREQ0 del 8237. A partir del modelo AT 286 se utilizará un hardware dedicado al refresco de memoria. Timer 2: Dirección 42h. Se programa para generar a su salida una señal cuadrada de 50% de duty cycle y OUT2 se conecta al parlante del sistema. Registro de comando y status. Dirección 43h. 13

Hardware de Soporte de E/S 8255: Fue inmediatamente reemplazado en el modelo siguiente (AT 286). Sin embargo los ports A y B, siguen presentes Port A: Dirección 60h. La lógica de control de teclado al recibir los códigos de las teclas los almacena en este port. Port B: Dirección 61h. Sus líneas trabajan como salidas de control individuales. Envío de la salida del Timer0 al parlante de la PC Envío de un pulso a la línea IRQ1 del PIC 8259 cada vez que se recibe un código de tecla desde el teclado. Port C: Dirección 62h. Cuatro de estas líneas se utilizan como información de configuración del sistema. El sistema de configuración en los modelos originales PC y PC-XT era sumamente rudimentario (trabajaba con dip switches). 14

Interrupciones en los procesadores x86 Notas: La instrucción UD2 fue introducida con el procesador Pentium Pro. Los procesadores IA-32 posteriores al Intel386 no generan esta excepción. Esta excepción fue introducida en el procesador Intel486. Esta excepción fue introducida en el procesador Pentium y mejorada en la familia de procesadores P6. Esta excepción fue introducida en el procesador Pentium III. 15

Interrupciones en la PC 16

Controlador de Interrupciones de Hardware: el PIC 8259 INTA D0 - D7 DATA BUS BUFFER INT LOGICA DE CONTROL BUS DE DATOS INTERNO RD IRQ0 WR READ WRITE LOGIC A0 IRQ1 IN SERVICE REGISTER (ISR) PRIORITY RESOLVER CS INTERRUPT IRQ2 REQUEST REGISTER (IRR) IRQ3 IRQ4 IRQ5 IRQ6 IRQ7 CAS0 CAS1 CAS2 CASCADE BUFFER COMPARATOR INTERRUPT MASK REGISTER (IMR) SP/EN 17

Configuración del PIC 8259 en la PC Timer Tick Data Bus CAS2 CAS1 CAS0 SP/EN 0 Disponibles en los buses de expansión IRQ3 IRQ4 IRQ5 IRQ6 IRQ7 IRQ0 IRQ1 INT IRQ2 IRQ3 INTA IRQ4 IRQ5 8259 Slave IRQ6 A0h-A1h IRQ7 SP/EN CAS2 Procesador 80x86 8042 Keyb Cont CAS1 INTA OUT CAS0 INTR 8259 Master IRQ0 20h-21h IRQ1 INT IRQ2 IRQ3 INTA IRQ4 IRQ5 IRQ6 IRQ7 8254 40h-43h Este 2do. 8259 fue agregado a partir de la PC-AT286 IRQ8 IRQ9 IRQ10 IRQ11 IRQ12 IRQ13 IRQ14 IRQ15 Vcc Nombre de las líneas del Sub-sistema de Interrupciones de la PC 18

Asignación y Tipo de las IRQ s 19

Interrupción No Enmascarable (NMI) 80x86 Error de paridad en Memoria Error de paridad en el Bus Error del Coprocesador 8087 NMI 7 6 5 4 3 2 1 0 Port de E/S 0A0h 80x86 Error de paridad en Memoria Error de paridad en el Bus NMI 7 6 5 4 3 2 1 0 Port de E/S 070h 20

Programación del PIC 8259 El 8259, presenta al procesador una interfaz de programación a través de dos direcciones de E/S. La primer PC tenía un solo PIC en las direcciones de port 20h y 21h. La PC AT 286, incluyó un segundo PIC, ya que la PC original ya había agotado la asignación de IRQ s, y seguían apareciendo nuevos dispositivos: Placas de red, placas de sonido, etc. Este PIC es accesible en las direcciones de port A0h y A1h. Palabras de Comando de Inicialización: Son una secuencia de entre dos y cuatro bytes que envía el procesador al 8259A antes de comenzar la operación normal, a fin de configurarlo. A los efectos del PIC 8259, la secuencia de Inicialización es una operación atómica, es decir, que no puede dividirse El 8259 detecta la secuencia de inicialización cuando recibe en la dirección de port par (A0 = 0), una palabra con el bit D4=1. Palabras de Comando de Operación: Una vez inicializado el 8259A, estas palabras le definen diversas operaciones a realizar. Luego de la inicialización, se pueden enviar en cualquier momento. 21

Programación del PIC 8259 ; Inicialización PIC #1 mov al,11h ;ICW1: IRQs activas por flanco, Modo cascada, ICW4 Si. out 20h,al mov al,8 ;ICW2: INT base para el PIC N#1 Tipo 8. out 21h,al mov al,04h ;ICW3: PIC N#1 Master, tiene un Slave conectado a IRQ2 (0000 0100b) out 21h,al mov al,01h ;ICW4: Modo No Buffered, Fin de Interrupción Normal, procesador 8086 out 21h,al ; Antes de inicializar el PIC N#2, deshabilitamos las Interrupciones del PIC N#1 mov al,0ffh :OCW1: Set o Clear el IMR out 21h,al ; Inicialización PIC N #2 mov al,11h ;ICW1: IRQs activas por flanco, Modo cascada, ICW4 Si. out 0A0h,al mov al,070h ;ICW2: INT base para el PIC N#1 Tipo 070h. out 0A1h,al mov al,02h ;ICW3: PIC N#2 Slave, IRQ2 es la línea que envía al Master (010b) out 0A1h,al mov al,01h ;ICW4: Modo No Buffered, Fin de Interrupción Normal, procesador 8086 out 0A1h,al 22

Teclado Un Microcontrolador se encarga del barrido de la matriz de teclas con la implementación del control de antirrebote. Una vez detectada la pulsación o liberación de una tecla se transmite por línea serie a la PC el código de la misma. Qué código? Cada tecla se identifica con un código de acuerdo con su posición dentro del layout del teclado. En el caso de la tecla ESC su código es 1. Este valor se denomina SCAN CODE (o código de rastreo en algunas traducciones) 47

Teclado MAKE BREAK El SCAN CODE se transmite cada vez que se pulsa una tecla acción conocida como MAKE, razón por la cual se denomina MAKE CODE Cuando se libera la tecla pulsada (acción conocida como BREAK), se vuelve a transmitir el SCAN CODE de la tecla a la PC para generar una segunda interrupción por IRQ1. La PC detecta tanto la pulsación como la liberación de cada tecla. De otro modo no se podría por ejemplo actuar ante CTRL+ALT+DEL Para diferenciar la acción de BREAK de un MAKE el código que se transmite es el mismo SCAN CODE pero con el MSB en 1. Este código se denomina BREAK CODE 48

Controlador de Teclado A partir de la AT 286 del lado PC un microcontrolador 8042 es quien se encarga de recibir el Make o el Break code. Es un miembro especial de la familia MCS- 51, denominado Universal Peripheral Interface: Dispone de una interfaz para que sus propios ports integrados sean accesibles desde el exterior por otro microprocesador. En este caso ese microprocesador es el de la PC. Recibe los datos desde el teclado por una interfaz serie, chequea paridad, traduce los scan codes y los deja disponibles en un port interno que visto desde el exterior se accede en la dirección 60h del mapa de E/S de la PC. Registros accesibles desde la PC Registro de status (Read) o comandos (Write). Se accede en la dirección 64h de E/S de la PC Output Buffer (Read only), para leer el código de la tecla pulsada o liberada. Se accede en la dirección 60h de E/S Input Buffer (Write only). En la dirección 64h se escribe un comando al controlador (Command Register, visto anteriormente). En la dirección 60h se escribe un dato, que será enviado al teclado. 49

Controlador de Teclado 50

BIOS Data Area: Bytes de Estado de teclas modificadoras Address 0040:0017 Address 0040:0018 51

Rutina de Atención de Int. de Teclado Detección de SCAN Es una Tecla Modificadora? SI Actualiza Bytes de Estados en BIOS Data Area NO Analiza estado de Teclas Modificadoras Es un Break Code? NO NO Es un Break Code? SI SI SI Es la Tecla INS? Traduce el Scan Code a ASCII desde una Tabla Es un ASCII Extendido? NO SI Escribe ASCII Extendido en el buffer de teclado NO Escribe Scan Code y ASCII en el Buffer de Teclado FIN 52

BIOS Data Area: Buffer circular de teclado 53

Reloj en Tiempo Real A partir de la AT 286, se incluyó en el diseño un chip de Motorola con un Real Time Clock y una RAM CMOS de 64 bytes: El MC146818. Los registros internos de la RAM CMOS, se detallan a continuación: Registros del MC 146818 00 01 Segundos Segundos de alarma 10 11 Byte de tipo de drive de disquete (A y B) Reservado 02 03 04 05 Minutos Minutos de alarma Horas Horas de alarma 12 13 14 15 Byte de tipo de hard disk (C y D) Reservado Byte de equipo Byte bajo de memoria base 06 07 08 09 Día de la semana Fecha del Mes Mes Año 16 17 18 19-2D Byte alto de memoria base Byte bajo de expansión de memoria Byte alto de expansión de memoria Reservado 0A 0B 0C 0D Status Register A Status Register B Status Register C Status Register D 2E-2F 30 31 32 Checksum del CMOS (registros 10h a 2Fh) Byte bajo de expansión de memoria Byte alto de expansión de memoria Byte de siglo de fecha 0E 0F Byte de estados de diagnóstico Byte de estado de Shutdown 33 34-3F Flag de información (seteado durante power on) Reservado 54

Reloj en Tiempo Real Al tener 64 registros internos, utiliza el modo de direccionamiento indirecto para evitar consumir demasiadas direcciones de E/S. Se muestra al procesador como dos ports: Uno de direcciones (en donde escribimos el número del registro interno con el cual queremos transaccionar), y otro de datos (en donde realizamos la transacción). READ: mov al,memory_location out 70h, al in al,71h WRITE: mov out mov out al,memory_location 70h,al al,new_contents 71h,al 55

Reloj en Tiempo Real Status Register A 7 6 UIP 5 4 3 DV0-2 Update in progress. 2 RS3-0 1: Indica ciclo de actualización del reloj en proceso. 0: Indica fecha y hora listas para su lectura 1 0 RS3-0: Rate Selection bits. Seleccionan el divisor de frecuencia de salida. El sistema inicializa este valor en 0110. Esto selecciona una señal cuadrada de salida de 1024 Hz, o lo que es igual un período de 0,976562 mseg. DV2-0: Divisor de 22 etapas que permite setear la frecuencia de la base de tiempos del sistema. El power on self test lo coloca en 010 de modo de establecer 32,768 Khz. 56

Reloj en Tiempo Real Status Register B 7 6 5 4 3 2 1 0 Set PIE AIE UIE SQWE DM 24/12 DSE Update-Ended Interrupt Enable. Habilita (activo alto) el envío de interrupción cada vez que actualiza fecha y hora. Alarm Interrupt Enable. Activo alto. Habilita el envío de una interrupción en la fecha y hora de alarma programada. Periodic Interrupt Enable. Activo alto. Habilita el envío de una señal de interrupción a períodos establecidos en los bits RS3-0 del Status Register A. 0: Se actualiza el reloj a razón de una cuenta por segundo. 1: Se detiene la actualización permitiendo inicializar los 14 registros sin interrupción hasta que vuelva a ponerse en 0. 57

Reloj en Tiempo Real 7 Status Register B 6 5 4 3 2 1 0 Set PIE AIE UIE SQWE DM 24/12DSE Daylight Saving Enable. El POST lo inicializa en 0, indicando que no está habilitado 0: Modo 12 hs. 1: Modo 24hs. (El POST lo inicializa de este modo) Date Mode. 0: Fecha y hora se actualizan en BCD (El POST lo inicializa de este modo). 1: Fecha y hora se actualizan en Binario. Square Wave Enable. Activo alto. Habilita la generación de una onda cuadrada a intervalos establecidos en el Status Register A. 58

Reloj en Tiempo Real 7 6 Status Register C 5 4 3 2 1 0 PF AF UF Bits Read only, que reflejan el estado de los bits PIE, AIE, y UIE del Status Register B Status Register D Valid RAM and Time. Indica con un 0 que el sistema no tiene alimentación suficiente (batería de Litio baja) 7 6 5 4 3 2 1 0 VRT 59