Recherchez sur tout Techno-Science.net
       
Techno-Science.net : Suivez l'actualité des sciences et des technologies, découvrez, commentez
Catégories
Techniques
Sciences
Encore plus...
Techno-Science.net
Photo Mystérieuse

Que représente
cette image ?
 A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | +
Microcontrôleur

Un microcontrôleur est un circuit intégré rassemblant dans un même boitier un microprocesseur, plusieurs types de mémoires et des périphériques de communication (Entrées-Sorties).

Selon un arrêté français du 14 septembre 1990 relatif à la terminologie des composants électroniques[1] : " Circuit intégré comprenant essentiellement un microprocesseur, ses mémoires, et des éléments personnalisés selon l'application ".

Le Motorola 68HC11, ici en boîtier PLCC, est un microcontrôleur réputé.
Le Motorola (www.motorola.com/fr) 68HC11, ici en boîtier PLCC, est un microcontrôleur (Un microcontrôleur est un circuit intégré rassemblant dans un même boitier un microprocesseur, plusieurs types de mémoires et des périphériques de communication (Entrées-Sorties).) réputé.

Structure d'un système à microprocesseur

Un microprocesseur a besoin (Les besoins se situent au niveau de l'interaction entre l'individu et l'environnement. Il est souvent fait un classement des besoins humains en trois grandes catégories :...) de certains éléments pour fonctionner :

  • de la mémoire (D'une manière générale, la mémoire est le stockage de l'information. C'est aussi le souvenir d'une information.) morte dite ROM (principalement pour stocker le programme) ;
  • de la mémoire vive (La mémoire vive, mémoire système ou mémoire volatile, aussi appelée RAM de l'anglais Random Access Memory (que l'on traduit en français par 'mémoire...) dite RAM (principalement pour stocker les variables) ;
  • des périphériques (principalement pour interagir avec le monde (Le mot monde peut désigner :) extérieur).
  • une horloge pour le cadencer (principalement à quartz)

Ces différents blocs sont reliés par 3 bus :

  • le bus d'adresse (Les adresses forment une notion importante en communication, elles permettent à une entité de s'adresser à une autre parmi un ensemble d'entités. Pour qu'il n'y ait pas d'ambiguïté, chaque adresse...) qui permet au microprocesseur de sélectionner la case mémoire ou le périphérique auquel il veut accéder pour lire ou écrire une information (instruction ou donnée) ;
  • le bus de données (Un bus de données est un bus informatique dédié au transfert des données au sein de l'ordinateur.) qui permet le transfert des informations entre les différents blocs ; ces informations seront soit des instructions soit des données en provenance ou à destination de la mémoire ou des périphériques ;
  • le bus de contrôle (Le mot contrôle peut avoir plusieurs sens. Il peut être employé comme synonyme d'examen, de vérification et de maîtrise.) qui indique si l'opération en cours est une lecture ou une écriture, si un périphérique demande une interruption etc.

Le fonctionnement est le suivant :

  • À la mise en route (Le mot « route » dérive du latin (via) rupta, littéralement « voie brisée », c'est-à-dire creusée dans la roche, pour ouvrir le chemin.) du système, le microprocesseur va chercher dans la mémoire à l'adresse 0 (pour la plupart des processeurs) la première instruction (Une instruction est une forme d'information communiquée qui est à la fois une commande et une explication pour décrire l'action, le comportement, la méthode ou la tâche qui devra commencer, se terminer, être conduit, ou...) à exécuter ;
  • il stocke cette instruction dans un registre interne (En France, ce nom désigne un médecin, un pharmacien ou un chirurgien-dentiste, à la fois en activité et en formation à l'hôpital ou en cabinet pendant une durée variable selon le...) appelé registre d'instructions ;
  • il exécute cette instruction ;
  • puis en consultant le registre pointeur d'instruction va chercher l'instruction suivante, etc.

Traditionnellement, ces composants sont intégrés dans des circuits distincts. Le développement d'un tel système à base de microprocesseur se trouve donc pénalisé par (liste non exhaustive) :

  • La nécessité de prévoir l'interconnexion de ces composants (bus) ;
  • la place occupée physiquement par les composants et les moyens d'interconnexion ;
  • la consommation énergétique ;
  • la chaleur (Dans le langage courant, les mots chaleur et température ont souvent un sens équivalent : Quelle chaleur !) dégagée ;
  • le coût financier.

Les microcontrôleurs améliorent l'intégration et le coût (lié à la conception et à la réalisation) d'un système à base de microprocesseur en rassemblant ces éléments essentiels dans un seul circuit intégré (Le circuit intégré (CI), aussi appelé puce électronique, est un composant électronique reproduisant une ou plusieurs fonctions électroniques plus ou moins complexes, intégrant souvent plusieurs types de composants...). On parle alors de " système sur une puce " (en anglais : " System on Chip "). Dans la suite, nous nous intéressons plus particulièrement aux microcontrôleurs 8 bits, c’est-à-dire ceux dont le bus de données comportent 8 bits et le bus d'adresses 16 bits.

Périphériques

Les périphériques sont des circuits électroniques intégrés au microcontrôleur capables d'effectuer des tâches spécifiques. On peut mentionner entre autres :

  • les convertisseurs Analogique/Numérique (donnent un nombre (La notion de nombre en linguistique est traitée à l’article « Nombre grammatical ».) binaire à partir d'une tension (La tension est une force d'extension.) électrique) ;
  • les convertisseurs Numérique/Analogique (opération inverse) ;
  • les générateurs de signaux à modulation de largeur (La largeur d’un objet représente sa dimension perpendiculaire à sa longueur, soit la mesure la plus étroite de sa face. En...) d'impulsion (MLI, ou en Anglais, PWM pour Pulse Width Modulation) ;
  • les timers (compteurs de temps (Le temps est un concept développé par l'être humain pour appréhender le changement dans le monde.) ou d'événements) ;
  • les comparateurs (comparent deux tensions électriques) ;
  • les contrôleurs de bus (UART, IIC, SSP) ;
  • les oscillateurs (servent de base de temps aux timers).

Le fonctionnement des périphériques peut être paramétré et commandé par le programme et/ou les entrées-sorties. Les périphériques peuvent générer une interruption qui contraint le processeur (Le processeur, ou CPU (de l'anglais Central Processing Unit, « Unité centrale de traitement »), est le composant de l'ordinateur qui exécute les programmes informatiques....) à quitter le programme principal pour effectuer une routine d'interruption.

Jeu d'instructions

On peut classer les instructions qu'un microcontrôleur est capable d'effectuer en quelques groupes.

Instructions de transfert

Le microcontrôleur passe une grande partie de son temps à transférer des octets d'un endroit à l'autre du système : d'un périphérique vers un registre interne ou vice-versa, d'un registre interne vers la mémoire RAM ou vice-versa. Ce qui ne peut en général pas être fait directement, c'est un transfert direct d'une case mémoire vers une autre ou vers un périphérique, ou une écriture en mémoire ROM, la structure du microcontrôleur rend obligatoire le passage des informations par un de ses registres internes. Remarquons que, sauf exceptions, il s'agit plutôt d'une copie que d'un transfert puisque la case mémoire d'origine garde son information (tant qu'on n'a pas écrit autre chose à la place).

Instructions arithmétiques

Un microcontrôleur 8 bits n'est pas un grand mathématicien (Un mathématicien est au sens restreint un chercheur en mathématiques, par extension toute personne faisant des mathématiques la base de son activité principale. Ce...). Tout (Le tout compris comme ensemble de ce qui existe est souvent interprété comme le monde ou l'univers.) au plus est-il capable d'effectuer des additions, des soustractions, des multiplications et des divisions sur des nombres binaires de 8 bits. Toutes les opérations mathématiques (Les mathématiques constituent un domaine de connaissances abstraites construites à l'aide de raisonnements logiques sur des concepts tels que les nombres, les figures, les structures et les transformations. Les mathématiques...) complexes telles que le traitement des grands nombres, des nombres fractionnaires, des puissances, des racines carrées, des fonctions trigonométriques, logarithmiques et exponentielles doivent être ramenées à une succession d'opérations simples portant seulement sur des octets. Des routines mathématiques (petits programmes permettant de réaliser les calculs complexes) ont été développées pour la plupart des microcontrôleurs populaires.

Instructions logiques

Les microcontrôleurs sont capables d'effectuer des opérations logiques : ET, OU, XOU (XOR), NON (inverseur), rotations, décalages. Les opérations sont opérées simultanément sur les bits correspondant des deux registres.

La comparaison des octets A et B, qui est considérée comme une opération logique (La logique (du grec logikê, dérivé de logos (λόγος), terme inventé par Xénocrate signifiant à la fois raison, langage, et raisonnement) est dans une...), est réalisée comme une soustraction (La soustraction est l'une des opérations basiques de l'arithmétique. La soustraction combine deux ou plusieurs grandeurs du même type, appelées opérandes, pour donner un seul nombre, appelé la...) dont on néglige le résultat ; on s'intéresse simplement au fait de savoir s'il est nul (ce qui signifie que A = B), positif (A > B) ou négatif (A < B). Ces indications sont inscrites dans des indicateurs d'états (petites mémoires d'1 bit situées dans le processeur).

Instructions d'entrées/sorties

Ces instructions sont utilisées pour :

  • lire l'état d'un port d'entrée (permettant l'interfaçage d'interrupteurs, de commutateurs, d'optocoupleurs, de convertisseurs analogiques/numériques, de claviers, etc.) ;
  • écrire une information dans le registre d'un port de sortie, qui maintient l'information à la disposition des circuits extérieurs (leds, moteurs (Un moteur est un dispositif transformant une énergie non-mécanique (éolienne, chimique, électrique, thermique par exemple) en une énergie mécanique ou travail.[réf. nécessaire]), relais, convertisseurs numériques/analogiques, etc.) ;
  • écrire ou lire une information dans les registres d'un port série.

Signalons que dans certains microcontrôleurs les périphériques sont considérés simplement comme des cases de mémoire et ils sont gérés par les instructions de transfert (entrées/sorties intégrées mémoire). D'autres microcontrôleurs disposent d'instructions spécifiques pour les entrées/sorties (entrées/sorties indépendantes).

Instructions de branchement

Il s'agit d'instructions qui altèrent le déroulement normal du programme. On distingue les sauts et les sous-routines.

  • Les sauts provoquent un branchement du programme vers une adresse mémoire qui n'est pas contigüe à l'endroit où l'on se trouve.
  • La sous-routine ou sous-programme (En informatique, un sous-programme est un sous-ensemble du programme dans sa hiérarchie fonctionnelle. Un sous-programme doit pouvoir mémoriser l'adresse du code appelant pour permettre, à l'aide d'une instruction spécifique, de...) est une partie de programme dont on a besoin à plusieurs endroits dans l'exécution du programme principal. Plutôt que de répéter ce sous-programme à tous les endroits où l'on en a besoin, on le place en un endroit donné (par exemple à la fin du programme principal) et on opère un branchement du programme principal vers le sous-programme chaque fois que nécessaire. La grande différence par rapport au saut, c'est qu'au moment du branchement il faut mémoriser l'adresse d'où l'on vient, afin de pouvoir y revenir une fois le sous-programme terminé. Ceci est effectué en mémorisant l'adresse de départ dans un registre ad hoc (la pile) du microcontrôleur.

Tant les sauts que les sous-routines peuvent être :

  • inconditionnels ;
  • conditionnels, c'est-à-dire que le branchement n'a lieu que si une certaine condition est remplie ; généralement, la condition testée est le contenu d'un des indicateurs d'état ; ceux-ci indiquent par exemple si le contenu de l'accumulateur est nul, positif, négatif, de parité paire (On dit qu'un ensemble E est une paire lorsqu'il est formé de deux éléments distincts a et b, et il s'écrit alors :) ou impaires.

Instructions diverses

On trouve dans ce groupe :

  • des instructions de gestion de la pile (zone de mémoire RAM permettant le stockage de données pendant l'exécution du programme) ;
  • des instructions de contrôle du processeur : par exemple passage en mode basse consommation, contrôle des périphériques embarqués (càd. sur la même puce que le processeur) ;
  • des instructions permettant de positionner des indicateurs internes du processeur.

Ces instructions varient fort selon les familles des microcontrôleurs.

Modes d'adressage pour les données

De nombreuses instructions font référence à des données se trouvant à différents endroits du microcontrôleur : registres internes du processeur, ROM, RAM, ports d'E/S. On appelle modes d'adressage les différentes façons de spécifier les endroits où se trouvent les données dont on a besoin.

Adressage implicite

Certaines opérations ne peuvent être réalisées que sur une donnée (Dans les technologies de l'information (TI), une donnée est une description élémentaire, souvent codée, d'une chose, d'une transaction d'affaire, d'un événement, etc.) se trouvant en un endroit bien précis du processeur (par exemple, l'accumulateur ou la pile). Dans ce cas, il n'est pas nécessaire de spécifier l'adresse du registre en question et on parle d'adressage implicite.

Adressage registre ou inhérent

Le processeur dispose d'un certain nombre de registres de travail. De nombreuses instructions y font référence ; vu leur nombre peu élevé (8, par exemple), il suffit d'un petit nombre de bits pour spécifier le registre désiré (3 dans notre cas). On parle dans ce cas d'adressage registre ou inhérent.

Adressage direct

Dans ce mode d'adressage, on donne l'adresse (généralement en 16 bits) de la donnée (Dans les technologies de l'information, une donnée est une description élémentaire, souvent codée, d'une chose, d'une transaction, d'un événement, etc.) en mémoire (RAM, ROM ou port d'E/S s'il est intégré à la mémoire). Ce mode d'adressage permet d'indiquer n'importe quel endroit dans la mémoire, le prix à payer étant que l'on doit spécifier l'adresse concernée dans son intégralité (2 à 4 octets).

Certains processeurs implémentent aussi, pour réduire l'encombrement du programme, l'adressage direct restreint : l'adresse ne comporte qu'un octet, et ce mode ne permet d'accéder qu'aux données se trouvant sur la page courante (adresses ayant donc les mêmes bits de poids (Le poids est la force de pesanteur, d'origine gravitationnelle et inertielle, exercée par la Terre sur un corps massique en raison uniquement du voisinage de la Terre. Elle est égale à l'opposé de la résultante des...) fort) ou sur la page 0 (adresses ayant donc les bits de poids fort à 0).

Adressage indirect à registre

Dans ce mode d'adressage, l'adresse de la donnée se trouve dans un registre spécial du processeur (du même nombre de bits que son bus d'adresses), le pointeur de données. L'avantage, par rapport à l'adressage direct, est que l'adresse peut être manipulée commodément, par exemple pour accéder à une suite de données consécutives en mémoire. Ceci est particulièrement utile lorsqu'on manipule des données stockées dans un tableau (Tableau peut avoir plusieurs sens suivant le contexte employé :).

Adressage immédiat

C'est un peu un abus de langage que de parler d'adressage dans ce cas-ci. En effet, la donnée suit tout simplement l'instruction.

Adressage indexé

Ce mode est assez semblable à l'adressage indirect à registre. Il fait appel à un registre spécial appelé " registre d'index ". Certains microcontrôleurs ne supportent pas ce mode, d'autres au contraire ont 1 ou même 2 registres d'index. Deux registres d'index sont particulièrement bienvenus lorsqu'il s'agit de déplacer un bloc de données dans la mémoire RAM.

Structure d'une instruction

Une instruction comporte généralement de 1 à 3 octets. Le premier octet est appelé code opératoire, il spécifie ce que l'on veut faire.

Le ou les octets suivants spécifient la donnée (adressage immédiat), une adresse restreinte, une adresse absolue (L'absolue est un extrait obtenu à partir d’une concrète ou d’un résinoïde par extraction à l’éthanol...) (16 bits) ou une donnée 16 bits (peu utilisé).

Une instruction traite au maximum deux données, si l'on se limite à 3 octets pour l'instruction, une seule des données peut être en RAM.

Modes d'adressage pour les branchements

L'adresse de la prochaine instruction à exécuter est contenue dans un registre spécial du processeur, appelé pointeur de programme ou compteur de programme.

  • Adressage direct : dans ce cas, l'adresse où l'on doit aller est donnée en 16 bits ; on peut donc se rendre n'importe où dans la mémoire (programme). Au moment du branchement, le contenu du pointeur de programme est remplacé par l'adresse en question (si le branchement concerne une sous-programme, on sauvegarde (En informatique, la sauvegarde (backup en anglais) est l'opération qui consiste à dupliquer et à mettre en sécurité les données contenues dans un système informatique.) le contenu du pointeur de programme).

Comme de nombreux branchements s'effectuent vers des adresses mémoire proches de l'endroit où l'on se trouve au moment d'exécuter le branchement, on a prévu deux modes d'adressage plus compacts, ne nécessitant qu'un octet pour l'adresse :

  • adressage relatif : on spécifie le nombre de pas à effectuer en avant, ou plus souvent en arrière, dans le programme ;
  • adressage restreint : on spécifie l'adresse sur la page courante (octet d'adresse le plus significatif inchangé).

Familles de microcontrôleurs

  • la famille Atmel AT91 ;
  • la famille Atmel AVR ;
  • le C167 de Siemens/Infineon ;
  • la famille Hitachi H8 ;
  • la famille Intel 8051, qui ne cesse de grandir ; de plus, certains processeurs récents utilisent un cœur 8051, qui est complété par divers périphériques (ports d'E/S, compteurs/temporisateurs, convertisseurs A/N et N/A, chien (Le chien (Canis lupus familiaris) est un mammifère domestique de la famille des canidés, proche du loup et du renard. Autrefois regroupé dans une espèce à part entière, connue...) de garde, superviseur de tension, etc.) ;
  • l'Intel 8085, à l'origine conçu pour être un microprocesseur, a en pratique souvent été utilisé en tant que microcontrôleur ;
  • le Motorola 68HC11 ;
  • la famille Freescale (Freescale Semiconductor est une entreprise américaine dans le domaine des semi-conducteurs. Elle est spécialisée dans les systèmes embarqués et les réseaux. Freescale était précédemment la branche semiconducteurs de...) 68HC08
  • la famille Freescale 68HC12
  • la famille des PIC de Microchip ;
  • la famille des dsPIC de Microchip ;
  • la famille des ST6 de STMicroelectronics ;
  • la famille ADuC d'Analog Devices ;
  • la famille PICBASIC de Comfile Technology;
  • la famille MSP430 de Texas Instruments.
  • la famille 8080 , z80 , Rabbit : pour memoire , le 8080 est un des grands ancetres , mais z80 et Rabbit sont encore bien vivants
  • la famille PSoC de Cypress
  • la famille LPC21xx ARM7-TDMI de Philips
  • la famille V800 de NEC
  • la famille K0 de NEC

Applications

Les microcontrôleurs sont souvent utilisés dans l'élaboration de systèmes embarqués, nécessitant des traitements spécialisés (autoradios, téléphones portables, lecteur mp3, GPS, etc.).

Ces circuits intégrés sont également très prisés en robotique amateur et permettent de réaliser de nombreuses applications, y compris des robots autonomes, les automatismes en modélisme (maquettes de réseau (Un réseau informatique est un ensemble d'équipements reliés entre eux pour échanger des informations. Par analogie avec un filet (un réseau est un « petit rets », c'est-à-dire un petit filet),...) ferroviaire).

Programmation (La programmation dans le domaine informatique est l'ensemble des activités qui permettent l'écriture des programmes informatiques. C'est une étape importante de la conception de logiciel (voire de...)

Le langage C est le langage de prédilection (avec l'assembleur) du développement sur microcontrôleurs. Une fois le programme compilé, le fichier ( Un fichier est un endroit où sont rangées des fiches. Cela peut-être un meuble, une pièce, un bâtiment, une base de données informatique. Par exemple : fichier des patients d'un médecin, fichier des ouvrages dans...) binaire doit être envoyé au microcontrôleur. On utilise soit :

  • un programmateur de microcontrôleurs et souvent également d'EEPROM, on parle alors de programmateur universel.
  • un programmateur ISP qui a l'avantage de ne pas nécessiter de sortir le microcontôleur du système électronique complet.

On peut alors utiliser le système. Toutefois, le programme qui a été envoyé peut comporter des bogues, aussi, pour parvenir à les détecter on utilisera par exemple un émulateur in-circuit.

Notes et références

  1. http://www.dsi.cnrs (Le Centre national de la recherche scientifique, plus connu sous son sigle CNRS, est le plus grand organisme de recherche scientifique public français (EPST).).fr/RMLR/textesintegraux/volume4/43-adu14-09-1990(3).htm
Source: Wikipédia publiée sous licence CC-BY-SA 3.0.

Vous pouvez soumettre une modification à cette définition sur cette page. La liste des auteurs de cet article est disponible ici.
Archives des News
  Août 2017
  Juillet 2017
  Juin 2017
  Mai 2017
  Toutes les archives