Circuit à microprocesseur

 

mic01

 

         1. Généralités

         2. Microcontrôleur PIC

Microprocesseur - Généralités-

1. Introduction

2. Structure d'un microprocesseur

3. Les circuits périphériques

4. Programmation

5. Applications

6. Types de microprocesseurs

7. Utilisation

8. Éléments indispensables

9. Entrées/Sorties

10. Exemple de microprocesseur dédié

 

1. Introduction

La réunion dans un même boîtier, de nombreuses fonctions logiques a naturellement conduit à envisager un dispositif capable d’effectuer de multiples opérations logiques et arithmétiques, c’est le microprocesseur. Lorsqu’il est associé à des circuits de stockage de données (les mémoires) et à des circuits d’acquisition ou de restitution de données (les circuits d’entrée et de sortie), il devient alors un des éléments constitutifs d’un micro-ordinateur.

2. Structure d’un microprocesseur

Un microprocesseur doit pouvoir exécuter des opérations logiques et arithmétiques sur des données qui lui sont envoyées. Des instructions, sous forme binaire, qu’il analyse (ou décode) lui sont également fournies, donc, tout un système de circuits logique constitue le microprocesseur. Chaque bloc de circuits à sa fonction propre.

2.1. Les blocs du microprocesseur

2.1.1. L’horloge

C’est un multivibrateur astable, piloté par quartz et qui rythme le fonctionnement du microprocesseur, celui-ci ne pouvant exécuter qu’une tâche à la fois. La fréquence de cette horloge est de plusieurs mégahertz. C’est dire qu’un microprocesseur est capable d’exécuter plusieurs millions d’opérations élémentaires par seconde.

2.1.2. Le compteur ordinal

Ce compteur augmente d’une unité à chaque fois que le microprocesseur a exécuté une tâche. À l’issue de chaque opération, le microprocesseur consulte le contenu du compteur ordinal puis va chercher l’instruction contenue dans les mémoires qui lui sont associées, à l’adresse indiquée par le compteur. Le compteur joue donc le rôle d’un messager chargé d’indiquer l’adresse du prochain travail à effectuer.

2.1.3. L’accumulateur

C’est un registre qui contient le résultat de l’opération en cours. Son contenu change donc à l’issue de chaque opération.

2.1.4. Le registre d’état

Il contient des éléments binaires indiquant l’état électrique dans lequel se trouve le microprocesseur. C’est donc le tableau de bord de la machine. Les constructeurs utilisent ce registre d’état pour mémoriser, par exemple, le signe du résultat d’une opération, la nullité du résultat, le débordement de capacité d’un calcul…

2.1.5. Les registres d’index ou d’adresses

Ils contiennent des nombres binaires qui sont des adresses où se trouvent les données numériques que le microprocesseur doit traiter. Leur contenu peut à tout instant être modifié par l’utilisateur.

2.1.6. L’unité arithmétique et logique (U.A.L.)

C’est l’organe le plus complexe du microprocesseur. L’U.A.L. contient tous les circuits logiques nécessaires aux calculs que celui-ci sait effectuer :

         Fonctions logiques ET, OU, NON, OU Exclusif etc.

         Fonctions arithmétiques : addition, soustraction etc.

         Fonctions de traitement particulier : décalage, tests etc.

2.1.7. Le décodeur d’instructions

C’est un bloc logique qui teste les ordres ou instructions arrivant au microprocesseur. Ayant reconnu un ordre, il vient activer le circuit adéquat de l’U.A.L.

2.2. Liaisons du microprocesseur

Afin de communiquer avec le monde extérieur, un microprocesseur comporte des broches que l’on relie par des fils à des blocs externes.

2.2.1. Les lignes de commande

En nombre variable selon les modèles, elles servent à piloter ou à tester le microprocesseur : lancement de l’horloge, arrêt, départ, remise à zéro du compteur ordinal ; elles servent également à commander le mode d’utilisation des mémoires (lecture ou écriture).

2.2.2. Le bus de données

C’est un ensemble de conducteurs qui vont permettre de véhiculer les données numériques sur lesquelles portent les calculs. Sur la figure, c’est l’ensemble de fils D0, D1, D2,….D7. Dans ce cas, on dit que le microprocesseur travaille avec des données de 8 bits. Il existe des microprocesseurs utilisant des données de 16 et 32 et 64 bits.

2.2.3. Le bus d’adresses

Il comporte en général, 16 ou 32 conducteurs appelés A0, A1, A2, A3, …., etc. L’ensemble de ces conducteurs constitue un bus d’adresses sur lequel circulent des 0 et des 1 qui forment un nombre représentant l’adresse de l’instruction que va avoir à exécuter le microprocesseur.

Remarque : les bus d’adresses et de données sont bidirectionnels. Cela veut dire que l’information peut circuler dans les deux sens, du microprocesseur vers l’extérieur et inversement.

2.3. Les registres

Ce sont comme éléments de mémorisation de données ou d’informations que les bascules sont les plus utilisées. Le stockage de données a généralement lieu dans des groupes de bascules appelés "registres".

2.3.1. Registre à décalage

Un registre à décalage consiste en un assemblage de bascules commandées par une horloge commune. L’information est décalée en série d’une extrémité à l’autre du registre.. De ce fait, le registre à décalage comprend généralement une seule entrée de données et une seule sortie en plus de l’entrée d’horloge comme le montre la figure suivante.

2.3.2. Transfert de l’information

La manipulation qu’on fait subir aux données conservées dans des bascules ou des registres est le transfert. Par transfert, on entend l’échange de données d’un registre à l’autre. Il existe quatre façons de transférer de l’information pour l’écriture et la lecture dans un registre :

    Écriture série, lecture série : système lent si on désire charger ou lire le contenu d’un registre de plusieurs bits.

  Écriture série, lecture parallèle : l’information est chargée un bit à la fois, ce qui correspond à une interface lente pour un équipement rapide (ligne de communication-ordinateur).

  Écriture parallèle, lecture série : l’information est lue un bit à la fois, ce qui correspond à une interface rapide pour un équipement lent (ordinateur-ligne de communication).

  Écriture parallèle, lecture parallèle : méthode plus rapide, car l’information peut être transférée en une seule impulsion d’horloge.

2.3.3. Rotation

Dans un registre à décalage, le bit présent à la sortie n’est plus mémorisé et cela devient parfois un inconvénient. Dans certaines situations, on veut lire le contenu du registre tout en le préservant. Il devient possible de le faire à l’aide d’une contre réaction en renvoyant la sortie d’un registre à décalage vers l’entrée. Cette option demande cependant l’ajout d’une entrée "MODE" pour commander soit la rotation, soit l’enregistrement des données en série.

2.3.4. Horloge manuelle

Pour vérifier le fonctionnement des registres en laboratoire, on a besoin d’une horloge manuelle c’est-à-dire des impulsions générées à partir d’un bouton poussoir.

2.3.5. Registre à décalage universel (7495)

Il consiste en bascules RS dont les entrées sont sollicitées par des portes qui réalisent une fonction logique dépendante du raccordement externe. Il devient essentiel d’analyser la table de vérité pour connaître les conditions de mise en marche en série ou en parallèle.

Remarquer la présence de deux entrées d’horloge reliées avec la borne "MODE CONTROL" qui permettent de sélectionner un fonctionnement en série ou en parallèle.

Le 7495 offre la possibilité d’utiliser une fréquence d’horloge plus élevée pour le mode parallèle "Clock 2" et une fréquence d’horloge plus faible pour le mode série "Clock 1". Le signal d’horloge peut aussi être branché en commun avec les entrées pour osciller à la même fréquence indépendamment du mode de fonctionnement.

Voici l’essentiel de l’analyse de la table de vérité de la page suivante:

Si l’entrée "mode control" = 0

o L’entrée série devient active, permettant à un bit d’être chargé

o L’horloge 1 commande les bascules

o Le registre réalise l’opération de décalage à droite

o La sortie D fait office de sortie série

Si l’entrée "mode control" = 1

o Les entrées parallèles deviennent actives, permettant à un mot de 4 bits d’être chargé

o L’horloge 2 commande les bascules

o Le registre mémorise le mot et le rend disponible sur les sorties parallèles

o Le décalage à gauche s’effectue seulement si l’on connecte QB à A, QC à B et QD à C, l’entrée série devient alors l’entrée D.

ENTRÉES

SORTIES

MODE CONTRÔLE

HORLOGE

SÉRIE

PARALLÈLE

QA

QB

QC

QD

2(L)

1(R)

A

B

C

D

H

H

X

X

X

X

X

X

QA0

QB0

QC0

QD0

H

X

X

a

b

c

d

a

b

c

d

H

X

X

QB

QC

QD

d

QBn

QCn

QDn

d

L

L

H

X

X

X

X

X

QA0

QB0

QC0

QD0

L

X

H

X

X

X

X

H

QAn

QBn

QCn

L

X

L

X

X

X

X

L

QAn

QBn

QCn

L

L

X

X

X

X

X

QA0

QB0

QC0

QD0

L

L

X

X

X

X

X

QA0

QB0

QC0

QD0

L

H

X

X

X

X

X

QA0

QB0

QC0

QD0

H

L

X

X

X

X

X

QA0

QB0

QC0

QD0

H

H

X

X

X

X

X

QA0

QB0

QC0

QD0

2.4. Terminologie des mémoires

2.4.1. Cellule mémoire

Circuit électrique ou dispositif qui stocke un seul bit (0 ou 1). Comme exemple de cellule mémoire, mentionnons la bascule et le condensateur.

2.4.2. Mot mémoire

Groupe de bits (cellules) dans la mémoire qui correspond à des instructions ou à des données. Par exemple, un registre formé de huit bascules peut être considéré comme une case mémoire qui conserve un mot de huit bits. La longueur des mots dans un ordinateur d’aujourd’hui s’échelonne habituellement entre 4 et 64 bits selon la taille de l’ordinateur.

2.4.3. Octet ou byte

Expression désignant un mot de huit bits. Un octet a toujours 8 bits comme son nom l’indique.

2.4.4. Capacité

Nombre correspondant à la quantité de bits que l’on peut mémoriser dans un dispositif mémoire.

Exemple : soit une mémoire de 4096 mots de 20 bits, cela représente une capacité de mémorisation totale de 4096 x 20 = 81920 bits.

Le nombre de mots dans une mémoire est souvent un multiple de 1024 (210). En pratique, il est courant d’appeler « 1K » le chiffre 1024 lorsqu’on parle de la capacité de la mémoire. Ainsi une mémoire qui a une capacité de 4Kx20 est en réalité une mémoire de 4x1024x20 = 81920 bits.

La mise au point de mémoires de plus en plus grandes a permis d’inventer une nouvelle désignation de la capacité : le mégaoctet « Mo » qui représente 220 octets = 1048576 octets = 1048576x8 = 8388608 bits.

Exercice 1 : Soit un circuit mémoire de 2K x 8. Dites combien de mots peuvent être mémorisés dans ce boîtier. Dites quelle est la longueur d’un mot et indiquez le nombre total de bits que l’on peut placer dans ce boîtier.

-----------------------------

2K = 2 x 1024 = 2048 mots

Chaque mot a 8 bits (1 octet)

2048 x 8 = 16384 bits au total

Exercice 2 : Laquelle de ces deux mémoires peut conserver le plus de bits : une mémoire de 5 Mo ou une mémoire de 1 méga mot de 16 bits de longueur ?

-----------------------------

5 Mo = 5 x 1048576 x 8 = 41943040 bits

1 méga mot x 16 = 1048576 x 16 = 16777216 bits

Réponse : la mémoire de 5 Mo est plus grande que la mémoire de 1 méga mot de 16 bits.

2.4.5. Adresse

Nombre qui permet de repérer la localisation physique d’un mot en mémoire. Chaque mot stocké dans un système mémoire possède une adresse exclusive. Les adresses sont toujours spécifiées sous forme de nombres binaires bien que l’on utilise pour plus de commodité, l’hexadécimal ou le décimal.

Exemple : mémoire de 8 mots

Adresse

Mot

000

Mot 0

001

Mot 1

010

Mot 2

011

Mot 3

100

Mot 4

101

Mot 5

110

Mot 6

111

Mot 7

2.4.6. Opération de lecture

Opération au cours de laquelle un mot binaire stocké dans un emplacement mémoire (adresse) est retrouvé puis transféré dans un autre emplacement. Si on a besoin du mot 4 de la mémoire, on effectue une opération de lecture à l’adresse 100. La lecture du mot 4 ne l’efface pas à l’adresse 100. Une opération de lecture est aussi appelée « opération d’extraction ».

2.4.7. Opération d’écriture

Opération au cours de laquelle un mot binaire est installé dans un certain emplacement de la mémoire. On donne aussi le nom « d’opération de stockage » à ce mouvement.

Chaque fois qu’un nouveau mot est écrit dans un emplacement mémoire, il remplace le mot s’y trouvant déjà.

Exemple : écriture de 01102 dans la case mémoire 1010 d’une mémoire de 16 x 4 bits

Adresse

Bit 3

Bit 2

Bit 1

Bit 0

Mot 0

 

 

 

 

Mot 1

 

 

 

 

Mot 2

 

 

 

 

Mot 3

 

 

 

 

Mot 4

 

 

 

 

Mot 5

 

 

 

 

Mot 6

 

 

 

 

Mot 7

 

 

 

 

Mot 8

 

 

 

 

Mot 9

 

 

 

 

 Mot 10

0

1

1

0

Mot 11

 

 

 

 

Mot 12

 

 

 

 

Mot 13

 

 

 

 

Mot 14

 

 

 

 

Mot 15

0

1

1

1

Cette mémoire comprend :

    Une broche RW (W « write » pour écriture, R « read » pour lecture) qui permet d’indiquer au composant s’il faut écrire ou lire dans la mémoire.

     Un ensemble de broches A0-A3 qui constitue un bus d’adresses permettant de sélectionner une adresse précise.

     Un ensemble de broches D0-D3 qui constitue un bus de données bidirectionnel où vont circuler les données à écrire ou à lire.

La table de vérité relative à cette mémoire est la suivante  (X = Non pertinent) :

Modes

Entrées de commande

Sorties

Non (CS)

Non (RW)

Non (Q)

Écrire

0

0

État logique1

Lire

0

1

Complément des données rangées

Attente

1

X

État logique1

Écriture du mot 0110 à la case mémoire 1010 :

Il faut activer la broche d’écriture (RW=0)

Les nombres 0110 et 1010 sont respectivement présentés sur les bus de données et d’adresses de la mémoire.

Le mot 0110 vient se ranger dans les cases de l’adresse 1010. Le contenu précédent de l’adresse est évidemment perdu.

2.5. Types de mémoires électroniques

Elles sont habituellement classées selon la manière dont elles conservent l’information.

2.5.1. Mémoires vives

On peut écrire ou lire des mots à volonté. En général, elles perdent les informations lorsqu’elles ne sont pas alimentées. Ce sont des RAM (Random Access Memory).

2.5.2. Mémoires mortes

On peut seulement lire les informations qu’elles contiennent. Ce sont les ROM (Read Only Memory). Les mots binaires d’une ROM sont enregistrés une fois pour toutes à la construction de la mémoire et même hors tension, elle conserve toutes les données enregistrées.

2.5.3. Autres mémoires :

    Il existe des mémoires mortes que l’utilisateur peut lui-même remplir, mais une seule fois. Ce sont les PROM (Programmable Read Only Memory). Un appareil appelé programmateur de PROM est alors nécessaire.

      Mémoire morte effaçable programmable (EPROM) : une EPROM peut être programmée par un utilisateur, mais il est en outre possible de l’effacer et de la reprogrammer aussi souvent qu’on le désire. Une EPROM programmée est une mémoire rémanente qui retient ses données indéfiniment. Notez qu’il n’existe aucune façon d’exposer une seule cellule aux rayons ultra violets ; par conséquent le processus d’effacement touche toutes les cellules du même coup. L’effacement d’une EPROM demande une exposition de 15 à 30 minutes aux rayons ultra violets.

   Mémoire morte effaçable électriquement (EEPROM) : les EPROM sont affectées par deux inconvénients majeurs. D’abord, il faut les retirer de leur fiche pour les effacer et les reprogrammer. Ensuite, l’effacement touche tout le contenu de la mémoire ; il faut donc reprogrammer complètement la mémoire même si nos changements ne touchent que quelques mots. C’est pour ces raisons qu’a été développée la PROM effaçable électriquement (EEPROM), qui est dans les faits une version améliorée de l’EPROM. La principale supériorité de l’EEPROM sur l’EPROM provient de sa faculté d’être effaçable électriquement et de permettre une programmation de mots individuels de la mémoire. Un autre point avantageux de l’EEPROM est la possibilité de l’effacer en environ 10 ms dans le circuit.

2.6. Déroulement d’une opération

Sans nous préoccuper de la manière dont sont stockées, données et instructions, nous allons montrer sur un exemple comment fonctionne un microprocesseur.

Soit à calculer la somme S de deux nombres A et B. La succession des instructions à donner au microprocesseur est alors :

     Charger dans le microprocesseur le nombre A rangé à l’adresse D1 de la mémoire de données.

    Additionner le nombre B de l’adresse D2 de la mémoire de données.

    Stocker le résultat S de l’opération à l’adresse D3.

L’ensemble de ces trois ordres ou instructions, constitue un programme. Ces trois instructions sont rangées aux adresses 1 à 6 (par exemple) d’une mémoire d’instructions et les nombres A, B et S sont rangés aux adresses D1, D2, D3 d’une mémoire de données.

La succession des opérations effectuées par le microprocesseur est alors la suivante :

   Le compteur ordinal contient le nombre 1. L’instruction CHARGER est envoyée dans le microprocesseur et décodée ; le compteur ordinal passe à 2, l’adresse D1 est décodée et le nombre A est envoyé dans l’U.A.L. Il la traverse pour venir remplir l’accumulateur (voir figure 1). Le compteur ordinal passe à 3

 Le compteur ordinal contient le nombre 3. L’instruction ADDITIONNER est envoyée dans le microprocesseur et est décodée. Le microprocesseur sélectionne alors dans l’U.A.L. l’opération d’addition, le compteur ordinal passe à 4, l’adresse de B est décodée, le nombre B est additionné au contenu A de l’accumulateur (voir figure 2). Le résultat S = A + B apparaît dans l’accumulateur. Le compteur ordinal passe à 5.

   Le compteur ordinal contient le nombre 5. La dernière instruction STOCKÉE est envoyée dans le microprocesseur et analysée par le décodeur d’instructions, le compteur ordinal passe à 6, l’adresse D3 est décodée. Le contenu S de l’accumulateur est alors envoyé dans la case D3 de la mémoire de données (voir figure 3). Le contenu du compteur ordinal vaut alors 7, mais il n’y a plus de tâche à effectuer.

Remarque : la succession d’opérations que nous venons de décrire dure seulement quelques microsecondes.

 

Suite

Retour au début

Microcontrôleur PIC

Sommaire

Accueil