Cours 01 – Introduction

publicité
ELE-542
Systèmes ordinés en temps réels
Jean-Marc Beaulieu et Bruno De Kelper
Site internet: http://www.ele.etsmtl.ca/academique/ele542/
Systèmes en temps réel
Cours #1
1
Chapitre 1 – Introduction et concepts de base
—
—
—
—
—
—
Agenda
Brève présentation personnelle
Introduction
Présentation du syllabus
Projet de session
Organisation du cours
Définition et concepts
Systèmes en temps réel
Cours #1
2
1
Qu’est-ce qu’un systèmes ordinés en temps réel
(S.O.T.R.)?
—Système Ordiné ?
Mémoire
• Comprend un CPU, de la mémoire, un programme,
des périphériques, des E/S
CPU
E/S
—Temps réel ?
• Obligation de répondre à un événement à l’intérieur
d’un intervalle de temps borné
Temps de réponse
• Aspect temporel crucial, sinon danger
Cours #1
Systèmes en temps réel
3
Exemple de système en temps réel
—Le système de navigation « fly-by-wire »
Signaux des
différents capteurs,
- accéléromètres
- gyroscopes
- commande du pilote
- température
- radar
CPU
Affichage des calculs de
- position
- température
Commande
- des moteurs
- volets.
—Il s’agit aussi d’un système embarqué
Systèmes en temps réel
Cours #1
4
2
Problématique centrale du cours
— Quel est le temps de réponse du système?
Corollaires:
• Quelles sont les stratégies pour réduire le temps de réponse?
• Comment accélérer le traitement?
— Quels sont les facteurs que déterminent ce temps de
réponse (temps de traitement)?
C
pi l
om
E nt
rée
Sort
ie
Lo
g
l'ap iciel
plic de
ati o
n
e
oir
Mém
on
a ti
CP
U
Systèmes en temps réel
Cours #1
5
Modèle du système -- Architecture en couches
Couche application
code source
Langage de programmation
Langage + Compilateur
Système
d'exploitation
Aspects logiciels
Jeu d'instructions
Langage assembleur
Couche Matérielle
Aspects matériels
Processeur + Mémoire + E/S
Systèmes en temps réel
Cours #1
6
3
Présentation du cours et du syllabus
— Description sommaire
•
•
•
•
Initiation aux systèmes embarqués et S.T.R
Révision de la structure matérielle
Performance et le temps de réponse du système
Aspects logiciels:
˜Programmation de bas niveau (en C et pas d’assembleur)
˜Traitement des interruptions et entrées-sorties
˜Programmation concurrente
• Principaux éléments des noyaux en temps réel
˜Structure et services – Ordonnancement
• Fiabilité
Systèmes en temps réel
Cours #1
7
Présentation du cours et du syllabus
— Description sommaire (suite)
• Utilisation du langage C
• Compilateur mixte [Cross-compiler]
— Laboratoire
•
Réaliser un système impliquant deux ordinateurs :
˜Un ordinateur PC
˜Un microcontrôlleur AVR de Atmel.
Systèmes en temps réel
Cours #1
8
4
Présentation du cours et du syllabus
— Objectifs
• Réaliser des systèmes satisfaisant aux contraintes
matérielles et logicielles associées au traitement des
évènements en temps réel.
• Comprendre l’opération des microcontrôleurs et des
ordinateurs utilisés dans les systèmes temps réel.
• Comprendre l’opération des systèmes d’exploitation et
savoir les utiliser dans le développement de SOTR.
• Développer et programmer un système embarqué en temps
réel qui fait fonctionner un robot mobile.
• Choisir une technique de conception sécuritaire pour les
SOTR.
Réf. : Plan de cours
Systèmes en temps réel
Cours #1
9
Présentation du cours et du syllabus
—Stratégie pédagogique
• Cours magistraux :
• Laboratoires :
1 cours/semaine
6 séances de 4 heures
• Note : Les cours sont d’une durée de 3 heures 30
minutes.
Contenu
Systèmes en temps réel
Cours #1
10
5
Contenu – Séances Vs chapitres
Chapitre
Séance
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Introduction aux systèmes en temps réel / systèmes embarqués
Introduction au laboratoire et révision du langage C
Révision du langage C et optimisation
Mesure de performance et aspects matériels
Réponse aux évènements et interruptions
Noyaux temps réel et exécution concurrente
EXAMEN
Système d’exploitation « temps réel »
Interruptions et partage des ressources
Contrôle d’accès et synchronisation
Configurer l’OS et tampon circulaire
Validation et fiabilité
Révision et exercices
Cours #1
Systèmes en temps réel
11
Présentation du cours et du syllabus
Évaluation
— Examen partiel
˜ Cours 7 – 22 février
— Examen final
— Laboratoire
25%
30%
40%
• Système embarqué (robot mobile)
• Système d’exploitation multitâches
— Devoirs
20 %
20 %
5%
Systèmes en temps réel
Cours #1
12
6
Présentation du cours et du syllabus
Références
LAPLANTE, P.A., Real-Time System Design and Analysis: An
Engineer’s Handbook, 2e édition, IEEE Press, 1997.
LEWIS, D.W., Fundamental of Embedded Software : where C
and assembler meet, Prentice Hall, 2002.
LABROSSE, J. J., MicroC/OS-II The Real-Time Kernel, CMP
Books, 1999.
Systèmes en temps réel
Cours #1
13
Présentation du cours et du syllabus
Références
BURNS, A. et WELLINGS, A., Real-Time Systems
and Programming languages, 3e édition,
Addison-Wesley, 2000.
DOUGLASS, B.P., Doing Hard Time – Developing
Real-Time Systems with UML, Objects,
Frameworks, and Patterns, Addison-Wesley,
1999.
COTTET, F. et AL. , Ordonnancement temps réel,
Hermes Science, 2000.
Systèmes en temps réel
Cours #1
14
7
Présentation du cours et du syllabus
Références sur les contrôleurs AVR
TAVERNIER, Ch., Les microcontrôleurs AVR: Description et
mise en oeuvre, Dunod, 2001.
ATMEL, ATMega32 – Document de référence complet, 2005
Systèmes en temps réel
Cours #1
15
Ecole de
Technologie
Supérieure
Projet de session
—Robot mobile
—Contrôle du déplacement en mode téléguidage
—Détection de collision avec sonars
Systèmes en temps réel
Cours #1
16
8
Projet de session
—Plate-forme
matérielle :
Atmel AVR
—Plate-forme logicielle :
Noyau en temps réel
Micro-C/OS-II
Systèmes en temps réel
Cours #1
17
Système d’injection électronique pour Évolution II
Mathieu Dutrisac
Systèmes en temps réel
Cours #1
18
9
Ecole de
Technologie
Supérieure
Projet de session
Module
RS232-Bluetooth
Tx
Carte STK500 – ATMega32
Rx
B
D
0
0
UART
CPU
Timer
Counter
PWM PWM
DIR
G
DIR
D
0
0
C
A
M
TWI
ADC
M
G
D
Systèmes en temps réel
Cours #1
19
Cours #1
20
Système microC/OS-II
— Noyau en temps réel simple
— Multi-tâches avec préemption
— Écrit en langage C ( + code assembleur)
— Code source accessible
— Services:
• Sémaphores & Mutex
• Boîte à messages et queues
• Gestion des tâches (priorité fixée)
— Accès au service de DOS
Site Web : http://www.ucos-ii.com/
Systèmes en temps réel
10
Introduction aux STR
—Un exemple de Système en Temps réel
Signaux des
différents capteurs,
- accéléromètres
- gyroscopes
- commande du pilote
- température
- radar
CPU
Affichage des calculs de
- position
- température
Commande
- des moteurs
- volets.
Cours #1
Systèmes en temps réel
21
Terminologie des SOTR
—Un système peut être vu comme une boîte noire
Un système se caractérise par:
• La relation entrés-sortie
• Son temps de réponse
e1
...
s1
...
Permet de
représenter un
phénomène complexe
Système
en
sn
— Définition : Temps de réponse
• Intervalle entre la présentation d’un patron d’entrée
et l’apparition des sorties associés
Systèmes en temps réel
Cours #1
22
11
Terminologie des SOTR
Exemple pratique de
temps de réponse...
Systèmes en temps réel
Cours #1
23
1.6 Terminologie des SOTR (suite)
— Définition: Système en temps réel
• Système qui doit satisfaire des contraintes explicites
(bornées) de temps de réponse. La non-satisfaction
des contraintes peut avoir des conséquences sévères.
— Gradation du temps réel:
˜Temps réel DUR:
• Le respect du temps de réponse est crucial, sinon danger
˜Temps réel ferme:
• Tolérance face au respect du temps de réponse. Probabilité
faible mais possible.
˜Temps réel mou:
• Temps de réponse peu critique (Traitement de texte)
Systèmes en temps réel
Cours #1
24
12
Terminologie des SOTR (suite)
— Différents types d’application en temps réel
• Activé par événements ( Æ Événements non-cycliques)
˜ le système est au repos, l’événement se produit,
le système répond dans un temps garanti
• Exemple: Guichet automatique, interaction homme-machine
• Événements cycliques à taux constant
˜ Un événement se produit de façon cyclique à toutes les x microsecondes, tous les traitements doivent être effectué avant l’arrivée
de l’événement suivant.
• Exemple: Simulateur de vol
• Traitement rapide (data storage/display)
˜ Les données sont traitées au fur et à mesure qu’elles arrivent
• Exemple: Traitement d’un signal vidéo
Systèmes en temps réel
Cours #1
25
Cours #1
26
Terminologie des SOTR (suite)
Systèmes en temps réel
13
Terminologie des SOTR (suite)
— Définition: Événement
• Signal (externe ou interne) qui permet, par ses
différents états, d'indiquer la situation ou l'évolution
d'une partie d'un système.
• Tout fait significatif pour un traitement.
Synchronisation
• Évènement synchrone (ou synchronisé) avec un signal
ou une horloge de référence
• Évènement asynchrone ne peut être prédit
˜ interruption externe
˜ changement d’état du registre d’un périphérique
Réf. : Grand Dictionnaire
Systèmes en temps réel
Cours #1
27
Notions – Synchrone versus Cyclique
— Évènement synchrone
• Prévisible par rapport à une référence
• Ex: Pour le CPU, un événement est synchrone si on peut
prédire à quel cycle/instruction il survient
• Ex: Pour un bus de communication, la transmission de
données est synchrone si on mesure le signal en phase avec
l’horloge
— Événement asynchrone
• Il ne peut pas être prédit
• Ex: Une interruption externe
• Ex: Le signal/interruption du port série
— Événements cyclique
• Revient de façon périodique ou régulière
Systèmes en temps réel
Cours #1
28
14
Qu’est-ce qu’un système embarqué (SE)?
— Un appareil électronique qui inclut un processeur
numérique, généralement un microcontrôleur.
— « Système informatique qui est intégré à un dispositif,
une machine ou un autre système et qui pilote ce
dispositif, cette machine ou ce système »
— Rapport processeurs embarqués / PC Æ 100/1
Réf:Grand dictionnaire terminologique
— Combien de processeurs dans une maison?
— En 1999, le nombre moyen de processeurs par maison
était estimé entre 40 et 50.
Réf. : Lewis, Chap. 1
Systèmes en temps réel
Cours #1
29
Exemple de système embarqué
Produit: Hunter
Thermostat
Programmable
Digital.
Microprocesseur:
4-bit
Copyright © 2000, Daniel W. Lewis.
Systèmes en temps réel
Cours #1
30
15
Exemple de système embarqué
Produit: Lave vaiselle Miele.
Microprocesseurr:
8-bit Motorola 68HC05.
Copyright © 2000, Daniel W. Lewis.
Systèmes en temps réel
Cours #1
31
Exemple de système embarqué
Produit:
NASA's Mars Sojourner Rover.
Microprocesseur:
8-bit Intel 80C85.
Copyright © 2000, Daniel W. Lewis.
Systèmes en temps réel
Cours #1
32
16
Exemple de système embarqué
Produit:
Chien robot -- Sony Aibo
Microprocesseur:
64-bit MIPS RISC.
Copyright © 2000, Daniel W. Lewis.
Systèmes en temps réel
Cours #1
33
Microprocesseur vs Microcontrôleur
—Microprocesseur
• Circuit optimisé pour le traitement d'information:
Manipulation de l'information Æ calcul et E/S
• Besoin d'autres composantes spécialisées pour son
fonctionnement ( Æ "chip set" + mémoire + …)
—Microcontrôleur
• Inclure des fonctions additionnelles (nécessaire au
applications) directement dans le circuit
Mémoire,horloge (timer)
Entrés/Sortie, convertisseur
Systèmes en temps réel
Cours #1
34
17
Le règne des microprocesseurs
— Les processeurs Pentium représentent environ 2% des microprocesseurs vendus (2000) dans le monde.
Copyright © 2000, Daniel W. Lewis.
Cours #1
Systèmes en temps réel
35
Examples of Embedded Real-Time Software.
Property
FAX Machine
CD Player
16-bit
8-bit
Number of Threads:
6
9
Read-Write Memory
(RAM):
2048 Bytes
512 Bytes
Total RAM Actually Used:
1346 Bytes (66%)
384 Bytes (75%)
Amount Used by Kernel:
250 Bytes (19%)
Microprocessor:
146 Bytes (38%)
Read-Only Memory
(ROM):
32.0 KB
32.0 KB
Total ROM Actually Used:
28.8 KB (90%)
17.8 KB (56%)
Amount Used by Kernel:
2.5 KB (8.7%)
2.3 KB (13%)
Copyright © 2000, Daniel W. Lewis.
Systèmes en temps réel
Cours #1
36
18
Contraintes – Processeurs embarqués
— Fiabilité – Opération critique
• Danger pour les humains
• Opération continue Æ 24 heures sur 24
• Pas de réamorçage – « reboot »
— Performance
•
•
•
•
Choix du processeur relié au coût
Utilisation efficace des ressources (CPU, mémoire, …)
Optimisation des entrées / sorties
Précision des calculs vs rapidité
— Coût
• Réduire le coût de fabrication
• Réduire le temps/coût de développement
Réf. : Lewis, Chap. 1
Cours #1
Systèmes en temps réel
37
Quel sont les langages utilisés dans les SE?
90.0%
80.0%
70.0%
1998-1999
1999-2000
60.0%
50.0%
40.0%
30.0%
20.0%
10.0%
0.0%
Assembly
Copyright © 2000, Daniel W. Lewis.
C
C++
Systèmes en temps réel
Java
Other
Cours #1
38
19
Utilisation des noyaux en temps réel
dans les nouveaux systèmes
100.0%
100.0%
80.0%
80.0%
60.0%
60.0%
40.0%
40.0%
20.0%
20.0%
0.0%
0.0%
4-bit
4-bit
8-bit
8-bit
Copyright © 2000, Daniel W. Lewis.
16-bit
16-bit
32-bit
32-bit
64-bit
64-bit
Special
Special
Systèmes en temps réel
Cours #1
39
Méthodes de détection et de réponse à un
événement
Interruptions
Il y a deux méthodes principales pour répondre à un
événement:
—Par interrogation
• Cette méthode consiste à interroger chaque
périphérique pour déterminer s'il requiert
l'attention du processeur.
—Par interruption
Systèmes en temps réel
Interruptions
• Permet d'interrompre le travail du processeur et
d’exécuter une courte fonction.
• Utilisation d’éléments matériels : circuits, lignes
et signaux dédiés à cet usage.
Cours #1
40
20
Programmation concurrente
—Logiciel réalisé en divisant le problème en
plusieurs morceaux (tâches)
• Conception plus simple
• Généralement plus efficace
• Capable de gérer la priorité des tâches ou des
morceaux
—Chaque tâche exécute « comme si » elle possède
le CPU.
—Très utile pour les systèmes qui doivent souvent
traiter plusieurs sources d’évènements +/indépendants
Cours #1
Systèmes en temps réel
41
Programmation concurrente
—Exemple : Thermostat programmable
(3 tâches)
/* Monitor Temperature */ /* Monitor Time of Day */
do forever {
do forever {
measure temp ;
measure time ;
if (temp < setting)
if (6:00am)
start furnace ;
setting = 72oF ;
else if (temp >
else if (11:00pm)
setting + delta)
setting = 60oF ;
stop furnace ;
}
}
15 secondes
Copyright © 2000, Daniel W. Lewis.
1 minute
Systèmes en temps réel
/* Monitor Keypad */
do forever {
check keypad ;
if (raise temp)
setting++ ;
else if (lower temp)
setting-- ;
}
Interruption
Cours #1
42
21
Téléchargement