ele542 cours01 introduction
Post on 26-Jun-2015
123 Views
Preview:
TRANSCRIPT
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
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é
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
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.
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
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
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.
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
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
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/
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
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)
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)
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
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.
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.
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
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.
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.
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
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.
top related