2024-06-10 Enunciado
2024-06-10 Enunciado
2024-06-10 Enunciado
1. Cuestiones Teóricas:
a. Enunciar una clasificación general de las interrupciones de un microprocesador cualquiera según
el origen que las produce. Dar una breve explicación de cada uno de los tipos en los que se divide
esta clasificación. (0,75 puntos)
b. Definir el conversor analógico‐digital Sigma‐Delta (). Explicar su circuito y funcionamiento.
(0,75 puntos)
ഥ ) con un bus de direcciones de
2. Tenemos un microprocesador Intel de 16 bits (dispone de la señal IO/M
20 bits, A(19:0). Para la realización física de la memoria del microprocesador se tiene de los siguientes
dispositivos:
Memorias Flash de 256 kB (256 kpos. × 8 bit).
Memorias PROM de 256 kB (128 kpos. × 16 bit).
Memorias SRAM de 512 kB (256 kpos. × 16 bit).
Pueden utilizarse decodificadores 2 a 4 y 3 a 8, y también un número limitado de puertas lógicas.
El vector de reset apunta a la dirección 00000h de la memoria del micro.
Todos los habilitadores de las memorias son activos a nivel bajo.
Se pide:
a. Diseñar el mapa de memoria del microprocesador, en forma gráfica y también en forma de tabla,
para que disponga de: (1 punto)
512 kB de memoria de Flash a partir de la dirección 0.
Seguidamente habrá dos secciones de 256 kB PROM cada una dispuestas en espejo.
A continuación 512 kB de SRAM.
Si el microprocesador tiene direcciones sobrantes estas deben quedar libres.
b. Diseñar el circuito decodificador y dibujar el esquema completo del sistema, que incluya: los pines
necesarios del microprocesador, los integrados de memoria y el circuito decodificador, además de
todas las señales implicadas en el sistema. (1 punto)
c. Se quieren incluir 4 puertos de entrada a partir de la dirección 0 y 4 puertos de salida a
continuación. Dibujar el mapa de puertos y el circuito decodificador correspondiente. (0,5 puntos)
3. Para una planta de reciclaje de neumáticos, se desea construir un detector que discrimine entre diferentes
tipos de neumáticos, empleando para ello un microcontrolador 80C552 y dos sensores analógicos (peso
y diámetro), unidos a los canales 0 y 1 del ADC del microcontrolador. El departamento de software de la
empresa nos ha cedido el programa de una subrutina cuya entrada son las 2 medidas de los sensores y
cuya salida, genera un código de 8 bits que identifica sin ambigüedad el tipo de neumático. El periférico
ADC se controlará por interrupción.
El prototipo recibe esporádicamente los neumáticos a reciclar por una cinta transportadora. Cuando llega
un neumático, una fotocélula conectada a un pin de entrada del micro, marca la entrada en el sistema de
dimensionamiento. Entonces, el neumático debe ser medido en peso y diámetro, una medida después de
otra. Una vez realizadas ambas medidas, el sistema debe escribir el código correspondiente al neumático
en un puerto de salida durante un tiempo determinado. Este tiempo viene definido por una rutina de
espera ‘RTIRE_WAIT’, que contabiliza 23 ciclos máquina del microprocesador. Acto seguido, la salida debe
volver a ponerse a cero y el sistema debe estar preparado para recibir un nuevo neumático para reciclar.
El ritmo de llegada de las unidades nunca supera la capacidad del micro para generar completamente el
proceso anterior.
Se pide:
a. Diagrama de estados, eventos y acciones. Seguir la nomenclatura para este tipo de diagramas
expuesto en clase. Toda transición debe especificar claramente el evento que representa y la
acción que realiza. (1,5 puntos)
1
GRADO EN INGENIERÍA EN INFORMÁTICA DE GESTIÓN Y SISTEMAS DE INFORMACIÓN
KUDEAKETAREN ETA INFORMAZIO SISTEMEN INFORMATIKAREN INGENIARITZAKO GRADUA
ARQUITECTURA DE COMPUTADORES (27698) KONPUTAGAILUEN ARKITEKTURA
10/06/2024 2024/06/10
b. Codificar la rutina ‘ST_ADC_CH’ que recibe el número de canal del ADC por el acumulador y lanza
el proceso de conversión. (1 punto)
c. Codificar la rutina de atención a la interrupción del periférico ADC. (0,5 puntos)
4. Se tiene un programa en ensamblador para el microcontrolador 80C552 que controla distintas tareas en
una máquina. Entre otras cosas, se quiere que presente distintos datos en 4 displays de 7 segmentos,
donde los códigos que se van a visualizar se producen por el puerto 0 de forma multiplexada en tiempo
(se visualiza cada display 25 veces por segundo de forma secuencial). Utilizando los cuatro bits menos
significativos del puerto 1, se controla qué display se visualiza cada momento (cuando P1.0 está a nivel
alto, se visualiza el display 0 y permanece apagado en caso contrario. Lo mismo sucede con el resto de
displays y bits del puerto 1). El programa deja los datos que se tienen que visualizar, ya codificados para
su representación en los displays, en los 7 bits menos significativos de los registros cuyas direcciones van
de la 0x70 a la 0x73 del microcontrolador, respectivamente. Se pide:
a. Decidir y calcular los valores en hexadecimal que hay que introducir en los registros
correspondientes para programar una interrupción del timer 0 que permita visualizar los displays
25 veces por segundo cada uno. Como aparece en la figura 1, la frecuencia del oscilador es de
12 MHz (prescaler = 12). (1 punto)
b. Diagrama de flujo y codificación de la subrutina de interrupción del timer 0 que cuenta el tiempo
y visualiza secuencialmente el valor de cada display. Además, la subrutina tiene que generar un
flag binario “tick_2s” cada dos segundos de forma indefinida. (2 puntos)
5V 5V
49 2 59 61
EA VDD AVRef+ AVDD
P0.0 a a a a a a a a
P0.1 b b b b
P0.2 c f b c f b c f b c f b
P0.3 d g d g d g d g
80C552 P0.4 e e e e
P0.5 f e c f e c f e c f e c
P0.6 g g g g
d d d d
P0.7 com com com com
P1.0
P1.1
C1 35 P1.2
XTAL1 P1.3
33pF X1
12 MHz
C2 RST
34 XTAL2 STADC
VSS AVSS AVRef‐
33pF 36 37 60 58
2
ANEXO. Hojas de Características y Referencia
3
4
5
6
7
8
9