Vous êtes sur la page 1sur 75

Microprocesador de 32 bits

Unidad 1 Familiarizacin/tablero de circuitos

UNIDAD 1 FAMILIARIZACIN/TABLERO DE CIRCUITOS

OBJETIVO DE LA UNIDAD Cuando termine esta unidad, usted ser capaz de localizar y describir varios de los componentes del tablero de circuitos y demostrar las funciones bsicas del tablero entrenador. FUNDAMENTOS DE LA UNIDAD Microprocesadores han cambiado prcticamente cada faceta de nuestras vidas diarias. Pueden encontrare en oficinas, computadoras industriales y personales as como instrumentacin medica y cientfica. Los microprocesadores son comunes en los equipos de comunicaciones modernos y en la industria aeroespacial. Algunos de los carros que ha manejado pueden tener una tarjeta con microprocesador para monitorear y controlar algunas funciones del motor y los frenos.

Un microprocesador o Unidad central de proceso (CPU = Central Processing Unit), es un circuito integrado (CI) digital que puede ejecutar funciones aritmticas y lgicas y transferir informacin desde y hacia dispositivos externos. El diagrama muestra un sistema con microprocesador tpico. Los dispositivos de soporte que usualmente contienen un circuito microprocesador incluyen otros circuitos integrados para funciones de memoria y Entrada/Salida (E/S). Los CIs de memoria son dispositivos de almacenamiento que contienen informacin en forma binaria. Parte de la informacin est en forma de programas, o conjunto de instrucciones para que las ejecute la CPU. La CPU tambin usa parte de la memoria para almacenar informacin del sistema y el resultado de clculos. Los dispositivos de E/S le permiten a la CPU comunicarse con el entorno externo. La CPU de su computadora usa un dispositivo de entrada para leer sus rdenes del teclado, y un dispositivo de salida para enviar informacin en texto y grficas a la pantalla que est observando.

Microprocesador de 32 bits

Unidad 1 Familiarizacin/tablero de circuitos

La comunicacin entre la CPU, la memoria y los dispositivos de E/S se realiza a travs de grupos de lneas de conexin llamados buses. La informacin binaria va y viene a travs del bus de datos. La CPU usa el bus de direccin para apuntar a la posicin exacta desde donde o a dnde se transfieren los datos. El tamao de los buses (nmero de lneas) es una medida de la potencia de proceso de la CPU.

Los primeros microprocesadores tenan un bus de datos de 4 bits. En una operacin de salida, por ejemplo, una CPU de 4 bits solamente poda enviar nmeros en el rango de 0 - 16 (24) en una sola operacin. La CPU poda enviar un nmero ms grande haciendo varias transferencias sucesivas. Los microprocesadores de 4 bits rpidamente evolucionaron a la versin de 8 bits, que podan enviar un nmero tan alto como 256 (28) en una operacin. La siguiente generacin desarrollo un bus de datos de 16 bits. El microprocesador 80386 de su tablero de circuitos es un dispositivo de 32 bits. El nmero ms grande que puede enviar es 4,294,967,296 (232). El 80386 es tambin, por otras razones ms potente que sus antecesores. Su bus de direccin de 32 bits puede acceder directamente a 4,294,967,296 posiciones de memoria externa. El 80386 tiene un amplio nmero de registros. Los registros son localizaciones de memoria interna para almacenar informacin del estado del sistema. Para operar rpidamente, la CPU tiene un bus de datos interno de 32 bits y la capacidad de procesar una instruccin mientras simultneamente est trayendo la prxima instruccin. Adems de la CPU 80386, su tablero de circuitos incluye dos tipos de dispositivos de memoria, circuitos de entrada y de salida y un rea de aplicaciones donde puede demostrar como se intercomunica la CPU con el entorno externo.

Microprocesador de 32 bits

Unidad 1 Familiarizacin/tablero de circuitos

Puede comunicarse directamente con la CPU por medio de un teclado, una pantalla alfanumrica de cristal lquido (LCD = Liquid Crystal Display) y un grupo de diodos emisores de luz (LED = Light Emitting Diode) que muestran informacin binaria del bus de direccin y del bus de datos. Los microprocesadores se comunican en binario con los otros dispositivos. Debido a que deber acostumbrarse a trabajar con muchos bits de informacin binaria, los LEDs de datos y direccin se han dividido en grupos de cuatro bits para que pueda hacer lecturas de un dgito hexadecimal. El teclado est diseado para nmeros hexadecimales y la pantalla LCD muestra los nmeros hexadecimales y un recordatorio simple en ingls. Encontrar muy til acostumbrarse a usar nmeros binarios y hexadecimales lo ms antes posible. NUEVOS TRMINOS Y PALABRAS bus de datos - grupo de lneas bidireccionales que se usan para transferir datos entre el microprocesador y la memoria externa o dispositivos de E/S. bus de direccin - grupo de seales de salida que usa un microprocesador para especificar la ubicacin donde ser ledo o escrito un dato. registros - rea de almacenamiento temporal dentro del microprocesador que mantiene informacin del sistema, resultados de clculos y otros valores. programas - serie de instrucciones almacenadas en memoria ha ser ejecutadas por un microprocesador. monitor - un programa que ejecuta funciones de inicializacin del sistema y permite la interaccin entre la CPU y el usuario. Interface Perifrica Programable - CI de soporte que maneja la transferencia de datos entre la CPU y varios dispositivos externos. interrupcin - operacin que hace que la CPU detenga lo que se encuentra haciendo y guarde su posicin en el programa para desarrollar otra tarea. Cuando completa la tarea, la CPU regresa al sitio del programa donde fue interrumpida. Controlador Programable de Interrupciones - CI de soporte que maneja las seales de interrupciones de varios dispositivos externos. ciclo de bus - ciclo completo de transferencia de datos, incluyendo un requerimiento de bus del microprocesador y una respuesta del dispositivo externo. direccin fsica - la direccin que la CPU pone en el bus de direcciones. direccin lgica - representacin de ocho dgitos de una direccin fsica, escrita en la forma AAAA:BBBB (segmento:desplazamiento). segmento - una seccin de memoria de 64 Kbyte. desplazamiento - la distancia (en bytes) que hay de una posicin al segmento base.

Microprocesador de 32 bits

Unidad 1 Familiarizacin/tablero de circuitos

segmento base - la primera direccin en un segmento. modo funcin - modo de operar el teclado que existe cuando la CPU es reinicializada. modo memoria - modo de operacin del teclado que permite ver o cambiar bytes de memoria. NEMNICO - abreviatura de una instruccin que se escribe de tal forma que sea ms fcil recordar su funcin. lenguaje ensamblador - lenguaje de programacin que usa palabras, sentencias y frases para producir instrucciones a la CPU. bucle - serie de instrucciones que se repiten continuamente durante un nmero especfico de veces. microprocesador - elemento de cmputo que contiene una unidad de control, circuitera central de proceso y funciones aritmticas y lgicas. Tambin es conocido como Unidad central de proceso (CPU = Central Processing Unit). sonda lgica - un dispositivo para la deteccin de fallas digitales y seguimiento de seales que tiene LEDs para indicar niveles lgicos y actividad de pulsos. byte - grupo de ocho bits que se transfieren y operan como una sola unidad. modo registro - modo de operacin del teclado que permite ver o cambiar el contenido de los registros internos de la CPU. EQUIPO REQUERIDO Unidad base de FACET Tablero de circuitos MICROPROCESADOR DE 32 BITS Multmetro Osciloscopio de doble seal Fuentes de potencia, 15 Vcd (requiere 2)

Microprocesador de 32 bits

Unidad 1 Familiarizacin/tablero de circuitos

Ejercicio 1 Familiarizacin con el tablero de circuitos


OBJETIVO DEL EJERCICIO Cuando termine este ejercicio, usted podr localizar y describir varios de los componentes y bloques de circuitos de su tablero de circuitos MICROPROCESADOR DE 32 BITS. DISCUSIN El entrenador Microprocesador de 32 bits consta de 12 bloques de circuitos. Son los siguientes bloques: CPU CONTROL DE BUS MEMORIA (RAM, ROM DE USUARIO, ROM MONITOR) Visualizador del LEDs de direccin y de datos TECLADO DE CONTROL SONDA LGICA PUERTA PARALELA PUERTA SERIE Seccin de aplicaciones (CAD, CDA y CONTROL INT (interrupcin)) Visualizador LCD alfanumrico TIRAS DE PRUEBA Fuente de potencia El corazn del sistema con microprocesador es la Unidad central de proceso (CPU = Central Processing Unit). La CPU usada en este entrenador es un microprocesador 80386 DX. Los pines en el chip de la CPU son inaccesibles. Por lo tanto, para observar muchas de las seales disponibles en la CPU con los equipos de prueba, son proporcionadas conexiones hacia las tiras de pines (JP1, JP2 y JP3) en la parte superior del tablero de circuitos. La tira JP1 tiene las conexiones de la CPU del bus de direccin de 32 bits (de AO hasta A31). La tira JP2 tiene las conexiones de la CPU del bus de datos de 32 bits de la CPU (de DO hasta D31). La tira JP3 tiene conexiones para las seales de control de la CPU. Algunas de estas seales son emitidas de la CPU hacia dispositivos externos y otras son introducidas a la CPU desde los dispositivos externos. Un smbolo (#) despus del nombre indica que la seal es baja activa. Si hay una barra inclinada (slash) en el nombre de la seal, solamente la funcin que es baja activa tiene el smbolo #. Por ejemplo- W/R#, W (Write) es alta activa mientras R# (Read) es baja activa. El bloque CONTROL DE BUS (BUS CONTROL) controla la comunicacin entre la CPU y los circuitos de soporte. El bloque incluye un oscilador de cristal que produce una seal de reloj de 8 MHz, la cual es usada para las seales sincronizadas de control de la CPU sincronizada.

Microprocesador de 32 bits

Unidad 1 Familiarizacin/tablero de circuitos

Los CI's del ROM pueden ser programados para diferentes capacidades de almacenamiento cambiando la derivacin de las dos posiciones. El entrenador es proporcionado sin CI's y es conectado en derivacin en el bloque ROM DE USUARIO (USER ROM). Este bloque es usado con chips de memoria que contienen sus propios programas. El bloque ROM MONITOR permite la programacin directa de la CPU y contiene el programa monitor. La informacin de entrada se introduce con el teclado y la informacin de salida es mostrada en la pantalla LCD. Las conexiones externas de la PUERTA SERIE (SERIAL PORT) son realizadas usando un conector de 9 pins tipo D (JP2 en su bloque de circuitos). La interfase usa el estndar RS232. La PUERTA SERIE tiene una tira de 24 pines para permitir que seales de E/S sean monitoreadas y proporcionar derivaciones a las configuraciones de operacin de programa. El bloque de circuitos PUERTA PARALELA (PARALLEL PORT) tiene un Cl 82C55 el cual consta de tres puertos bidireccionales de 8 bits programables. Las tiras de 3 pines seleccionan los modos de operacin: normal (NORM) o un modo de prueba (TEST). La tira de 20 pines (JP6) proporciona acceso a la conexin de dispositivos externos o equipo de prueba. Las seales ADC (CAD/Convertidor Analgico-Digital) IN y DAC (CDA/Convertidor Digital-Analgico) OUT son conectadas a los bloques ADC y DAC, respectivamente. Los bloques de aplicacin (CDA, CAD y CONTROL INT) permiten a la CPU interconectarse con dispositivos externos para medir y controlar valores analgicos como lo son voltaje, corriente, temperatura y velocidad. El CI CDA convierte un nmero binario de 8 bits a un voltaje analgico en uno de dos rangos. Las tiras de 3 pines seleccionan un rango de voltaje de salida de 0-10 Vcd 0-2.56 Vcd. Un puente permite la seleccin de cualquier operacin unipolar o bipolar. El CI CAD acepta una seal analgica externa y la convierte a un valor binario de 8 bits. El bloque de circuitos CONTROL INT (IR CONTROLLER) maneja ocho seales de interrupcin, usando el Controlador de Interrupciones Programables 82C59 (PIC = Programmable Interrupt Controller). El PIC puede ser programado por diferentes modos de operacin y puede establecer una secuencia prioritaria para las seales de interrupcin. La tira de 16 pines permiten el acceso a IRO a travs de IR7 y permite derivaciones usadas para conectar uno de los pines superiores a las entradas de interrupcin directamente abajo. El bloque de circuitos FUENTE DE POTENCIA (POWER SUPPLY) suministra 5 Vcd filtrados y regulados para todos los bloques de circuitos. El suministro automticamente disminuir cuando se sobrecargue. El entrenador MICROPROCESADOR DE 32 BITS (32 BIT MICROPROCESSOR) puede ser operado independientemente de la unidad base de FACET cuando se conecta a una fuente de potencia externa de 9 Vcd/750 mA.

Microprocesador de 32 bits

Unidad 1 Familiarizacin/tablero de circuitos

Los controles manuales incluyen: 1. El potencimetro de INTENSIDAD controla la intensidad del visualizador LCD. 2. El interruptor RESET (restablecer). 3. El bloque CICLO SIMPLE (SINGLE CYCLE) consta de dos interruptores. Uno indica el modo de operacin; ENC (ON) para el modo PASO (STEP) y APA (OFF) para el modo EJECUTAR (RUN). El botn de pulso permite a la CPU ejecutar un PASO (STEP) cada vez que el interruptor sea presionado. 4. El botn de pulso ALTO (HALT) detiene la operacin de la CPU y le permite ingresar u observar un programa una instruccin completa a la vez. (Una instruccin podra consistir de 1 a 14 ciclos del bus). Los registros de la CPU pueden ser vistos y/o cambiado en este modo de operacin. El bloque TECLADO (KEYBOARD) se trata de un teclado hexadecimal. Cada tecla puede tambin ser usada como una tecla de funcin, segn se defina arriba de la misma. Su manual indica la funcin de teclado, enmarcndola dentro de estos smbolos < >. El visualizador LCD es una pantalla de matriz de puntos de 5x8, 16 columnas y dos lneas sta muestra caracteres alfanumricos y smbolos especiales. El cursor aparece como un pequeo bloque intermitente. Una pregunta despus de una frase indica que la CPU esta esperando una entrada. Los bloques de circuitos LED DE DIRECCIN (ADDRESS LED) y LED DE DATOS (DATA LED) constan de cuatro juegos de a cuatro LED's: verdes para informacin de direccin y amarillo para informacin de datos. La informacin es mostrada en binario (LED activo =, 1 LED inactivo = 0). Un interruptor etiquetado ALTO (HIGH) y BAJO (LOW) seleccionan grupos de 16 bits para mostrar, ALTO muestra los 16 bits superiores de informacin (A16 hasta A31 o D16 hasta D31). BAJO muestra los 16 bits inferiores de informacin (A6 hasta A15 o DO hasta D15). El bloque SONDA LGICA (LOGIC PROBE) tiene tres indicadores. Los LED's ALTO (rojo) y BAJO (verde) indican el nivel lgico de una seal esttica. El de PULSO (amarillo) indica cuando un pulso simple se produce o cuando una seal est pulsando constantemente. El bloque de circuitos CONTROL DE TECLADO (KEYPAD CONTROL) se interconecta al teclado 4,4 con uno de los puertos de salida en el PPI.

Microprocesador de 32 bits

Unidad 1 Familiarizacin/tablero de circuitos

Ejercicio 2 Operacin del tablero de circuitos


OBJETIVO DEL EJERCICIO Cuando termine este ejercicio, ser capaz de manejar las funciones bsicas del teclado del tablero de circuitos MICROPROCESADOR DE 32 BITS. Verificar sus resultados leyendo los datos y mensajes que aparecen en la pantalla LCD. DISCUSIN La CPU 80386 tiene dos modos de operacin bsicos: modo real y modo de proteccin. E1 modo real existe para adaptar programas escritos para los microprocesadores de series anteriores (familia 8086). La serie 8086 tiene 20 lneas de direccin, que limitan la cantidad de espacio de memoria direccionable. Por eso cuando se ejecuta una reinicializacin (reset), la CPU 80386 est en modo real y tiene un rango de direccin de 1 Mbyte, el cual requiere de 5 dgitos hexadecimales. En el modo de proteccin, algunos programas no permiten el acceso a ciertas reas de memoria (protegidas). El monitor del tablero de circuitos MICROPROCESADOR DE 32 BITS reside en el primer Mbyte de memoria y puede operar en el modo real. Cada localizacin de memoria tiene una direccin fsica nica. La direccin fsica es el valor que la CPU coloca en su bus de direccin para seleccionar una posicin de memoria. Otra forma de especificar una posicin de memoria es por su direccin lgica. La direccin lgica est compuesta por un segmento y un desplazamiento, cada uno de los cuales consta de cuatro dgitos separados entre s por dos puntos (AAAA:BBBB). Un segmento es una seccin de memoria de 64 Kilobytes y se determina por los primeros cuatro dgitos que se conoce como segmento base. El desplazamiento es la distancia (en bytes) que existe entre la posicin de memoria y su base de seccin. El desplazamiento es representado por el segundo grupo de cuatro dgitos. Una direccin puede tener muchas direcciones lgicas equivalentes. Para convertir una direccin lgica en una direccin fsica, desplace los cuatro bits de la base del segmento a la izquierda. En hexadecimal, esto es equivalente a multiplicar por 16 o simplemente agregar un cero al lado derecho de la direccin. El teclado proporciona una interfase directa a la CPU. Al encender el visualizador LCD aparece el mensaje "Lab-Volt 32 bit Proc. Trainer" y espera para introducir un dato. Este es el modo de funcin y solamente las teclas de la funcin REG, GO, READ y STEP estn activas. La funcin GO (ir) ocasiona que la CPU se transfiera a la posicin de memoria donde desea que vaya.

11

Microprocesador de 32 bits

Unidad 1 Familiarizacin/tablero de circuitos

La funcin READ (leer) proporciona la capacidad para ver o cambiar informacin almacenada en la memoria. La direccin lgica es introducida y la computadora muestra la direccin fsica inicial y ocho pares de dgitos hex, los cuales representan los bytes de datos almacenados en el segmento de memoria. Las teclas FWD (adelante) y BACK (atrs) mueven el cursor un byte a la vez en cualquier direccin. Las teclas FFWD (adelante rpido) y FBACK (atrs rpido) mueven el cursor ocho bytes a la vez en cualquier direccin. La tecla WRT (escribir) es usada para introducir nuevos datos (valores de dos dgitos hex). La tecla WRT debe ser presionada una vez para cada byte que sea cambiado. La tecla AUTO es usada para introducir ocho bytes consecutivos de datos. La tecla REG (registro) permite tener acceso a los registros internos de la CPU. El cursor espera un par de registros para ser seleccionados. Los pares de registros son mostrados en parntesis arriba de las teclas adecuadas. Estas son: registros de propsito general registros de 32 bits de propsito general registro ndice fuente (SI-DI) registro de segmento de cdigo y indicador de instruccin (CS-IP) segmento de pila y registros de indicador de pila (SS-ESP) indicador de base y registros sealadores (BP-FL) registro de segmento de 16 bits (FS-GS) segmento de datos y registro de segmento extra (DS-ES) El botn ALTO (HALT) es usada para interrumpir un programa. Una vez usada, el visualizador muestra la direccin en la cual la CPU se detiene.

12

Microprocesador de 32 bits

Unidad 2 Funcionamiento de los buses

UNIDAD 2 FUNCIONAMIENTO DE LOS BUSES

OBJECTIVO DE LA UNIDAD Cuando termine esta unidad, comprender el funcionamiento bsico de la transferencia de datos del microprocesador 80386. FUNDAMENTOS DE LA UNIDAD

Un microprocesador, o Unidad central de proceso (CPU = Central Processing Unit), es el principal elemento de un sistema de cmputo. La CPU contiene circuitos de control, operaciones aritmticas, lgicas y la capacidad de comunicarse con circuitos externos, como unidades de memoria y dispositivos de entrada y salida (E/S). La comunicacin se realiza por el bus de datos (data bus). La CPU puede enviar informacin a un dispositivo externo (external device) (operacin de escritura) o recibir informacin de un dispositivo externo (operacin de lectura). La CPU enva informacin en el bus de direccin (address bus) para seleccionar un dispositivo externo y la posicin exacta donde se escribir o leer el dato.

La CPU tiene entradas (inputs) y salidas (outputs) de control que le permiten intercomunicarse con los dispositivos externos. Cuando la CPU inicia una transferencia de datos, principia una serie de eventos que aseguran una transferencia eficiente.

15

Microprocesador de 32 bits

Unidad 2 Funcionamiento de los buses

Primero, la CPU activa el bus de direccin. Luego la CPU enva una seal: indicando que la informacin correcta est disponible en el bus de direccin. Tambin enva una seal que especifica una operacin de lectura o de escritura. El dispositivo externo responde, emitiendo datos en el bus de datos (operacin de lectura de la CPU) o introduciendo datos en el bus de datos (operacin de escritura de la CPU). El ltimo paso en la secuencia es una seal que se enva del dispositivo externo a la CPU, indicando que la transferencia est completa. La transferencia completa es un ciclo del bus.

Este es el diagrama de flujo para un ciclo de lectura (read cycle) tpico. La CPU inicia enviando la direccin (send address) y sealndole al dispositivo externo que de salida al dato (send read signal). La CPU luego enva la seal de direccin vlida (signal address valid). La CPU luego observa una respuesta del dispositivo externo (external device response received?). Cuando el dispositivo externo responde, la CPU reconoce el dato vlido en el bus de datos. La CPU lee el dato (read data) y se prepara para el prximo ciclo.

El diagrama de flujo para un ciclo de escritura (write cycle) es ligeramente diferente a un ciclo de lectura. Cuando el microprocesador enva la direccin y la seal de escritura (send write signal), adems escribe en el bus de datos el dato (place data on data bus) que debe ser ledo por el dispositivo externo. Como en la operacin de lectura, la CPU seala que la direccin es vlida

16

Microprocesador de 32 bits

Unidad 2 Funcionamiento de los buses

y espera una respuesta. Una vez que recibe una respuesta, la CPU considera que se complet la transferencia (transfer complete) y se prepara para el prximo ciclo del bus.

Parte de la memoria en un sistema con microprocesador contiene uno o ms programas. Un programa es un conjunto de instrucciones que ejecuta la CPU, usualmente en una secuencia numrica. Un rea de memoria consiste en un arreglo amplio de posiciones de almacenamiento donde son almacenadas instrucciones u otros datos. Los datos estn en forma binaria, pero encontrar que es mucho ms fcil trabajar con dgitos hexadecimales. Las instrucciones del microprocesador 80386 pueden tener hasta 32 bits de ancho. La CPU usa el bus de direccin del sistema para seleccionar una posicin de memoria y los datos se transfieren hacia o desde la posicin por el bus de datos. Las instrucciones de la memoria continuamente se transfieren a la CPU. Despus de que la instruccin es leda, o extrada, el microprocesador la decodifica para determinar cual operacin debe ejecutar. La CPU luego ejecuta, o da salida a la instruccin, llevando a cabo la operacin especificada.

17

Microprocesador de 32 bits

Unidad 2 Funcionamiento de los buses

NUEVOS TRMINOS Y PALABRAS microprocesador - elemento de computacin que contiene la unidad de control, la circuitera central de proceso y funciones aritmticas y lgicas; tambin es llamado Unidad central de proceso (CPU = Central Processing Unit). ciclo de bus - ciclo de transferencia completa de datos que incluye una solicitud de bus y una respuesta del dispositivo externo. ciclo de lectura - ciclo de bus durante el cual un dispositivo de memoria o de E/S transfiere datos al microprocesador. bus de datos - grupo de lneas bidireccionales usado para transferir datos entre el microprocesador y memoria o dispositivos de entrada o salida (E/S). bus de direccin - grupo de seales de salida de un microprocesador usadas para especificar la posicin especfica dentro un dispositivo donde los datos se leern o escribirn. ciclo de escritura - ciclo de bus durante el cual la CPU transfiere datos a un dispositivo de memoria o de E/S. programas - serie de instrucciones almacenadas en memoria que son ejecutadas por el microprocesador. estado inactivo el perodo durante el cual el microprocesador no inicia un ciclo de bus. byte - grupo de 8 bytes que se transfieren u operan como una sola unidad. palabra - grupo de bits que se transfiere u opera como una sola unida; la mayora de las especificaciones se refieren a un grupo de 16 bits. doble palabra - grupo de 32 bits que se transfiere u opera como una sola unidad. lmites de la doble palabra - direcciones iniciales de posiciones de memoria de 32 bits. La direccin inicial debe ser un mltiplo entero de cuatro. transferencias alineadas - transferencias que involucran datos que no traspasan los lmites de una doble palabra. transferencia desalineada - transferencia de 16, 24 o 32 bits que sobrepasa los lmites de una doble palabra. estado de espera - perodo durante el cual el microprocesador espera una respuesta de un dispositivo lento. EQUIPO REQUERIDO Unidad base de FACET Tablero de circuitos MICROPOCESADOR 32-BITS Osciloscopio de doble trazo Fuentes de potencia, 15 Vcd (requiere 2)

18

Microprocesador de 32 bits

Unidad 2 Funcionamiento de los buses

Ejercicio 1 Estados del bus


OBJETIVO DEL EJERCICIO Cuando termine este ejercicio, usted comprender los estados del bus que le permiten al microprocesador 80386 comunicarse con la memoria y dispositivos de Entrada/Salida (E/S). Verificar sus resultados usando un osciloscopio y cargando y ejecutando un programa simple en el tablero de circuitos MICROPROCESADOR DE 32 BITS. DISCUSIN Una seal de reloj (CLK2) es usada para establecer las relaciones temporales entre varias de las seales de un sistema con microprocesador 80386. Una segunda seal de reloj, CLK, es derivada internamente por la CPU de CLK2. y es la mitad de la frecuencia de CLK2. Todas las operaciones internas y externas de la CPU se referencian a la seal CLK. Un ciclo de bus tpico consiste en dos ciclos CLK llamados estados T1 y T2. Durante el estado T1, la CPU solicita un dato a transferir identificando al dispositivo externo. Durante el estado T2, el dispositivo externo responde para completar el ciclo de transferencia. El 80386 tiene cinco lneas de estado y tres lneas de control de bus. Estas se usan para la comunicacin entre la CPU y memoria o E/S. Las salidas de estado de bus son ADS#, W/R#, M/IO#, D/C#, y LOCK#. Las entradas de control de bus son RDY#, NA# y BS16#. Este ejercicio est enfocado a las funciones del estado de salida ADS# (ADdress Status line) y la entrada de control RDY# (ReaDY line). La lnea ADS# es la lnea de control de la CPU del bus que inicia cada ciclo del bus y le dice a un dispositivo externo que hay informacin vlida en el bus de direccin. La accin de ADS# y las lneas de direccin estn referenciadas a la seal CLK. El microprocesador activa ADS# cuando el dato vlido est en el bus de direccin. La lnea ADS# est activa durante el estado T1 solamente. La seal de entrada RDY# es una seal de un dispositivo externo a la CPU que reconoci una solicitud de bus y la respondi. Una entrada RDY# activa le permite a la CPU terminar el ciclo de bus al final de T2. La CPU mira la lnea RDY# al final del ciclo T2; por lo tanto el valor de la lnea RDY# puede indicar una condicin que "no importa" hasta ese momento. Una vez que RDY# ha sido leda como vlida, la CPU lee el dato que ha sido colocado en el bus por el dispositivo externo y termina el ciclo. La CPU permanece en un estado de espera cuando el muestreo de la seal RDY# indica que est inactiva. La CPU ejecuta estados T2 hasta que RDY# llega a estar activa. Una vez que RDY# llega a ser activa la CPU sale del estado de espera y procede al siguiente ciclo de bus.

21

Microprocesador de 32 bits

Unidad 2 Funcionamiento de los buses

El estado de espera permite a los microprocesadores comunicarse con los dispositivos que son ms lentos que la CPU. En algunos casos, la CPU no esta lista para iniciar un ciclo de bus y por lo tanto no activa la seal de inicio ADS#. Cuando esto ocurre, el estado que sigue al ltimo ciclo del bus se llama estado inactivo (Ti). Un estado inactivo contina hasta que el ciclo de bus siguiente requiere que se produzca una transferencia de datos. El estado inactivo (Ti) termina cuando la CPU requiere una transferencia de datos activando ADS#. Un diagrama de estado puede ser usado para ilustrar las transiciones entre los diferentes estados del microprocesador.

22

Microprocesador de 32 bits

Unidad 2 Funcionamiento de los buses

Ejercicio 2 Transferencias en el bus de 32 bits


OBJETIVO DEL EJERICICIO Cuando termine este ejercicio, usted ser capaz de demostrar la transferencia de datos en el tablero de circuitos MICROPROCESADOR DE 32 BITS. Verificar sus resultados con el osciloscopio. DISCUSIN Hay otras seales diferentes que son requeridas para definir completamente un proceso de transferencia de datos en un sistema con microprocesador 80386. Estas incluyen las salidas de estado del bus ADS#, W/R#, M/I0#, D/C# y LOCK#; las entradas de control del bus RDY#, NA# y BS16# y las salidas habilitadoras de byte BEO#, BE1#, BE2# y BE3#. En este ejercicio las salidas habilitadoras de byte son examinadas. Con el bus de datos de 32 bits se pueden transferir datos en grupos de 8, 16, 24. 32 bits a la vez. Un grupo de 8 bits es llamado byte. Un byte tiene un rango hexadecimal de 00 - FFHH 0 - 25610. Un grupo de 16 bits es una palabra. El rango hexadecimal para una palabra es 0000 - FFFFH, que es equivalente a 0 - 65,53610 (64K). Un grupo de 32 bits es una doble palabra. El rango hexadecimal de una doble palabra es 0000 0000-FFFF FFFFH o 0-4, 294,067,29610 (64K). Los cuatro bytes del grupo de datos de 32 bits son designados como byte 0 a byte 3. El byte 0 (D0 hasta D7) es el bit menos significativo (LSB = Least Significant Bit) y el bit 3 (D24 a D31) es el bit ms significativa (MSB = Most Significant Bit). Dependiendo de la instruccin que est siendo ejecutada por la CPU, algunos o todos los cuatro bytes pueden ser requeridos para la transferencia del bus. Las lneas de salida habilitadoras de byte notifican a los dispositivos externos acerca de la condicin de cada byte de datos. BE#0 corresponde al byte 0, BE#1 corresponde al byte 1, BE2# corresponde al byte 2 y BE3# corresponde al byte 3. La CPU usa las salidas habilitadoras de byte junto con el bus de direccin para seleccionar uno o ms bytes para una transferencia de datos. Las lneas de direccin A2 hasta A31 se usan para seleccionar una posicin de memoria de 32 bits. A0 y A1 son usados para generar internamente las cuatro lneas habilitadoras de byte. Las lneas habilitadoras de byte son usadas para seleccionar uno o ms bytes dentro de esta posicin. Los datos en las reas seleccionadas son entonces transferidos al bus de datos. Si ms de un byte es transferido, los bytes deben ser adyacentes. Los lmites superior e inferior de la ubicacin de 32 bits son los lmites de la doble palabra. Los datos transferidos pueden introducirse dentro de los lmites de la doble palabra o puede sobreponerse a uno de ellos.

25

Microprocesador de 32 bits

Unidad 2 Funcionamiento de los buses

La transferencia de datos que involucra bytes dentro de los lmites de la doble palabra son llamadas transferencias alineadas. Este tipo de datos tiene una direccin doble palabra y ya que una direccin es enviada por cada ciclo de bus, el dato puede ser transferido en un slo ciclo de bus. La transferencia de datos involucra bytes que sobrepasan los limites de doble palabra son llamadas transferencias desalineadas. La CPU transfiere datos de la direccin ms alta y luego de la direccin ms baja. La CPU requiere dos ciclos de bus para completar una transferencia desalineada. Las lneas habilitadoras de byte son consideradas parte del sistema de direccionamiento. Las seales restantes, incluidas en una transferencia de datos de memoria son: 1. (Write/Read#) (Escritura/Lectura) cuya salida es alta cuando la CPU escribe datos a la memoria o E/S y baja cuando lee datos de la memoria o E/S. 2. M/I0# (Memory/lnput-Output#) (Memoria/Entrada-Salida#) cuya salida es alta cuando el dato es transferido entre la CPU y la memoria y baja cuando la transferencia est entre la CPU y los dispositivos de E/S. 3. (Data/Control#) (Datos/Control#) tiene una salida alta para transferencia de datos y una salida baja para transferencia de instruccin. 4. BS16# es una entrada que es usada por un dispositivo de 16 bits para que la seal de la CPU se convierta a su modo de 16 bits.

26

Microprocesador de 32 bits

Unidad 2 Funcionamiento de los buses

Ejercicio 3 Ciclos de lectura y escritura


OBJECTIVO DEL EJERCICIO Cuando haya terminado este ejercicio, usted comprender el funcionamiento de los ciclos de lectura y escritura de la CPU. Verificar sus resultados con el osciloscopio. DISCUSIN En un ciclo de lectura, el dato es transferido de la memoria o E/S a la CPU. En un ciclo de escritura, el dato es transferido de la CPU a la memoria o E/S. La salida de estado W/R# (Escritura/Lectura#) determina el tipo de ciclo que est siendo ejecutado. Cuando un dispositivo externo reconoce una direccin vlida y un comando de lectura (W/R# bajo), responde colocando sus datos en el bus de datos e impulsando RDY# a bajo, antes de que T2 termine. Entonces la CPU lee los datos y termina el ciclo de lectura. En un ciclo de escritura, la CPU emite un pulso ADS# bajo y una direccin vlida. En la mitad del ciclo T1, la CPU escribe su dato en el bus de datos para que el dispositivo externo pueda leer el dato. La informacin permanece en el bus de datos hasta la mitad de T1 del prximo ciclo de bus. Hay diferentes tipos de ciclos de lectura y escritura. El tipo de ciclo depender del estado de las lneas M/IO# y D/C#, as como la lnea W/R#. Cuando M/IO# es bajo, se ejecuta un ciclo de E/S. D/C# es siempre alto para un ciclo de E/S, debido a que las instrucciones siempre se extraen de la memoria durante un ciclo E/S. La lnea W/R# determina si un ciclo E/S es una funcin de lectura de datos (W/R# en bajo) o de escritura de datos en E/S (W/R# en alto). Existen dos tipos de ciclos de lectura de memoria: lectura de cdigo de memoria y lectura de datos de memoria. Una lectura de cdigo de memoria se produce cuando W/R# es bajo y la CPU manda llamar una instruccin. Una lectura de datos de memoria se produce cuando la CPU lee datos de la memoria. La seal D/C# determina si el ciclo de lectura de memoria es una lectura de cdigo de memoria (D/C# bajo) de una lectura de datos de memoria (D/C#alto).

29

Microprocesador de 32 bits

Unidad 2 Funcionamiento de los buses

Ejercicio 4 Inicializacin de la CPU


OBJECTIVO DEL EJERCICIO Cuando haya terminado este ejercicio, usted sabr describir el estado de restablecer y el proceso de inicializacin del microprocesador 80386. DISCUSIN El capacitor C40 y la resistencia R42 son conectados a la entrada inversora y forman un circuito de inicio de encendido. Cuando la energa es aplicada por primera vez, el capacitor mantiene un nivel lgico bajo en el inversor (RES#), el cual inicia un ciclo de reinicializacin. El capacitor carga a travs de R42; cuando el voltaje umbral de la entrada del inversor es alcanzado, la salida RES va a alta y el ciclo de reinicio es finalizado. Mientras el tablero del circuito es encendido, un reinicio puede ser generado, presionando el interruptor RESET. Cerrando este interruptor descarga el capacitor a travs de R40. Cuando el interruptor se abre, el capacitor es cargado a travs de R42 y RES va a alto concluyendo el ciclo de reinicio. La seal RES es conectada a un dispositivo lgico programable (PLD = Programmable Logic Device). En este circuito, la seal RES es disparada con CLK2 para sincronizar un reinicio de encendido o reinicio de botn de pulso con el reloj de la CPU. La salida resultante, RESET, es conectada a la CPU y otros dispositivos que requieren la seal. La condicin de reinicio provoca que la CPU suspenda todas las actividades del bus y establece las salidas mostradas abajo en los niveles indicados. D/C#, ADS#, A0-A31 alto W/R#, M/IO#, BE0#-BE3# bajo D0-D31 triestado Si la CPU es reiniciada en su modo de ejecucin (RUN), usted no puede determinar si la falla se debe a una falla del circuito ocurrida durante el reinicio o despus. Reinicie la computadora en el modo CICLO SIMPLE (SINGLE CYCLE) para determinar si una falla ocurre durante el reinicio. Este modo permite examinar seales estticamente y comparar sus niveles. Los pasos que la CPU ejecuta despus del reinicio son: 1. buscar una instruccin de la direccin de memoria FFFF FFF0H (proporciona la localizacin de la rutina de inicializacin)) 2. inicializar los registros internos 3. establecer las reas de memoria externa 4. escribir el mensaje de inicio "Lab-Volt 32 bit Proc. Trainer" en la pantalla LCD 5. introducir un bucle de espera para que e1 usuario presione una tecla de funcin. Usando el modo CICLO SIMPLE, los 32 bits de datos y los 32 bits de direccin pueden ser ledos de los LEDs. Ellos se mostrarn en formato binario: un LED que est activado indicando un 0 y desactivado indicando un 0. Los bits son agrupados en grupos de cuatro, simplificando la conversin a hexadecimal y son ledos de izquierda a derecha, MSB a LSB.

31

Microprocesador de 32 bits

Unidad 3 Interfase con la memoria

UNIDAD 3 INTERFASE CON LA MEMORIA

OBJETIVO DE LA UNIDAD Cuando termine esta unidad, usted sabr comprobar las transferencias de memoria y describir la funcin de las seales de control de memoria. FUNDAMENTOS DE LA UNIDAD

La memoria es una parte muy importante de un sistema con microprocesador. Las instrucciones que ejecuta la CPU se guardan en memoria, y tambin informacin numrica como datos del sistema, informacin de estado, y el resultado de los clculos.

Los dispositivos semiconductores de memoria son CIs con una gran matriz de posiciones de almacenamiento de datos. Se usan dos tipos bsicos en los sistemas con microprocesador: RAM (Random-Access Memory = Memoria de acceso aleatorio) y ROM (Read-Only Memory = Memoria de slo lectura). La CPU puede escribir datos en RAM y leer datos de ella. Por esta razn, RAM tambin se conoce como memoria de lectura/escritura. Muchos CIs de RAM (incluyendo los de su tablero de circuitos) son voltiles, lo cual significa que al desconectar la alimentacin, el dato almacenado se pierde. Se puede considerar a ROM como datos que permanentemente estn almacenados. En algunos tipos de memoria ROM, los datos se almacenan en el proceso de fabricacin. Otros tipos son fabricados con datos en blanco. Puede usar un instrumento de programacin especial para cargar los datos en la ROM antes de instalarla en el circuito.

33

Microprocesador de 32 bits

Unidad 3 Interfase con la memoria

Una vez que ROM est en su circuito, puede leer su informacin, pero no puede escribir datos en ella. Como una ROM retiene los datos an si se desconecta la alimentacin, sta se clasifica como memoria no voltil.

En este dibujo simplificado se ve como las RAMs y las ROMs tienen sus lneas de datos (data) y las de direccin (address) conectada con las mismas de la CPU. La informacin se transfiere hacia y desde la memoria por el bus de datos. La CPU usa el bus de direccin para seleccionar la posicin de memoria exacta con la que se produce la transferencia. Un circuito con microprocesador puede tener muchos dispositivos de memoria. Parte del bus de direccin se decodifica para seleccionar cada vez un chip de memoria particular. Las salidas del decodificador (decoder) van a las entradas selectoras de chip (CS) de cada dispositivo.

La decodificacin de memoria se usa para configurar la memoria en una serie de bloques. El nmero de posiciones en un dispositivo es 2n, donde n es el nmero de lneas. Por ejemplo, suponga que los 2 chips de RAM tienen 13 lneas de direcciones (A0-A12). La capacidad de cada uno es 213 8192 (8K) posiciones. La prxima lnea superior (A13) se puede usar con un simple decodificador (el inversor) para seleccionar una de las dos RAMs de 8K.

34

Microprocesador de 32 bits

Unidad 3 Interfase con la memoria

Si las prximas dos lneas (A13 y A14) fueran decodificadas, se podra seleccionar una de cuatro (22) RAMs de 8K.

La CPU 80386 est diseada para trabajar con buses de datos de 32 y de 16 bits. A menudo un sistema con microprocesador tiene reas de almacenamiento de datos agrupadas para 32 y para 16 bits. En su tablero de circuitos, el rea de RAM est configurada para datos de 32 bits. El rea de ROM est configurada para datos de 16 bits.

35

Microprocesador de 32 bits

Unidad 3 Interfase con la memoria

Tres de los PLDs (Programmable Logic Devices = Dispositivos lgicos programables) de su tablero de circuitos se usan como interfase entre la CPU y la memoria. Esta figura simplificada muestra estos PLDs y las seales asociadas con la interfase con memoria. Los PLDs permiten disear el circuito de tal forma que se reemplazan muchas otras compuertas y dispositivos lgicos con un solo CI. U24 Y U27 operan como un controlador de bus. El controlador de bus es necesario para establecer los tiempos y la lgica apropiados para la transferencia eficiente de la memoria. U23 funciona como un decodificador de direccin. Sus salidas se usan para seleccionar un cierto bloque de memoria, mientras que la parte baja de las lneas de direccin de la CPU especifican la posicin exacta dentro del bloque seleccionado. Los PLDs usan las seales del circuito de reloj para asegurar que sus salidas estn sincronizadas con la CPU. El controlador de bus usa CLK2, y CLK es comn al controlador de bus y al decodificador de direcciones. La memoria de su tablero de circuitos est compuesta de RAM, ROM del monitor y ROM del usuario. Tres de las salidas del decodificador son usadas para seleccionar uno de estos bloques para una transferencia.

o RAMSEL# (RAM SELect = Seleccin de RAM) habilita transferencias hacia y desde RAM. o MROMSEL# (Monitor ROM SELect = Seleccin de ROM de monitor) habilita transferencia
de ROM del monitor. o UROMSEL# (User ROM SELect = Seleccin de ROM del usuario) habilita transferencias de la ROM del usuario. La salida BS16# (Bus Size 16 = tamao de bus 16) comunica a la CPU cuando una transferencia involucra dispositivos de 16-bits.

36

Microprocesador de 32 bits

Unidad 3 Interfase con la memoria

Las salidas del controlador de bus se derivan de los estados de salida de la CPU y la seal de reloj.

o MWTC# (Memory WriTe Command = Comando de escritura en memoria) es activa cuando


la CPU escribe en memoria. o MRDC# (Memory ReaD Command = Comando de lectura de memoria) es activa cuando la CPU lee de la memoria. Los controles de bus tambin generan la seal RDY# a la CPU. NUEVOS TRMINOS Y PALABRAS voltiles - susceptible a la prdida de datos cuando la alimentacin es interrumpida. controlador de bus - circuito que maneja las seales de control necesarias para transferir informacin entre la CPU y la memoria o E/S. falla - falla en el software o el hardware que produce una operacin incorrecta del sistema. depurar - localizar y corregir las fallas en el hardware o en el software. lneas de direccin del sistema - las lneas de direccin que son comnes a la CPU y los dispositivos externos. mapa de memoria - es un listado o representacin grfica que describe cmo estn asignados los bloques de memoria en un sistema. imagen - posicin o bloque de memoria que est repetido una o ms veces debido a la decodificacin parcial de una direccin. cdigo de operacin - representacin hexadecimal de una instruccin de un microprocesador. operando - un nmero que es afectado o manipulado de acuerdo con la instruccin. EQUIPO REQUERIDO Unidad base de FACET Tablero de circuitos MICROPROCESADOR DE 32 BITS Osciloscopio de doble trazo Fuentes de potencia, 15 Vcd (requiere 2)

37

Microprocesador de 32 bits

Unidad 3 Interfase con la memoria

Ejercicio 1 Seales de control de memoria


OBJECTIVO DEL EJERCICIO Cuando haya terminado este ejercicio, usted sabr describir las seales de datos, de direccin y de control de dispositivos de memoria en un circuito con microprocesador. DISCUSIN El nmero de lneas de direccin que un dispositivo tiene, determina el nmero de posiciones de memoria. El nmero de posiciones de memoria es: 2n, donde n es el nmero de lneas de direccin. El tamao del bloque de memoria se determina por el nmero de lneas de datos. El dispositivo de memoria es clasificado por el nmero de posiciones de memoria multiplicado por el nmero de bits por posicin. Los dispositivos de memoria tambin tienen entradas de control para comunicacin con el microprocesador. Las entradas de Seleccin de Chip (CS = Chip Select) permiten que la CPU seleccione este dispositivo especfico. La CS1# es una seal activa baja. CS2 es permanentemente alta para su entrenador. Write Enable, WE# (habilitacin de escritura), una entrada activa baja, especifica una operacin de lectura cuando est en alta y de escritura cuando est en baja. RAM tiene lneas de datos bidireccionales y salidas triestado. Las salidas de tres estados son usadas para permitir que diferentes dispositivos puedan compartir el bus de datos. Output Enable, (OE#) (salida habilitada) es una seal de entrada baja activa; cuando est activa la RAM puede emitir sus datos al bus. Cuando OE# est inactiva, las salidas de datos de RAM son forzadas a un estado de alta impedancia y son desconectadas del bus. Cuatro chips de la RAM de 8k x 8 son necesarios para transferir 32 bits a la vez. Los cuatro chips en 1a RAM en el microprocesador usan las mismas 13 lneas de direccin (de A2 hasta A14). El bus de datos de 32 bits est dividido entre las cuatro RAM's, con un grupo de 8 bits diferentes conectados entre s. Cuando el bus de direccin selecciona una posicin de bloque de RAM, la seal RAMSEL# del decodificador de direccin activa los cuatro chips (CS) seleccionados. Cuando la CPU lee desde RAM, MRDC# va a baja en el tiempo apropiado en el ciclo de bus, activando las habilitaciones de salida (OE#) de las cuatro RAM's. Cuando la CPU escribe en RAM, MWTC# va a baja en el tiempo apropiado en el ciclo de bus. Dependiendo de los bytes usados en la transferencia de datos, las salidas habilitadoras de byte correspondientes (BE0# - BE3#) se vuelven activas. Las habilitaciones de bytes son disparadas con MWTC# para activar la entrada de la habilitacin de escritura (WE#) de la(s) RAM(s) seleccionada(s).

39

Microprocesador de 32 bits

Unidad 3 Interfase con la memoria

El diagrama de bloque de la ROM es muy similar al de la RAM. Las lneas de datos de la ROM son etiquetadas de 00 hasta 07, ya que son lneas de salida solamente. La ROM tiene un CS y una lnea de control OE#. No se requiere una lnea WE#, ya que la ROM es un dispositivo de slo lectura. Los dos CI's de ROM del monitor usan lneas de direccin de A1 hasta A13 y lneas de datos de DO hasta D15. Esto determina la configuracin 8k x 16 de las ROM's en este circuito. Cuando el bus de direccin especifica una ubicacin de memoria en el bloque ROM del monitor, la seal MROMSEL# del decodificador de direccin activa las selectoras del chip de ROM. MRDC# se vuelva activa en el tiempo apropiado en el ciclo de lectura y activa las habilitaciones de salida de la ROM. Cuando las salidas de ROM son habilitadas, la CPU extrae el dato de lectura de las ROM's. El bloque ROM del usuario contiene dos enchufes para CI vacantes para instalar ROM's que usted haya programado. Las conexiones del bus de direccin y datos son idnticas al ROM del monitor, excepto que los selectores de chip son controlados por UROMSEL#. La localizacin y reparacin de fallas (errores) en circuitos de memoria requieren una metodologa sistemtica paso a paso. Los circuitos de memoria de ROM pueden ser consideras funcionando correctamente si el mensaje de encendido correcto aparece en la pantalla LCD. Si el mensaje de encendido no aparece, empiece el procedimiento de localizacin de fallas, examinando la informacin de direccin y el dato usado por el programa de inicializacin. Existe un programa de prueba de RAM almacenado en la ROM del monitor. Este programa lee y escribe a la RAM; operando la CPU en el modo CICLO SIMPLE, la informacin puede ser evaluada y depurada. Las seales de la CPU son enviadas a varias diferentes posiciones; por esta razn, la seal debe ser verificada en diferentes puntos para confirmar que est funcionando correctamente.

40

Microprocesador de 32 bits

Unidad 3 Interfase con la memoria

Ejercicio 2 Decodificacin de direccin de memoria


OBJECTIVO DEL EJERCICIO Cuando haya terminado este ejercicio, usted sabr describir el sistema de decodificacin de memoria usado para seleccionar un bloque de memoria individual. DISCUSIN PLD (U23) es el decodificador de direccin de memoria en este circuito. El PLD decodifica las lneas de direccin de A17 hasta A18 y produce las seales selectoras de memoria RAMSEL#, MROMSEL# y UROMSEL# y la seal BS16#, la cual es activa para transferencias de MROM y UROM. Las seales ADS# y CLK son usadas para sincronizar y activar la seleccin de bloque en e! tiempo adecuado en el ciclo del bus. M/IO# es usada para asegurar que la RAM y ROM sean seleccionadas solamente para la transferencia de memoria, no para transferencias de E/S. El bloque RAM es seleccionada cuando los bits de A17 y A18 estn en 0. La ROM del usuario es seleccionada cuando A17 es 0 y A18 es 1. El ROM del monitor es seleccionado cuando A17 y A18 son 1. El nmero de posiciones de byte en cada bloque est determinado por los 17 bits de direccin inferiores (A0 hasta A16); produciendo 131,072 (128K) posiciones. Cuatro bytes son requeridas para una doble palabra, por lo tanto hay 32K posiciones de doble palabra. Las posiciones de bloques de memoria son designadas por un mapa de memoria. Ya que A15 y A16 no estn decodificadas, la seccin de 32 kilobytes de la RAM aparentemente se repiten varias veces dentro del bloque de 128 kilobytes. Estas secciones duplicadas secciones son vistas como imgenes de la primera seccin por la CPU y no como secciones separadas. Las imgenes contendrn los mismos datos como la seccin decodificada de memoria. El nmero de bits de datos sin decodificar (n) determina el nmero de secciones (2n) en un bloque de memoria. El bloque ROM tienen tres lneas de direccin sin codificar (A14, A15 y A16) por lo tanto hay 8 secciones en cada bloque ROM.

43

Microprocesador de 32 bits

Unidad 3 Interfase con la memoria

Ejercicio 3 Transferencia de datos de memoria


OBJECTIVO DEL EJERCICIO Cuando haya terminado este ejercicio, usted sabr describir las transferencias de datos de 16 y 32 bits de memoria en un circuito con microprocesador 80386. DISCUSIN La CPU genera salidas de direccin de A2 hasta A31. A0 y A1 internamente generan las cuatro seales habilitadoras de byte (de BE#0 hasta BE3#). El PLD (U20) decodifica las habilitadoras de byte para generar A0 y A1 usadas en otros dispositivos externos. A0 no se usa en el direccionamiento de memoria. A1 es parte de la direccin de ROM. A2 cambia de estado cada cuatro pasos; como RAM est configurada para un almacenamiento de doble palabra (4 bytes), A2 es el bit ms bajo necesario para direccionar RAM. A1 cambia de estado cada segundo paso; ya que ROM es configurada para un almacenamiento de palabra (2 bytes), A1 es el bit ms bajo necesario para direccionar ROM. De BE0# hasta BE3# son usadas para direccionar los bytes individuales dentro de una doble palabra de RAM. Cuando la CPU lee ROM, ambos bytes bajos son siempre transferidos. Los habilitadores de byte son usados para ciclos de escritura de RAM y no para los ciclos de lectura de RAM. La CPU lee todas las lneas de datos de 32 bytes cuando sta lee de RAM. La CPU internamente selecciona solamente los bytes requeridos para realizar la operacin. Las transferencias RAM desalineadas de 32 bits requieren dos ciclos de bus. La ubicacin de doble palabra superior es direccionada primero. La ubicacin de doble palabra inferior es direccionada en el segundo ciclo. Las transferencias desalineadas pueden ocurrir en ROM, pero la alineacin es referenciada a los lmites de palabra. Ya que la ROM tiene una amplitud de dos bytes, una transferencia de 32 bits puede sobrepasar uno o dos limites de palabra. Dos ciclos de bus son requeridos si slo un limite de palabra es cruzada y tres ciclos de bus son requeridos si dos lmites de palabra son cruzados. Ya que las transferencias de ROM estn limitadas a las 16 lneas de datos inferiores, transferir palabras alineadas o desalineadas de ms de 16 bits requieren consideracin especial. La CPU lee datos en las 16 lneas inferiores (DO hasta D15) que podra normalmente leerse en las 16 lneas superiores (D16 hasta D31).

45

Microprocesador de 32 bits

Unidad 3 Interfase con la memoria

Una transferencia normal de datos de uno o ambos bytes de datos inferiores se produce en D0 hasta D15, cuando BE0# y/o BE 1 # estn activas. Una transferencia que incluye datos de D24 a D31 se presenta en D8 a D15, con BE1# y BE3# activas. Una transferencia que incluye datos de D16 a D24, se presenta en DO a D7, con BE0# y BE2# activas. Transferencias que requieran dos ciclos de bus utilizan las lneas habilitadoras de byte para determinar cules bytes son ledos en cada ciclo del bus. En transferencias de dos ciclos, los bytes inferiores son transferidos primero La condicin de BS16# determina el tamao del bus. Si BS16# es baja durante el muestreo, la CPU establece el tamao del bus a 16. Si BS16# es alta durante el muestreo, la CPU establece el tamao del bus a 32.

46

Microprocesador de 32 bits

Unidad 4 Interfase de e/s

UNIDAD 4 INTERFASE CON E/S

OBJETIVO DE LA UNIDAD Al finalizar esta unidad, usted ser capaz de demostrar las seales necesarias para transferir datos entre la CPU 386 y dispositivos de entrada y salida. Va a usar el tablero de circuitos MICROPROCESADOR DE 32 BITS y sus componentes asociados de entrada/salida. FUNDAMENTOS DE LA UNIDAD Para acceder y usar la capacidad de la CPU, debe saber como introducir y obtener informacin a y desde la CPU. Este proceso es llamado interfase de entrada/salida o interfase E/S. La CPU siempre es el punto de referencia con el cual se usan los trminos de entrada y salida.

El tablero de circuitos MICROPROCESADOR DE 32 BITS tiene un mapa de memoria y un mapa de E/S. Todos los puertos E/S son accedidos desde el mapa de E/S de 64 K. Por lo tanto, para acceder a los dispositivos de E/S, se deben usar las instrucciones de entrada (IN) y salida (OUT), mientras que las instrucciones MOV acceden al mapa de memoria.

El decodificador de E/S usa las lneas de direccin A4, A5 y A6 ms las seales de control ADS#, M/IO, IORC# y IOWC# para habilitar los diferentes puertos de E/S.

49

Microprocesador de 32 bits

Unidad 4 Interfase de e/s

El tablero de circuitos MICROPROCESADOR DE 32 BITS tiene 6 bloques de entrada/salida o puertos de E/S.

Cada puerto de E/S tiene direcciones definidas para su acceso. La pantalla provee al usuario variedad de informacin. El puerto serial es usado para introducir y obtener datos serialmente con otros dispositivos externos. El Controlador perifrico de interrupciones (PIC = Peripheral Interrupt Controller) provee 8 entradas de interrupcin. Estas interrupciones son tratadas en una unidad por separado. El CDA (convertidor digital a analgico) proporciona una salida analgica. El CAD (convertidor analgico a digital) proporciona una entrada analgica. La interfase perifrica programable (PPI = Peripheral Programmable Interface) enlaza el teclado y el puerto paralelo de 8 bits a la CPU. NUEVOS TRMINOS Y PALABRAS unipolar - tener una polaridad. bipolar - tener dos polaridades. monoestable redisparable - un multivibrador monoestable que puede ser disparado durante su pulso, de tal manera que ste se prolonga.

50

Microprocesador de 32 bits

Unidad 4 Interfase de e/s

Ejercicio 1 Puertos CDA y CAD


OBJECTIVO DEL EJERCICIO Al concluir este ejercicio, usted ser capaz de demostrar los puertos CDA y CAD del tablero de circuitos MICROPROCESADOR DE 32 BITS. Usar un programa, voltmetro y osciloscopio para verificar sus resultados. DISCUSIN El CDA (Convertidor digital a analgico) toma una entrada binaria y la convierte en una salida voltaje analgico. El CDA en el tablero de circuitos acepta 8 bits binarios como entrada; por lo tanto se hace referencia a l como el CDA de 8 bits. El nmero de entradas binarias determinan la resolucin del CDA. La resolucin est determinada por el valor mximo del voltaje de salida dividido entre el nmero de bits de entrada. El CDA en su tablero de circuitos tiene dos rangos de voltaje de salida 10V y 2.56V, los cuales pueden ser seleccionados, mediante un puente. El CAD (Convertidor analgico a digital) convierte una seal analgica en una seal digital. El CAD en el tablero de circuitos tiene una salida de 8 bits y dos modos de operacin en su entrada: el modo unipolar y el modo bipolar. El modo unipolar tiene un rango de voltaje de entrada de entre 0V y 10V. La salida es 00H con una salida de 0V y FFH con una entrada de 10V. En el modo bipolar e1 rango de voltaje de entrada est entre 5V y +5V. La salida es 00H con una entrada de 5V, 80H con una entrada de 0V y FFH con +5V. El registro en la CPU con el cual emite y recibe datos es el registro AL. El registro AL son los 8 bits ms bajos del registro EAX.

53

Microprocesador de 32 bits

Unidad 4 Interfase de e/s

Ejercicio 2 PPI e interfase del teclado


OBJECTIVO DEL EJERCICIO Al finalizar este ejercicio, usted podr demostrar la interfase perifrica programable (PPI = Programmable Peripherical Interface) y la interfase del teclado usando un programa de prueba y un osciloscopio. DISCUSIN La interfase perifrica programable (PPI) es usada para intercomunicar dispositivos externos con la CPU. El PPI contiene tres puertos programables de 8 bits cada uno. El puerto PA intercomunica el teclado y el interruptor DIP de prueba. El puerto PB conecta a JP6 y es usado como un puerto paralelo de 8 bits. El puerto PC es usado para seales de control (handshaking) con los puertos PA y PB. El PPI se conecta al byte 0 de las lneas de datos D0 hasta D7, del bus de datos. Las entradas de direccionamiento A0 y A1 seleccionan uno de los tres puertos. La CPU usa una palabra de control para programar los puertos del PPI. La palabra de control define la operacin de los tres puertos. Para acceder la palabra de control, las direcciones A0 y A1 deben estar altas. La rutina de inicializacin del monitor instala el puerto PA del PPI como un puerto de entrada muestreado. Cuando el puente NORM/PRUEBA est en la posicin PRUEBA, el interruptor DIP (S3) es ledo entre PA4 y PA7, permitiendo la instalacin del interruptor DIP para ser usado para ejecutar una rutina de prueba. Cuando el puente NORM/PRUEBA est en la posicin NORM, la rutina de inicializacin normal es ejecutada y el mensaje de inicio es mostrado. Despus de la inicializacin, el puerto PA es establecido como una entrada y el cdigo de las teclas es ledo sobre PA0 - PA3 despus de que una tecla presionada es percibida. La seal de bsqueda de tecla (KSCLK) es una seal de reloj astable, aproximadamente de 260 kHz y es generada por el dispositivo lgico programable PLD (U20). La seal KSCLK mantiene redisparado al chip U40A (multivibrador monoestable redisparable dual) de manera que la seal de muestreo STROBE permanezca alta. Cuando una tecla es presionada, el pin 2 de U40A va a bajo y la seal KSCLK ya no dispara el chip, ocasionando que la seal STROBE vaya a bajo. La seal STROBE permanece en bajo hasta que la tecla es liberada. La seal STROBE baja permite al puerto PA escribir el dato en las lneas PA (PA0 - PA3). Cuando la seal STROBE va a alto la CPU lee el dato y lo procesa.

55

Microprocesador de 32 bits

Unidad 4 Interfase de e/s

Ejercicio 3 Pantalla LCD y puerto serial


OBJECTIVO DEL EJERCICIO Al terminar este ejercicio, usted ser capaz demostrar la pantalla y el puerto serial usando rutinas de prueba y un osciloscopio. DISCUSIN La pantalla es una Pantalla de cristal lquido (LCD = Liquid Crystal Display) de 16 caracteres por 2 lneas. Cada carcter est formado por una matriz de puntos de 5 por 7. El generador de caracteres forma la pantalla y determina cules puntos son visibles para formar un carcter en particular. El cdigo hexadecimal escrito en la pantalla determina el carcter que es creado por el generador de caracteres. El generador de caracteres es accedido cuando la lnea de seleccin de registro (RS = Register Select) conectada a A2 va a alto cuando DP_EN es activo. La pantalla es conectada al byte 1 del bus de datos (lneas de datos desde D8 hasta D15). A0 debe ser alto para leer o escribir el byte 1 del bus de datos. Cuando el puerto serial convierte un byte paralelo de datos a una cadena serial de datos, el bit menos significativo (LSB = Least Significant Bit) es transmitido primero. El puerto convierte los datos seriales recibidos a datos paralelos. El puerto serial es bi-direccional. Los bits de inicio (START) (0 lgico) y parada (STOP) (1 lgico) son aadidos para identificar el comienzo y el fin de un byte. Los bits START y STOP son quitados del final del receptor antes de que el dato sea convertido al formato en paralelo. Las cadenas de datos en serie son usadas para comunicarse con otros dispositivos seriales externos. El RS232C es un estndar de comunicaciones de interfase serial. La interfase usa un rango de voltaje de +5V a +15 V para un 0 lgico y de 5V a 15V para un 1 lgico. El puerto serial en el tablero de circuitos MICROPROCESADOR DE 32 BITS conforma con este estndar. Un Adaptador de interfase de comunicacin asincrnica (ACIA = Asynchronous Communications Interface Adapter ) convierte datos en paralelo a datos en serie. Este introduce los bits START y STOP y transmite la seal serial en !a salida TXD. El ACIA recibe datos seriales en RXD y los convierte en datos paralelos. ste adems realiza todas las funciones requeridas para las comunicaciones seriales. En el MICROPROCESADOR DE 32 BITS, el chip U15 es un ACIA. El tablero de circuitos del MICROPROCESADOR DE 32 BITS usa niveles de voltaje de 0 para un 0 lgico y 5V para un 1 lgico. El controlador (driver) de RS-232C (U7) convierte estos niveles a niveles de voltaje requerido por un puerto serial. El receptor RS-232C (U16) convierte los niveles de voltaje serial a los requeridos por el tablero del microprocesador. La tira de pines en la seccin del puerto serial es usada para configurar el conector DB9. Esto habilita el puerto para interconectarse con cualquier puerto RS-232C.

57

Microprocesador de 32 bits

Unidad 5 Procesamiento de interrupciones

UNIDAD 5 PROCESAMIENTO DE INTERRUPCIONES

OBJETIVO DE LA UNIDAD Al trmino de esta unidad, usted podr mostrar como la CPU 80386 procesa las interrupciones de software y hardware. Podr adems verificar sus resultados introduciendo y analizando programas de prueba sobre el tablero de circuitos MICROPROCESADOR DE 32 BIT y por la observacin de seales con el osciloscopio y la sonda lgica. FUNDAMENTOS DE LA UNIDAD Algunas veces la CPU debe suspender temporalmente la operacin de su rutina principal, para atender otra funcin. El objeto es la necesidad de atender a un dispositivo externo o responder a una condicin interna del sistema. El proceso de detener el flujo normal de un programa para atender otro requerimiento de servicio se denomina una interrupcin.

Cuando una interrupcin se presenta, la CPU termina la instruccin en curso y se transfiere a un programa especial llamado rutina de servicio de interrupcin (ISR). En la mayora de los casos, cuando la ISR termina su tarea, la CPU retorna al punto en el cual se produjo la interrupcin y vuelve a la operacin normal del programa principal. Como una interrupcin puede producirse en cualquier punto del programa, la CPU debe tener la manera de guardar el sitio a donde ella debe retornar despus de completar la rutina de servicio. El Segmento de Cdigo (CS) y el Puntero de Instrucciones (IP), siempre contienen la direccin de la prxima instruccin a ser ejecutada por la CPU. Cuando una interrupcin se presenta, la CPU salva los contenidos S-IP, antes de transferirse a la ISR. Durante el retorno, los contenidos originales son restaurados a CS e IP, y el programa resume la ejecucin desde la prxima instruccin. El contenido del registro de banderas (FLG) es tambin salvado durante una interrupcin, ya que este registro contiene importante informacin del estado del programa principal.

59

Microprocesador de 32 bits

Unidad 5 Procesamiento de interrupciones

Los registros CS e IP son almacenados en un rea RAM conocida como pila (stack). La pila es usada para almacenamiento secuencial en algunas operaciones del microprocesador, incluyendo el procesamiento de las interrupciones. La prxima direccin disponible en la pila a algn punto en el tiempo, es contenida en los registros segmento de pila (stack segment SS) y puntero de pila (stack pointer SP). El monitor inicializa la pila cargando una direccin de comienzo en el par de registros SS/SP. La posicin inicial est en el fondo de la pila. Puede cambiar la localizacin de la pila cambiando los contenidos de SS/SP. Para usar la pila, la CPU disminuye primero el puntero de pila a la prxima posicin disponible e introduce los datos ah. Esto est ubicado en la parte superior de la pila. Como ms datos son agregados, la ltima posicin escrita se convierte en la parte superior (TOP) de la pila. Palabras dobles pueden ser almacenadas en la pila, en cuyo caso el puntero de pila disminuye en 4. El dato que es retirado de la pila es tomado de la parte superior de la misma, aumentndose adems el puntero de pila. En terminologa de microprocesador agregar datos encima de la pila es una operacin presionar (PUSH). Retirar datos de la parte superior de la pila es una operacin descargar (POP). Este tipo de pila es llamada ltima en entrar-primera en salir (last-in-first-out LIFO) porque el ltimo dato que se introduce es el primero que sale de la pila. El microprocesador 80386 tiene instrucciones PUSH y POP, pero las manipulaciones de pila son realizadas automticamente, cuando se produce una interrupcin.

60

Microprocesador de 32 bits

Unidad 5 Procesamiento de interrupciones

Esta figura ilustra las operaciones de la pila durante una interrupcin. Cuando una interrupcin se produce, la CPU automticamente guarda los contenidos de los registros FLG, CS, e IP en la pila. La rutina de servicio es entonces ejecutada de acuerdo al tipo de interrupcin. Las interrupciones pueden darse de una o dos fuentes: interrupciones de hardware o excepciones. Una interrupcin de hardware es una seal de interrupcin de un dispositivo externo. Estas interrupciones no son necesariamente sincrnicas con el reloj del sistema. Una excepcin resulta cuando la CPU detecta ciertas condiciones internas. Como todas las seales internas son referenciadas al reloj del sistema, las excepciones son eventos sincrnicos.

Dos entradas se proporcionan (INTR y NMI) en la CPU 80386 para interrupciones de hardware. Un tipo de interrupcin de hardware se ocurre cuando el lgico alto es aplicado a la entrada peticin de interrupcin (INTR). Seales a la entrada INTR son llamadas interrupciones ocultas porque pueden ser inhabilitadas (u ocultadas) dependiendo del estado de uno de los bits en el registro FLG.

61

Microprocesador de 32 bits

Unidad 5 Procesamiento de interrupciones

El registro FLG contiene 32 bits, 18 de los cuales estn disponibles para el programador. Cada bit indica y/o controla el estado de una condicin diferente en el microprocesador. El bit 9 en el registro FLG es la bandera de habilitacin de interrupciones (IF). Cuando el bit es activado (IF=1), la entrada INTR es habilitada. Cuando el bit es desactivado (IF=0), las seales de entrada en INTR son ignoradas. La CPU algunas veces ajusta o borra el bit IF, basado en ciertas operaciones internas. Puede adems controlar el bit con las instrucciones interrupcin de ajuste (STI) e interrupcin de borrar (CLI). Puede ocultar las interrupciones INTR si no quiere que cierta operacin sea interrumpida o para prevenir futuras interrupciones mientras un servicio de interrupcin se est ejecutando. El otro tipo de interrupciones hardware, son las interrupciones no ocultas (NMI). Una seal NMI causa una interrupcin sin importar el estado de la bandera IF. La entrada NMI es normalmente usada para una condicin de interrupcin de alta prioridad. Por ejemplo, un circuito externo que detecta una falla de una fuente de potencia, puede generar la seal a travs de la entrada NMI. La CPU ejecutar una ISR especial, de tal manera que salve sistemas importantes de datos y coloque el equipo en una condicin segura antes que la potencia de la fuente se pierda.

Las excepciones son interrupciones generadas por condiciones internas de la CPU. Los tres tipos de excepciones son mostrados en la tabla.

62

Microprocesador de 32 bits

Unidad 5 Procesamiento de interrupciones

En unidades previas, ha visto instrucciones de salto en las cuales la transferencia a la direccin se especificaba por parte de la instruccin. La transferencia a la direccin para una rutina de servicio de interrupcin es derivada de una interrupcin de tipo nmero. El microprocesador 80386 tiene 256 tipos de interrupcin. Cada uno de ellos es asignado por un nmero desde 025510 (00-FFH).

Esta tabla las interrupciones con sus nmeros de tipo en decimal. Algunos de los nmeros son reservados para funciones especiales y no se debe hacer uso de ellos. Los tipos faltantes (que no estn reservados o no son interrupciones de hardware) son todas excepciones. Cada tipo interrupcin puede tener una diferente rutina de servicio. Los nmeros de tipo son adems usados para determinar la direccin de comienzo de cada ISR.

63

Microprocesador de 32 bits

Unidad 5 Procesamiento de interrupciones

La CPU usa una tabla en la RAM llamada tabla de vector, para determinar donde encontrar una rutina de servicio especfica. Cuando la CPU se enciende en el modo real, la tabla de vector ocupa el primer Kbyte de RAM (000H-3FFH). La tabla contiene un vector por cada tipo de interrupcin. El vector apunta a la direccin de comienzo de la rutina de servicio. La direccin hexadecimal en la cual el vector est localizado equivale al nmero del tipo multiplicado por 4, porque los nmeros de tipo son consecutivos y cada direccin contiene un vector de cuatro bytes. NUEVOS TRMINOS Y PALABRAS interrupcin - un proceso por el cual la CPU suspende temporalmente la operacin de su programa, para atender las necesidades de un dispositivo externo o una condicin interna. Cuando la interrupcin ha sido atendida, la CPU retorna normalmente a la prxima instruccin a ser ejecutada en el programa interrumpido. rutina de servicio de interrupcin (ISR) - un juego de instrucciones al cual la CPU salta cuando una interrupcin o excepcin se produce. registro de bandera (FLG) - un registro cuyos bits individuales indican o controlan el estado de varias funciones de la CPU. pila - un rea de la RAM, dispuesta para almacenamiento y recuperacin secuencial de datos. La pila es usada en algunas funciones del microprocesador, incluyendo el procesamiento de interrupciones. segmento de pila (SS) - un registro de la CPU que contiene el valor del segmento de la pila que se encuentra activa. puntero de pila (SP) - un registro de la CPU que contiene la direccin del ltimo dato guardado en la pila.

64

Microprocesador de 32 bits

Unidad 5 Procesamiento de interrupciones

introducir (push) - una operacin en la cual la CPU almacena una palabra o doble palabra en la parte superior de la pila y disminuye el puntero de pila. pop - una operacin en la cual la CPU extrae una palabra o doble palabra de la parte superior de la pila y aumenta entonces el puntero de pila. ltima-entrar primera-salir (last-in-first-out) (LIFO) - un tipo de pila en el cual el ltimo dato introducido en la pila es el primer dato en ser extrado de la pila. interrupciones de hardware - una interrupcin causada por una seal externa de hardware. excepciones - la respuesta de la CPU a ciertas condiciones internas durante la ejecucin de una instruccin. interrupciones ocultables - una interrupcin de hardware que se puede inhabilitar (ocultar) de acuerdo al bit en el registro FLG. tipo nmero - un nmero en el rango 0-255 (00-FFH) que es usado para identificar el tipo de interrupcin o excepcin a ser procesada por la CPU. tabla vector - una tabla que contiene los vectores para las rutinas de servicio de las interrupciones. En el modo real de la CPU 80386, la tabla normalmente est localizada en el primer Kbyte de la RAM (00-3FFh). vector - un valor lgico de direccin que apunta a la primera localidad de una rutina de servicio de interrupcin. excepciones programadas - una excepcin que resulta de la ejecucin de interrupcin por software. interrupciones de software - una instruccin que causa una excepcin programada. excepcin detectada por el procesador - una excepcin que resulta del reconocimiento por la CPU de ciertas condiciones internas. punto de ruptura - una interrupcin de software que para un programa con el propsito de depurar o evaluar las condiciones de software o hardware del sistema. sobreflujo - una condicin que se produce cuando el resultado de una operacin lgica o aritmtica cambia el MSB (bit de signo) de un operando. bit de signo. - se trata del bit ms significativo (MSB), el cual es utilizado como indicativo de signo algebraico de un operando. interrupcin no ocultable (NMI). - una interrupcin de hardware que no puede ser oculta o inhabilitada. EQUIPO REQUERIDO Unidad de base FACET Tablero de circuitos MICROPROCESADOR DE 32 BIT Osciloscopio de doble trazo

65

Microprocesador de 32 bits

Unidad 5 Procesamiento de interrupciones

Ejercicio 1 Interrupciones no enmascarables


OBJECTIVO DEL EJERCICIO Cuando termine este ejercicio, usted ser capaz de demostrar las operaciones de las interrupciones no ocultas de hardware, en el tablero de circuitos MICROPROCESADOR DE 32 BIT. DISCUSIN Este circuito muestra cmo la seal de interrupcin no oculta (NMI) es generada para la CPU del tablero de circuitos. La salida del circuito NMI est conectada directamente a la entrada NMI de la CPU, la cual es activa alta. La compuerta NAND (U38D) en el circuito es mostrada como una compuerta OR con entradas invertidas. La salida (terminal 11) es alta si alguna entrada (terminal 12 o 13) es baja. La seal del interruptor pulsador HALT (PB HALT) es retenida y son eliminadas las vibraciones de los contactos a travs de los inversores U29E y U29F. La seal resultante es transmitida al terminal 12 de U38D. El terminal 13 de U38D est conectado al pin NMI# o al encabezado JP3 (localizado en el bloque de circuito CPU). Conectando a tierra este terminal se genera una interrupcin externa no oculta. Cuando la entrada NMI# es activada, la CPU: salva los contenidos de los registros de CS, IP y FLG a la pila, busca el vector para el tipo de interrupcin 02, transfiere a la direccin especificada por el vector y empieza a ejecutar la rutina del servicio a 1a direccin La rutina de servicio de interrupcin (ISR) realiza estas funciones: primero guarda los contenidos del propsito general y los registros del segmento. muestra la direccin de la instruccin en la cual la interrupcin ocurri, muestra los contenido de esta direccin y coloca el sistema en el modo de funcin y espera para un comando de teclado Una interrupcin no oculta es reconocida en la transicin de bajo a alta de la seal NMI y debe ser baja al menos ocho ciclos CLK2. Esto permite que la CPU reconozca solamente las seales NMI vlidas y para ignorar el corto, pulsos transitorios. En el evento de varios pulsos NMI vlidos sucesivos, la CPU responde al primer pulso, ejecutando una rutina de servicio. Si adems los pulsos NMI ulteriores se producen durante el ISR, la CPU solamente salva el primero de stos, ejecuta el ISR una vez ms para completar el 1 SR e ignorar los pulsos adicionales.

68

Microprocesador de 32 bits

Unidad 5 Procesamiento de interrupciones

Ejercicio 2 Interrupciones enmascarables


OBJECTIVO DEL EJERCICIO Al trmino de este ejercicio, usted podr explicar y mostrar las operaciones de las interrupciones de hardware ocultas para los microprocesadores 80386. DISCUSIN Una interrupcin oculta se produce cuando la entrada INTR (requerimiento de interrupcin) de la CPU es activada o manejada a un nivel alto. Un circuito integrado especial de soporte, llamado controlador programable de interrupcin (PIC). intercomunica seales de interrupcin oculta con la CPU. El PIC tiene 8 lneas de E/S de datos, las cuales se conectan a los 8 bits ms bajos del bus de datos (DO a D7). Esta conexin permite a la CPU enviar informacin de programacin al PIC y permite al PIC enviar un nmero tipo de interrupcin a la CPU. Las entradas leer (RD) y escribir (WR) son manejadas por las seales del comando de lectura E/S (IORC#) y comando de escritura E/S (IOWC#), respectivamente. Estas seales son generadas por el control del bus PLD y son necesarias para la comunicacin entre el PIC y la CPU. El PIC es direccionado por la seal PIC_EN# del decodificador E/S PLD. PIC EN# controla la entrada seleccionar chip (CS) del PIC. La entrada de direccin A0 al PIC es controlada por A2 del sistema del bus de direccin. E1 PIC usa esta entrada para descifrar las palabras de comando enviadas desde la CPU y las palabras de estado enviadas a la CPU. Existen 8 entradas de requerimiento de interrupcin (IR0-IR7) en el PIC para seales de interrupcin de dispositivos externos. Cuando una o ms de las entradas IR es activada, el PIC genera un requerimiento de interrupcin a la CPU. Cuando la CPU finaliza la ejecucin de su instruccin actual, el PIC recibe una seal de reconocimiento de interrupcin (INTA#) del controlador del bus PLD. Las ocho entradas IR fueron conectadas al encabezado JP4 para que pueda conectarse a otros circuitos o dispositivos externos. Las lneas de solicitud de interrupcin estn conectadas solamente a resistencias pull-down conectadas a tierra y a una fila de terminales del encabezado JP4. Sobre el tablero de circuitos, sta es la fila inferior de terminales. Cualquiera de las lneas IR pueden ser activadas, conectando +5V a su pin. Las derivaciones pueden ser usadas para interconectar las lneas de requisicin de interrupcin, IR1-IR5, a otros bloques de circuitos.

70

Microprocesador de 32 bits

Unidad 5 Procesamiento de interrupciones

El terminal adyacente a IR1 es etiquetado como COM (comunicaciones) y es usado como una solicitud de interrupcin del bloque de circuitos PUERTO SERIAL. IR2 e IR3 son requisiciones de interrupcin de propsito general (INTRA e INTRB) que la CPU puede dar salida por el PPI. IR4 puede ser conectado a la salida RXC del bloque PUERTO SERIAL. RXC es una seal de reloj derivada del oscilador de cristal del ACIA. Puede usar IR4 como una fuente de reloj en sus programas, cuando las aplicaciones del temporizador son requeridas. IR5 puede ser conectado a la salida de alistar dato (DR#) de un bloque de circuitos convertidor analgico a digital (ADC). Colocando una derivacin en la posicin IR5/DR#, permite que la CPU pueda ser interrumpida cuando el ADC complete su conversin. Antes que el procesamiento normal de una interrupcin oculta pueda empezar, la CPU debe emitir de 2 a 4 palabras del comando de inicializacin (ICW) hacia el PIC. E1 diagrama de flujo muestra la secuencia de inicializacin del PIC. Hay cuatro ICW's (de ICW hasta ICW4). La programacin siempre inicia con ICW1, seguido por ICW2. Los ocho bits de datos del ICW2, en conjuncin con el estado de la entrada A0, ajusta la configuracin inicial del PIC. ICW1 est caracterizado por las condiciones A0 = 0 y D4 = 1. Cada bit de datos controla una funcin o condicin en el PIC. Ajustando D1 a 1 especifica que un PIC sencillo (SNGL) es usado en el sistema. D1 es ajustado a 0 para especificar el modo cascada (ms de un PIC usado). Si la palabra comando ICW4 es tambin necesaria para programar el PIC, entonces el bit DO en ICW1 se ajusta a 1. DO = 0 si ICW4 no es necesario. Algunos bits de datos en las palabras de comando tienen valores fijos. Algunos de estos bits no son usados y algunos son reservados para usarse con diferentes microprocesadores o configuraciones de sistemas. ICW2 contiene los nmeros tipo de ocho requerimientos de interrupcin (IROIR7) del PIC que est siendo programado. E1 programador especifica los cinco bits de datos superiores (D3-D7). Si ICW4 es necesario, el nico bit que necesita cambiar en este sistema es D1, el cual controla el final del modo de interrupcin (EOI). Cuando D1 = 0, el modo EOI normal es seleccionado. En este modo, una secuencia de interrupcin finaliza cuando la CPU enva un comando EOI al PIC. Cuando D1 = 1, el modo seleccionado automticamente finaliza la interrupcin (AEOI). En el modo AEOI, una secuencia ce interrupcin finaliza automticamente cuando una segunda interrupcin de pulso de reconocimiento es recibido de la CPU.

71

Microprocesador de 32 bits

Unidad 5 Procesamiento de interrupciones

Una vez que los ICW's han inicializado el PIC, la CPU puede enviar comandos al PIC, emitiendo palabras de comando de operacin (OCW). Los OCW's pueden: ocultar (inhabilitar) una o ms de las entradas IR, establecer las prioridades de las entradas IR de manera que las funciones ms importantes del sistema se les de servicio primero, permitir que la CPU lea la informacin de estado del PIC y establezca modos de operacin especial La CPU tiene una secuencia de tiempo especial para manejar las interrupciones ocultas. La secuencia consta de dos ciclos de reconocimiento de interrupcin (INTA), separadas por cuatro estados inactivos. Cuando un requerimiento de interrupcin es recibido, la CPU responde, enviando el primer ciclo INTA. Las salidas BEO#, A3 - A31, M110#, D/C# y W/R# son manejadas en bajo. Los niveles de seal de control definen un nico tipo de ciclo de bus. Tambin durante el primer ciclo INTA, la CPU controla A2 y el resto de las habilitaciones de byte a alto. El primer ciclo INTA es seguido por cuatro estados inactivos consecutivos. Los estados inactivos son seguidos por el segundo ciclo INTA. Al final del segundo ciclo INTA, la CPU lee los ocho bits del nmero tipo de vector de PIC sobre las lneas de datos D0-D7.

72

Microprocesador de 32 bits

Unidad 5 Procesamiento de interrupciones

Ejercicio 3 Excepciones
OBJECTIVO DEL EJERCICIO Al terminar este ejercicio, usted podr explicar y demostrar cmo las excepciones interrumpen el microprocesador 80386. DISCUSIN Existen dos maneras en que las excepciones pueden interrumpir al microprocesador. Las excepciones pueden ser programadas, usando las instrucciones INT3, INTO o INTn en un programa. Algunas de estas instrucciones son llamadas interrupciones de software y requieren condiciones especficas para existir, con el fin de generar una interrupcin. Las excepciones detectadas por el procesador no dependen de una instruccin de un programa, sino que ocurren automticamente si ciertas condiciones se presentan en la CPU. El nmero tipo de interrupcin determina el vector que seala la rutina de servicio correcta. El nmero es requerido para cualquier tipo de excepcin y es asignado por la CPU. La interrupcin del software INT3 (o punto de ruptura) tiene un nmero tipo 3. El vector ISR est localizado en 0000CH. INT3 puede ser insertado en un programa en lugar de cualquier instruccin. La CPU detendr los comandos del programa de ejecucin cuando sta alcanza la instruccin INT3 permitiendo la examinacin de registros, memoria o condiciones de hardware. La instruccin INTO (interrupcin en sobreflujo) es una interrupcin condicional de software. INTO causa una interrupcin tipo 4, slo cuando una condicin de sobreflujo existe. La CPU ajusta la bandera de sobreflujo (OF), la cual es un bit 11 en los registros de bandera. Una vez que la interrupcin es limpiada la siguiente instruccin es ejecutada. INTn es una interrupcin de software que es utilizada en programas de depuracin o desarrollando sistemas de ayuda. El cdigo de operacin para INTn es CD n, donde n es un nmero de tipo de un bit de 00H-FFH. Estos valores son tabulados en el texto. Un programador debe verificar que la tabla del vector est establecida con la rutina de servicio apropiado para cada excepcin. En este tablero de circuitos muchas de las rutinas de servicio escriben un mensaje para informar que la excepcin fue detectada.

74

Microprocesador de 32 bits

Unidad 6 Programacin: modos de direccionamiento

UNIDAD 6 MODOS DE DIRECCIONAMIENTO

OBJETIVO DE LA UNIDAD Al trmino de esta unidad, usted podr describir y ejecutar los once modos de direccionamiento de la CPU 80386 usando el tablero de circuitos MICROPROCESADOR DE 32 BITS. FUNDAMENTOS DE LA UNIDAD Las unidades 6 y 7 cubren programacin y estn estrechamente relacionadas. Esta unidad cubre los registros de la CPU 80386 y los modos de direccionamiento y debe ser terminada antes de la unidad 7. La unidad 7 explica los formatos de los cdigos de instruccin. Para programar el MICROPROCESADOR DE 32 BITS debe saber lo siguiente: cmo la memoria externa es organizada y manejada el objeto, operaciones, funciones y limitaciones de los registros (memoria interna) de la CPU 80386 cmo direccionar registros y memoria externa cmo codificar instrucciones para la CPU 80386 cmo escribir las instrucciones en un programa, que permita a la CPU 80386 realizar las operaciones deseadas

En el modo protegido, el tamao de la direccin fsica de la memoria externa de la CPU 80386 es de 4 Gbytes (232). En el modo real, el tamao de la direccin fsica es de 1 Mbyte (220). El programa monitor del MICROPROCESADOR DE 32 BITS opera en el modo real para dar un completo acceso a todos los recursos de la CPU 80386.

77

Microprocesador de 32 bits

Unidad 6 Programacin: modos de direccionamiento

El mapa de memoria del tablero de circuitos MICROPROCESADOR DE 32 BITS es mostrado. El tablero de circuitos contiene 32 KBytes de RAM, con direcciones que van desde 00000 a 07FFF. La ROM del usuario est en el rango de direcciones 40000 a 4FFFF. La ROM del monitor est entre las direcciones 60000 y 6FFFF. El rango entre las direcciones 20000 y 2FFFF es abierto. Las restantes direcciones de memoria son direcciones imagen. Por ejemplo, la direccin 08000 es una direccin imagen de 00000; ambas direcciones tienen la misma localizacin fsica en el tablero de circuitos MICROPROCESADOR DE 32 BITS. El manejo de la memoria para el 80386 consiste de paginacin y segmentacin. La paginacin, la cual debe ser usada solamente en modo protegido, da acceso a estructuras de datos y programas ms grandes que el espacio de memoria disponible.

78

Microprocesador de 32 bits

Unidad 6 Programacin: modos de direccionamiento

Un segmento es una seccin de la memoria que es asignada para almacenar un tipo especfico de datos, tales como instrucciones de programa, datos, pila y similares. En el modo protegido, el tamao del segmento puede estar en el rango de 1 a 4 Gbytes (232 bytes). En el modo real, el tamao del segmento es fijado en 65,536 (216) bytes.

La CPU 80386 posee algunos registros que proporcionan almacenamiento temporal de datos, los cuales pueden ser accedidos rpidamente y otros registros que controlan el comportamiento del procesador.

79

Microprocesador de 32 bits

Unidad 6 Programacin: modos de direccionamiento

La CPU puede acceder a los datos almacenados en los registros sin necesidad de los ciclos de bus, lo cual incide en el tiempo de ejecucin de la instruccin. PUNTERO DE INSTRUCCIN SEGMENTO PROPOSITO GENERAL INDICADORES DIRECCION DEL SISTEMA DEPURACION PRUEBA CONTROL

El 80386 tiene 32 registros en las 8 categoras mostradas arriba. Estos registros son un conjunto de registros comunes al 8086, 8088, 80186 y 80286 y es as como todos estos registros de 16 bit de las CPUs anteriores estn contenidos en el 80386 de 32 bits. Slo los registros punteros de instruccin, segmento, propsito general, e indicadores son usados en esta unidad. Los modos de direccionamiento no usan los registros de direccin del sistema, depuracin, prueba, y de control; por lo tanto, esta unidad no describe las funciones de estos registros.

Los modos de direccionamiento del 80386 son mostrados arriba. Los modos de direccionamiento son maneras de localizar un operando, el cual puede estar en una instruccin, en un registro de propsito general, o en memoria.

80

Microprocesador de 32 bits

Unidad 6 Programacin: modos de direccionamiento

Tal como la direccin en el sobre de una carta le dice al cartero donde debe entregarla, el modo de direccionamiento de la instruccin le indica a la CPU donde localizar un operando. Usar la instruccin MOV para explorar la operacin de los modos de direccionamiento del operando. (DEST) (SRC)

La instruccin MOV (move = mover) copia datos de una ubicacin fuente (SRC = source) a una ubicacin destino (DEST). MOV (DEST), (SRC) En el nemnico de la instruccin MOV, la ubicacin DEST es especificada antes de la ubicacin fuente, separadas ambas por una coma.

Por ejemplo, la instruccin MOV AX, BX hace que la CPU copie los datos del registro de propsito general BX en el registro de propsito general AX. El cdigo hexadecimal (hex) para el nemnico MOV AX, BX es 89 D8; el hex code 89 D8 est en una direccin en la memoria. La instruccin MOV AX, BX mueve el operando 58DF en el registro BX al registro AX. Un operando es el dato o direccin que es operado por el cdigo de operacin. Los operandos pueden ser parte de una instruccin, estar en un registro de propsito general, o en memoria externa.

81

Microprocesador de 32 bits

Unidad 6 Programacin: modos de direccionamiento

NUEVOS TRMINOS Y PALABRAS modos de direccionamiento - formas de escribir cdigos de instruccin para localizar un operando, el cual puede estar en una instruccin, en un registro de propsito general o en memoria. direccin fsica - una direccin que identifica en forma nica una ubicacin en memoria. direcciones imagen - direcciones diferentes que se refieren a la misma ubicacin de memoria debido a la decodificacin parcial. paginacin - un mtodo de manejo de memoria que es usado en el modo protegido para brindar acceso a estructuras de datos y programas ms grandes que el espacio de la memoria disponible. segmentacin - un mtodo de manejo de memoria que permite dividirla en espacios de direccin independientes y seguros. segmento - un espacio de direccin independiente y seguro. operando - el dato o direccin que es manipulado por el cdigo de operacin. cdigo de operacin - la parte de la instruccin que contiene el cdigo para la operacin del microprocesador a ser realizada sobre el operando. direccin base - la primera ubicacin en un segmento. valores selectores de segmento - los valores de 16 bits que estn en la parte visible del registro de segmento. descriptor oculto - la parte oculta de un registro de segmento que contiene la direccin base del segmento, lmite e informacin de acceso. lmite - define el tamao de un segmento. informacin de acceso - informacin contenida en la parte oculta del descriptor del registro de segmento, sta controla qu programas pueden acceder a los datos en un segmento. tabla de descriptor - una tabla en memoria que contiene informacin para la parte oculta de un registro de segmento. direccin lineal - una direccin igual a la direccin base del segmento ms el desplazamiento, lo cual determina la direccin fsica cuando la paginacin est activada. direccin lgica - una representacin de la direccin fsica, escrita en forma de valor del selector de segmento: valor del desplazamiento. El valor selector de segmento es de 2 bytes y el valor del desplazamiento puede ser de 2 o de 4 bytes. direccin efectiva (EA) una direccin equivalente (calculado con la suma de los valores de ndice, base y desplazamiento) que localiza un operando en memoria con un segmento seleccionado. EQUIPO REQUERIDO Unidad base de FACET Tablero de circuitos MICROPOCESADOR DE 32 BITS Fuente de potencia, 15 Vcd (se requieren 2). Solamente requeridas si la unidad base de FACET no contiene una fuente de potencia.

82

Microprocesador de 32 bits

Unidad 6 Programacin: modos de direccionamiento

Ejercicio 1 Direccionamiento inmediato y de registro


OBJECTIVO DEL EJERCICIO Cuando haya terminado este ejercicio, usted ser capaz de: explicar las funciones de los registros en la CPU 80386 usar los modos de direccionamiento inmediato y por registro para transferir un operando a un registro verificar sus resultados por la lectura de los contenidos de los registros antes y despus de la ejecucin de la instruccin mover (MOV) DISCUSIN Los cuatro tipos de registros son: puntero de instruccin, segmento, propsito general e indicador. El registro indicador es un registro de 32 bits llamado EFLAGS. El contenido del registro controla ciertas operaciones e indica el estado de la CPU 80386. El registro de 32 bits total es solamente usado en el modo protegido. El registro FLAGS, los primeros 16 bits de EFLAGS, es usado en los modos protegido y real. El registro puntero de instruccin es un registro de 32 bits llamado EIP. El contenido es el valor de compensacin (offset) de la direccin de 1a siguiente instruccin en memoria. El valor de compensacin es siempre agregado a la direccin de base en el registro de segmento de cdigo (CS) y la suma proporciona la direccin fsica de la siguiente instruccin. Los primeros 16 bits contienen el puntero de instruccin de 16 bits llamado IP. Ya que el 80386 opera en el modo real, el IP de 16 bits es usado en estos ejercicios. Hay seis registros de segmento, los cuales mantienen informacin para los segmentos de memoria direccionables generalmente. Los seis segmentos activos son aquellos cuyos valores de selector de segmento de 16 bits ocupan los registros de segmento. El programa cambia el valor del selector en un registro de segmento para acceder un nuevo segmento en RAM, cuando hay ms de seis segmentos. Cada segmento tiene dos partes, una parte visible de 16 bits, que contiene el valor del selector de segmento y una parte del descriptor oculto que el procesador automticamente carga con la direccin base de 32 bits del segmento, lmite e informacin de acceso. El valor selector es usado en el modo protegido para escoger uno de 8192 (213) posibles descriptores de una tabla descriptora en memoria. La tabla descriptora proporciona la informacin para la parte del descriptor oculta del registro del segmento.

84

Microprocesador de 32 bits

Unidad 6 Programacin: modos de direccionamiento

En el modo protegido, la CPU agrega la compensacin a la direccin base de 32 bits para formar una direccin lineal. Si la paginacin est inactiva, la direccin lineal es la direccin fsica en memoria. Si la paginacin est activa, las estructuras de datos y programas pueden compartir espacio en memoria y en el almacenamiento del disco. La paginacin brinda acceso a estructuras de datos y programas que son ms grandes que el espacio de memoria disponible. En el modo real, las tablas del descriptor de segmento no son usadas. La CPU contiene la direccin de base, desplazando valor del segmento selector de 16 bits por 4 bits a la izquierda. Slo los 20 bits inferiores de la direccin base de 32 bits en el descriptor oculto del registro de segmento son significativos. Cuando un nuevo valor de seleccin es introducido, solamente la direccin de base en la parte oculta del registro de segmento es actualizada. Hay ocho registros de propsito general de 32 bits. Estos son EAX, EDX, ECX, EBX, ESP, EBP, ESI y EDI. Todos los registros de propsito general estn disponibles para clculos de direccin cuando la CPU usa un direccionamiento de 32 bits. Los 16 bits inferiores de los registros de propsito general son referenciados usando sus nombres 8086: AX, DX, CX, BX, BP, SI, DI y SP. Cada byte de los registros AX, DX, CX y BX de 16 bits tienen nombres. Los bytes altos son AH, DH, CH y BH mientras los bytes bajos son AL, DL, CL y BL. En el modo real, las instrucciones que usan un registro de propsito general de 32 bits requieren el prefijo de operando de 32 bits. Cuando el operando es un dato, el prefijo es un byte con un valor hexadecimal de 66, colocado antes del resto de la instruccin. Las instrucciones que especifican un registro de propsito general como destino, pueden cambiar los bytes de orden bajo en todos los bytes en el registro. Si el operando contiene menos bytes que el registro, los bytes de orden superior del registro permanecen sin cambiar. Los modos de direccionamiento son maneras de localizar un operando, las cuales puedan estar en la instruccin, en un registro general o en memoria. En el modo de direccionamiento del aperando inmediato, el operando es incluido como parte del cdigo de la instruccin. En el modo de direccionamiento del operando de registro, el operando est en un registro de propsito general.

85

Microprocesador de 32 bits

Unidad 6 Programacin: modos de direccionamiento

Ejercicio 2 Direccionamiento de memoria - I


OBJECTIVO DEL EJERCICIO Cuando termine este ejercicio, usted ser capaz de: describir las maneras de determinar la direccin efectiva de un operando, usando valores de desplazamiento, base e ndice explicar los seis modos de direccionamiento de memoria que pueden ser usados en el direccionamiento de 16 y 32 bits verificar sus resultados leyendo los contenidos de un registro antes y despus de la ejecucin de una instruccin MOV DISCUSIN El modo de direccionamiento del operando de memoria localiza un operando en memoria. El cdigo de instruccin debe referenciar la compensacin (offset) y segmento de la direccin que contiene el operando de memoria de manera que sea encontrado. La CPU 80386 determina la direccin fsica del operando en memoria, calculando la direccin efectiva (EA = Effective Address), la cual es la suma de las direcciones de compensacin y base del segmento. La CPU 80386 calcula el EA de una de las seis combinaciones de un valor de desplazamiento, valor de base o un valor ndice para el direccionamiento de 16 bits y 32 bits. En el direccionamiento de 32 bits el valor ndice puede ser multiplicado por un factor de escala de 1, 2, 4 u 8. El uso de un factor de escala proporciona 3 combinaciones adicionales de valores de desplazamiento, base e ndice para calcular las direcciones efectivas. El valor de desplazamiento aparece en el campo de desplazamiento del cdigo de instruccin. Con direccionamiento de 16 bits, los registros de propsito general BX y BP pueden contener el valor de base. Los registros SI o DI pueden contener el valor ndice. Cualquiera de los ocho registros de propsito general pueden contener el valor de base o el valor ndice (excepto ESP) para direccionamiento de 32 bits. Un factor de escala de valor ndice puede ser usado en el direccionamiento de solamente 32 bits. Los seis modos de direccionamiento de memoria para direccionamiento de 16 y 32 bits son: directo, registro indirecto, base, ndice, ndice y base; y finalmente ndice y base con desplazamiento. En el direccionamiento de 32 bits, un factor de escala de valor ndice permite tres modos de direccionamiento adicional que son: el ndice con escala, base e ndice con escala, y finalmente base e ndice con escala y desplazamiento.

87

Microprocesador de 32 bits

Unidad 6 Programacin: modos de direccionamiento

Instrucciones no son necesarias para especificar explcitamente el registro del segmento para proporcionar la codificacin de instruccin compacta y aumentar el rendimiento del procesador. Cuando el valor base est en los registros EAX, EBX, ECX, EDX, ESI o EDI, el segmento DS es usado para el operando de memoria por defecto. La CPU calcula la direccin fsica del dato, agregando la direccin efectiva a la direccin base del segmento DS. Cuando el valor base est en los registros EBP o ESP, el segmento por defecto es SS. La CPU calcula la direccin fsica del dato, agregando la direccin efectiva a la direccin base del segmento SS. En general, el cdigo de instruccin de busca usa el registro CS; el registro CS contiene la direccin base para el segmento de cdigo del cdigo de instruccin. Cuando la CPU extrae el cdigo de la siguiente instruccin, determina la direccin fsica de la instruccin, agregando el valor de compensacin en el registro IP a la direccin base del segmento de cdigo. Cuando la CPU extrae el siguiente cdigo de pila, determina la direccin fsica de la pila, agregando la compensacin en el registro SP a la direccin base del segmento de pila. Los cdigos de instruccin deben tener prefijos para el direccionamiento de 32 bits y operandos de 32 bits. Las direcciones de 32 bits requieren tamao de direccin hexadecimal 67. Los operandos de 32 bits requieren el prefijo hexadecimal 66 del tamao del operando 66. Si ambos prefijos se requieren, el prefijo (67) debe estar antes del operando (66).

88

Microprocesador de 32 bits

Unidad 6 Programacin: modos de direccionamiento

Ejercicio 3 Direccionamiento de memoria - II


OBJECTIVO DEL EJERCICIO Cuando termine este ejercicio, usted podr: determinar la direccin efectiva de un operando en memoria usando los valores base, desplazamiento e ndice con escala explicar los tres modos de direccionamiento de 32 bits que usan un ndice con escala verificar sus resultados leyendo los contenidos de un registro, antes y despus de la ejecucin de una instruccin MOV DISCUSIN El valor ndice puede ser multiplicado por un factor de escala de 1, 2, 4 u 8 cuando se est en el modo de direccionamiento de 32 bits. Esta multiplicacin proporciona tres combinaciones adicionales de valores de desplazamiento, base e ndice, los cuales son usados para calcular la direccin efectiva. En el modo real, debe usar el prefijo hexadecimal (67) del tamao de la direccin de 32 bits antes de cualquier cdigo de instruccin para los tres modos de direccionamiento. Los tres modos de direccionamiento de memoria de 32 bits que usan un valor ndice con escala: modo ndice con escala, base e ndice con escala, y finalmente base e ndice con escala y desplazamiento. Calculando la direccin efectiva usando un ndice a escala es una forma eficiente de apuntar una lista de operandos cuando el tamao del elemento de los mismos es de 2, 4 u 8 bytes.

91

Microprocesador de 32 bits

Unidad 7 Programacin: instrucciones de la cpu 80386

UNIDAD 7 INSTRUCCIONES DE LA CPU 80386

OBJETIVO DE LA UNIDAD Cuando complete esta unidad, usted sabr escribir instrucciones para la CPU 80386 con cdigos de mquina y usar las instrucciones de programas de prueba en memoria que ejecutar usando el tablero de circuitos MICROPROCESADOR DE 32 BITS. FUNDAMENTOS DE LA UNIDAD Las unidades 6 y 7 cubren la programacin y estn muy relacionadas. Estas unidades explican los formatos de cdigos y su programacin. La Unidad 6 cubre los modos de direccionamiento y los registros de la CPU 80386 y debe ser completada antes de esta unidad. La CPU 80386 tiene ms de 100 instrucciones bsicas, algunos ejemplos de stas se dan en la ventana de ayudas (presionando AYUDA). Con estas instrucciones bsicas puede crear ms de 1000 variaciones. En la Unidad 6 usted us muchas variaciones de la instruccin MOV (mover). Si se consideran los modos de direccionamiento y los tipos de datos (byte, palabra, doble palabra), hay ms de 50 formas posibles de la instruccin MOV. Esta unidad no cubre todo el conjunto de instrucciones de la CPU 80386. Los ejercicios 1 y 2 tratan sobre la codificacin de las instrucciones MOV multibyte en lenguaje de mquina. Los ejercicios 3 y 4 cubren ciertos usos de estas instrucciones para hacer pruebas de la CPU. PROGRAMA DE PRUEBA DE MEMORIA En los ejercicios 3 y 4 se describe como se pueden combinar las instrucciones MOV (mover), INC (aumentar), CMP (comparar), JMP (transferir) e INT (interrupcin), de una forma simple en un programa con un bucle y un programa bucle de prueba de memoria, que se muestra en la ventana de ayuda (presionando AYUDA). Para una explicacin detallada de las instrucciones de la CPU 80386, consulte en el manual de referencia del programador del microprocesador 386TM DX, 1990, publicado por Intel Corporation, Literature Sales, Mt. Prospect., IL 60056. Las tablas de cdigos de instruccin usadas en esta unidad se basan en la informacin de dicho manual.

93

Microprocesador de 32 bits

Unidad 7 Programacin: instrucciones de la cpu 80386

En la grfica se ve la forma general del formato de una instruccin de la CPU 80386. Una instruccin individual de la CPU 80386 puede contener los 9 campos dados. Despus de que se extrae y decodifica completamente la instruccin, que puede contener hasta 16 bytes, la CPU ejecuta dicha instruccin.

Los cdigos de las instrucciones que se guardan en memoria estn el mismo orden en que son ejecutadas. Un programa de computadora puede contener de unos pocos a miles de cdigos de instruccin. NUEVOS TRMINOS Y PALABRAS lenguaje de mquina - un lenguaje que puede ser usado directamente por un microprocesador; un lenguaje binario, tambin llamado cdigo objeto. EQUIPO REQUERIDO Unidad base de FACET Tablero de circuitos MICROPROCESADOR DE 32 BITS Fuente de potencia, 15 Vcd (se requieren 2) Solamente requeridas si la unidad de base FACET no contiene una fuente de potencia.

94

Microprocesador de 32 bits

Unidad 7 Programacin: instrucciones de la cpu 80386

Ejercicio 1 Formatos de las instrucciones - I


OBJECTIVO DEL EJERCICIO Cuando haya terminado este ejercicio, usted podr codificar, en lenguaje de mquina, instrucciones multibyte de mover (MOV) para: * el modo de direccionamiento inmediato * los modos de direccionamiento de registros Verificar sus resultados ejecutando las instrucciones que codifique y leyendo el contenido de los registros y las posiciones de memoria. DISCUSIN La instruccin MOV puede contener los siguientes campos principales: prefijo de tamao de la direccin prefijo de tamao del operando sustitucin de segmento cdigo operacional mod r/m (modo registro/memoria) s-i-b (escala-ndice-base) campos inmediatos En el modo real, las instrucciones que involucran direcciones de 32 bits requieren el prefijo hex 67 y las instrucciones que involucran operandos de 32 bits necesitan el prefijo hex 66. Se presenta tablas de las reglas de seleccin del registro de segmento y los prefijos hexadecimales para los segmentos alternativos. El primer byte de la instruccin MOV contiene los campos del cdigo de operacin (op code), la direccin (d) y el tamao del operando (w). Los bits 7 a 2 contienen el op code (cdigo de operacin). El bit d determina si el registro (especificado en la seccin del registro del campo mod r/m) es la fuente del operando (d = 0) o localizacin de destino (d = 1). El tamao del operando (campo w) es ajustado a 8 bits cuando w = 0 y 16 32 bits cuando w = 1. El byte mod r/m contiene tres campos: mod (modo), reg (registro) y r/m (registro/memoria). El campo mod (modo) requiere 2 bits de informacin y determina si el operando es movido desde o hacia la memoria (00, 01, 10) o movido de un registro a otro (11). Tres bits son requeridos en el camp reg y designan cul registro de propsito general ser usado. La informacin es proporcionada para especificar el registro requerido. Una instruccin MOV de operando inmediato incluye el campo reg y el campo w en el primer byte de la instruccin. El campo r/m es un cdigo de tres bits. El bit w combinado con el valor del campo r/m determinan el segundo registro general a ser usado. Una tabla es proporcionada para su codificacin. El tercer y ltimo byte que completa una instruccin MOV es el byte s-i-b.

97

Microprocesador de 32 bits

Unidad 7 Programacin: instrucciones de la cpu 80386

Ejercicio 2 Formatos de las instrucciones - II


OBJECTIVO DEL EJERCICIO Cuando haya terminado este ejercicio, usted ser capaz de: * codificar, en lenguaje de mquina, instrucciones multibyte usando instrucciones de mover (MOV) con modos de direccionamiento * interpretar el formato de otros cdigos de instruccin de la CPU 80386 Verificar los resultados ejecutando las instrucciones que codifique y leyendo el contenido de los registros y las posiciones de memoria. DISCUSIN Las aplicaciones del modo de direccionamiento de memoria de la instruccin MOV se discuten en este ejercicio. En el modo de direccionamiento de memoria, el campo r/m especifica cmo la CPU 80386 calcula la direccin efectiva (EA). Cuando el clculo de direccin efectiva consta de un valor ndice con escala, el cdigo de instruccin debe contener un byte s-i-b. Tres campos forman el byte s-i-b: ss, ndice y base. El campo ss especfica un factor de escala de 1, 2, 4 u 8. El campo ndice especifica el registro ndice. El campo base especfica el registro base.

99

Microprocesador de 32 bits

Unidad 7 Programacin: instrucciones de la cpu 80386

Ejercicio 3 Usos de las instrucciones - I


OBJECTIVO DEL EJERCICIO Cuando haya terminado este ejercicio, usted podr crear un programa de bucle sencillo para probar un direccionamiento de memoria usando las instrucciones de la CPU 80386. Verificar sus resultados observando la pantalla y/o los LEDs de direcciones y de datos. DISCUSIN En este ejercicio, introducir un programa en RAM en el que ilustrar cmo se pueden combinar cuatro instrucciones para formar un programa de prueba de bucle simple. El programa usa dos instrucciones MOV para acceder la memoria dos veces escribiendo y leyendo el dato de prueba entre el registro AX y la direccin efectiva 6050. Usando la instruccin de transferencia incondicional (JMP) con las instrucciones MOV, un programa de bucle de prueba simple es creado. En el nemnico de la instruccin de transferencia incondicional JMP 2003H, e! 2003H es el valor que tendr el puntero de direccin despus de que se ejecute la instruccin de transferencia. Esta instruccin provoca que el programa continuamente ejecute las instrucciones entre las direcciones 20003 a 20009. Para una transferencia corta (menor que +127 0 128 bytes), el primer byte EB en el cdigo de la instruccin JMP es su cdigo de operacin (op code). El segundo byte (F8) es el cambio positivo o negativo del valor del puntero de instruccin que efectuar la instruccin JMP. Debido a que el valor del IP en esta transferencia disminuye, F8 es el cambio negativo del puntero de instruccin (IP). Despus de la ejecucin de los dos bytes de la instruccin de transferencia de la direccin 02009, el puntero de instruccin regresa de 020013 a 02003. La instruccin de transferencia causa que la IP regrese de 020013 a 02003, el cual es un nmero negativo de 8 bytes. Para la instruccin JMP se restan 8 bytes del IP y el complemento a 2 del hex 8, que es el hex F8, se debe ser usado en el cdigo de instruccin.

101

Microprocesador de 32 bits

Unidad 7 Programacin: instrucciones de la cpu 80386

Ejercicio 4 Usos de las instrucciones - II


OBJECTIVO DEL EJERCICIO Cuando haya terminado esta unidad, usted sabr usar las instrucciones de la CPU 80386 para crear un programa que pruebe un rango de direcciones de memoria. Verificar los resultados observando la pantalla y/o los LEDs de datos y direcciones. DISCUSIN El programa es esencialmente el mismo que el programa de prueba de memoria que el microprocesador ejecuta cuando el puente NORM/PRUEBA en el bloque PUERTO PARALELO esta en la posicin PRUEBA y el interruptor tipo DIP esta configurado tal que PA7-PA4 igualan 1111. Cuando se determina la direccin defectiva, la chip RAM asociada con sa direccin puede ser fcilmente ubicada. En el programa, el registro SI contiene en el valor de compensacin (offset) para la direccin de inicio de la seccin de memoria a ser probada, y el registro DI contiene el valor de compensacin de la direccin final. El valor del registro selector DS ser ajustado a 0000 (direccin base igual a 0000). El registro BX contiene el valor de compensacin de la direccin base para la direccin de prueba actual de DS. El registro DL contiene el dato que se usa para probar cada direccin de memoria (ubicacin). El dato de prueba es incrementado por 1 cada paso del bucle desde el byte 00 al byte FF. Las primeras seis instrucciones (04000 a 04009) inicializan cada direccin a ser probada con el dato de prueba 00; el programa va continuamente ciclando entre 04000 y 04009 hasta que todas las direcciones de memoria contengan el hex 00. La siguiente instruccin (0400B) reinicializa la direccin de memoria a la direccin de inicio, cuyo valor de compensacin esta contenido en el registro SI. Las siguientes 2 instrucciones (0400D y 0400F) prueban la direccin especfica de memoria por el dato de prueba. Si el dato en la direccin de memoria y el del registro DL son iguales, el dato de prueba en la direccin probada es incrementado por la instruccin en 04011. Las siguientes 3 instrucciones (04013 a 04016) incrementan el valor de compensacin en el registro BX por hex 1 y comparan el valor de compensacin en BX con el valor final en DI. Si el valor de compensacin en BX es menor o igual al de DI, el programa se transfiere de regreso a la direccin 0400D para probar la siguiente ubicacin de memoria. El programa contina este ciclo entre 0400D y 04916 hasta que todas las direcciones de memoria han sido probadas. Si el valor de compensacin (offset) es mayor que el de DI, la instruccin en 04018 incrementa el dato de prueba en el registro DL por 1. La siguiente instruccin, JNZ 400BH, verifica el valor del dato de prueba.

103

Microprocesador de 32 bits

Unidad 7 Programacin: instrucciones de la cpu 80386

Si el dato de prueba en el registro DL no es 00, lo que sucedera cuando hex 01 sea agregado a FF, el programa se transfiere de regreso a la direccin 0400B para probar todas las direcciones de memoria con el dato de prueba incrementado. Las dos ltimas instrucciones (0401C y 0401D) son interrupciones. Si no hay errores, el programa de prueba de memoria termina despus de la interrupcin en 0401C. Si las instrucciones CMP DL, [BX] y JNE 401DH, en las direcciones 0400D 7 0400F respectivamente, detectan un error (el dato en la direccin y en el registro BX no son iguales), el programa se transfiere a la interrupcin en 0401D y para. Si un error es detectado, el registro BX contiene el valor de compensacin de la direccin que contiene la falla. Hay tres bucles en este programa: el primero, 04004 a 04009, inicializa las direcciones a ser probadas con hex 00. El bucle entre direcciones 0400B 7 0401A ocurre despus que cada direccin es probada con el mismo dato. El registro BX es reinicializado con la direccin de inicio y cada direccin es probada otra vez.

NOTAS

104

Microprocesador de 32 bits

Unidad 8 Localizacin de fallas

UNIDAD 8 LOCALIZACIN DE FALLAS

OBJETIVO DE LA UNIDAD Cuando termine esta unidad, usted ser capaz de localizar fallas en el tablero MICROPROCESADOR DE 32 BITS. FUNDAMENTOS DE LA UNIDAD La iniciativa individual y la imaginacin combinada con el conocimiento del circuito y los procedimientos lgicos son elementos importantes para la localizacin exitosa de fallas. El aislamiento rpido de un componente con falla comienza con una fundamentacin slida de las habilidades de localizacin de fallas bsicas. La localizacin de fallas empieza despus de que un sntoma de un problema es advertido; analizar los sntomas puede ayudar a delimitar el problema de un componente especfico. Un diagrama de flujo proporciona una gua general paso a paso para determinar la condicin operacional de un circuito.

Inspeccionar visualmente el tablero de circuitos MICROPROCESADOR DE 32 BITS puede ayudar a localizar una falla evidente, tal como una conexin equivocada o un puente incorrecto y ahorrar el valioso tiempo de prueba. Si observa una falla, debe efectuar una prueba de funcionamiento.

105

Microprocesador de 32 bits

Unidad 8 Localizacin de fallas

El propsito de una prueba de funcionamiento es indicar una operacin fuera de especificacin y ayudar a la identificacin rpida de un componente o conexin del circuito con falla. Si la prueba de funcionamiento falla, debe realizar las mediciones que le ayuden a aislar el componente o conexin con falla. Despus de la reparacin de la falla, repita la prueba de funcionamiento en el circuito MICROPROCESADOR DE 32 BITS. La prueba debe verificar que la falla fue corregida y que no existen otras fallas. Las tablas de especificacin de funcionamiento del circuito MICROPROCESADOR DE 32 BITS son proporcionadas en los ejercicios para ayudarle en la localizacin lgica de fallas. DISCUSIN Existen 8 procedimientos separados en este ejercicio. Cada procedimiento tiene una falla asociada con uno de los bloques de circuitos en el tablero de circuitos MICROPROCESADOR DE 32 BITS. Las fallas son insertadas despus de que la prueba de funcionamiento del circuito ha sido completada. Una TABLA DE ESPECIFICACIONES DE RENDIMIENTO es usada para tabular todos los valores observados, los parmetros normales y una lista de mediciones que pueden ser desarrolladas. sta tabla contiene un botn marcado < ? > que proporciona un men de informacin adicional del circuito. NUEVOS TRMINOS Y PALABRAS Ninguno EQUIPO REQUERIDO Ninguno

106

Microprocesador de 32 bits

Unidad 9 Aplicaciones del microprocesador

UNIDAD 9 APLICACIONES DEL MICROPROCESADOR (OPCIONAL)


NOTA: sta unidad debe ser usada con la tarjeta APLICACIN DEL MICROPROCESADOR. Si usted no tiene sta tarjeta, no podr completar esta unidad. OBJETIVO DE LA UNIDAD Al completar esta unidad, usted ser capaz de demostrar las aplicaciones prcticas del microprocesador con una interfase entre el tablero de circuitos MICROPROCESADOR DE 32 BITS y el tablero APLICACIN DEL MICROPROCESADOR. Verificar sus resultados realizando observaciones y tomando medidas. FUNDAMENTOS DE LA UNIDAD

Puede usar el tablero Aplicaciones del microprocesador para demostrar como los microprocesadores se comunican con dispositivos de control en el mundo exterior. El tablero Aplicaciones del microprocesador incluye circuitos de control de motor y control de temperatura. Puede conectar al tablero microprocesador a travs de lneas de control de E/S y el CDASAL (DACOUT) y seales de CADENT (ADCIN). Los dos bloques de circuitos de aplicacin son el CONTROLADOR DE MOTOR CD y el CONTROLADOR DE TEMPERATURA. Los bloques de circuitos POTENCIA Y CONTROL contienen conectores machos para conectarse al tablero MICROPROCESADOR DE 32 BITS. El bloque de circuitos PUNTOS DE PRUEBA contiene un conector macho cuyos terminales son puntos de prueba usados para monitorear las seales digitales y analgicas intercambindose entre los dos tableros de circuitos.

109

Microprocesador de 32 bits

Unidad 9 Aplicaciones del microprocesador

El conector macho de 8 pines en el bloque de circuitos POTENCIA conecta al tablero de circuitos MICROPROCESADOR DE 32 BITS con un cable cinta. Este conector suministra +5V, +12V y 12V a los circuitos analgico y digital en el Tablero APLICACIN DEL MICROPROCESADOR. Las tierras digital y analgica se incluyen para maximizar la inmunidad al ruido. Las conexiones a tierra son accesibles en el bloque de circuitos PUNTOS DE PRUEBA.

El conector en el bloque de circuitos CONTROL tambin conecta al tablero MICROPROCESADOR DE 32 BITS con un cable cinta. Estas conexiones incluyen tres lneas de puertos de E/S as como las seales de CADENT (ADCIN) y CDASAL (DACOUT).

Las seales del cable de CONTROL son accesibles en el conector macho de 20 pines en el bloque PUNTOS DE PRUEBA. Dependiendo del tipo de seal, puede monitorear estos puntos con un osciloscopio, sonda lgica o voltmetro.

110

Microprocesador de 32 bits

Unidad 9 Aplicaciones del microprocesador

El bloque de circuitos CONTROLADOR DE MOTOR CD tiene un motor cuya velocidad y direccin de rotacin puede ser controlada por el tablero microprocesador. El tablero microprocesador puede controlar el motor en una de dos formas, determinadas por un puente en el conector MOT. Cuando el puente en la posicin SWT (Switch = conmutar), el microprocesador usa un bit de salida en el PPI para activar totalmente el motor (1 lgico) o totalmente desactivado (0 lgico). En el modo SWT, el motor siempre gira en sentido contrario de las manecillas del reloj (CCW). Cuando el puente MOT est en la posicin LIN (lineal), la velocidad y direccin del motor se determina por un voltaje analgico enviado por el microprocesador a travs de la lnea DACOUT. La velocidad del motor es proporcional al voltaje CDASAL (DACOUT) y la direccin de rotacin depende de si el voltaje aplicado es positivo o negativo. El CDA (DAC) tiene una salida unipolar de 010V. Sin embargo, el bloque de circuitos CONTROLADOR DE MOTOR CD convierte el voltaje del CDA a un rango bipolar de 3V a +3V. En el modo LIN, la polaridad de este voltaje determina la direccin del motor y la magnitud del voltaje determina la velocidad. Montado en el eje del motor estn un aspa de ventilador y un disco codificador. Una de las funciones de estos componentes es la de permitir ver la rotacin del eje del motor.

111

Microprocesador de 32 bits

Unidad 9 Aplicaciones del microprocesador

Esta vista lateral muestra el motor, ventilador, disco codificador y un interruptor ptico localizado abajo del disco. El ventilador se localiza de manera que el flujo de aire enfre el calor en el bloque de circuitos CONTROLADOR DE TEMPERATURA. El disco codificador tiene algunas marcas negras alrededor de su permetro. El disco se posiciona de manera como ste gira y pasa a travs del interruptor ptico. Cada vez que una marca negra pasa a travs de un interruptor ptico, un pulso digital es generado. El disco codificador y el interruptor ptico proporcionan un mtodo de percepcin de la velocidad del motor y retroalimentacin al microprocesador.

El bloque de circuitos Controlador de temperatura usa dos transductores de temperatura cuya corriente est en funcin de su temperatura. Un transductor est trmicamente unido a una resistencia que es usada como un calentador. El microprocesador usa un bit del puerto de salida para activar y desactivar el calentador y un LED rojo indica el estado del calentador. El segundo transductor se localiza distante del calentador y es usado como una referencia de temperatura ambiente. Un circuito op amp genera un voltaje que est en funcin de la diferencia de las dos salidas. El voltaje diferencial representa la diferencia entre la temperatura del calentador y temperatura ambiente. El microprocesador puede determinar la diferencia de temperatura leyendo el voltaje de salida del op amp. El microprocesador puede tambin enviar un valor digital al bloque de circuitos CONTROLADOR DE TEMPERATURA a travs de la lnea CDASAL (DACOUT). El valor CDASAL (DACOUT) sirve como voltaje de referencia en el circuito op amp. El conector ADC en el bloque de circuitos CONTROLADOR DE TEMPERATURA determina si el voltaje del motor o el voltaje del transductor de temperatura diferencial es llevado al microprocesador.

112

Microprocesador de 32 bits

Unidad 9 Aplicaciones del microprocesador

NUEVOS TRMINOS Y PALABRAS interruptor ptico - un dispositivo opto-electrnico con un LED y un fototransistor localizados en lados opuestos de una ranura abierta. Un objeto que pasa a travs de la ranura puede interrumpir el haz de luz y hacer que el interruptor ptico genere un pulso de salida. transductores de temperatura - transductores cuyo parmetro de salida cambia con la temperatura. control de temperatura de bucle abierto - una forma de control de temperatura en la cual el calentador es activado pero la informacin de temperatura no es retroalimentada al dispositivo de control. control de temperatura de bucle cerrado - una forma de control de temperatura por la cual un calentador es activado y su temperatura es retroalimentada al dispositivo controlador para regular la temperatura. punto de ajuste - el valor deseado hacia el cual un controlador de temperatura trata de regular la temperatura. EQUIPO REQUERIDO Unidad base de FACET Tablero de circuitos APLICACIN DEL MICROPROCESADOR Multmetro Osciloscopio de doble trazo Tablero de circuitos MICROPROCESADOR DE 32 BITS Fuente de potencia, 15 Vcd (se requieren 2) Solamente requeridas si la unidad base de FACET no contiene una fuente de potencia.

113

Microprocesador de 32 bits

Unidad 9 Aplicaciones del microprocesador

Ejercicio 1 Familiarizacin con el tablero


OBJECTIVO DEL EJERCICIO Cuando haya completado este ejercicio, usted ser capaz de explicar la funcin de cada bloque de circuitos en el tablero APLICACIN DEL MICROPROCESADOR. DISCUSIN Tres lneas de E/S digitales (PC0, PB0 y PB7) del tablero de circuitos MICROPROCESADOR DE 32 BITS son usadas para seales de control. El tablero del microprocesador usa el bit de salida PB0 para activar y desactivar la resistencia de calentamiento para las aplicaciones de control de temperatura. El bit de salida PB7 activa y desactiva el motor. La seal de salida del codificador es regresada al tablero microprocesador a travs de la lnea de entrada PC0. El tablero microprocesador genera un voltaje analgico a CDASAL (DACOUT) para controlar la velocidad y direccin del motor cuando el modo LIN es seleccionado en el conector MOT. El voltaje del motor est tambin conectado a los comparadores, los cuales controlan los LED's que indican la direccin CW (sentido de las manecillas del reloj) o CCW (sentido contrario al de las manecillas del reloj) del motor. El tablero microprocesador puede leer el voltaje analgico de los bloques de circuitos CONTROLADOR DE TEMPERATURA o CONTROLADOR DE MOTOR CD a travs de la lnea CADENT (ADCIN), dependiendo de la posicin del puente CAD (ADC).

116

Microprocesador de 32 bits

Unidad 9 Aplicaciones del microprocesador

Ejercicio 2 Control de un motor CD


OBJECTIVO DEL EJERCICIO Cuando haya completado este ejercicio, usted ser capaz de explicar y demostrar cmo un microprocesador puede controlar la velocidad y direccin de rotacin de un motor CD pequeo. DISCUSIN El motor opera de 3 a +3 Vcd. La direccin de rotacin es CW para voltajes positivos y CCW para voltajes negativos. El motor es desactivado si se aplica 0V. Cuando el puente MOT est en la posicin SWT, el op amp (U5B) controla el motor. El op amp es controlado por el bit de E/S PB7. La salida del op amp es 0V para un nivel lgico PB7 bajo y -3V para un nivel lgico PB7 alto. PB7 puede ser usado como un simple control activar o/desactivar (on/off) para ciertas aplicaciones. Alternativamente, el microprocesador puede activar o desactivar PB7 continuamente y variar el ciclo de rendimiento para controlar la velocidad del motor. Cuando el puente MOT est en la posicin LIN, el voltaje de motor es suministrado por el op amp U5A. U5A es controlado por la seal CDASAL (DACOUT), la cual tiene un rango de 010 Vcd. El op amp asciende y desplaza el rango de voltaje CDA (DAC) a un rango bipolar de cerca de -3 a +3 Vcd. En 0V, e1 motor es detenido. Cuando el voltaje positivo es aplicado, el motor gira hacia CW y su velocidad aumenta conforme el voltaje aumenta. Cuando el voltaje negativo es aplicado, el motor gira en CCW y su velocidad aumenta conforme el voltaje es ms negativo. El motor tambin es conectado a dos circuitos comparadores que controlan LED's para indicar la direccin del motor. El tablero microprocesador puede leer el voltaje del motor, muestreando la lnea, cuando el puente ADC est en la posicin MOT. El tablero microprocesador puede determinar la velocidad del motor contando los pulsos del interruptor ptico. U4A y U4B separan la salida del fototransistor y controlan la entrada PC0 al tablero microprocesador. El interruptor ptico emite cinco pulsos por cada revolucin del eje del motor. El microprocesador puede contar el nmero de pulsos que se producen en un segundo y divide entre cinco para determinar la velocidad del motor en revoluciones por segundo.

118

Microprocesador de 32 bits

Unidad 9 Aplicaciones del microprocesador

Ejercicio 3 Control de temperatura


OBJECTIVO DEL EJERCICIO Cuando haya completado este ejercicio, usted ser capaz de explicar y demostrar el uso de un microprocesador en aplicaciones de control de temperatura de bucle cerrado y abierto. Verificar sus resultados cargando y ejecutando programas simples, realizando observaciones y tomando medidas. DISCUSIN El bit de salida PB0 controla los buffers de inversin U4E y U4D, los cuales activan (PB0 = 1) y desactivan (PB0 = 0) el transistor Q1. Cuando Q1 est activado, la corriente fluye a travs de la resistencia de 33, causando que se caliente. U2 es un transductor de temperatura secundario localizado lejos del calentador y es usado como una referencia de temperatura ambiente. La salida (+) de U3 es conectada a la salida () de U2. La corriente en la unin de los dos dispositivos es, por lo tanto, la diferencia de las dos corrientes de salida. La unin U2/U3 est conectada a la entrada invertida del op amp U1A. La corriente en esta entrada es multiplicada por la resistencia de retroalimentacin para generar un voltaje de salida proporcional a la diferencia de temperatura. La entrada no invertida es conectada al divisor de voltaje que es referenciado a CDASAL (DACOUT). Para aplicaciones de control de temperatura en su tablero de circuitos, CDASAL (DACOUT) es usado como referencia de voltaje de precisin. El valor de entrada es siempre FFH, el cual proporciona un voltaje de salida de cerca de 10V (0.039 x 255 = 9.945V). Los +5V del divisor de voltaje proporciona un desplazamiento en nivel. Cuando los dos transductores estn en temperatura ambiente (corriente neta de los transductores = cero), la salida del op amp est cerca de +5V. La salida del op amp controla la lnea CADENT (ADCIN) cuando el puente CAD (ADC) est en la posicin TEMP. Este voltaje de salida es una funcin de la diferencia entre la temperatura ambiente y la temperatura del calentador. Las dos formas como el microprocesador puede controlar la temperatura son: control de temperatura de bucle abierto o control de temperatura de bucle cerrado. Con el control de temperatura de bucle-abierto, la CPU puede simplemente ajustar PB0 para activar el calentador. Con este mtodo, la temperatura del calentador no es regulada. Con el control de temperatura de bucle-cerrado, la CPU tambin ajusta PB0 para activar el calentador. Sin embargo, la temperatura del calentador es regresada a la CPU en la forma de voltaje, a travs de CADENT (ADCIN). El nivel de voltaje CADENT (ADCIN) es ledo por la CPU y usado para determinar si, en base a un punto de ajuste programado, el calentador debe ser activado y desactivado.

120

Microprocesador de 32 bits

Apndice A Seguridad

APNDICE A SEGURIDAD
La seguridad es responsabilidad de todos. Todos deben cooperar para crear el ambiente de trabajo lo ms seguro posible. A los estudiantes se les debe recordar el dao potencial y darles las reglas de seguridad de sentido comn e instruccin de seguir las reglas de seguridad elctrica. Cualquier ambiente puede ser peligroso cuando no es familiar. El laboratorio basado en computadoras de FACET puede ser un ambiente nuevo para algunos estudiantes. Instruya a los estudiantes en el uso adecuado de los equipos de FACET y explqueles qu comportamiento se espera de ellos en este laboratorio. Es responsabilidad del profesor proporcionar la introduccin necesaria al ambiente de estudio y a los equipos. Esta tarea evitar daos tanto a los estudiantes como a los equipos. El voltaje y corriente utilizados en el laboratorio basado en computadoras FACET son, en s mismos, inofensivos para una persona sana y normal. Sin embargo, un choque elctrico que llegue por sorpresa es incmodo y puede causar una reaccin que podra crear dao. Se debe asegurar que los estudiantes tengan en cuenta las siguientes reglas de seguridad elctrica. 1. Apague la alimentacin de potencia antes de trabajar en un circuito. 2. Confirme siempre que el circuito est cableado correctamente antes de encenderlo. Si se requiere, haga que su profesor revise el cableado de su circuito. 3. Desarrolle los experimentos siguiendo las instrucciones: no se desve de la documentacin. 4. Nunca toque cables energizados con sus manos o con herramientas. 5. Siempre sostenga las terminales de prueba por sus reas aisladas. 6. Tenga en cuenta que algunos componentes se pueden calentar mucho durante la operacin. (Sin embargo, esta no es una condicin normal para el equipo de su curso FACET) Permita siempre que los componentes se enfren antes de proceder a tocarlos o retirarlos del circuito. 7. No trabaje sin supervisin. Asegrese que hay alguien cerca para cortar la potencia y proveer primeros auxilios en caso de un accidente. 8. Desconecte los cables de potencia por la toma, no halando del cable. Revise que el aislamiento no est agrietado o roto en el cable.

Vous aimerez peut-être aussi