École de technologie supérieure Département de génie électrique Responsable(s) du cours : Bruno De Kelper Crédits : 3 ELE674 SYSTÈMES EMBARQUÉS AVANCÉS Préalable(s) : ELE542 PLAN DE COURS SESSION AUTOMNE 2013 1. Coordonnées de l enseignant Groupe 01: Bruno De Kelper (Bruno.DeKelper@etsmtl.ca) 2. Descriptif officiel du cours À la fin de ce cours, l étudiant sera en mesure : d identifier les différents types de microcontrôleurs et leur domaine d application; d utiliser des systèmes d opération modernes et en temps réel sur les plateformes embarquées; de développer un cahier de charges et de définir les spécifications techniques d un système; d utiliser la méthodologie de design, de conception et de validation d un système embarqué; de concevoir un banc de test pour l analyse des performances d un système en temps réel; d utiliser des calculateurs embarqués en mode collaboratif. Familles de microcontrôleurs, leurs avantages et inconvénients, ainsi que leurs principaux domaines d application. Utilisation, implémentation et extensibilité des RTOS modernes utilisés dans les systèmes embarqués, tels que QNX et Embedded-Linux. Analyse des requis et mise au point des spécifications. Principes de validation, vérification et analyse formelle. Robustification par la tolérance aux fautes ainsi que le recouvrement et l évitement de fautes. Principes d autodiagnostic, d auto-correction et programmation défensive. Traitement collaboratif (microprocesseur, FPGA, DSP, etc.). Séances de laboratoire organisées autour d un projet intégrateur où l étudiant applique les principes de conception d un système embarqué collaboratif, basé sur le système d exploitation en temps réel Embedded Linux ou QNX. Session automne 2013 ELE674 SYSTÈMES EMBARQUÉS AVANCÉS 1
3. Objectifs spécifiques du cours À la fin de ce cours, l étudiant(e) sera capable de : Comprendre et de mettre au point la chaine d amorçage du système. Comprendre et utiliser un système d exploitation moderne dans un contexte temps-réel. Mettre au point un banc de développement et de test pour un système embarqué. Évaluer, mesurer et améliorer la fiabilité et la robustesse d un système embarqué. Choisir, concevoir et implémenter les techniques de tolérance aux fautes. Comprendre et implémenter des techniques d auto-détection et d autocorrection. 4. Stratégies pédagogiques utilisées Un cours magistral par semaine. Laboratoires : douze (12) séances de deux (2) heures Session automne 2013 ELE674 SYSTÈMES EMBARQUÉS AVANCÉS 2
5. Contenu du cours Date Contenus traités dans le cours Heures 1. Introduction Anatomie d un système embarqué moderne 6 heures - Architecture informatique du système. - Chaîne d amorçage et processus de démarrage du système. - Concepts de base du «chargeur d amorçage» (BootLoader). - Considérations sur le Noyau. - Interpréteur de commandes de base BusyBox. - Système de fichier de base (RootFS). 2. Outils de développement et de mise au point 6 heures - Outils de conception du système : - Émulation avec QEMU - Conception d un système complet avec BuildRoot. - Compilation croisée et «chaîne d outils»(toolchain). - Environnements modernes de développement de systèmes embarqués. - Outils de déverminage, de vérification et de profilage (GDB, GCov, Valgrind, ) - Techniques de déverminage et de vérification. 3. Développement d applications embarquées 15 heures - Caractéristiques «temps-réel» du système d exploitation Linux. - Gérer le matériel et ornières matérielles. - Programmation défensive. - Gestion du flot d activités. - Faire plus avec moins : développement à ressources limitées. - Réduire la consommation en puissance. 4. Fiabilité, robustesse et tolérance aux fautes 12 heures - Classification des fautes, types de redondances et mesures de base. - Fautes matérielles : - Taux de fautes, fiabilité et MTF. - Structures canoniques et résilientes - Techniques de tolérance aux fautes - Fautes byzantines. - Redondance de données. - Modèle de fiabilité et tolérance logicielle : - Tests d acceptation. - Tolérance à version unique et programmation en N- versions. - Approche par blocs de recouvrement. - Préconditions, post-conditions et assertions. Total 39 Session automne 2013 ELE674 SYSTÈMES EMBARQUÉS AVANCÉS 3
6. Laboratoires ou travaux pratiques Date Description Heures Le laboratoire consiste à faire la conception d un système 24 heures embarqué robuste basé sur un système d exploitation moderne. Plus spécifiquement, il s agit dans un premier temps de monter les composantes du système pour un quadri-rotor AR-Drone de Parrot. Cet appareil est basé sur un microcontrôleur OMAP3630 (Arm Cortex-A8) de Texas Instrument et sur le système d exploitation Linux. Suivit de la mise au point du microprogramme qui contrôle les composantes du drone (capteurs, moteurs, ) et sa communication avec la station au sol. Le tout se terminant par l ajout des mécanismes logiciels requis pour assurer un fonctionnement robuste et tolérant aux fautes. Au travers de ce développement, le laboratoire vise aussi à se familiariser avec des outils de développement modernes, les principes de programmation défensive et la méthodologie de conception d un système embarqué moderne. Total 24 heures 7. Utilisation d outils d ingénierie - ARDrone 2.0 de Parrot. 8. Évaluation Activité Description % Date de remise Examen partiel 25 % 28 octobre Examen final 25 % Projet 50 % 9. Documentation recommandée Hallinan, C., Embedded Linux Primer A Practical Real-World Approach, 2nd Edition, Prentice Hall, 2011. Yaghmour, K., Masters, J., Ben-Yossef G., Gerum, P., Building Embedded Linux Systems, 2nd Edition, O Reilly Media, 2008. Koren, I., Mani Krishna, C., Fault-Tolerant Systems, Elsevier, 2007. Session automne 2013 ELE674 SYSTÈMES EMBARQUÉS AVANCÉS 4
10. Ouvrages de référence Sally, G., Pro Linux Embedded Systems, Springer-Verlag, 2010. White, E., Making Embedded Systems, O Reilly Media, 2012. Corbet, J., Rubini, A., Kroah-Hartman, G., Linux Device Drivers, 3rd Edition, O Reilly Media, 2005. Love, R., Linux Kernel Development, 2nd Edition, Novell Press, 2005. Session automne 2013 ELE674 SYSTÈMES EMBARQUÉS AVANCÉS 5
ELE674 SYSTÈMES EMBARQUÉS AVANCÉS ANNEXE I 1. Caractéristiques du cours Responsable(s) du cours : Bruno De Kelper Coordonnées de l enseignant : Groupe 01: Bruno De Kelper (Bruno.DeKelper@etsmtl.ca) Préalables : ELE542 Crédits : 3 2. Descriptif officiel du cours À la fin de ce cours, l étudiant sera en mesure : d identifier les différents types de microcontrôleurs et leur domaine d application; d utiliser des systèmes d opération modernes et en temps réel sur les plateformes embarquées; de développer un cahier de charges et de définir les spécifications techniques d un système; d utiliser la méthodologie de design, de conception et de validation d un système embarqué; de concevoir un banc de test pour l analyse des performances d un système en temps réel; d utiliser des calculateurs embarqués en mode collaboratif. Familles de microcontrôleurs, leurs avantages et inconvénients, ainsi que leurs principaux domaines d application. Utilisation, implémentation et extensibilité des RTOS modernes utilisés dans les systèmes embarqués, tels que QNX et Embedded-Linux. Analyse des requis et mise au point des spécifications. Principes de validation, vérification et analyse formelle. Robustification par la tolérance aux fautes ainsi que le recouvrement et l évitement de fautes. Principes d autodiagnostic, d auto-correction et programmation défensive. Traitement collaboratif (microprocesseur, FPGA, DSP, etc.). Séances de laboratoire organisées autour d un projet intégrateur où l étudiant applique les principes de conception d un système embarqué collaboratif, basé sur le système d exploitation en temps réel Embedded Linux ou QNX. Session automne 2013 ELE674 SYSTÈMES EMBARQUÉS AVANCÉS 6
3. Répartition des unités d agrément du BCAPG Maths Sciences naturelles Études complémentaires Science du génie Conception en ingénierie Total 0,0 0,0 0,0 29,4 29,4 58,8 4. Qualités (Qx) et compétences (Cy) enseignées et ou évaluées - Qualité Analyse de problèmes Capacité d utiliser les connaissances et les principes appropriés pour identifier, formuler, analyser et résoudre des problèmes d ingénierie complexes et en arriver à des conclusions étayées. Investigation Capacité d étudier des problèmes complexes au moyen de méthodes mettant en jeu la réalisation d expériences, l analyse et l interprétation des données et la synthèse de l information afin de formuler des conclusions valides. Conception Capacité de concevoir des solutions à des problèmes d ingénierie complexes et évolutifs et de concevoir des systèmes, des composants ou des processus qui répondent aux besoins spécifiés, tout en tenant compte des risques pour la santé et la sécurité publiques, des aspects législatifs et réglementaires, ainsi que des incidences économiques, environnementales, culturelles et sociales. Utilisation d outils d ingénierie Capacité de créer et de sélectionner des techniques, des ressources et des outils d ingénierie moderne et de les appliquer, de Compétence Établir le contexte et les paramètres des problèmes, incluant les problèmes mal définis; Choisir un modèle ou une méthode utilisé pour résoudre un problème, incluant les notions, les concepts ou les relations physiques pour identifier des pistes de solution; Appliquer le modèle ou la méthode en vue de résoudre le problème. Planifier l ensemble du processus d expérimentation; Appliquer les méthodologies d expérimentation éprouvées; Interpréter les résultats en tenant compte du contexte et des hypothèses de travail en vue de formuler des conclusions valides. Identifier les contraintes en termes de santé sécurité, d économie, des normes, de facteurs culturels et sociaux; Développer des concepts en se basant sur les principes de l ingénierie; Analyser le risque technologique et économique en fonction du client, de la communauté et de l environnement; Intégrer les concepts pour la réalisation de la solution en fonction des contraintes identifiées préalablement. Évaluer différents outils et techniques et en faire un choix; Appliquer les outils et techniques dans des projets Session automne 2013 ELE674 SYSTÈMES EMBARQUÉS AVANCÉS 7
les adapter et de les étendre à un éventail d activités simples ou complexes, tout en comprenant les contraintes connexes. Travail individuel et en équipe Capacité de fonctionner efficacement en tant que membre ou chef d équipe, de préférence dans un contexte de travail multidisciplinaire. Communication Habileté à communiquer efficacement des concepts d ingénierie complexes, au sein de la profession et au public en général, notamment lire, rédiger, parler et écouter, comprendre et rédiger de façon efficace des rapports et de la documentation pour la conception, ainsi qu énoncer des directives claires et y donner suite. Professionnalisme Compréhension des rôles et des responsabilités de l ingénieur dans la société, y compris le rôle essentiel de protection du public et l intérêt public. Impact du génie sur la société et l environnement Capacité à analyser les aspects sociaux et environnementaux des activités liées au génie, notamment comprendre les interactions du génie avec les aspects économiques et sociaux, la santé, la sécurité, les lois et la culture de la société; les incertitudes liées à la prévision de telles interactions; et les concepts de développement durable et de bonne gérance de l environnement. Apprentissage continu Capacité à cerner et à combler ses propres besoins de formation dans un monde en constante évolution, et ce, de façon à maintenir sa compétence et à contribuer à l avancement des connaissances. d ingénierie; Créer des applications par l intégration des outils et techniques existants. Propose différentes idées ou solutions en incorporant le feedback des membres de l équipe; Supporte le leader de l équipe et assure le leadership si nécessaire. Rédiger des rapports techniques documentant efficacement un travail d'ingénierie; Structurer de façon logique le contenu d'une présentation ou d'un rapport. Délimiter les responsabilités de l'ingénieur dans des mises en situation concrètes; Mettre en pratique ses compétences professionnelles en situations de travail réel en ingénierie. Considérer des facteurs économiques, sociaux et environnementaux dans les choix et les décisions d utilisation ou de développement d un produit ou processus (développement durable); Analyser les incertitudes pour déterminer la sécurité, le risque et les coûts d analyse dans des contextes spécifiques ou communs. Planifier son développement; Faire le bilan des progrès réalisés. 5. Évaluation Absence à un examen Dans les cinq (5) jours ouvrables suivant la tenue de son examen, l étudiant devra justifier son absence d un examen durant le trimestre auprès de la coordonnatrice Affaires départementales qui en référera au directeur du département. Pour un examen final, l étudiant devra justifier son absence auprès du Bureau du registraire. Toute absence non Session automne 2013 ELE674 SYSTÈMES EMBARQUÉS AVANCÉS 8
justifiée par un motif majeur (maladie certifiée par un billet de médecin, décès d un parent immédiat ou autre) à un examen entraînera l attribution de la note zéro (0). Plagiat et fraude Les clauses du «Chapitre 10 : Plagiat et fraude» du «Règlement des études de 1 er cycle» s appliquent dans ce cours ainsi que dans tous les cours du département. Afin de se sensibiliser au respect de la propriété intellectuelle, tous les étudiants doivent consulter la page Citer, pas plagier! http://www.etsmtl.ca/etudiants-actuels/cycles-sup/realisationetudes/citer-pas-plagier Session automne 2013 ELE674 SYSTÈMES EMBARQUÉS AVANCÉS 9