Retour accueil UPMCPhoto1 UPMCPhoto2 UPMC
UE: Programmation des microcontrôleurs industriels
Site permanent

L'unité d'enseignement « Programmation des microcontrôleurs industriels » est une UE de niveau (300) spécialisation relevant de la licence d'informatique. Elle possède un volume de 6 ECTS et s'étend sur 12 semaines. Elle est placée sous la responsabilité de BERNARDY, andré.

Description

Un microcontrôleur est un composant électronique d'usage général. Les microcontrôleurs sont devenus des composants incontournables dans l'électroménager, le contrôle de processus industriel, les télécommunications, ou la robotique. Ce module vise à la compréhension de l'architecture et à la mise en oeuvre de ces composants tant sur le plan matériel que logiciel. Il s'agit aussi de savoir utiliser les outils de développement associés à ces microcontrôleurs. Cet enseignement concerne les étudiants intéressés par la conception matérielle et logicielle de systèmes modernes intégrant de "l'informatique enfouie".

Un microcontrôleur intègre sur une seule puce un microprocesseur programmable, de la mémoire, et les principaux contrôleurs de périphériques.

Ce module suppose des connaissances de base en architecture et un goût pour la programmation en assembleur ou en langage C. C'est un enseignement très pratique, puisqu'il est organisé autour de la réalisation d'applications particulières autour d'une maquette de TME spécialement conçue pour nos étudiants:

  • Voltmètre numérique.
  • Chronomètre numérique.
  • Calculatrice numérique.
  • Thermomètre numérique.
  • Régulateur de vitesse pour moteur électrique.
  • Etc.

Préalables et buts pédagogiques

Bibliographie

  • Une documentation de base, constituée d'extraits de notices, est distribuée aux étudiants. Cette documentation est suffisante pour répondre aux questions du module. Toutefois, il existe de nombreux ouvrages sur le sujet, notamment ceux de Messieurs Tavernier, Reboux et Mayeux ; ouvrages qui s'ajoutent aux notices techniques des fabriquants. En outre, les sites web sur le PIC sont très nombreux, un certain nombre ont été référencés sur la page liens de notre site microcontrôleurs.

Contenu indicatif par semaine

  1. Cours : Généralités sur les microcontrôleurs.

    • Présentation de l'organisation du module et objectifs.
    • Rappels rapides sur les bases de l'architecture des machines.
    • Organisation des informations : données, instructions, adresses.
    • Architecture de type Von Neuman ou de type Havard.
    • Notions de base sur les microprocesseurs et les microcontrôleurs.

    TME : Prise en main des outils matériels et logiciels.

    • Utilisation de la documentation distribuée.
    • Indications sur l'exploitation des informations disponibles sur le WEB.
    • Présentation du matériel de TME et du système de développement.
    • Toutes les étapes de développement d'une application autour d'un programme simple.
  2. Cours : Résolution d'un problème par microcontrôleurs.

    • Programmation : les règles générales et les temps consacrés aux différentes étapes.
    • Les moyens mis en oeuvre pour parvenir à une programmation efficace.
    • Les moyens classiques : sous programmes, macros, interruptions (logiciel).
    • Spécificité de la programmation en assembleur des microcontrôleurs.
    • Quelques idées sur le savoir faire relatif aux microcontrôleurs.

    TME : Premiers programmes en assembleur, la gestion du temps.

    • Spécificités du Pic 16F877 (horloge, notion de bank, watchdog, etc.).
    • Développement autour d'un programme semi-simple.
    • Indications sur la programmation des boucles de temps.
    • Application autour de versions évolutives du type « chenillard ».
  3. Cours : Interfaçage avec le monde réel.

    • Initiation à l'interfaçage avec le monde extérieur.
    • Capteurs et actionneurs ; limitation de perception et action sur l'extérieur.
    • Spécificité des systèmes à microcontrôleurs.
    • Les registres de contrôle et d'état, paramétrage d'une connexion.
    • Processus de mise en oeuvre matérielle des interruptions .

    TME : Le bouton poussoir, usage des interruptions.

    • Présentation d'un problème logique à analyser : le bouton poussoir.
    • Précision sur l'utilisation du timer 0 de notre microcontrôleur Pic.
    • Variation autour de programmes évolutifs du type: suivi du poussoir, compteur, télérupteur, etc., versions programmées et versions avec interruptions.
  4. Cours : Communications séries, parallèles et PWM.

    • Présentation générale des interfaces intégrées des microcontrôleurs.
    • Principes de base sur les organes rencontrés sur les microcontrôleurs :
    • Ports parallèles.
    • Ports séries : notions de base (synchrones et asynchrones).
    • Notions de connexions séries normalisées : RS232, I2C, USB, etc.
    • Notions sur les liaisons analogiques.
    • Notions du codage en PWM.
    • Notions générales sur les temporisateurs.

    TME : Utilisation des entrées analogiques et du codage PWM.

    • Via la documentation, comprendre les possibilités analogiques en TME.
    • Précision sur l'utilisation du timer 2 en mode PWM de notre microcontrôleur.
    • Variation autour de programmes évolutifs du type: utilisation du potentiomètre et visualisation sur leds et oscilloscope. Versions programmées et versions avec interruptions.
  5. Cours : Les bus RS232 et I2C en détail.

    • Présentation détaillée du bus I2C.

    TME : Communications du type VT100 et mise en oeuvre de périphériques I2C.

    • RS232 : les registres mis en oeuvre et le paramétrage de la liaison.
    • Expérimentation via un terminal du type VT100.
    • I2C : Indications sur la mise en oeuvre sur notre microcontrôleur.
    • Manipulations autour d'un composant I2C (température).
  6. Cours : Le comptage du temps et des évènements.

    • Les temporisateurs/compteurs/comparateurs des microcontrôleurs.
    • Gestion du temps selon l'horloge interne ou externe.
    • Comptage d'événements.
    • Capture conditionnelle d'événements.

    TME : Mode de fonctionnement spéciaux des timers.

    • Comprendre la documentation sur les possibilités de notre microcontrôleur.
    • Utilisation temporelle des temporisateurs.
    • Utilisation en comptage d'événements des temporisateurs.
    • Manipulations en mode capture.
  7. Cours : Techniques avancées de programmation en assembleur.

    • Trucs et astuces pour optimiser les moyens de résoudre un problème.
    • Tableau de données.
    • Tableau de saut.
    • Automates.
    • Gestion des variables.
    • Astuces diverses.

    TME : Utilisation des techniques avancées sur une application I2C.

    • Précision sur l'emploi de tableaux dans notre microcontrôleur Pic.
    • Application sur une liaison I2C avec un DAC pour tracer une courbe.
    • Application sur l'étude d'une structure d'automate.
  8. Cours : Le multitâche sans OS.

    • Décrire un projet sous forme de plusieurs tâches.
    • Partage du CPU entre les tâches.
    • Synchronisation des tâches.
    • Partage des ressources.

    TME : Mise en évidence du multitâche.

    • Gestion de 3 tâches simultanées sans interruption : 3 diodes LED clignotantes indépendantes.
  9. Cours : Les systèmes temps réel (RTOS) pour microcontrôleurs.

    • Les différents systèmes d'exploitation pour microcontrôleurs.

    TME : Mise en oeuvre d'un système pour le Pic (COxOS).

    • Reprise de la manipulation de la séance précédente avec COxOS.
  10. Cours : Conduite d'un projet avec microcontrôleur.

    • Étude de faisabilité.
    • Étude logicielle et étude matérielle.
    • Planification des étapes du projet.

    TME : Microprojet (première partie).

    • Microprojet, au choix, de résolution d'un problème donné (partie 1): commande de moteur, de servo, d'afficheurs, de clavier, etc.
  11. Cours : Les familles de microcontrôleurs.

    • Présentation des différentes familles de microcontrôleurs.

    TME : Microprojet (deuxième partie).

  12. Cours : Conclusions sur notre enseignement.

    • Avantages et inconvénients des microcontrôleurs.
    • Conclusions.

    TME : Microprojet (troisième partie).