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