Logo ÉTS
Session
Cours
Responsable(s) Bruno De Kelper

Se connecter
 

Sauvegarde réussie
Echec de sauvegarde
Avertissement
École de technologie supérieure

Responsable(s) de cours : Bruno De Kelper


PLAN DE COURS

Automne 2021
ELE674 : Systèmes embarqués avancés (3 crédits)





Préalables
Programme(s) : 7483,7694,7883
             
  Profils(s) : Tous profils  
             
    ELE543    
             
Unités d'agrément
Total d'unités d'agrément : 58,8 50,0 % 50,0 %




Qualités de l'ingénieur

Qn
Qualité visée dans ce cours  
Qn
  Qualité visée dans un autre cours  
  Indicateur enseigné
  Indicateur évalué
  Indicateur enseigné et évalué



Descriptif 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.




Objectifs 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.



Stratégies pédagogiques
  • Un cours magistral par semaine.
  • Laboratoires : douze (12) séances de deux (2) heures



Utilisation d’appareils électroniques
  • ARDrone 2 équipé d'un Beaglebone Blue



Horaire
Groupe Jour Heure Activité
01 Mercredi 08:30 - 12:00 Activité de cours
Jeudi 08:30 - 12:30 Laboratoire (Groupe B)
Jeudi 13:30 - 17:30 Laboratoire (Groupe A)



Coordonnées de l’enseignant
Groupe Nom Activité Courriel Local Disponibilité
01 Bruno De Kelper Activité de cours Bruno.DeKelper@etsmtl.ca A-2483
01 Bruno De Kelper Laboratoire (Groupe A) Bruno.DeKelper@etsmtl.ca A-2483
01 Bruno De Kelper Laboratoire (Groupe B) Bruno.DeKelper@etsmtl.ca A-2483



Cours
Date Contenus traités dans le cours Heures
  1.      Introduction
  • Anatomie d’un système embarqué moderne
  • 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).
6 heures
  2. Outils de développement et de mise au point                          
  • 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.
6 heures
  3. Développement d’applications embarquées                                      
  • 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.
15 heures
  4. Fiabilité, robustesse et tolérance aux fautes
  • 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
12 heures
  Total 39



Laboratoires et travaux pratiques
Date Description Heures
  Le laboratoire consiste à faire la conception d’un système 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 la carte de développement Beagelbone Blue 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.   24 heures
  Total 24 heures



Utilisation d'outils d'ingénierie
  • ARDrone 2.0 de Parrot
  • Beaglebone Blue.



Évaluation

Activité

Description

%

Datede remise

 

Examen mi-session

25 %

20 octobre 2021

 

Examen final

25 %

 

 

Projet

50 %

 




Dates des examens intra
Groupe(s) Date
1 20 octobre 2021



Date de l'examen final
Votre examen final aura lieu pendant la période des examens finaux, veuillez consulter l'horaire à l'adresse suivante : http://etsmtl.ca/Etudiants-actuels/Baccalaureat/Examens-finaux


Politique de retard des travaux
Tout travail (devoir pratique, rapport de laboratoire, rapport de projet, etc.) remis en retard sans motif valable, c’est-à-dire autre que ceux mentionnés dans le Règlement des études (1er cycle, article 7.2.7 b / cycles supérieurs, article 6.5.4 b) se verra attribuer la note zéro, à moins que d’autres dispositions ne soient communiquées par écrit par l’enseignant dans les consignes de chaque travail à remettre ou dans le plan de cours pour l’ensemble des travaux.

Dispositions additionnelles

Pénalité de 5 % par jour de retard.




Absence à un examen
Dans les cinq (5) jours ouvrables suivants, 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 ou du SEG. Pour un examen final, l’étudiant devra justifier son absence auprès du Bureau du registraire. Dans tous les cas, l’étudiant doit effectuer sa demande en complétant le formulaire prévu à cet effet qui se trouve dans son portail Mon ÉTS/Formulaires. Toute absence non justifiée par un motif majeur (maladie certifiée par un billet de médecin, décès d’un parent immédiat, Activité compétitive d’un étudiant appartenant à un club scientifique ou un club sportif d’élite de l’ÉTS ou au programme « Alliance sport étude » ou autre) à un examen entraînera l’attribution de la note zéro (0).



Infractions de nature académique
Les clauses du « Règlement sur les infractions de nature académique de l’ÉTS » s’appliquent dans ce cours ainsi que dans tous les cours du département. Les étudiants doivent consulter le Règlement sur les infractions de nature académique (https://www.etsmtl.ca/docs/ETS/Gouvernance/Secretariat-general/Cadre-reglementaire/Documents/Infractions-nature-academique ) pour identifier les actes considérés comme étant des infractions de nature académique ainsi que prendre connaissance des sanctions prévues à cet effet.  À l’ÉTS, le respect de la propriété intellectuelle est une valeur essentielle et les étudiants sont invités à consulter la page Citer, pas plagier ! (https://www.etsmtl.ca/Etudiants-actuels/Baccalaureat/Citer-pas-plagier).



Documentation obligatoire

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.



Ouvrages de références
  • 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.



Adresse internet du site de cours et autres liens utiles

Site du cours: https://cours.etsmtl.ca/ele674/