Microprocesadores. Guía 11 1 Facultad: Ingeniería. Escuela: Electrónica. Asignatura: Microprocesadores. Lugar de ejecución: Microprocesadores (Edificio 3, 2da planta). MICROPROCESADOR 80386. Objetivos específicos • • Conocer el hardware del microprocesador 80386. Verificar el estado de los buses de control, datos y direcciones del microprocesador 80386 al comunicarse con dispositivos de memoria y E/S. Materiales y equipo • • • 1 Unidad de base USB Lab –Volt. 1 Tablero de circuitos MICROPROCESADOR DE 32 BITS. 1 Punta de prueba para la sonda lógica del tablero de circuitos MICROPROCESADOR DE 32 BITS. Introducción Teórica En la Figura 1(a) se muestra el diagrama de base del microprocesador 80386DX que esta encapsulado en un PGA (rejilla de terminales) de 132 terminales y que físicamente se ve como se muestra en la Figura 1(b). Este microprocesador direcciona 4G bytes de memoria a través de su canal de datos de 32 bits y su canal de direcciones también de 32 bits, necesita una alimentación de 5 Voltios al igual que los miembros anteriores de la familia x86, pero puede manejar mayor corriente. En la Figura 2 se muestra el bloque de CPU del tablero de circuitos MICROPROCESADOR DE 32 BITS donde está el microprocesador 80386, como leyó en la guía 9, debido al difícil acceso a los pines del microprocesador, muchas de las señales de este son accesibles a través de tres tiras de pines llamadas JP1, JP2 y JP3. 2 Microprocesadores. Guía 11 Figura 1 Microprocesador 80386DX (a) Diagrama base, (b) vista física superior e inferior. Figura 2. Bloque CPU del tablero de circuitos MICROPROCESADOR DE 32 BITS En la tira de pines JP3 como en otras tiras de pines en el tablero aparecen algunos de los nombres seguidos por el símbolo #, lo que indica que es una señal activa en bajo. Microprocesadores. Guía 11 3 A continuación se describe la función de algunos de las señales que son accesibles a través de las tiras de pines JP1, JP2 y JP3 . • JP1. • JP2 A2-A31: Pines de salida que indican las direcciones de memoria y de puertos de E/S. A0-A1: Estos en realidad no son pines que estén físicamente en el microprocesador, sino que se usan internamente para generar las cuatro líneas de habilitación BE0# hasta BE3# que se describen más adelante. Estas líneas pueden verse en los 16 leds verdes del tablero cuando la CPU trabaja en ciclo simple, hay un interruptor que sirve para ver la parte baja (A0 a A15) o la parte alta (A16-A31) D0-D31: Pines de entrada y salida que sirven para transferir datos entre el microprocesador y los sistemas de memoria y de entrada/salida. Estas líneas pueden verse en los 16 leds amarillos del tablero cuando la CPU trabaja en ciclo simple, hay un interruptor que sirve para ver la parte baja (D0 a D15) o la parte alta (D16-D31) • JP3 D/C#: Datos/Control, es alta para transferir datos y baja para trasferencia de instrucción. BE0# a BE3 #: sirve para seleccionar cual byte del bus de datos de 32 bits son los que realmente se usan en la transferencia: BE0# para D0-D7. BE1# para D8-D15. BE2# para D16-D23. BE3# para D24-D31. RDY#: entrada que sirve para que un dispositivo externo indique que reconoció una petición. ADS#: salida que le indica a un dispositivo externo que hay información válida en el bus de dirección. BS16#: Si esta activada solo trabaja con un bus de datos de 16 bits (D0 a D15) y si esta desactivada trabaja con los 32 bits. Una de las herramientas para verificar el estado de los pines es la sonda lógica la cual puede mostrar tres estados ALTO, BAJO y PULSO, el led de PULSO se enciende momentáneamente cuando la señal cambia de estado. 4 Microprocesadores. Guía 11 Procedimiento PARTE I: BUS DE DATOS Y DIRECCIONES 1) Esta guía se hará en parejas. 2) Verifique las condiciones iniciales de operación del tablero de circuitos de la misma forma que lo hizo en la parte II de la guía 9. 3) Para poder ver el estado de los buses de direcciones y datos en los leds, ajuste el interruptor CICLO SIMPLE en la posición de activado (ENC.). 4) Coloque en BAJO los interruptores selectores de LEDs de datos y dirección y presione el botón RESET, los leds de direcciones y datos del tablero deben de estar de la misma forma que los mostrados en la Figura 3. Figura 3. 5) Coloque en ALTO el interruptor selector de dirección para ver la parte alta del bus de direcciones, el programa en este momento está apuntando a la dirección FFFF FFF0h, ya que es en esa dirección donde la CPU llega después de un reset. 6) Coloque en ALTO el interruptor del selector de datos para ver la parte alta del bus de datos, anote el dato completo ____ 02EAh, El byte EAH es un instrucción de transferencia que la CPU manda llamar inmediatamente después de la reinicialización y el byte superior 02h es parte de la dirección del programa de inicialización. 7) En la Figura 4 se muestra un listado parcial del programa de inicialización de la CPU, como puede ver inicia en la dirección FFFF FFF0h que tiene el código máquina 02 EAh (estos datos se ven al revés porque en la memoria se guardan los datos desde el menos significativo al más significativo, y los leds están ordenados para ver el más significativo primero y luego el menos significativo) Microprocesadores. Guía 11 5 Figura 4. 8) Presione el botón blanco que esta junto a la pantalla LCD llamado PASO para ejecutar la instrucción, ahora la dirección en los leds debe ser FFFF FFF2 ya que son ciclos de bus de 16 bits, las instrucciones se extraen de 1 palabra (2 bytes) a la vez y en los leds de dato debe verse 00 01 pero en orden inverso es decir 01 00. 9) Presione de nuevo el botón PASO. Por lo dicho anteriormente la dirección a la que apunta ahora debe ser FFFF FFF4 y el dato debe ser XX FC, ya que extrae FC y el byte que le sigue, que en este caso no importa ya que no es parte de la instrucción. 10) Presione de nuevo el botón PASO. Aquí contrario a lo esperado el programa no salta a la dirección 000F C012 ya que siempre que el 80386 decodifica una instrucción, simultáneamente extrae la próxima instrucción, que se puede conformar de una o varias palabras, por esta razón puede necesitar varios pasos para alcanzar la dirección a la cual la CPU se traslada, así que presione varias veces el botón PASO hasta que vea en la parte baja del bus de direcciones el dato C012h. 11) Pase a ALTO el interruptor selector de dirección y confirme que está la dirección 000Fh, anote lo que tiene el bus de datos. Bus de datos: ______ _______. ¿Qué instrucción ejecutará la CPU si presiona el botón PASO?__________ (Vea el programa en la Figura 4). PARTE II: BUS DE CONTROL 12) El programa de inicialización de la CPU extrae una serie de instrucciones de la ROM monitor, por lo que se puede ver el comportamiento de las líneas de control asociadas con las transferencias con la memoria en este caso la ROM, para ello se va a utilizar la sonda lógica, coloque la punta de prueba en los pines de la sonda lógica que esta junto al teclado. 13) Presione el botón de RESET y luego conecte la sonda lógica en el pin de ADS# de la tira de pines JP3. ¿En qué estado se encuentra este pin? _______________. 6 Microprocesadores. Guía 11 14) Presione el botón PASO unas cinco veces mientras observa el comportamiento de los leds de la sonda lógica, ¿Los leds indican que ADS# es siempre alta, siempre baja o cambia de estado (pulso) en cada paso? ______________________________ 15) Repita los pasos del 12 y 13 para las señales BS16#, RDY#, M/IO# y W/R# y anote lo observado en la Tabla 1. Pin BS16# RDY# M/IO# W/R# Estado inicial Estado al ejecutar paso a paso Tabla 1. 16) Pase el interruptor CICLO SIMPLE a la posición apagado (APA.) y ponga los interruptores de datos y direcciones en la posición BAJO. 17) Introduzca a través del teclado el programa de la Tabla 2, este programa saca las letras de la “a” a la “f”, por el puerto que está conectado a la pantalla LCD. NOTA: Revise la guía 9 si no recuerda como introducir datos con el teclado. Dirección 04000 04002 04004 04006 04008 0400A 0400C 0400E Código máquina B0 E6 B0 E6 FE 3C 75 EB 01 51 61 55 C0 67 F8 F0 Ensamblador INICIO: MOV AL,01H ;saca el dato 01 al puerto 51 OUT AL,51 ; para limpiar la pantalla MOV AL,'a' ; saca por el puerto 55 OTRO: OUT AL,55 ; el dato 'a' INC AL ;incrementa el ASCII del carácter CMP AL,'g' ;compara si ya llegó a 'g' JNE OTRO ;si no es así salta a OTRO JMP INICIO ;si ya se llego a 'q' va a INICIO Tabla 2. Programa que muestra caracteres en la pantalla LCD 18) De clic en el botón RESET, presione la tecla GO e introduzca la dirección del programa 0000:4000 para ejecutar el programa. 19) Los datos se muestran en la pantalla LCD muy rápido por lo que no son visibles, para poder ver los datos y como se comportan el bus de control del microprocesador se va a pasar a la CPU a trabajar a CICLO SIMPLE, para ello pase ese interruptor a la posición de ENC. Microprocesadores. Guía 11 7 20) El programa pudo haberse detenido en cualquier parte, presione el botón PASO varias veces y vea en la pantalla LCD como aparecen los caracteres en pantalla y luego de aparecer la letra “f”, se limpia la pantalla para volver a mostrar los caracteres desde la “a” a la “f”. 21) Conecte la sonda lógica al pin BS16# y presione varias veces el botón PASO ¿Qué observa? ________________________________________________________________________________. 22) Presione el botón PASO hasta que aparezca en la parte baja del bus de direcciones la dirección de inicio (4000). 23) Conecte la sonda lógica al pin M/IO# en qué estado se encuentra: ____________. 24) No pierda de vista los leds de la sonda lógica y presione el botón PASO hasta que vea un cambio de estado, anote lo que tiene el bus de direcciones y datos. Bus de dirección: _____ _____ Bus de datos: _____ _____. 25) Siga presionando el botón PASO hasta que vea de nuevo el cambio de estado del paso 24 y anote lo que tiene el bus de direcciones y de datos. Bus de dirección: _____ _____ Bus de datos: _____ _____. 26) Continúe presionando el botón PASO y esta vez vea lo que pasa en la pantalla LCD cuando el pin M/IO# cambia de estado. Anote sus observaciones:__________________________________ ________________________________________________________________________________ 27) Presione el botón PASO hasta que aparezca en la parte baja del bus de direcciones la dirección de inicio (4000). 28) Conecte la sonda lógica al pin W/R# en qué estado se encuentra: ____________. 29) Presione el botón PASO hasta que vea un cambio de estado, Anote lo que tiene el bus de direcciones y datos. Bus de dirección: _____ _____ Bus de datos: _____ _____. 30) Continúe presionando el botón PASO y esta vez vea lo que pasa en la pantalla LCD cuando el pin W/R# cambia de estado. Anote sus observaciones:___________________________________ ________________________________________________________________________________ 8 Microprocesadores. Guía 11 Análisis de Resultados 1. Según la función del pin ADS# ¿Qué indica la información que da la sonda lógica al ejecutar el programa paso a paso? 2. Según la función de cada pin de la Tabla 1 ¿Qué indica la información que da la sonda lógica? 3. Cuando se ejecuto el programa de la Tabla 2 ¿Qué indica el estado del pin BS16#? 4. ¿Por qué las señales en los pines M/IO# y W/R# reaccionaban de esa forma al ejecutar el programa de la Tabla 2? 5. ¿Por qué en el programa de inicialización de la CPU, W/R# no cambiaba de estado y en el programa de la Tabla 2 si había un cambio? 6. Presente los datos y las preguntas que se le pedían en el procedimiento. Bibliografía • http://www.alpertron.com.ar/HW386.HTM (Última visita 07/01/2011). • Brey, B. B. “Los Microprocesadores Intel. 8086 / 8088, 80186, 80286, 80386 y 80486. Arquitectura, programación e interfaces”, tercera edición Prentice Hall, MéxicoDF, 1997 Biblioteca UDB 001.6404 B847 1997. • Curso MICROPROCESADOR DE 32 BITS, Ver 5.01.3, Unidades “Funcionamiento de los buses”, “Interfase con la memoria” e “interfase con E/S” Microprocesadores. Guía 11 Hoja de cotejo: 11 Guía 11: MICROPROCESADOR 80386. Alumno: Puesto No: Docente: GL: Fecha: EVALUACION % 1-4 5-7 Conocimiento deficiente de los siguientes fundamentos teóricos: -Ingreso de un programa a través del teclado del tablero. -Funciones de los pines de control del 80386. -Funcionamiento de una sonda lógica. Cumple sólo con uno o ninguno de los siguientes criterios: -Verifica las condiciones iniciales del tablero para operar correctamente. -Interpreta la información en los buses de datos y direcciones de 80386. -Interpreta el estado de los pines de control del 80386 Conocimiento y explicación incompleta de los fundamentos teóricos. Conocimiento completo y explicación clara de los fundamentos teóricos. Cumple sólo con dos de los criterios. Cumple con los tres criterios. 2.5 -Es un observador pasivo. -Participa ocasionalmente pero sin coordinarse con su compañero. -Participa de forma propositiva e integral en toda la práctica. 2.5 -Es ordenado pero no hace uso adecuado de los recursos. -Hace uso adecuado de los recursos de manera segura, pero es desordenado. -Hace un manejo responsable y adecuado de los recursos de acuerdo a pautas de seguridad e higiene. CONOCIMIENTO 35 APLICACIÓN DEL CONOCIMIENTO 60 ACTITUD TOTAL 100 8-10 Nota 9