anÁlisis e implementacion de caracteristicas de rtos · ifac workshop on real-time programming and...
TRANSCRIPT
ANÁLISIS E IMPLEMENTACION DE CARACTERISTICAS DE RTOS
Diego Martínez CastroGITCoD
Departamento de Automática y ElectrónicaUniversidad Autónoma de Occidente
Santiago de Cali, Colombia
Simposio Argentino de Sistemas Embebidos 2012FI-UBA, Buenos Aires, Argentina
Agosto 16 de 2012
Contenido
• Motivación
• Arquitectura de los nodos• Sistemas distribuidos de tiempo real
2/66Motivación Arquitectura de los nodos Sistemas distribuidos de tiempo real
Contenido
• Motivación
• Arquitectura de los nodos• Sistemas distribuidos de tiempo real
3/66Motivación Arquitectura de los nodos Sistemas distribuidos de tiempo real
Definición de un sistema de tiempo real
“Cualquier sistema que tiene que responder a estímulos generados externamente dentro de un plazo especificado y finito”
El correcto funcionamiento de un sistema de tiempo real
depende de:• El resultado lógico de la computación.• El tiempo que se tarda en generar el resultado.
4/66Motivación Arquitectura de los nodos Sistemas distribuidos de tiempo real
Sistemas críticos
Definición de un sistema de tiempo real
Sistemas no críticos
5/66Motivación Arquitectura de los nodos Sistemas distribuidos de tiempo real
Video Frame con soporte de QoS
Video Frame sin soporte de QoS
Ejemplos de sistemas de tiempo real
6/66Motivación Arquitectura de los nodos Sistemas distribuidos de tiempo real
La cardioversión eléctrica es un tipo de terapias que mediante la aplicación de un choque eléctrico de corriente continua consigue revertir distintos trastornos del ritmo cardíaco.
Si el pulso es aplicado durante la onda T entre 50 ms y 150 ms después del complejo QRS, se podría introducir una fibrilación en el corazón.
Ejemplos de sistemas de tiempo real
Gráfica tomada de: Roberto Méndez. El “chispazo” o cardioversión: Cuando una descarga eléctrica puede salvarnos la vida.
7/66Motivación Arquitectura de los nodos Sistemas distribuidos de tiempo real
Los retrasos y el jitter que introduce la red de comunicaciones en las aplicaciones de control, han dado lugar a que en algunos casos no se obtenga una buena correspondencia entre los resultados experimentales y los objetivos de control propuestos.
Ejemplos de sistemas de tiempo real
8/66Motivación Arquitectura de los nodos Sistemas distribuidos de tiempo real
Resultados experimentales de una WSAN
08.21128.5
5.142)( ++
=ss
G sp
)(221
20
)( zz zz
qzqzqU ε
−++=
s
dp T
KKq +=0 si
s
dp TK
T
KKq +−−= 2
1s
d
T
Kq =2
2=pK 4=iK 1=dK
,
Resultados experimentales, periodo 90ms y retraso 30ms Resultados experimentales, periodo 90 ms y retraso 80 ms
Ejemplos de sistemas de tiempo real
9/66Motivación Arquitectura de los nodos Sistemas distribuidos de tiempo real
Planificadores y Análisis de planificabilidad
En que orden ejecutar las tareas para cumplir con los plazos?
Planificadores• Planificadores cíclicos.• Planificadores por prioridades fijas.• Planificadores por prioridades dinámicas.
Análisis de planificabilidad• Test de Utilización• Test de Utilización
10/66Motivación Arquitectura de los nodos Sistemas distribuidos de tiempo real
Contenido
• Motivación
• Arquitectura de los nodos• Sistemas distribuidos de tiempo real
11/66Motivación Arquitectura de los nodos Sistemas distribuidos de tiempo real
Arquitectura lógica de un nodo
• Tareas.• Procesadores.• Planificadores de tareas.
Los componentes del sistema deben tener un comportamiento predecible para poder garantizar el cumplimiento de plazos.
12/66Motivación Arquitectura de los nodos Sistemas distribuidos de tiempo real
Arquitectura lógica de un nodo
• Tareas.• Procesadores.• Planificadores de tareas.
13/66Motivación Arquitectura de los nodos Sistemas distribuidos de tiempo real
TareasUna tarea es un programa en ejecución: código, variables y
contexto (valor del contador de programa (PC), apuntador de pila (SP) y demás registros utilizados por el programa).
Un programa es pasivo (es sólo el código almacenado en la memoria de programa) y una tarea es activa y dinámica (cambia en el tiempo).
14/66Motivación Arquitectura de los nodos Sistemas distribuidos de tiempo real
Ejecución de una tareaTareas
15/66Motivación Arquitectura de los nodos Sistemas distribuidos de tiempo real
Ejecución de varias tareas
Tareas
16/66Motivación Arquitectura de los nodos Sistemas distribuidos de tiempo real
Estados de las tareas
Tareas
17/66Motivación Arquitectura de los nodos Sistemas distribuidos de tiempo real
Cambios de contexto
Tareas
18/66Motivación Arquitectura de los nodos Sistemas distribuidos de tiempo real
Arquitectura lógica de un nodo
• Tareas.• Procesadores.• Planificadores de tareas.
19/66Motivación Arquitectura de los nodos Sistemas distribuidos de tiempo real
Arquitecturas de nodos de WSN
20/66Motivación Arquitectura de los nodos Sistemas distribuidos de tiempo real
Arquitectura de nodos de WSN
21/66Motivación Arquitectura de los nodos Sistemas distribuidos de tiempo real
CC2430
22/66Motivación Arquitectura de los nodos Sistemas distribuidos de tiempo real
AT89C51CC03
23/66Motivación Arquitectura de los nodos Sistemas distribuidos de tiempo real
Arquitectura lógica de un nodo
• Componentes para el diseño.• Procesadores.• Planificadores de tareas.
24/66Motivación Arquitectura de los nodos Sistemas distribuidos de tiempo real
Planificación de tareasEl planificador es el componente del sistema operativo que decide cual de las
tareas listas para ser ejecutadas es la que debe ejecutarse, de manera que permite la ejecución “concurrente” (alternada) de las tareas.
25/66Motivación Arquitectura de los nodos Sistemas distribuidos de tiempo real
Análisis de planificabilidad extremo-extremo para WSAN
Control del orden de ejecución de las tareas:• Controlador de interrupciones:
• Duración de la atención a la interrupción.• Flexibilidad.
• Planificadores:• Planificadores por prioridades fijas.• Planificadores por prioridades dinámicas.
26/66Motivación Arquitectura de los nodos Sistemas distribuidos de tiempo real
Diseño de un Planificador de Tareas por Prioridades Fijas para el Microcontrolador
AT89C51CC03.
27/66Motivación Arquitectura de los nodos Sistemas distribuidos de tiempo real
Filtro Hanning. Filtros FIR utilizados para reducir el ruido de alta frecuencia. Un método simple para reducir el ruido de alta frecuencia es simplemente promediar varios datos de medidas adyacentes.
Implementación de un Filtro Hanning
( )4
2 2)(
1)()(
)(
−− ++=
zxzxxY zzz
z
( )4
2 )2()1()()(
−− ++= kkk
k
xxxY
Respuesta al impulso
28/66Motivación Arquitectura de los nodos Sistemas distribuidos de tiempo real
Ubicación de polos y ceros
Implementación de un Filtro Hanning
29/66Motivación Arquitectura de los nodos Sistemas distribuidos de tiempo real
Respuesta en frecuencia
Implementación de un Filtro Hanning
30/66Motivación Arquitectura de los nodos Sistemas distribuidos de tiempo real
El Microcontrolador 8051
Diagrama de bloques
Atmel 8051 Microcontrollers Hardware Manual
31/66Motivación Arquitectura de los nodos Sistemas distribuidos de tiempo real
Proyecto: Ejecución de dos filtros FIR pasa bajo.
32/66Motivación Arquitectura de los nodos Sistemas distribuidos de tiempo real
Estructuras de una Tareatypedef struct _tarea{
char estado; // Activa(1) o inactiva(0)
void (*PunteroTarea)();
char prioridad;
char tipoTarea; //1 Periodica 2 No Periodica
char tipoEvento;
char tEstatico;
char buzon;
char tPSW; // Registro de banderas de la tarea
char tACC; // Acumulador de la tarea
}Tarea;
33/66Motivación Arquitectura de los nodos Sistemas distribuidos de tiempo real
Configuración del temporizadorvoid configureTimer0(int Ciclos_Maq){
TMOD &= 0xF0;
TMOD = TMOD + (C_T_T0 * 4) + MODO_T0;
variable = 65536 - Ciclos_Maq;
TL0 = variable;
TH0 = variable >> 8;
#pragma asm
SETB IEN0.1
SETB IEN0.7
SETB TR0
#pragma endasm
}
34/66Motivación Arquitectura de los nodos Sistemas distribuidos de tiempo real
void it_timer0 (void) interrupt 1{
int i, aux;
TL0 = variable;
TH0 = variable >> 8;
aux= punteroPlan;
aux=aux/256;
for(i=0;i<ctdadTareas;i++){
(&tareas[i])->tipoEvento--;
if((&tareas[i])->tipoEvento==0){
(&tareas[i])->tipoEvento=(&tareas[i])->tEstatico;
(&tareas[i])->estado=1;
}
}
DPL=(punteroPlan);
DPH= aux;
#pragma asm
PUSH DPL
PUSH DPH
SETB EA
RETI
#pragma endasm
}
Subrutina de atención a la interrupción del
temporizador
35/66
Instalación de tareas en el núcleo
void instalarTarea(Tarea *tarea){
//Agregando tareas al vector de tareas
tareas[ctdadTareas].estado = tarea->estado;
tareas[ctdadTareas].prioridad=tarea->prioridad;
tareas[ctdadTareas].tipoTarea=tarea->tipoTarea;
tareas[ctdadTareas].tipoEvento=tarea->tipoEvento;
tareas[ctdadTareas].tEstatico=tarea->tEstatico;
tareas[ctdadTareas].PunteroTarea=tarea->PunteroTarea;
tareas[ctdadTareas].buzon=tarea->buzon;
tareas[ctdadTareas].tPSW=0;
tareas[ctdadTareas].tACC=0;
ctdadTareas++;
}36/66Motivación Arquitectura de los nodos Sistemas distribuidos de tiempo real
Ordenamiento de tareas por prioridad
void organizarPorPrioridad(void){
Tarea *taux;
int i, j;
for(i =0;i<ctdadTareas;i++){
taux=&tareas[i];
for (j =i+1;j<ctdadTareas;j++){
if(tareas[i].prioridad > tareas[j].prioridad){
tareas[i]=tareas[j];
tareas[j]=*taux;
}
}
}
}
37/66Motivación Arquitectura de los nodos Sistemas distribuidos de tiempo real
Planificador y despachador de tareasfor ( i = 0; i < ctdadTareas; i++){
if(tareas[i].estado){
tActiva=i;
aux= tareas[i].PunteroTarea;aux=aux/256;
PSW = tareas[i].tPSW;
ACC = tareas[i].tACC;
DPL=(tareas[i].PunteroTarea);
DPH= aux;
#pragma asm
PUSH DPL
PUSH DPH
#pragma endasm
}
}
}
38/66Motivación Arquitectura de los nodos Sistemas distribuidos de tiempo real
Tarea
void TAR0 (){
if(cerrojo.valor) block(&(tareas[0]),&cerrojo); // Bloquea a otras tareas usuarias del recurso
else{
lock(); //Toma los recursos: ADC
getADCdata();
value_converted = (value_converted + (2*value_converted1) + value_converted2)/4;
value_converted2 = value_converted1;
value_converted1 = value_converted;
caracter = value_converted*255/1023;
UARTTransmit(caracter);
unlock(); //Libera los recursos
unblock(); //Desbloquea a las tareas que están a la espera del recurso
aux= punteroPlan;
aux=aux/256;
DPL=(punteroPlan);
DPH= aux;
#pragma asm
PUSH DPL
PUSH DPH
RET
#pragma endasm
}
}39/66
Contenido
• Motivación
• Arquitectura de los nodos• Sistemas distribuidos de tiempo real
40/66Motivación Arquitectura de los nodos Sistemas distribuidos de tiempo real
Redes inalámbricas de sensores
Redes de sensores:• La naturaleza y complejidad de las nuevas aplicaciones.• Aumento de la potencialidad del sistema a menor coste.
• Aumento de la flexibilidad de las aplicaciones.
Redes inalámbricas de sensores (finales década de los 90):• Red de gran escala, ad hoc, multisalto.• Nodos sensores con arquitectura homogénea, pequeños, principalmente estáticos,
que pueden ser dispersados de manera aleatoria sobre el área de interés.• Parámetro principal en el diseño es la disminución en el consumo de energía.• Inicialmente aplicaciones militares.
41/66Motivación Arquitectura de los nodos Sistemas distribuidos de tiempo real
• Nodos con interfaces de actuación.• Nodos heterogéneos y móviles.• Distintas topologías de red.• Nuevos requisitos de calidad de servicio
(Plazos extremo-extremo).
Redes inalámbricas de sensores y actuadores
42/66Motivación Arquitectura de los nodos Sistemas distribuidos de tiempo real
Aplicaciones de WSAN
43/66Motivación Arquitectura de los nodos Sistemas distribuidos de tiempo real
WirelessHART
R.A. Leon, V. Vittal and G. Manimaran. Application of sensor network for secure electric energy infrastructure. IEEE Transactions on Power Delivery, vol. 22, no. 2, pp. 1021 - 1028, 2007.
Aplicaciones de WSAN
44/66Motivación Arquitectura de los nodos Sistemas distribuidos de tiempo real
Wireless sensor networks for healthcare: A survey. Hande Alemdar , Cem Ersoy . Computer Networks 54 (2010) 2688–2710. ELSEVIER.
Aplicaciones de WSAN
45/66Motivación Arquitectura de los nodos Sistemas distribuidos de tiempo real
Wireless sensor networks for healthcare: A survey. Hande Alemdar , Cem Ersoy . Computer Networks 54 (2010) 2688–2710. ELSEVIER.
Aplicaciones de WSAN
46/66Motivación Arquitectura de los nodos Sistemas distribuidos de tiempo real
Análisis de planificabilidad extremo-extremo para WSAN
47/66Motivación Arquitectura de los nodos Sistemas distribuidos de tiempo real
Análisis de planificabilidad extremo-extremo para WSAN
Análisis locales
Análisis extremo - extremo
48/66Motivación Arquitectura de los nodos Sistemas distribuidos de tiempo real
Modelo del sistema y notación
SCGRACS TDDDD ≤≤++
Martínez D., Balbastre P., Blanes F., Simo J. and Crespo A.: “Schedulability Analysis and Performance Evaluation of WSAN”. Preprints of the 30th IFAC Workshop on Real-Time Programming and 4th International Workshop on Real-Time Software, pp. 109 – 116. ISSN 1896-7094. Mrągowo - Poland, October 12-14, 2009b
• , es el periodo con el que se repite el itinerario de ranuras en la red TDMA.
• , es el plazo extremo-extremo, entre el inicio de la medición y la finalización de la
actuación.
• , es el periodo de muestreo empleado en la medición.
Análisis de planificabilidad extremo-extremo para WSAN
49/66Motivación Arquitectura de los nodos Sistemas distribuidos de tiempo real
Modelo lineal del sistema de control),(
')(
),('
)(),( 1 mZZ
mZZmZ GpGc
GpGcH
+=
Análisis de planificabilidad extremo-extremo para WSAN
• Periodos de muestreo: Ancho de banda del sistema (menor periodo puede generar mayores retrasos).• Plazos: Efectos en los transitorios y estabilidad.
50/66Motivación Arquitectura de los nodos Sistemas distribuidos de tiempo real
• Análisis de planificabilidad extremo-extremo:
– Las aplicaciones en sistemas distribuidos están caracterizadas por poseer relaciones de precedencia entre sus tareas.
– Un enfoque común es asignar las tareas estáticamente a los nodos que conforman el sistema y localmente utilizar un algoritmo de planificación como RM (Rate Monotonic) o EDF (Earliest Deadline First), (Spuri, 1996).
– Si las tareas son estáticamente asignadas a procesadores independientes, las restricciones de tiempo extremo-extremo pueden ser analizadas por una teoría que considere la relación entre los jitter (Audsley, 1993).
51/66Motivación Arquitectura de los nodos Sistemas distribuidos de tiempo real
Análisis de planificabilidad extremo-extremo para WSAN
• Redes de datos:
– Transferencia de ficheros, conexiones remotas, correo electrónico, .... Mensajes de tamaño considerable y por ráfagas.
• Redes de control:
– Transferencia de información de estado de un proceso, lectura de un sensor, señales de alarma,... Mensajes de tamaño reducido y periódicos.
– Importancia no sólo de la información sino del instante de tiempo en el que se produce. Concepto dato-tiempo como algo atómico.
– Existen diferente formas para la sincronización:• Información global del tiempo. Todas las estaciones disponen de un reloj local
que periódicamente se va sincronizando con el resto de relojes.
• Eventos.
– Para implementar mecanismos de tolerancia a fallos y redundancia, las funciones han de estar distribuidas. Todos los nodos deben ser capaces de trabajar de forma autónoma. Esta idea contradice a otra muy usada en sistemas distribuidos como es la maestro-esclavo.
Redes para control
52/66Motivación Arquitectura de los nodos Sistemas distribuidos de tiempo real
DESARROLLO DE CONTROL DISTRIBUIDO PARA UN BANCO DE MOTORES DE MEDIANA POTENCIA
– Sistema de control en red para regular la velocidad de un motor DC.– Codiseño HW-SW en el diseño de los nodos, Microcontrolador 89C52 – FLEX10K.
– Red de comunicaciones CAN
– Planificador de tareas RM.
Sistemas de control de nivel y velocidad empleando protocolo CAN
53/66Motivación Arquitectura de los nodos Sistemas distribuidos de tiempo real
Diagrama de bloques de una red CAN convencional
54/66Motivación Arquitectura de los nodos Sistemas distribuidos de tiempo real
Arbitraje para la detección y resolución de colisiones en CAN
55/66Motivación Arquitectura de los nodos Sistemas distribuidos de tiempo real
Cálculo del tiempo máximo de envío de un mensaje a través de una red CAN
∑<∀
+
++=
ijj
j
ni
iini C
T
RBCR 1
jij
i CB>
= max ∑ <+=
ijii CjBR )0(
Donde:• Ci es el tiempo de transmisión del mensaje.• Bi es el máximo tiempo de bloqueo que puede sufrir el mensaje como consecuencia de estar ocupado el bus por mensajes de menor prioridad, lo anterior dado que el bus no se puede expropiar.• Ti es el periodo de envío del mensaje i.
56/66Motivación Arquitectura de los nodos Sistemas distribuidos de tiempo real
• El periodo de envío del mensaje 0 y mensaje 1 es 50ms.
• Cada trama envía 2 bytes de datos en un formato de trama extendida, por consiguiente el número de bits es 82.
• La velocidad de transmisión es 50 kbps; por lo tanto, el tiempo de envío de una trama es 1.64ms.
Los tiempos máximos de transmisión de las tramas son:
msBR 64.100)0(
0 =+= msmsmsR 28.3064.164.1)1(0 =++=
msCR 64.10 1)0(
1 =+= msmsms
msmsR 28.364.1
50
64.164.1)1(
1 =
+=
msmsms
msmsR 28.364.1
50
28.364.1)2(
1 =
+=
57/66Motivación Arquitectura de los nodos Sistemas distribuidos de tiempo real
Cálculo del tiempo máximo de envío de un mensaje a través de una red CAN
58/66Motivación Arquitectura de los nodos Sistemas distribuidos de tiempo real
Resultados experimentales
Implementación de una WSAN sobre IEEE 802.15.4
Arquitectura del sistema
59/66Motivación Arquitectura de los nodos Sistemas distribuidos de tiempo real
Topologías de red
Estrella
Peer to Peer
IEEE 802.15.4
60/66Motivación Arquitectura de los nodos Sistemas distribuidos de tiempo real
Estándar de comunicación IEEE 802.15.4• Empleando el modo de acceso con sincronización de IEEE
802.15.4 es posible garantizar tiempos máximos de envío de información, asignando a los nodos un GTS dentro de una supertrama. Solamente es posible asignar un máximo de 7 ranuras, con un periodo mínimo de trama de 15,36 ms.
IEEE 802.15.4
61/66Motivación Arquitectura de los nodos Sistemas distribuidos de tiempo real
IEEE 802.15.4
62/66Motivación Arquitectura de los nodos Sistemas distribuidos de tiempo real
IEEE 802.15.4
63/66Motivación Arquitectura de los nodos Sistemas distribuidos de tiempo real
2. Análisis de planificaficabilidad extremo-extremo
• DS, DC, DA => [Dmín j, Dmáx
j] • Dmín j y Dmáx
j son los valores mínimo y máximo de D j para garantizar la planificabilidad local y extremo-extremo. Dmín j se obtiene a partir del algoritmo Deadlinemin, (Balbastre, 2008)
Propuesta 1: método de análisis de planificabilidad para WSAN con distancia entre nodos acotada a un salto.
1. Análisis de planificabilidad local
∑=
−+=n
i i
iii T
DTtCtH
1
)(τ [ )R,0 ttH <)(τ ∀ Rt ≤
EDF test (Ripoll, 1996)
Martínez D., Balbastre P., Blanes F., Simo J. and Crespo A.: “Schedulability Analysis and Performance Evaluation of WSAN”. Preprints of the 30th IFAC Workshop on Real-Time Programming and 4th International Workshop on Real-Time Software, pp. 109 – 116. ISSN 1896-7094. Mrągowo - Poland, October 12-14, 2009b
Análisis de planificabilidad extremo-extremo para WSAN
64/66Motivación Arquitectura de los nodos Sistemas distribuidos de tiempo real
Sistema
Parámetros del sistema:
RiseTime: 0.3847
SettlingTime: 1.2750
SettlingMin: 0.6250
SettlingMax: 0.7711
Overshoot: 12.0602
Undershoot: 0
Peak: 0.7711
PeakTime: 0.8265
Resultados experimentales
65/66Motivación Arquitectura de los nodos Sistemas distribuidos de tiempo real
PID, Muestreo 90 ms, Retraso máximo 30 ms
Resultados experimentales
PID, Muestreo 90 ms, Retraso máximo 80 ms
66/66Motivación Arquitectura de los nodos Sistemas distribuidos de tiempo real
ANÁLISIS E IMPLEMENTACION DE CARACTERISTICAS DE RTOS
Diego Martínez CastroGITCoD
Departamento de Automática y ElectrónicaUniversidad Autónoma de Occidente
Santiago de Cali, Colombia
Simposio Argentino de Sistemas Embebidos 2012FI-UBA, Buenos Aires, Argentina
Agosto 16 de 2012