Vous êtes sur la page 1sur 21

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é ?
• Comprend un CPU, de la mémoire, un programme,
des périphériques, des E/S

Mémoire
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

Systèmes en temps réel Cours #1 3

Exemple de système en temps réel

—Le système de navigation « fly-by-wire »


Signaux des
Affichage des calculs de
différents capteurs,
- position
- accéléromètres
- température
- gyroscopes CPU Commande
- commande du pilote
- des moteurs
- température
- volets.
- radar

—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)?

Lo
on g
a ti l'ap iciel
pi l plic de
C om ati o
n
oir e
E nt
rée Mém
Sort U
ie
CP

Systèmes en temps réel Cours #1 5

Modèle du système -- Architecture en couches

Couche application

code source
Langage de programmation
Aspects logiciels
Langage + Compilateur
Système
d'exploitation
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 : 1 cours/semaine


• Laboratoires : 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
Séance Chapitre

1. Introduction aux systèmes en temps réel / systèmes embarqués


2. Introduction au laboratoire et révision du langage C
3. Révision du langage C et optimisation
4. Mesure de performance et aspects matériels
5. Réponse aux évènements et interruptions
6. Noyaux temps réel et exécution concurrente
7. EXAMEN
8. Système d’exploitation « temps réel »
9. Interruptions et partage des ressources
10. Contrôle d’accès et synchronisation
11. Configurer l’OS et tampon circulaire
12. Validation et fiabilité
13. Révision et exercices

Systèmes en temps réel Cours #1 11

Présentation du cours et du syllabus

Évaluation
— Examen partiel 25%
˜ Cours 7 – 22 février
— Examen final 30%
— Laboratoire 40%
• Système embarqué (robot mobile) 20 %
• Système d’exploitation multitâches 20 %
— Devoirs 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
Projet de session Technologie
Supérieure

—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
Projet de session Technologie
Supérieure

Module
RS232-Bluetooth Carte STK500 – ATMega32
Tx Rx D B
0 0
UART

CPU
Timer
Counter

DIR PWM PWM DIR


ADC TWI

G D 0 0

A C

M M
G D

Systèmes en temps réel Cours #1 19

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 Cours #1 20

10
Introduction aux STR

—Un exemple de Système en Temps réel

Signaux des
Affichage des calculs de
différents capteurs,
- position
- accéléromètres
- température
- gyroscopes CPU Commande
- commande du pilote
- des moteurs
- température
- volets.
- radar

Systèmes en temps réel Cours #1 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
Permet de
représenter un
e1 s1 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 micro-
secondes, 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

Terminologie des SOTR (suite)

Systèmes en temps réel Cours #1 26

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 » Réf:Grand dictionnaire terminologique

— Rapport processeurs embarqués / PC Æ 100/1

— 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 micro-


processeurs vendus (2000) dans le monde.

Copyright © 2000, Daniel W. Lewis. Systèmes en temps réel Cours #1 35

Examples of Embedded Real-Time Software.

Property FAX Machine CD Player

Microprocessor: 16-bit 8-bit

Number of Threads: 6 9
Read-Write Memory
2048 Bytes 512 Bytes
(RAM):
Total RAM Actually Used: 1346 Bytes (66%) 384 Bytes (75%)

Amount Used by Kernel: 250 Bytes (19%) 146 Bytes (38%)


Read-Only Memory
32.0 KB 32.0 KB
(ROM):
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 Systèmes en temps réel Cours #1 37

Quel sont les langages utilisés dans les SE?

90.0%

80.0%

70.0%
1998-1999
60.0%
1999-2000
50.0%

40.0%

30.0%

20.0%

10.0%

0.0%
Assembly C C++ Java Other

Copyright © 2000, Daniel W. Lewis. Systèmes en temps réel 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 16-bit
16-bit 32-bit
32-bit 64-bit
64-bit Special
Special

Copyright © 2000, Daniel W. Lewis. Systèmes en temps réel Cours #1 39

Méthodes de détection et de réponse à un


événement
Il y a deux méthodes principales pour répondre à un
événement:
Interruptions

—Par interrogation
• Cette méthode consiste à interroger chaque
périphérique pour déterminer s'il requiert
l'attention du processeur.
—Par interruption
• Permet d'interrompre le travail du processeur et
Interruptions

d’exécuter une courte fonction.


• Utilisation d’éléments matériels : circuits, lignes
et signaux dédiés à cet usage.

Systèmes en temps réel 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

Systèmes en temps réel Cours #1 41

Programmation concurrente

—Exemple : Thermostat programmable


(3 tâches)

/* Monitor Temperature */ /* Monitor Time of Day */ /* Monitor Keypad */


do forever { do forever { do forever {
measure temp ; measure time ; check keypad ;
if (temp < setting) if (6:00am) if (raise temp)
start furnace ; setting = 72oF ; setting++ ;
else if (temp > else if (11:00pm) else if (lower temp)
setting + delta) setting = 60oF ; setting-- ;
stop furnace ; } }
}

15 secondes 1 minute Interruption

Copyright © 2000, Daniel W. Lewis. Systèmes en temps réel Cours #1 42

21