Vous êtes sur la page 1sur 44

GDR - STRQDS – Paris Janvier 2003

Développement de systèmes temps réel


en SDL

Jean-Philippe Babau

Centre d'Innovation en Télécommunication et Intégration de Services

CITI / INSA de Lyon

jpbabau@if.insa-lyon.fr L3i - INSA


GDR - STRQDS – Paris Janvier 2003

Complexité des systèmes embarqués


Correction (QoS)

Concept du génie logiciel


Techniques Formelles

Approche orientée/basée objet


Langages formels

jpbabau@if.insa-lyon.fr L3i - INSA


GDR - STRQDS – Paris Janvier 2003

Plan

• Langage SDL et développement

• Architecture type

• Introduction de la concurrence
– Génération
– Correction

• Vérification

jpbabau@if.insa-lyon.fr L3i - INSA


GDR - STRQDS – Paris Janvier 2003
Développement
• Couvrir l’ensemble du cycle de développement
– Spécification, conception, implémentation
– Tests, preuves

• Continuité
– correction
– conception incrémentale

• Formalismes connus, normalisés


– UML
– MSC
– SDL
– C, RTOS

jpbabau@if.insa-lyon.fr L3i - INSA


GDR - STRQDS – Paris Janvier 2003

SDL : Specification and Description Language


• Langage formel
– Sémantique définie (SDL 88, SDL 92, SDL 96, SDL2000)
• Langage des télécom (ITU)

• Langage graphique ou textuel


• Machines à états finis

• Outils
– ObjectGéode, Tau de Télélogic
– Edition
– Vérification/Validation/test (MSC)
– Génération de code
– SDL2IF (CADP : parcours de graphe, bisimulation, test)

jpbabau@if.insa-lyon.fr L3i - INSA


GDR - STRQDS – Paris Janvier 2003

SDL - Éléments de base

q Système
q Procédure

q Bloc
q Signal

q Process q État

jpbabau@if.insa-lyon.fr L3i - INSA


GDR - STRQDS – Paris Janvier 2003

SDL - Propriétés

- Exécution parallèle des process

- Etats : pas de hiérarchie, pas d ’états concurrents

- Communication par signal(paramètres)


- Gestion en FIFO sauf si signal prioritaire
- Un signal non attendu est perdu sauf si sauvegarde du signal

- Hypothèse du "Run To Completion"

- Spécifications temporelles (timer)


- Instants ordonnés

jpbabau@if.insa-lyon.fr L3i - INSA


GDR - STRQDS – Paris Janvier 2003

Modélisation d'un système réactif

System
Process

Sensor canal1 canal2 Actuator


Régulation Idle
E

Bloc Idle Action

IT E S Com S
Input Command Output

Idle

jpbabau@if.insa-lyon.fr L3i - INSA


GDR - STRQDS – Paris Janvier 2003

Développement

Propriétés fonctionnelles,
Analyse comportementales, de QoS Vérifications,
(temps réel, …) Génération de tests

correction
Architecture fonctionnelle
Conception et comportementale, Vérifications,
contraintes temporelles tests

Placement correction
Architecture communicante
(machines, réseaux, protocoles)
correction
Implémentation
Modèle d'exécution (RTOS)
Vérification
Analyse RMA
Génération de code

jpbabau@if.insa-lyon.fr L3i - INSA


GDR - STRQDS – Paris Janvier 2003

PROSEUS

- Modèles d’architecture de systèmes temps réel

- Approche basée objet (UML)

- Modélisation en couche

- 2 niveaux
- Sans architecture matérielle
- Avec architecture matérielle

jpbabau@if.insa-lyon.fr L3i - INSA


GDR - STRQDS – Paris Janvier 2003

Décomposition d'un système


• Activités génériques
– Régulation
• Acquisition, Traitement, Commande
– Mise à jour de données pour la régulation
• Acquisition, Mémorisation de la donnée
• Mode pull, mode push
– Trace
• Suivi

• Blocs
– Type en SDL
– Classe en UML

• Communication
– Asynchrone (signal : message)
– Synchrone (appel direct de procédure pour la consultation de données)

jpbabau@if.insa-lyon.fr L3i - INSA


GDR - STRQDS – Paris Janvier 2003

Contraintes temps réel


• Activation
– Périodique : timer
– Quasi périodique : dmin
– Une activation i défini un événement en entrée du système (ei)

• Délais
– Délai simple
• Écart maximum entre la fin des actions déclenchées par un événement
en entrée et la date d’arrivée de cet événement
– Délai bout-en-bout
• Écart maximum entre la date de production d’un événement en sortie
et la date d’arrivée d’un événement en entrée
– Logique temps réel
• @(fi, j) - @(ei, j) < di (fi : fin des actions)
• @(sk, j) - @(ei, j) < dik (sk : message envoyés vers un actionneur)

jpbabau@if.insa-lyon.fr L3i - INSA


GDR - STRQDS – Paris Janvier 2003

Décomposition d'un système

ICapteur Contrôle IActionneur

ISortie

jpbabau@if.insa-lyon.fr L3i - INSA


GDR - STRQDS – Paris Janvier 2003

Exemple : contrôle d'un réseau ferroviaire


system trains

ICapteurs Trains IAlimentation


chgt cmd

MA

EtatCircuit
onoff

Panneau
NumCircuit info
NCir

Horloge IAfficheurs
TOP

jpbabau@if.insa-lyon.fr L3i - INSA


GDR - STRQDS – Paris Janvier 2003

Interface, exemple du Joystick

(1) (2) (3)

(1) (2) (3)

jpbabau@if.insa-lyon.fr L3i - INSA


GDR - STRQDS – Paris Janvier 2003

Actions
• Procedure SDL
– Méthode
– Spécification
– Signature
• Task SDL
– Gestion des PID

Traitements amonts
Etat1
DemService()
Ce signe veut dire que les messages *
Message1
(soit tous sauf Rmessage() ) sont
AttenteReponse
conservés dans la queue sans être
Méthode1
traités
Réponse1
R DemService () **
Etat2 Traitements avals

jpbabau@if.insa-lyon.fr L3i - INSA


GDR - STRQDS – Paris Janvier 2003

Exemple : Joystick

jpbabau@if.insa-lyon.fr L3i - INSA


GDR - STRQDS – Paris Janvier 2003

Architecture matérielle

- Machines et liens de communication


- PC, Microcontrôleurs
- Liaison série, CAN

- Modélisation du réseau
- Connecté/déconnecté
- Fautes
- Temps de réponse

jpbabau@if.insa-lyon.fr L3i - INSA


GDR - STRQDS – Paris Janvier 2003

Exemple : robot mobile


system robotMat
cPC
PC
info coeff,
onoff
repSR
cPL Liaison_Serie_Hertzienne cEL

rqPC chgt_LS,
fautes_LS
repMC1
cLM
rqSR MC1

infoCAN
cEC
cMC CAN
rqMC1 chgt_CAN,
fautes_CAN
infoMC2
cCM
MC2
rqCAN

infoR
cMR Robot
rqMC2

jpbabau@if.insa-lyon.fr L3i - INSA


GDR - STRQDS – Paris Janvier 2003

Modélisation du réseau

jpbabau@if.insa-lyon.fr L3i - INSA


GDR - STRQDS – Paris Janvier 2003

Architecture logicielle

• Placement
– Processus

• Processus de communication
– proxy
• dissocier la communication
• réaction
– logiciel de communication

jpbabau@if.insa-lyon.fr L3i - INSA


GDR - STRQDS – Paris Janvier 2003

Exemple : robot mobile

block PC

cT cC
Robot proxy_Imoteurs cGCS
IJoystick
vit_rot cmd

chgt_etat
requete

CMO csC
cPC com_LS cPL
ONOFF cC2
onoff repSR rqPC

cMC
cPC CoeffVitesse
coeff

cS
cPC Panneau cSI
info reponse

jpbabau@if.insa-lyon.fr L3i - INSA


GDR - STRQDS – Paris Janvier 2003

Simulation

Prototype SDL

Simulateur Géode Acteur Application


SDL SDL

Module spécifique
IHM
Application Interface

Acteur
réel/émulé

jpbabau@if.insa-lyon.fr L3i - INSA


GDR - STRQDS – Paris Janvier 2003

Vérification
• Simulation (ObjectGéode)
– Test
– Pas à pas, aléatoire
– Simulation exhaustive
• Point d'arrêt sur conditions (états, valeurs)
• Preuve sur les états
• Tests sur les données

• Diagramme de séquence (formalisme MSC)

• Autres outils
– CADP (IF, Aldebaran, TGV) de Verimag
– Agatha du CEA

jpbabau@if.insa-lyon.fr L3i - INSA


GDR - STRQDS – Paris Janvier 2003

Développement

Propriétés fonctionnelles,
comportementales, de QoS Vérifications,
(temps réel, …) Génération de tests

correction
Architecture fonctionnelle
et comportementale, Vérifications,
contraintes temporelles tests

Placement correction
Architecture communicante
(machines, réseaux, protocoles)
correction

Modèle d'exécution (RTOS)


Vérification
Analyse RMA
Génération de code

jpbabau@if.insa-lyon.fr L3i - INSA


GDR - STRQDS – Paris Janvier 2003

Génération de code : ObjectGeode

• Machine virtuelle qui s ’appuie sur l'OS (VRTX)


– tâches, boîtes aux lettres, sémaphores, socket …

• Architecture
– placement statique des process SDL sur des machines
– mono processus
– communication par socket
– définition d ’interfaces (tâches, composants)

• Comportement
– États et transitions entièrement gérés
– Actions sur les transitions en langage cible (C,C++)

jpbabau@if.insa-lyon.fr L3i - INSA


GDR - STRQDS – Paris Janvier 2003

Introduction de la concurrence : ObjectGeode

• Tâche
– une par bloc
– une par process
– une par instance de process (selon l'OS cible)

• Une tâche dédiée aux timers


– gère une structure de données de tous les timers en attente
– set (timerID,temps,liste de PIDs, paramètres)
– reset(timerID)
– timeout : « plus faible » timer, envoi de messages aux instances en
attente

• Affectation des priorités


– un niveau de priorité par défaut (200 sous VRTX), à modifier

jpbabau@if.insa-lyon.fr L3i - INSA


GDR - STRQDS – Paris Janvier 2003

Définition du modèle d'exécution

• Objectifs
– Limiter le nombre de tâches
– Affiner les performances temps réel
• Gestion des priorités
• Taille des sections critiques

• Tâche
– Regroupement des activités par bloc
• Régulation, MAJ, Trace
– Une tâche par bloc

• Section critique
– Signaux liés à deux activités reçus par un même process
– Appel "externe" de procédure exécutée par l'appelant

jpbabau@if.insa-lyon.fr L3i - INSA


GDR - STRQDS – Paris Janvier 2003

Définition du modèle d'exécution


• Communication
– Les signaux définissent les points de préemption

• Priorités
– Selon la période (RM) ou le délai(DM) de l'activité Régulation ou MAJ
– Priorité basse pour le Suivi
– Héritage de priorité

• Optimisations
– Regroupement d'activités
• Même période et délai

• Analyse RMA

jpbabau@if.insa-lyon.fr L3i - INSA


GDR - STRQDS – Paris Janvier 2003

Développement (travail d'Ahmad Alkhodre)


Propriétés fonctionnelles,
comportementales, de QoS Vérifications,
(temps réel, …) Génération de tests

correction
Architecture fonctionnelle
et comportementale, Vérifications,
contraintes temporelles tests

Placement correction
Architecture communicante
(machines, réseaux, protocoles)
correction

Modèle d'exécution (RTOS)


Vérification
Analyse RMA
Génération de code

jpbabau@if.insa-lyon.fr L3i - INSA


GDR - STRQDS – Paris Janvier 2003

Conception Modèle Validation

Constraints model Modèle Sémantique vérification

SDL UML SA-RT SDL Time Petri Net CADP

RT Logic IF KRONOS RT logic tools


RT Logic

Bisimulation Aldebaran
Modèle Sémantique vérification
Execution model
SDL IF CADP
SDL ROOM
SDL*: SDL with preemption RT logic tools
UML-RT CODARTS

Code Code
Generation Generation

Implementation Preemptive Non preemptive Temporal property


RTOS (VxWoks, Win32) OSEK Time verification
RMA analysis

jpbabau@if.insa-lyon.fr L3i - INSA


GDR - STRQDS – Paris Janvier 2003

Constraint model
• Logique événement/condition/action

• Activations
– Interruption IT, TOP
– Messages
– Echéance

• Modélisation de l'environnement externe


– IT(dmin, dmax), IT (n, dmax), …

• Actions
– Traitements
– Gestion du temps
• Filtrage
• Réaction

jpbabau@if.insa-lyon.fr L3i - INSA


GDR - STRQDS – Paris Janvier 2003

Sémantique

• Activation des actions


– La modélisation n'intègre pas la priorité
– La modélisation n'intègre pas la préemption

TOP-10->A->B 0 : A-B-C ou A-C-B ou C-A-B


TOP-20->C 10 : A-B
20 : -> 0

• Préemption à l'exécution
– Correcte si l’exécution d’une action est indépendante de sa
possible préemption
– Lecture au début, écriture à la fin

jpbabau@if.insa-lyon.fr L3i - INSA


GDR - STRQDS – Paris Janvier 2003

Modélisation d'une machine

Clock machine
TOP_p

IT_niv MSG_loc

Environment
EXTERN COM Application Software
Data Processing
ANS
Update_A_n

REP MSG_net
messages
Net

jpbabau@if.insa-lyon.fr L3i - INSA


GDR - STRQDS – Paris Janvier 2003

Interruption
-Environnement externe Filtrage du dmin, vérification deadline
- interruption en rafale
process Env_extern
"rafale generatuer"
idle
IT(n,d2,d1)
R
SET (0,R)

SET (now +20, R)


idle

CPT := n

timer R;
dcl CPT integer;
dcl n integer := 3;
dcl dmin time :=20; CPT = 0

/* n nombre d' IT dans


le rafale */
true false

CPT := n IT(3,0,60)

CPT := CPT -1
idle

jpbabau@if.insa-lyon.fr L3i - INSA


GDR - STRQDS – Paris Janvier 2003

Execution model

• Objectif
– Définir le séquencement des actions
– Définir l'ordre d'activation des actions (priorités)
– Durées (RMA)

• Boite à outils
– Basée sur un RTOS
– "routine d'IT", "routine d‘alarme", "periodic task", "software task",
"polling server"
– Bloc - Process type
– Règles d'interconnexion
• ISR -> SW, AL -> PT, (tâche + AL) -> PS
• tâche -> SW

• Constraint model -> Execution model


– Placement des actions dans les blocs correspondants
jpbabau@if.insa-lyon.fr L3i - INSA
GDR - STRQDS – Paris Janvier 2003

Execution model : exemple


system test140103

PriorityLevel = scheduler
higest_priority

can1 Terminate
d_monitoring can2
d_monitoring TemporalException,STP
Terminate
can3
AL_1 PT_1
TIC_1
can12

AL_2 PriorityLevel = 120


PriorityLevel = 150

can31
TIC_2
Ext_event
ISR_2 can4 PS_lecture
Env_extern
can4 MSG_int_2 can21
TemporalException,STP

jpbabau@if.insa-lyon.fr L3i - INSA


GDR - STRQDS – Paris Janvier 2003

La routine d'interruption
(modèle sémantique)
- Overwritten Interrupt Routine
- Masked Interrupt Routine
process routine_it_masque
- Stored Interrupt Routine.

wait_it DCL lev integer ,


Block type InterruptRoutin d1 deadline;
dcl data integer;
IT1(lev,d1) dcl time_ITtime ;
route3
MSG_loc_1 time_IT:=now
,d_monitoring MSG_loc_1
at the code generation stage
Read(data) the SDLtask Mask(lev) well be the
mask OS primitiveas
intLevelSet() in VxWorks
can21 d_monitoring
routine_it_masked Mask (lev)
route1 IT1
IT1
MSG_loc_1(lev,data)

d_monitoring(time_IT,d1)

wait_it

jpbabau@if.insa-lyon.fr L3i - INSA


GDR - STRQDS – Paris Janvier 2003

Le serveur à scrutation (modèle sémantique)

Process PS busy

idle Terminate_Act STP

TOP_1 Terminate to scheduler to_do:=false

to_do:=false idle
to_do

UnMask (lev) STP


false true
to_do:=false
idle Action(data)
idle
MSG_loc_1(lev,data)
idle
busy
to_do:= true
DCL to_do boolean,
lev integer ;
idle DCL data integer;

jpbabau@if.insa-lyon.fr L3i - INSA


GDR - STRQDS – Paris Janvier 2003

Correction des modèles

• Bisimulation faible
– A.B est équivalent à A*B

• Interruptions
IT
– Constraint model : IT.A
• pour une IT, on a un déclenchement de A
– Execution Model A
• Renommage : IT(i) * A(i)
IT(1)
IT(2)

A(1)
A(1)
A(2)

jpbabau@if.insa-lyon.fr L3i - INSA


GDR - STRQDS – Paris Janvier 2003

Correction des modèles

• Activation périodique
– "une action A toutes les 10 ut et une action B toutes les 20
ut" équivalent à "toutes les 10 ut : A et une fois sur deux B"
– redéfinition d'une base de temps unitaire
• Constraint model et excecution model

TOP10

A TOP10 A
TOP10
TOP10
TOP20 TOP10

AB ou BA
B B

jpbabau@if.insa-lyon.fr L3i - INSA


GDR - STRQDS – Paris Janvier 2003

Vérification d'implémentation
(travail de Mostefa Belarbi)

• Modélisation de l'implémentation en IF
– Application, services de l'OS (VxWorks), machines (IT, durées)
– Propriétés locales aux éléments
• Un objet utilisé a été initialisé
– Propriétés liées aux paramètres temporels
• Une boite aux lettres n'est jamais pleine
• Ordonnancement

• Propriétés applicatives
– Propriété SDL => observateur IF
Après une It, une action A est exécutée en 5 ms
et B est exécutée dans un délai de 10ms
– CADP de Verimag

jpbabau@if.insa-lyon.fr L3i - INSA


GDR - STRQDS – Paris Janvier 2003

Conclusion

• Modélisation de l'architecture en SDL


– Principes de génie logiciel
– Formalisation
– Tests, preuves

• Introduction de la concurrence

• Correction des modèles

• Méthodologie formelle de développement des systèmes temps


réel

jpbabau@if.insa-lyon.fr L3i - INSA


GDR - STRQDS – Paris Janvier 2003

Perspectives

• Métamodélisation
– Architecture, modèle d'exécution, transformation de modèle

• Protocoles
– Données et messages
– CAN / TTCAN
– Pull / push
– Impact sur la Qos

• Correction des modèles suite au placement/protocoles

jpbabau@if.insa-lyon.fr L3i - INSA

Vous aimerez peut-être aussi