Voilelec     Retour page précédente
     0 connectés       Une missive s'envolera dans l'éther...
 

Glossaire microcontrôleur

(Note)

Maj : 20/11/03

 

Ceci est un petit glossaire spécial débutants, afin que les termes employés sur le site n'aient aucune ambiguïté. Signalez-moi les termes qui vous semblent encore confus, cette page évoluera avec le projet.


Adressage
Array = Tableau
Boucle d'attente
Buffer
CAN Bus
Filtrage par la méthode de la pondération temporelle
Flag
Gosub
Goto
I2C bus
Instruction
Interruption
look-up table = Tableau
Microcontrôleur et Microprocesseur
Port d’entrée/sortie
Registre
Reset
Tableau = Array
Timer

 Haut de page

 

Adressage

Moyen d’accéder à une case mémoire, soit directement en spécifiant son adresse physique, soit indirectement en passant par un pointeur ou plus indirectement encore par un pointeur de pointeur.


Boucle d'attente

Partie du programme destinée seulement à perdre du temps. Le contrôleur passe son temps à décompter un registre chargé préalablement à une valeur fixe. A la fin du décompte, sortie de la boucle et poursuite du programme. Ces boucles sont très utilisées, elles seront écrites une fois pour toutes avec des valeurs d'attente connues.

Exemple : "del001ms" sera une boucle d'attente de base de 1 milliseconde. Elle sera appelée 10 fois pour réaliser la boucle de 10 ms "del010ms" (en réalité ce serait un peu plus long à cause des 10 appels. En pratique la boucle de 10 ms sera appelée 9 fois et une autre plus courte compensera pour obtenir le bon nombre de cycles).

Ces méthodes sont très pratiques pour un programmeur débutant, mais par la suite nous les éviterons pour des méthodes plus performantes. Il est par exemple plus économique en terme d'énergie d'utiliser une mise en sommeil à la place de la boucle stupide. Le circuit ne consomme (presque) plus d'énergie pendant l'attente et sera réveillé par une interruption programmée.


Buffer

Un "buffer" est un tampon. C'est une zone mémoire qui recevra des données en attente de traitement. En principe, une routine va les déposer, et une autre les enlever après traitement.
Exemple : Envoi d'une phrase par le port série. Tous les octets seront déposés très vite dans le "buffer", puis ressortis doucement par le port série très lent. Évidement toutes les précautions sont prises pour ne pas déborder de la zone allouée.


CAN bus

Le bus Can est très supérieur en performances à l'I2C mais il a été introduit plus tard. Il est à préférer à l'I2C pour tous les nouveaux projets, mais il existe moins de périphériques en grand public pour CAN que pour I2C. Ce bus est adopté massivement en automobile. Voir la page des bus.


Filtrage par la méthode de la pondération temporelle

Exemple simple de filtrage numérique. Ces techniques sont très utilisées en traitement de signal simple, elles font l'objet d'une page séparée:

Méthode de la pondération temporelle :

 Haut de page

 

Flag

Un "flag" est un drapeau ou sémaphore. C'est un bit privilégié, contenu dans un registre, qui peut être mis à l'état haut ou bas par programme ou par le processeur. Il sert d'indicateur pour les divers programmes qui l'utiliseront comme un aiguillage de décision.
Exemple : Flag "tr_buf". Indique que le buffer d'émission de données n'est pas vide, la routine d'émission l'utilise pour savoir s'il faut transmettre. Quand le buffer sera vide, cette routine baissera le flag.
Si le programme veut envoyer des données, il les empilera dans le buffer, puis lèvera le flag pour demander l'envoi.
Un flag sera définitivement fixé par programme pour indiquer le type d'horloge utilisé, un autre pour autoriser ou non la relecture du code programmé. Ces flags particuliers ne peuvent pas être changés par le programme, ils sont écrits "en dur".


Gosub

C'est un saut mais avec retour. La différence avec le "goto" est fondamentale. Le saut se fera vers une zone programme terminée par un "return". Après exécution, le programme reprendra à la ligne suivant le "gosub".
Toutes les fonctions souvent utilisées seront écrites dans des sous-programmes avec retour qui seront appelés par des variantes de l'instruction "gosub".
Une petite différence existe pour les programmes traitant les interruptions. Il faudra aussi en ressortir pour poursuivre le programme, mais le mécanisme est plus complexe. Il faudra sauver en rentrant tout ce qui sera utilisé puis le restaurer en sortant par un "RTI" (Return to interrupt). L'appel ne sera fait que par une interruption, jamais par un "Gosub".


Goto

Saut définitif à une nouvelle adresse, souvent en fonction d'une condition. Cette instruction est un vieux reste du basic, elle est maintenant d'un usage rare en langage C.
Exemple : Si "valeur contenue dans un registre" plus grande que "valeur immédiate", alors "goto" (équivalent à : <aller à >) "telle adresse", sinon continuer.

 Haut de page

 

I2C bus

Bus majeur de la micro-informatique, l'I2C (Inter Integrated Circuit Bus) a été introduit en 1980 par Philips pour la domotique et la liaison entre les cartes des matériels audio et vidéo. Un très grand nombre de périphériques utilisent cette norme ce qui explique son énorme diffusion malgré ses défauts et la supériorité technique du CAN. Tous les contrôleurs ont des modules logiciels pour l'implanter sur deux fils. Voir la page des bus.


Instruction

Une instruction est un ordre élémentaire que va exécuter le processeur. Un processeur RISC (Reduced Instruction Set Computer) a peu d’instructions et les exécute vite, un CISC (Complex Instruction Set Computer) a davantage d’instructions puissantes, aura un code plus compact mais des cycles plus longs. C’est une question de philosophie, à puissance égale, les résultats sont équivalents.


Interruption

Mécanisme fondamental des contrôleurs. Une action en cours est suspendue par un évènement. Des priorités définissent ce qui doit être fait en premier. L'action initiale reprend après le traitement de l'interruption. Les utilisations sont multiples.

Exemple. : Une horloge tourne en tâche de fond pour maintenir l'heure du système. Le programme principal n'en est pas perturbé. Toutes les secondes, les cases contenant heures, minutes, secondes sont mises à jour. C'est une interruption, programmée par un timer (compteur) interne qui demande à exécuter l'action. Très peu de cycles machine seront utilisés, et le déroulement programme ne changera pas.

Autre exemple d'interruption : Programme à actions rares. Nous décrirons un barographe (enregistreur de pression atmosphérique). Il est très suffisant de lire le capteur, de faire les calculs et de rafraîchir l'affichage une seule fois par minute. Le traitement durera beaucoup moins d'une milliseconde, ensuite tout sera mis en sommeil pour une minute. Une simple pile permet une autonomie de plusieurs années. Une interruption réveillera le système au bon moment. Une zone du microcontrôleur est spécialisée dans ce comptage et tournera alors que tout le reste est éteint, la consommation électrique est infime.


Microcontrôleur et Microprocesseur

Un microprocesseur est une unité de calcul qui demande pour fonctionner des composants auxiliaires, comme de la mémoire vive et morte, des dispositifs d'entrées-sorties.
Un Microcontrôleur contient dans le même boîtier, l'environnement nécessaire pour tourner seul.
Les petites applications décrites ne nécessitent souvent que le microcontrôleur seul.
Une carte à microprocesseur serait beaucoup plus puissante (exemple Pentium, carte PC), mais demanderait un grand nombre de composants pour faire la même chose. La frontière est parfois floue car les puissants microcontrôleurs demandent aussi des composants annexes, l'ensemble ressemblant beaucoup à une carte à processeur.
Pour simplifier, nous parlerons donc de :
Microcontrôleur pour une petite carte (exemple Souris, ou clavier de PC utilisant un unique Pic).
Calculateur ou ordinateur ou "Computeur" pour un ensemble plus gros avec de très nombreux périphériques associés, bâti autour d'un microprocesseur (Exemple : PC avec Pentium).

 Haut de page

 

Port d’entrée/sortie

Ce terme désigne à la fois les broches physiques, qui permettrent de lire ou d’écrire un niveau électrique (logique ou analogique) sur chacune des huit pattes (généralement) du bloc considéré.
C’est aussi l’adresse privilégiée dans laquelle les données sont lues / écrites pour transformer des bits ou octets en niveaux électriques et réciproquement. La lecture et l’écriture sont indépendantes sur une patte d’un port.


Registre

Un registre est une case mémoire qui bénéficie de possibilités supplémentaires, d’accès rapide et (ou) de manipulations au niveau bits. L’accumulateur est le plus privilégié des registres. Un port est un des registres.


Reset

Désigne à la fois l'action et le bouton qui la commande. C'est la remise à zéro et la relance à froid du programme. Elle se produit toujours à la mise sous tension du circuit (grâce à un circuit résistance + condensateur). En appuyant sur le bouton, le condensateur est court-circuité.


Tableau

Le tableau (array) est une méthode très pratique et rapide pour transformer une valeur en utilisant une table de conversion (look-up table). Une table est pré-calculée ou remplie à la main. En une instruction, la valeur contenue dans un registre sert de pointeur pour renvoyer le contenu du tableau.

Utilisation des tables de conversion ou look-up tables pour manipuler des données. Une page est consacrée à cette technique :

Conversion par look-up tables :


Timer

Les timers sont des compteurs indispensables au fonctionnement d'un microcontrôleur. Ils fonctionnent sous deux modes différents :

En horloges programmables, ils déclenchent des évènements (programme, changement d'état de sorties) à des périodes données, par mécanisme d'interruptions. Ils peuvent réveiller le circuit mis en sommeil pour économiser l'énergie.

En compteurs, déclenchés par un évènement extérieur. Un niveau ou transition sur une entrée de déclenchement provoque le stockage d'un temps (nombre de cycles) dans un registre et une action (sous programme d'interruption). L'exemple le plus simple est le comptage de temps entre déclenchements.

© Christian Couderc 1999-2007     Toute reproduction interdite sans mon autorisation

Merci aux journalistes qui pillent sans vergogne mon site,
d’avoir au moins la courtoisie de citer leurs sources…

13704

 Haut de page         Dernière retouche le 20 Novembre 2003 à 21 h           Retour page précédente

    Voilelec