Le cœur du microcontrôleur : son processeur

L'unité centrale de traitements

Notes : un peu de vocabulaire

  • Processeur, ou encore :
    • Unité centrale de traitements
    • Central Processing Unit (CPU), en anglais

Définition : Processeur

  • Organe exécutant :

    • les instructions du programme stocké en mémoire ;
    • en opérant sur les données stockées en mémoire.
  • Il opère sur des mots binaires (taille = celle du bus de données) : 4, 8, 16, 32, ou 64 bits.

  • Composition de l'unité centrale :

    • une unité de contrôle
    • une unité arithmétique et logique
    • des registres internes
  • Pour fonctionner, elle a besoin d'éléments supplémentaires :

    • une horloge pour l'animer
    • de la mémoire
    • de périphériques.

Microcontrôleurs 8, 16, 32 bits

Quelle différence ?

  • Cette quantité renvoie à la taille des données manipulées par l'unité centrale, et corollairement à la taille des données qui circulent entre elle et les autres éléments internes (mémoire, ou périphériques internes).

  • Un microcontrôleur 8 bits peut faire des calculs sur des données de taille 32 bits, mais il lui faudra exécuter plusieurs instructions ; là où un microcontrôleur 32 bits pourrait le faire en une seule.

  • Jusque dans les années 2010, les microcontrôleurs 8 bits ont dominé le marché. Récemment les parts de marché ont tendance à s'équilibrer (en tout cas pour les processeurs ARM).

  • Les microcontrôleurs 8 bits (et même 4 bits) ont toujours un rôle important à jouer.


Deux grandes familles d'architecture

  • Von Neumann (processeurs classiques) :

    • 1 seul bus de communication entre l'unité centrale et la mémoire
    • double rôle : convoyer les instructions + convoyer les données
    • donc, l'exécution de chaque instruction nécessite plusieurs échanges de données sur ce même bus : code de l'instruction + recherche de la donnée.
  • Harvard :

    • 2 bus et 2 mémoires indépendantes
    • exécution d'une opération en 1 seul cycle machine

Deux autres grandes familles d'architecture

  • RISC (Reduced Instruction Set Computer)

    • jeu d'instruction réduit, mais rapidité garantie par les points suivants
    • codage des instructions sur un seul mot (1 seule instruction pour aller la chercher)
    • utilisation de pipelines (pour simultanément aller chercher l'instruction i, décoder la précédente i-1, exécuter la i-2, recopier en mémoire le résultat de la i-3)
    • exécution de chaque instruction en 1 cycle machine
    • uniformité des instructions : pas de cas particulier, opèrent indifféremment sur tous les registres, dans tous les modes d'adressage possible.
  • CISC (Complex Instruction Set Computer)

    • jeu d'instruction plus complet, plus puissant
    • mais certaines instructions nécessitent plusieurs cycles machine
    • et plus compliqué à mettre en œuvre (optimisation par le compilateur).

Les mémoires

C'est le support final des programmes et données. Il en existe de nombreuses variantes, que l'on peut catégoriser ainsi :

  • RAM : volatile (= non-persistante)
  • ROM : contenu défini à la fabrication
  • PROM : contenu défini une seule fois lors du développement
  • EPROM ou UVPROM : programmable électriquement, et effaçable aux U.V.
  • EEPROM ou FLASH RAM : programmable et effaçable électriquement.

Les périphériques internes

Interface parallèle

  • Permet de communiquer des états logiques via des broches externes, en entrée, et/ou en sortie

  • Ces broches sont généralement organisées en ports, souvent 8 ou 16 bits, ce qui permet la communication de mots

  • Peut être associée à un gestionnaire de bus externe, de façon à pouvoir adresser des composants extérieurs comme s'ils faisaient partie de la RAM interne.


Interface série

  • contrairement à l'interface parallèle, les mots sont envoyés séquentiellement sur une seule ligne

  • mode Half-Duplex (1 émetteur et 1 récepteur, les rôles pouvant changer) ou Full-Duplex (2 émetteurs/récepteurs)

  • synchrone ou asynchrone

  • TWI (=I2C)

    • communication à 2 fils (Two-Wire Interface)
      • SDA : données
      • SCK : horloge
    • développé par Philips dans les années 1980
    • bus de communication entre 1 maître et 1 ou plusieurs esclaves, avec rôles interchangeables
    • sélection de l'esclave par adressage
    • Half-Duplex
    • vitesse modérée (5Mhz)
  • SPI

    • communication à 4 fils
      • MISO, DI ou SDI : données entrantes
      • MOSI, DO ou SDO : données sortantes
      • SCK ou CLK : horloge
      • SS ou CS : sélection
    • également maître/esclaves
    • si plusieurs esclaves, chacun a sa propre ligne « Chip Select »
    • Full-Duplex
    • vitesses élevées (50Mhz), grosses quantités de données : alternative aux ports parallèles
    • pas de protocole précis, varie suivant fabricant

Convertisseur Analogique Numérique (CAN)

  • Périphérique interne destiné à faire des mesures de tension (entre 0 et 5V)
  • Procède par échantillonnage et quantification
  • Généralement plusieurs entrées multiplexées sur l'interface parallèle

Timer

  • Mesure des évènements

    • si tops d'horloge : fonction de « temporisateur »
    • si impulsions externes : fonction de « compteur »
  • Il sert donc à :

    • mesurer des temps
    • exécuter des tâches périodiquement
    • générer des signaux périodiques
    • compter des évènements.

Watchdog (chien de garde)

  • Dispositif anti-plantage du microcontrôleur

  • Il détecte les séquences d'instructions trop longues

  • Basé sur un timer qui mesure le temps écoulé depuis sa dernière réinitialisation

  • Si l'instruction de réinitialisation n'arrive pas à temps (situation de plantage), il provoque un reset du microcontrôleur.


Capture-Comparaison

  • Associé à un ensemble de timers

  • Capture : mémorisation instantanée de la valeur d'un timer dans un registre dédié, déclenchée par un évènement

  • Comparaison : c'est la fonction « inverse », la génération d'un événement (impulsion, interruption) dès que la valeur courante d'un timer atteint celle du registre dédié.


Générateur de signaux MLI (PWM en anglais)

  • MLI : Modulation à Largeur d'Impulsion

  • Signal numérique périodique, dont le rapport cyclique varie

  • Sa tension moyenne est comprise entre 0 et 5V : il s'agit d'un signal pseudo analogique

  • Cette tension est directement est déterminée par le rapport cyclique

  • Le générateur PWM se comporte donc comme un Convertisseur Numérique Analogique.


Interruptions externes

  • Elles permettent d’interrompre le programme en cours d'exécution, en réaction à un évènement extérieur, perçu sur une broche d'entrée du circuit.

  • Chaque broche d'interruption externe dispose de sa source d’interruption.