Quelles sont les composants d'un microcontrôleur ? comment les identifier ?

Introduction

Dans ce cours on va voir un exemple de circuit d’un microcontrôleur avec les différents composants qui le constitue afin de mieux comprendre comment il fonctionne. Pour cela on va prendre plusieurs exemples de schémas de microcontrôleurs de chez microchip.

Connaitre la ligne à exécuter

Dans cette partie on va voir comment le microcontrôleur se repère pour savoir où il en est si une interruption par un périphérique externe arrive par exemple.

Program counter : C’est un pointeur de programme qui permet de savoir quelle ligne on est entrain d’éxécuter. C’est très utile pour savoir ou reprendre dans la fonction principale lors d’une interruption par exemple. Cette ligne sera alors stockée dans la Stack.

Stack : pile logicielle qui stocke les adresses retours des sous fonctions. Il faut sauvegarder la ligne de retour pour savoir ou retourner si on a été interrompu par exemple. On peut avoir 16 niveaux dans la pile logiciel (d’après le schéma), donc on peut faire 16 appels de sous fonction imbriquée donc une fonction qui en appelle une autre et qui en appelle une autre…

Les unités de Calcul

Les unités de calcul sont essentiels dans un microcontrôleur. Elles servent à faire des additions, soustraction où bien même des multiplications et divisions. On va  voir quelles sont les unités de calcul obligatoire dans un microcontrôleur et celle qui sont optionnels.

La première unité de calcul obligatoire dans un microcontrôleur est celle qui permet de faire des additions et soustractions. Elle est appelée Alu (Arithmetic logic unit).

Les autres unités de calcul comme la division ou la multiplication ne sont pas obligatoire au microcontrôleur car en faisant plusieurs additions ou soustractions on obtient le même résultat qu’une multiplication ou division.

Voici un exemple : si on veut faire 2 fois 5, on peut faire une addition de 5+5 pour obtenir le même résultat. C’est plus long, donc si vous avez besoin de faire beaucoup de multiplication ou de division, vous pouvez prendre un microcontrôleur qui a coprocesseur qui contient une unité H/W multiplier ou Divide support pour diviser. En effet, c’est tous de même ^plus rapide d’avoir un composant dédié pour faire des multiplications et divisions plutôt que d’utiliser une suite d’additions ou de soustractions.

H/W multiplier : Cette unite est incluse dans le coprocesseur du microcontrôleur. Cette unité n’est pas intégrée dans tout les microcontrôleur et sert si vous avez beaucoup de multiplication à faire.

Divide support : Comme le H/W Multiplier, cette unité est incluse dans le coprocesseur du microcontrôleur.Cette unité n’est pas intégrée dans tout les microcontrôleur et est utile si vous avez beaucoup de division à faire.

Enfin pour stocker les résultats des calculs, on a besoin d’un working registre array.

Working register array : c’est un ensemble de registre de travail. C’est là où est stocké tous
les résultats de calcul d’arithmétique et du coprocesseur. C’est un accumulateur. C’est un
lieu de passage de tous les calculs. Dans notre exemple il y a 16 registres dans notre Working register array. Qaund vous cprogrammez votre carte vous n’avez pas à gérer les registres de travail. C’est le travail du compilateur.

Les périphériques avancés

On va maintenant voir un composant plus avancés sur les microcontrôleurs qui vont vous permettre de faire du traitement numérique, audio ou vidéo. Ces composants ne sont pas obligatoires dans les microcontrôleurs et ne sont d’ailleurs pas tous présent à chaque fois. Ce sont des composants que l’on choisit pour faire projets spécifique.

a) DSP Engine

Le composant Dsp engine (digital signal processing) qui veut processeur de traitement de signal en français permet de traiter du signal vidéo ou audio. Ils sont présent dans les dsp Pic de chez Microsystème, par exemple les dsPic33.