Este documento describe un sistema para calcular estadísticas de las trayectorias de vuelo de drones almacenadas en la memoria RAM. La RAM contiene las coordenadas de 20 trayectorias diferentes de 5 bytes cada una. El sistema calcula la distancia euclidiana recorrida en cada trayectoria y almacena los resultados en la memoria RAMD. Luego calcula el promedio, máximo y mínimo de las distancias recorridas y los muestra en displays. Se pide particionar funcionalmente el sistema y proveer diagramas para las etapas de cál
1. LECCIÓN SISTEMAS DIGITALES 2
vasanza
TERMINO II AÑO 2017 - 2018
Fecha: 2018/01/16
NOMBRE PARALELO
Realizar el diseño de un SISTEMA DE CÁLCULOS ESTADÍSTICOS PARA
TRAYECTORIAS DE DRONES. El sistema tiene cargado en memoria RAM los 100
bytes, en donde cada 5 bytes representan las coordenadas de 5 vectores
que describen una trayectoria completa del drone. En otras palabras, los
100 bytes describen 20 trayectorias DIFERENTES de vuelo del drone, cada
trayectoria se describe con 5 bytes de coordenadas, como se indica a
continuación:
RAM
Trayectoria Address
Data de 1 Byte
y x
1
0x00 0010 0011
0x01 0110 0110
0x02 1000 1001
0x03 0110 1100
0x04 1010 1111
2
0x05 0011 0011
0x06 0010 0110
0x07 0010 1001
0x08 0110 1100
0x09 1000 1111
… … … …
20
0x5F 0010 0011
0x60 0110 0110
0x61 1010 1001
0x62 1110 1100
0x63 1001 1111
2. LECCIÓN SISTEMAS DIGITALES 2
vasanza
CÁLCULO DE DISTANCIA EUCLIDIANA RECORRIDA POR TRAYECTORIA:
i=0; t=0;
while i<100
x = 15; -- todas las trayectorias tienen este valor constante
y = (0-RAM(i).[7…4])+(RAM(i).[7…4]-RAM(i+1).[7…4])+(RAM(i+1).[7…4]-
RAM(i+2).[7…4])+(RAM(i+2).[7…4]-RAM(i+3).[7…4]) +(RAM(i+3).[7…4]-
RAM(i+4).[7…4]);
ramD[t]=sqrt(pow2(x)+ pow2(y));
-- sqrt: raíz cuadrada, pow2: elevar al cuadrado un valor
t=t+1; i=i+5;
end;
PSEUDOCÓDIGO PARA CÁLCULO ESTADÍSTICO:
Prom=0; Max=0; Min=255;
for i=0:19
if ramD(i) > Max
Max <= ramD(i);
endif;
if ramD(i) < Min
Min <= ramD(i);
endif;
Prom <= Prom + ramD(i);
end
Prom <= Prom / 20;
Display1(Prom); Display2(Max); Display3(Min);
Delayms(5000);
SEÑALES:
• RAM. – Es la memoria que tiene los 100 bytes almacenados de forma
permanente y que soro será utilizado en modo lectura.
• ramD. – Memoria RAM de 20 direcciones que almacenará la distancia
euclidiana recorrida por el drone desde la coordenada (0,0) hasta la
última coordenada de cada trayectoria. Notar que la distancia máxima
recorrida podrá ser √(15)2 + (15)2 = 21.21, pero para efectos de la
lección asumiremos que el máximo será 255.
• Start. - Luego de presionar y soltar este botón, el sistema empezará
a realizar los cálculos.
3. LECCIÓN SISTEMAS DIGITALES 2
vasanza
• Fin. - Este led se encenderá durante 5segundos solo después de
calcular las estadísticas de las trayectorias, además:
• Display1 Prom. – Muestra en 3 displays la distancia promedio de
todas las 20 trayectorias.
• Display2 Max. – Muestra en 3 displays la distancia mínima
encontrada entre las 20 trayectorias.
• Display3 Min. – Muestra en 3 displays la distancia máxima
encontrada entre las 20 trayectorias.
NOTA: Si la respuesta no tiene MSS se anula el literal a.
SE PIDE:
a) Hacer la partición funcional del sistema completo: Mss, Ram, Msi,
puertas lógicas, etc. (20P)
a) Etapa de cálculo de distancia euclidiana. (10p)
b) Etapa de cálculos estadísticos. (10p)
b) Diagrama ASM del controlador. (10P)