ELE542 Cours01 Introduction

21
1 Systèmes en temps réel 1 Cours #1 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 2 Cours #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

Transcript of ELE542 Cours01 Introduction

Page 1: ELE542 Cours01 Introduction

1

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

ELE-542Systè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 2Cours #1

Chapitre 1 – Introduction et concepts de base

AgendaBrève présentation personnelleIntroductionPrésentation du syllabusProjet de sessionOrganisation du coursDéfinition et concepts

Page 2: ELE542 Cours01 Introduction

2

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

Qu’est-ce qu’un systèmes ordinés en temps réel (S.O.T.R.)?

CPU

Mém

oire

E/S

Système Ordiné ? • Comprend un CPU, de la mémoire, un programme,

des périphériques, des 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 4Cours #1

Exemple de système en temps réel

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

CPU

Signaux desdifférents capteurs,

- accéléromètres- gyroscopes- commande du pilote- température- radar

Affichage des calculs de- position- température

Commande- des moteurs- volets.

Il s’agit aussi d’un système embarqué

Page 3: ELE542 Cours01 Introduction

3

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

Mémoire

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

CPU

Logiciel del'applicationCompilation

EntréeSortie

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

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

Couche Matérielle

Processeur + Mémoire + E/S

Jeu d'instructions

Langage assembleur

Langage de programmation

Langage + CompilateurSystème

d'exploitation

Couche application

code source

Aspects logiciels

Aspects matériels

Page 4: ELE542 Cours01 Introduction

4

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

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-sortiesProgrammation concurrente

• Principaux éléments des noyaux en temps réelStructure et services – Ordonnancement

• Fiabilité

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

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 PCUn microcontrôlleur AVR de Atmel.

Page 5: ELE542 Cours01 Introduction

5

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

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

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

Page 6: ELE542 Cours01 Introduction

6

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

Contenu – Séances Vs chapitres

1. Introduction aux systèmes en temps réel / systèmes embarqués2. Introduction au laboratoire et révision du langage C3. Révision du langage C et optimisation4. Mesure de performance et aspects matériels5. Réponse aux évènements et interruptions6. Noyaux temps réel et exécution concurrente7. EXAMEN8. Système d’exploitation « temps réel »9. Interruptions et partage des ressources10. Contrôle d’accès et synchronisation11. Configurer l’OS et tampon circulaire12. Validation et fiabilité13. Révision et exercices

ChapitreSéance

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

ÉvaluationExamen 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 %

Présentation du cours et du syllabus

Page 7: ELE542 Cours01 Introduction

7

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

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

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.

Page 8: ELE542 Cours01 Introduction

8

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

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

Projet de session

Robot mobile

Ecole deTechnologieSupérieure

Contrôle du déplacement en mode téléguidageDétection de collision avec sonars

Page 9: ELE542 Cours01 Introduction

9

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

Projet de session

Plate-formematérielle :Atmel AVR

Plate-forme logicielle :Noyau en temps réelMicro-C/OS-II

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

Système d’injection électronique pour Évolution IIMathieu Dutrisac

Page 10: ELE542 Cours01 Introduction

10

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

Projet de session Ecole deTechnologieSupérieure

UART

TimerCounter

ADC TWI

CPU

A C

D B0

0 0

0

ModuleRS232-Bluetooth

RxTx

G D

PWM PWMDIR DIR

M MG D

Carte STK500 – ATMega32

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

Système microC/OS-II

Noyau en temps réel simpleMulti-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/

Page 11: ELE542 Cours01 Introduction

11

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

Introduction aux STR

Un exemple de Système en Temps réel

CPU

Signaux desdifférents capteurs,

- accéléromètres- gyroscopes- commande du pilote- température- radar

Affichage des calculs de- position- température

Commande- des moteurs- volets.

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

Terminologie des SOTR

Un système peut être vu comme une boîte noire

Systèmee1...

en

s1...

sn

Permet de représenter un

phénomène complexe

Un système se caractérise par:• La relation entrés-sortie• Son temps de réponse

Définition : Temps de réponse• Intervalle entre la présentation d’un patron d’entrée

et l’apparition des sorties associés

Page 12: ELE542 Cours01 Introduction

12

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

Terminologie des SOTR

Exemple pratique de temps de réponse...

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

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 dangerTemps 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)

Page 13: ELE542 Cours01 Introduction

13

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

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 constantUn é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 26Cours #1

Terminologie des SOTR (suite)

Page 14: ELE542 Cours01 Introduction

14

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

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 externechangement d’état du registre d’un périphérique

Réf. : Grand Dictionnaire

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

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

Page 15: ELE542 Cours01 Introduction

15

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

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

Réf. : Lewis, Chap. 1

Combien de processeurs dans une maison?En 1999, le nombre moyen de processeurs par maison était estimé entre 40 et 50.

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

Produit: Hunter Thermostat Programmable Digital.

Microprocesseur: 4-bit

Exemple de système embarqué

Copyright © 2000, Daniel W. Lewis.

Page 16: ELE542 Cours01 Introduction

16

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

Produit: Lave vaiselle Miele.

Microprocesseurr: 8-bit Motorola 68HC05.

Exemple de système embarqué

Copyright © 2000, Daniel W. Lewis.

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

Produit: NASA's Mars Sojourner Rover.

Microprocesseur: 8-bit Intel 80C85.

Exemple de système embarqué

Copyright © 2000, Daniel W. Lewis.

Page 17: ELE542 Cours01 Introduction

17

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

Produit: Chien robot -- Sony Aibo

Microprocesseur: 64-bit MIPS RISC.

Exemple de système embarqué

Copyright © 2000, Daniel W. Lewis.

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

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

Page 18: ELE542 Cours01 Introduction

18

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

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

Examples of Embedded Real-Time Software.

Property FAX Machine CD Player

Microprocessor: 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%) 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.

Page 19: ELE542 Cours01 Introduction

19

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

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

Quel sont les langages utilisés dans les SE?

0.0%

10.0%

20.0%

30.0%

40.0%

50.0%

60.0%

70.0%

80.0%

90.0%

Assembly C C++ Java Other

1998-19991999-2000

Copyright © 2000, Daniel W. Lewis.

Page 20: ELE542 Cours01 Introduction

20

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

Utilisation des noyaux en temps réel dans les nouveaux systèmes

0.0%

20.0%

40.0%

60.0%

80.0%

100.0%

4-bit 8-bit 16-bit 32-bit 64-bit Special0.0%

20.0%

40.0%

60.0%

80.0%

100.0%

4-bit 8-bit 16-bit 32-bit 64-bit Special

Copyright © 2000, Daniel W. Lewis.

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

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:

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

d’exécuter une courte fonction.• Utilisation d’éléments matériels : circuits, lignes

et signaux dédiés à cet usage.

InterruptionsInterruptions

Page 21: ELE542 Cours01 Introduction

21

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

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

morceauxChaque 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 42Cours #1

Programmation concurrente

Exemple : Thermostat programmable (3 tâches)

/* Monitor Temperature */do forever { measure temp ; if (temp < setting) start furnace ; else if (temp > setting + delta) stop furnace ; }

/* Monitor Time of Day */ do forever { measure time ; if (6:00am) setting = 72oF ; else if (11:00pm) setting = 60oF ; }

/* Monitor Keypad */ do forever { check keypad ; if (raise temp) setting++ ; else if (lower temp) setting-- ; }

15 secondes 1 minute Interruption

Copyright © 2000, Daniel W. Lewis.