* Ces horaires sont donnés à titre indicatif.
- Acquérir les notions élémentaires sur les architectures des microcontrôleurs et microprocesseurs
- Maitriser la programmation bas-niveau (assembleur) pour concevoir et mettre en place tous les éléments de base d’une application (reset, start, main, interruptions, gestion segmentée des espaces mémoires…)
- Savoir programmer les fonctions de base pour accéder et contrôler les périphériques de l’architecture microcontrôleur (ports E/S, timers/compteurs, interfaces numériques, convertisseurs ADC …)
- Savoir organiser et structurer un projet de développement microcontrôleur dans un environnement de développement intégré (IDE).
- Acquérir des notions élémentaires en génie logiciel sur l’architecture des applications temps réels : architecture multitâche, parallélisme, ordonnancement et synchronisation, partage des ressources matérielles, déterminisme d’exécution, gestion des interruptions…
- Sensibiliser les étudiants à la programmation « professionnelle » tout en tenant compte des problématiques et enjeux dans un environnement industriel ou embarqués (gestion de projet en équipe, lisibilité du code, règles de codage, analyse et revue de code, gestion des versions.
Ce cours permet aux étudiants :
- de se familiariser avec les architectures des microcontrôleurs et microprocesseurs.
- de s’initier et d’approfondir leurs connaissances en informatique bas niveau et embarquée.
Cours magistral
1. Introduction, notions de base
- historique des systèmes électroniques et automatisés : de la logique câblée aux microcontrôleurs
- historique du développement des composants microprocesseur/microcontrôleur
- applications, marchés, évolutions, tendances, enjeux industriels, fabrication et problématiques industrielles.
- architectures internes des microcontrôleurs : CPU, ALU, registres, bus internes, jeux d’instructions, mémoires, cadencement du cycle machine CPU et des périphériques …
- comparatif de plusieurs architectures 8,16 et 32 bits
2. étude d’une architecture 8 bits :
Intel MCS-51 et version modernisée NXP LPC900
- description, analyse, philosophie et « patte » Intel
- idée du concept SIP : fabrication sous licence « silicon IP », fab/fabless : Intel / ARM
- les évolutions de l’architecture MCS-51
- analyse comparative des architectures 8 bits 68HC, 78K0, ST, PIC, AVR
TP
Documents de travail : datasheets et manuels du programmeur
Carte de développement Keil MCB-900 et Arduino UNO
Environnement de développement intégré Keil MicroVision et Atmel Studio
- INIT : environnement IDE, gestion et configuration de projets et des outils
- ASM : premier programme en assembleur, éléments de bases d’une application et d’un projet
- ASM : découverte de l’architecture micro : plan mémoire, jeu d’instruction, registres principaux
- ASM : gestion des espaces mémoires CODE et DATA
- ASM : architecture basique, start, init et programme principal, sous-programmes
- ASM : gestion et cadencement des boucles : temps de cycle et distribution des horloges système
- ASM : configuration et gestion des périphériques (TIMER)
- ASM : configuration et gestion des interruptions