university-logo Mécatronique : énergie et motricité 3. Microcontrôleur ENSTA
Plan du cours university-logo 1 Classification et utilisation des processeurs Qu est-ce qu un microcontrôleur? 2 Comment programmer un microcontrôleur?
Plan Classification et utilisation des processeurs Qu est-ce qu un microcontrôleur? 1 Classification et utilisation des processeurs Qu est-ce qu un microcontrôleur? 2 Comment programmer un microcontrôleur?
Classification des processeurs Classification des processeurs Classification et utilisation des processeurs Qu est-ce qu un microcontrôleur? DSP : Digital Signal Processor ASIP : Application Specific Instruction Set Processor ASIC : Application Specific Integrated Circuit university-logo
Comparatifs des processeurs Comparatif des processeurs Classification et utilisation des processeurs Qu est-ce qu un microcontrôleur? ASIP - ASIC : Inconvénients : développement très important. Atouts : très rapide, low power et performant (car dédié). DSP et microcontrôleurs : Inconvénients : perf limitées pour le haut niveau. Atouts : très performant pour l acquisition massive de données multi-entrée, le calcul scalaire (DSP), low power. Correct pour le moyen niveau (machines à état...) Processeurs classiques Inconvénients : trop cher, difficile à intégrer, forte consommation et forte dissipation d énergie. Atouts : versatile (mais à quel prix!) university-logo
Classification et utilisation des processeurs Qu est-ce qu un microcontrôleur? Contexte d utilisation des processeurs Contexte d utilisation des processeurs ASIP - ASIC : Taches dédiées (encodeur MPEG, contrôleur RAID...) DSP et microcontrôleurs Acquisition et traitement de signal (filtrage linéaire, calcul matriciel) à fort débit de données. Commande d actionneurs : génération des signaux de sortie temps réel (PWM à l aide de Timers). Pilotage système : gestion d un automate de pilotage... Processeurs classiques Algorithmique de haut-niveau : traitement d image, intelligence artificielle... university-logo
Classification et utilisation des processeurs Qu est-ce qu un microcontrôleur? Contexte d utilisation des processeurs Ventes annuelles de processeurs Ventes annuelles de processeurs en 1999. (Source : D. Tennenhouse - Intel - RTSS 99).
Qu est-ce qu un microcontrôleur? Classification et utilisation des processeurs Qu est-ce qu un microcontrôleur? Qu est-ce qu un microcontrôleur? Base : microprocesseur simple (ALU, registres, mémoires...). Éléments supplémentaires utiles au contrôle de systèmes : Timers (minuteries). Convertisseurs analogiques/numériques. Interfaces de communication : Bus RS232 (série), bus I2C... Oscillateur (horloge) interne. Cela permet d éviter d avoir à rajouter soi-même des composants sur le circuit imprimé.
Qu est-ce qu un microcontrôleur? Classification et utilisation des processeurs Qu est-ce qu un microcontrôleur? Les spécificités en programmation sur microcontrôleur Pas d OS (dans la plupart des cas). Contrôle total et bas niveau de tous les périphériques. Faible capacité mémoire allocation statique. Possibilités de debuggage limitées. Les conséquences Programmation très proche de l électronique. Pour simplifier la programmation : recours à des librairies de macro-fonctions. Utilisation d outils de debuggage connectés à la carte.
Plan 1 Classification et utilisation des processeurs Qu est-ce qu un microcontrôleur? 2 Comment programmer un microcontrôleur?
Comment programmer un microcontrôleur? Microcontrôleur = proche de l électronique Besoin d un langage de bas-niveau Contrôle direct des composants électroniques : registres, mémoires, ADC, timers... Programmation optimale : ressources très limitées (CPU, mémoire...) Besoin d un certain niveau d abstraction Pour implanter des concepts de moyen niveau (machines à état...). Pour simplifier la programmation : macro-fonctions. Un langage répond à ces contraintes le C. university-logo
Comment programmer un microcontrôleur? MPLAB, C18 et le programmateur ICD2 C18 + MPLAB IDE : un compilateur dédié PIC C18 (compilateur PIC) : génère du code assembleur PIC. MPLAB : génère du code machine PIC à partir du code assembleur. ICD2:unprogrammateur in-situ Programmateur EEPROM de PIC sur carte (sans démontage du PIC). Possibilités de debuggage (limitées) : moyennant 2 E/S en moins.
Structure d un programme microcontrôleur Boucle infinie Démarre à la mise sous tension du système et après une initialisation. Peut intégrer une machine à état. Interruptions Evènements extérieurs ou internes interrompant momentanément la boucle.
Structure d un programme microcontrôleur Boucle infinie : machines à état
Un exemple : le PIC 18F4520
Les entrées-sorties logiques Les entrées-sorties logiques 5 Ports d entrée-sortie numérique Les broches sont configurées indépendamment en entrées ou en sorties. Au Reset les broches sont toujours configurées en entrées. Spécificités des ports Port A et B : partagés avec le module ADC (toutes les combinaisons A/D ne sont pas possibles sur les entrée). Port C et D : toujours numérique university-logo
Les entrées-sorties logiques Les entrées-sorties logiques Registres utilisés par les ports E/S PORTx : bits représentants l état réel des lignes d E/S. LATx : bits représentants l état forcé des sorties. TRISx : bits de configurations : 1 : entrée (valeur au reset) 0 : sortie En principe, LATx = PORTx sauf court-circuit ou sur-consommation.
Les entrées-sorties logiques Les entrées-sorties logiques Utilisation en entrée logique Configuration : Lecture :
Les entrées-sorties logiques Les entrées-sorties logiques Utilisation en sortie logique Configuration : Ecriture :
Le convertisseur analogique numérique Le convertisseur analogique numérique Résolution : 10 bits à approximations successives Nombre de voies : 13 canaux Références de tension : Haute : Vdd ou externe par l entrée V ref + (AN3) Haute : Vss ou externe par l entrée V ref (AN2) Valeur obtenue : N = 1024E V e V ref V ref + V ref Durée de conversion :12T ad + T acq
Le convertisseur analogique numérique Le convertisseur analogique numérique
Le convertisseur analogique numérique Le convertisseur analogique numérique Initialisation Conversion Remarque : La conversion n est pas instantanée! university-logo
Les Timers Les Timers : compteurs 8 ou 16 bits préchargeables et dont on peut spécifier l horloge. Principe : Le compteur s incrémente à chaque période. Lorsque le compteur sature, il émet un signal (interruption) et revient à 0. Il est possible de précharger le compteur. Horloge : Dérivée de l horloge principale du PIC : période T osc ou K p T osc avec K p = 1, 2, 4, 8, 16, 32... appelé prescaler. Signal externe : RA4 pour le Timer 0. Utilisation : Temporisation. Comptage d événements. Mesure du temps entre 2 événements. university-logo
Les Timers Les Timers : exemple - clignotement d une LED Initialisation Boucle infinie : clignotement de la LED OutPin
Les PWM : Pulse Width Modulation Les PWM : Pulse Width Modulation Principe : Utilise le module CCP (Capture, Compare, PWM) et le Timer 2. Période : Periode =(valeur + 1) 4 prescaler(timer2) T OSC Temps haut (T haut = valeur prescaler(timer2) T OSC ) préchargée à l aide de SetDCPWMx à la valeur du compteur. Utilisation : Commande de hacheurs de moteurs à courant continu : rapport cyclique constant à vitesse fixée. Commande d onduleurs : rapport cyclique variable sinusoïdalement. university-logo
Les PWM : Pulse Width Modulation Les PWM : Pulse Width Modulation Configuration et démarrage
Les interruptions Les interruptions Principe : Utilisation : Actions urgentes, courtes et asynchrones. university-logo
Les interruptions Traitement des interruptions Traitement immédiat Action effectuée dans la routine d interruption : utilisé pour les actions à temps de traitement court (arrêt d urgence, mesure temporelle, temporisation...) Traitement différé Un drapeau est levé dans la routine d interruption : l action est effectuée ensuite dans la boucle principale qui consulte l état du drapeau périodiquement : utilisé pour les traitements lourds. Traitement mixte Une partie immédiate et une partie différée.
Les interruptions Les interruptions : implantation Initialisation Autoriser la source à émettre des interruptions. Autoriser globalement l usage des interruptions.
Les interruptions Les interruptions : implantation (suite) Code spécifique aux interruptions Définir les fonctions d interception d interruptions sur les adresses des vecteurs 8 et 18.
Les interruptions Les interruptions : implantation (suite) Code spécifique aux interruptions (suite) Définir les routines d interruptions Remarque : il faut absolument effacer la notification d interruption pour en sortir ensuite university-logo
Questions? Questions Contact : vgies@hotmail.com Site internet : www.vgies.com