¶
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)
- communication à 2 fils (Two-Wire Interface)
-
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
- communication à 4 fils
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.