Vous êtes sur la page 1sur 98

Electronique

Programmée

Pr. W. EL HAMDANI
2022 / 2023
Qu'est-ce que l'électronique
programmée ?
Electronique "analogique" et "numérique

 l'électronique dite "analogique" qui va agir sur les signaux


électriques continus (c'est à dire qui peuvent prendre pleins de valeurs
intermédiaires) en les amplifiant, les diminuant, les filtrant. C'est le cas d'un
amplificateur audio par exemple.

 l'électronique dite "numérique" qui ne va utiliser que 2 niveaux de tension


fondamentaux, niveau HAUT et niveau BAS. La combinaison astucieuse de ces
niveaux sur plusieurs fils va permettre de compter, de stocker des valeurs
numériques, de commander des appareils, d'afficher des chiffres et des lettres, etc..
L'électronique numérique repose sur le comptage dit "binaire". Elle est à la base de
nombreux appareils qui nous entourent : de l'appareil photo-numérique à
l'ordinateur.
Pour mieux comprendre cette différence, on peut utiliser l'image d'un jet d'eau :
l'électronique analogique consisterait alors à faire varier le jet d'eau de façon
régulière, à la hausse ou à la baisse, un peu à la façon d'un robinet.
l'électronique numérique consisterait alors à allumer ou éteindre le jet d'eau.

2
 Electronique numérique programmée
L'électronique programmée est une section
évoluée de l'électronique numérique qui va
permettre de programmer un montage
numérique pour lui dire ce qu'il doit faire :
tester l'état de capteur, réaliser des calculs,
communiquer avec d'autres circuits
numériques et même convertir des signaux
analogiques en valeurs numériques. Le coeur
d'un montage d'électronique programmée
est le microcontrôleur.
3
Les bases de l’électronique
Petit rappel sur l’électricité
L’électricité est un déplacement d’électrons dans un
milieu conducteur. Pour que ces électrons se
déplacent tous dans un même sens, il faut qu'il y
ait une différence du nombre d'électrons entre les
deux extrémités du circuit électrique. Pour
maintenir cette différence du nombre d'électrons,
on utilise un générateur (pile, accumulateur,
alternateur...)
La différence de quantité d’électrons entre deux
parties d’un circuit s’appelle la différence de
potentiel et elle se mesure en Volts (V).

4
On peut comparer le fonctionnement d’un circuit électrique à celui d’un barrage
hydroélectrique:
Les électrons seraient l’eau
Le générateur serait le réservoir d’eau
Les conducteurs sont naturellement les conduites forcées
Le consommateur (une ampoule ou une diode, par exemple) est la turbine, qui
exploite l’énergie du déplacement des électrons
Sur un barrage, plus la différence entre l’altitude du niveau du réservoir et celui de la turbine
est importante, plus la pression de l’eau sera importante. Pour un barrage on appelle cette
différence d’altitude hauteur de chute. Cela équivaut sur un circuit électrique à la différence
de potentiel, qui se mesure en Volts (V) et se note U.
5
Le débit de l’eau (=la quantité d’eau qui
s’écoule par unité de temps) correspond à
l’intensité, aussi appelée courant, qui est
donc le débit d’électrons. Elle se mesure en
Ampères (A) et se note I.
La puissance électrique se note P et se mesure
en Watts (W). Elle exprime la quantité de
courant (I), transformée en chaleur ou en
mouvement. Sur un barrage, elle correspond
à l’énergie produite par la turbine
6
Les diodes
Il est possible de remplacer l’ampoule par une diode
électroluminescente, aussi appelée LED8. Elle a la particularité
de ne laisser passer le courant électrique que dans un
sens
Le courant électrique ne peut traverser la diode que dans le sens de
l’anode vers la cathode.
On reconnaît l’anode, car il s’agit de la broche la plus longue.
Lorsque les deux broches sont de même longueur, on peut
distinguer l’anode de la cathode, par un méplat du côté de cette
dernière.

7
Les résistances
Une résistance est un composant électronique ou
électrique dont la principale caractéristique est
d'opposer une plus ou moins grande résistance
(mesurée en ohms: Ω) à la circulation du courant
électrique.
On peut alors comparer, le débit d’eau au courant
électrique I (qui est d’ailleurs le débit d’électrons), la
différence de pression à la différence de potentiel
électrique (qui est la tension U) et, enfin, le
rétrécissement à la résistance R.
Ainsi, pour une tension fixe, plus la
résistance est faible, plus le courant la
traversant est fort. Cette proportion est
vérifiée par la loi d’Ohm:
8
La valeur d’une résistance est déterminée par
ses bandes de couleurs.

9
Un système numérique, intégrant de l’électronique, fait souvent apparaître
des fonctions ayant pour rôle le traitement d’informations : opérations
arithmétiques (addition, multiplication...) ou logiques (ET, OU...) entre
plusieurs signaux d’entrée permettant de générer des signaux de sortie.

Ces fonctions peuvent être réalisées par des circuits intégrés analogiques ou
logiques. Mais, lorsque le système devient complexe, et qu’il est alors
nécessaire de réaliser un ensemble important de traitements
d’informations, il devient plus simple de faire appel à une structure à
base de :

microcontrôleur ou microprocesseur.

10
Objectifs du cours
 Etre rendre capable de choisir, de programmer, d'utiliser
un microprocesseur /microcontrôleur et plus
généralement de vous transmettre une culture des
systèmes micro-programmés.
 Notions d'architecture des systèmes micro-programmés
 Éléments constitutifs d'un système micro-programmé
 Éléments de choix d'un système micro-programmé
 Fonctionnement d'un système micro-programmé
 Connaissances des différents types d'instruction et modes
d’adressage.
 Notion d'interruption.
 Programmation en Assembleur

11
Microprocesseur
Le microprocesseur est le composant hardware le plus connu d'un

système micro-programmé et l'unité intelligente de traitement des

informations. Son travail consiste à lire des programmes (des

suites d'instructions), à les décoder et à les exécuter.

14/11/2022 12
12
L'informatique industrielle
 Définition :
« L'informatique industrielle est une branche de
l'informatique appliquée qui couvre l'ensemble des
techniques de conception et de programmation, de
systèmes informatisés à vocation industrielle, qui ne
sont pas des ordinateurs. »

14/11/2022 13
L'informatique industrielle
 Domaines d'applications :
Alarme, automobile, aviation, instrumentation, médicale,
téléphonie mobile, terminaux de paiement pour carte
bancaire ...

14/11/2022 14
L'informatique industrielle
 Applications :
 Automates, robotique,
 Mesures de grandeurs physiques,
 Systèmes temps-réel,
 Systèmes embarqués.

14/11/2022 15
Les différents systèmes programmables
 Les circuits spécialisés ou ASIC :
(Application Specific Integrated Circuit)
Les circuits spécialisés sont des circuits spécialisés dès
leur conception pour une application donnée (circuit sur
mesure ).
exemples:
 DSP (Digital Signal Processor)
 processeur 3-D (carte graphique)
 contrôleur de bus, ...

14/11/2022 16
Les différents systèmes programmables
 Les circuits spécialisés ou ASIC :
Avantages :
 Très rapide
 Consommation moindre
 Optimisé pour une application

Inconvénients :
 Faible modularité
 Possibilité d'évolution limité
 Coût

14/11/2022 17
Les différents systèmes programmables
 Les circuits spécialisés ou ASIC :

14/11/2022 18
Les différents systèmes programmables
 PLD (programmable logic device, circuit
logique programmable):
« Un circuit logique programmable, ou réseau logique
programmable, est un circuit intégré logique qui peut
être reprogrammé après sa fabrication. Il est composé de
nombreuses cellules logiques élémentaires pouvant être
librement assemblé.» (Wikipédia)
 FPGA (field-programmable gate array, réseau de
portes programmables in-situ),
 PAL (programmable array logic, réseau logique
programmable),
 ...

14/11/2022 19
Les différents systèmes programmables
 PLD (programmable logic device, circuit
logique programmable):

Avantages :
 Forte modularité
 Rapidité

Inconvénients :
 Mise en œuvre plus complexe
 Coûts de développement élevé

14/11/2022 20
Les différents systèmes programmables
 PLD (programmable logic device, circuit
logique programmable):

14/11/2022 21
Généralités sur les systèmes à
microprocesseur
I. Architecture d’un système à
microprocesseur
Généralement ce que l’on trouve à l’intérieur d’un
tel composant :
 Un microprocesseur (C.P.U.),
 Des bus,
 De la mémoire de donnée (RAM)
 De la mémoire programme (ROM),
 Des circuits d’ entrées / sorties (PIO),

22
Généralités sur les systèmes à
microprocesseur
1. Microprocesseur
C’est un circuit intégré qui peut exécuter un
certains nombre d’instructions spécifiques à
lui. Les signaux électriques positionnés sur
ces broches ( niveau haut: +5Volt, niveau
bat: 0 V) lui permettre d’échanger des
informations avec son environnement
externe.

23
Historique:
L'histoire des microprocesseurs est intimement liée à celle de la
technologie des semi-conducteurs dont voici les principales
étapes :
 1940 Invention du transistor
 1950 Jack Saint CLAIR (TEXAS INSTRUMENTS) produit le ler
circuit intégré (CI)
 1961 Début de la production en série des CI
 1964 Intégration à petite échelle (SSI de 1 à 10 transistors)
 1968 Intégration à moyenne échelle (MSI de 10 à 500 transistors)
 1971 Intégration à grande échelle (LSI de 500 à 20 000
transistors)
 1980 Intégration à très grande échelle (VLSI plus de 20 000
transistors)

24
2. BUS
a. Bus d’adresses: A0….. Ap
Le µP positionne sur ce bus l’adresse du circuit avec
lequel il désire échanger des informations. Un bus
d’adresse est unidirectionnel, il est une sortie pour
le µp et une entrée pour les autres circuits. Ce bus
peut prendre 3 états: ‘0’, ‘1’ ou ‘Haute impédance’.
En haute impédance, ce bus est comme s’il n’est
pas connecté aux autres circuits. Selon les µP
courants, le bus d’adresses peut avoir 16, 20, 24 ou
32 lignes. Un bus d’adresses peut adresser jusqu’à
2p cases mémoires.

25
b. Bus de données: D0….. Dn
Ce bus permet la transmission des données entre le µP et
le circuit du système dont l’adresse est présente sur
le bus d’adresses. Il est bidirectionnel et réalisé en
logique 3 états. Le bus de données contient
couramment 8, 16 ou 32 lignes.
c. Bus de commande:
Ce bus assure la synchronisation, la commande et le
contrôle des échanges sur les bus entre le µP et son
environnement externes. Ce bus est réalisé aussi en
logique 3 états.

26
3. Mémoire RAM et ROM

La mémoire est la partie où programme et données sont


stockés. Il existe en 2 types de mémoires:
-La mémoire secondaire qui dispose d’une grande capacité
de stockage, mais un temps d’accès aux informations lent
(de l’ordre du ms).
-La mémoire principale sous forme de circuits intégrés.
Elle est directement accessible au µP et le plus rapidement
possible. Elle a un temps d’accès aux informations de
quelques centaines de ns ( quelques dizaines de ns pour la
mémoire cachée). On distingue deux types de mémoire :
RAM ( Random Access Memory) et ROM (Read Only
Memory).

27
3.1 Mémoire RAM ou mémoires vives:
Dans une mémoire RAM, les données peuvent être lues et écrites
indéfiniment par le µP. Elle s’efface lorsqu’on coupe l’alimentation.
Le µP s’en sert pour stocker des données temporaires ou pour charger
un programme à partir de la mémoire secondaire.
Il existe deux grandes familles de mémoires: Statiques et
dynamiques.

a) RAM statiques: Les bits sont stockés dans des circuits


élémentaires semblables aux bascules D. Leur particularité est de
garantir la mémorisation de l’information aussi longtemps que
l’alimentation électrique est maintenue sur la mémoire.

28
b) RAM dynamiques: Les bits sont stockés dans des petits
condensateurs. Chaque condensateurs peut emmagasiner
une charge électrique entre ces deux bornes.
Un bit à ‘1’ est matérialisé par la présence d’une
charge et à ‘0’ par son absence.

Pour ces RAM, le condensateur présente un inconvénient


majeur: la charge électrique qu’il stock a tendance à
diminuer progressivement dans le temps ( voir à
disparaitre).
C’est pourquoi les RAM dynamiques doivent être
régulièrement rafraichies (une fois toutes les qq ms, le µP
arrête temporairement l’exécution du programme en court
pour rafraichir la mémoire). Ce désavantage est compensé
par le fait qu’elle offre une forte capacité de stockage (4
fois plus que les RAM statiques).

29
3.2 Mémoire ROM ou mémoires mortes:
Ces mémoires permettent de stocker un programme et des données d’une
manière permanente et y résident même si on coupe l’alimentation du
circuit. Les données dans une mémoire ROM peuvent être seulement
lues. Un ordinateur possède toujours une ROM contenant le programme
du lancement pour permettre le démarrage du système. Il existe plusieurs
types de ROM:
a) ROM : La programmation est effectuée pendant la fabrication du
circuit. Après sa sortie, la ROM ne peut plus être effacée ni
reprogrammée.
b) EPROM ( Erasable Programmable ROM): C’est une ROM effaçable
par rayonnement UV. Une fois effacée, la ROM peut être reprogrammée.
c) EEPROM(Electrically Erasable Programmable ROM): C’est une
ROM effaçable électriquement par application spécial au circuit.

30
4. PIO (Port Input Output):
C’est un circuit d’interface du système aux
périphériques (écran, clavier...). Il permet le
multiplexage du bus de données. Un PIO possède un
certains nombre de ports qui peuvent être programmées
en entrées ou en sorties.

31
II. Architecture interne d’un microprocesseur standard

Elle est composée essentiellement d’une unité de


commande, d’une unité arithmétique et logique et d’un
ensemble de registres:

32
II. Architecture interne d’un microprocesseur standard

33
1. Unité de commande (UC):

 Elle permet de "séquencer" le déroulement des


instructions. Elle effectue la recherche en
mémoire de l'instruction, le décodage, l'exécution
et la préparation de l'instruction suivante. L'unité
de commande élabore tous les signaux de
synchronisation internes ou externes (bus des
commandes) au microprocesseur.

34
 PC : Programme Counter,
appelé aussi Compteur Ordinal. Il
contient toujours l’adresse de la
prochaine instruction à exécuter.
 Le décodeur d'instruction : Le
mot binaire (instruction) est
décodé pour savoir à quelle action
correspond l’instruction.
 Bloc logique de commande
(séquenceur) : Il organise
l'exécution des instructions au
rythme de l’horloge. Il élabore
tous les signaux de
synchronisation du
microprocesseur en fonction de
l’instruction qu’il a à exécuter.

35
2. Unité Arithmétique et Logique (UAL):

C'est l'organe qui effectue toutes les


opérations:
 Arithmétiques : addition, soustraction,
multiplication, ...
 Logiques : et, ou, non, décalage, rotation,
....
 Deux registres sont associés à l'UAL :
l'accumulateur et le registre d'état.

36
3. L'accumulateur (nommé : A):

C'est une des deux entrées de l'UAL. Il est


impliqué dans presque toutes les opérations
réalisées par l'UAL. Certains constructeurs
ont des microprocesseurs à deux
accumulateurs (Motorola : 6800).

Exemple: A étant l'accumulateur et B un


registre, on peut avoir : A+B
(ADD A,B : addition du contenu du registre A
avec celui du registre B, le résultat étant mis
dans A)

37
4. Le registre d'état (Flags : F)

 A chaque opération, le microprocesseur


positionne un certain nombre de bascules d'état.
Ces bascules sont appelées aussi indicateurs d'état
ou drapeaux (status, flags). Par exemple, si une
soustraction donne un résultat nul, l'indicateur de
zéro (Z) sera mis à 1. Ces bascules sont
regroupées dans le registre d'état

38
4. Le registre d'état (Flags : F) Suite

On peut citer comme indicateurs:


 retenue (carry : C)
 retenue intermédiaire (Auxiliary-Carry :
AC)
 signe (Sign : S)
 débordement (Overflow : O)
 zéro (Z)
 parité (Parity : P)T

39
Retenue : (carry : C).
Exemple: addition de nombres binaire sur 8
bits
11111100 FCH
+ 10000010 +82H

carry : 1 = 01111110 carry :1 = 7EH

40
 Retenue intermédiaire : (Auxiliary Carry :
AC).
Sur les opérations arithmétiques, ce bit signale
une retenue entre groupes de 4 bits (Half-byte:
demi-octet) d'une quantité de 8 bits.

Signe: (S)
Ce bit est mise à 1 lorsque le résultat de
l'opération est négatif (MSB: bit de plus fort
poids du résultat: à 1).

41
 Débordement : (overflow : O)
Cet indicateur est mis 1, lorsqu'il y a un dépassement de
capacité pour les opérations arithmétiques en complément à 2.
Sur 8 bits, on peut coder de -128 (1000 0000) à
+127 (0111 1111).
0110 1000 1110 1110
104 - 18
+ 0001 1010 1000 1010
+ 26 - 118
= 1000 0010 (-126) 0111 1000 (120) avec C=1
=130 -136

Dans cet exemple et dans les deux cas de figure (opération à droite
ou opération à gauche), le bit O est positionné à 1. L'indicateur de
débordement est une fonction logique (OU exclusif) de la retenue
(C) et du signe (S).

42
 Le bit Zéro : (Zéro : Z)
Ce bit est mis à 1 lorsque le résultat de l'opération est nul.
 Le bit de parité : (P)
Ce bit est mis à 1 lorsque le nombre de 1 de l'accumulateur est
pair.

Remarque : La plupart des instructions modifient le registre


d'état.
Exemple :
ADD A, B positionne les drapeaux : O, S, Z, A, P, C
OR B, C (B ou C -> B) positionne S, Z, P tandis que
MOV A, B (Move, Transférer le contenu de B dans A) n'en
positionne aucun.

43
Unité de traitement:  L’accumulateur : C’est un registre de
travail qui sert à stocker le résultat des
elle exécute les instructions opérations réalisées par L’UAL.
 L’Unité Arithmétique et Logique
(UAL) est un circuit complexe qui
assure les fonctions logiques (ET, OU,
comparaison, décalage, etc…) ou
arithmétique (addition, soustraction…).
 Le registre d'état : Chacun des bits de
ce registre dépend du résultat de la
dernière opération effectuée par
l’UAL. Exemple : Bit de retenue (carry
: C), débordement (overflow : OV ou
V), Zéro (Z) ...

44
Le traitement des instructions
Résumé

 (1) Charger une instruction depuis la


mémoire
 (2) Charger les opérandes depuis la
mémoire
 (3) Effectuer les calculs
 (4) Stocker le résultat en mémoire

45
5. Les registres:

 Il y’a deux type de registres : les registres d'usage


général, et les registres d'adresses (pointeurs).

5.1. Les registres d'usage général.


Ce sont des mémoires rapides, à l'intérieur du
microprocesseur, qui permettent à l'UAL de
manipuler des données à vitesse élevée. Ils sont
connectés au bus de données interne au
microprocesseur. L'adresse d'un registre est
associée à son nom (on donne généralement
comme nom une lettre) A, B,C...
 Exemple : MOV C,B: transfert du contenu du
registre B dans le registre C.

46
5.2. Les registres d'adresses (pointeurs)
 Ce sont des registres connectés sur le bus
d’adresses. On peut citer comme registre:
- Le compteur ordinal (pointeur de
programme PC) ;
- Le pointeur de pile (stack pointer SP) ;
- Les registres d'index (index source SI et
index destination DI).

47
5.2.1 Le compteur ordinal (pointeur de programme PC.)
Il contient l'adresse de l'instruction à rechercher en mémoire. L'unité
de commande incrémente le compteur ordinal (PC) du nombre
d'octets sur lequel l'instruction, en cours d'exécution, est codée.
Le compteur ordinal contiendra alors l'adresse de l'instruction
suivante.

Exemple d’un microprocesseur 8086 de INTEL :


 Exemple :
(PC)=10000H ; il pointe la mémoire qui contient l'instruction
MOV C,B qui est codée sur deux octets (89 D9H) ; l'unité de
commande incrémentera de deux le contenu du PC :
(PC) = 10002H (la mémoire sera supposée être organisée en octets).

Compteur de Programme (PC) 48


5.2.2 Le pointeur de pile (stack pointer SP).
 Il contient l'adresse de la pile. Celle-ci est une partie de
la mémoire, elle permet de stocker des informations (le
contenu des registres) relatives au traitement des
interruptions et des sous-programmes.
 La pile est gérée en LIFO : (Last IN First Out)
dernier entré premier sorti. Le fonctionnement est
identique à une pile d'assiettes.
 Le pointeur de pile SP pointe le haut de la pile, il est
décrémenté avant chaque empilement, et incrémenté
après chaque dépilement.
 Il existe deux instructions pour empiler et dépiler:
PUSH et POP.

Exemple:
 PUSH A empilera le registre A et POP A le dépilera.

49
Le pointeur de pile (stack pointer SP):

exemple:

PUSH A empilera le registre A et POP A le dépilera.

Sauvegarde sur la pile


50
exemple:
Question?
Que se passera-t-il durant l'exécution du programme
commençant en 12E30H?
Que vaudra SP et que contiendra la pile à cette adresse, à
la fin du programme?

51
Réponse.
Le programme commence par sauvegarder le contenu de C
dans la pile (PUSH C). Pour cela (SP) est décrémenté de
deux ((SP)=31000H-2=30FFEH), puis on effectue l'écriture
de (C) dans la mémoire à l'adresse (SP) : (30FFEH) = 6142H.
Pour PUSH A on obtient : (30FFCH)=1234H, et pour PUSH
B : (30FFAH)=2D5AH.
Pour l'instruction POP B, ((SP)) est chargé dans le registre B
((SP)=30FFAH ; (B)=2D5AH) puis (SP) est incrémenté de
deux ((SP)= 30FFAH+2=30FFCH). Enfin, pour POP A on
obtient : (A)=1234H et (SP)=30FFCH + 2 = 30FFEH 52
5.3. Les registres d'index (index source SI et index
destination DI).
 Les registres d'index permettent de mémoriser une
adresse particulière (par exemple: début d'un tableau).
 Ces registres sont aussi utilisés pour adresser la
mémoire de manière différente. C'est le mode
d'adressage indexé.

Exemple :
MOV A,[SI+10000H] place le contenu de la mémoire
d'adresse 10000H+le contenu de SI, dans le registre A.

53
Exemple d’opération sur le registre d'index.

54
6. Principe d’exécution d'une instruction.
Dans cette architecture standard, l’exécution
d’une instruction se fait en trois étapes:
 Recherche de l'instruction (Fetch) ;
 Décodage (décode) ;
 Exécution (exécuté).

Certaines instructions peuvent être exécuter


entièrement dans le µp, d’autres ont recours à
des données en mémoire. Donc le temps
d’exécution varie d’une instruction à l’autre.
Ce temps s’exprime en nombre de cycle
d’horloge.

55
Recherche d’Instruction en Mémoire

Décodage d’Instruction

Exécution
d’Instruction

Cycle d’exécution d’instruction

56
6.1. Recherche de l'instruction.
Le contenu de PC (compteur ordinal) est placé sur le bus
d’adresse (c'est l'unité de commande qui établit la connexion).
L'unité de commande (UC) émet un ordre de lecture
(READ=RD=1). Au bout d'un certain temps (temps d'accès à
la mémoire), le contenu de la case mémoire sélectionnée est
disponible sur le bus des données.
L'unité de commande charge la donnée dans le registre
d'instruction pour décodage.
Le microprocesseur place le contenu de PC (10000H) sur le
bus d’adresse et met RD à 1 (cycle de lecture). La mémoire
met sur le bus de données le contenu de sa mémoire n°
10000H (ici 89D9H qui est le code de MOV C,B ). Le
microprocesseur place dans son registre d'instruction le
contenu du bus de données (89D9H). L'unité de commande
décode et exécute l'instruction MOV C,B.
57
Compteur de Programme (PC).

58
6.2. Le Décodage de l’instruction.
Le registre d'instruction contient maintenant le premier mot
de l'instruction qui peut être codée sur plusieurs mots. Ce
premier mot contient le code opératoire qui définit la
nature de l'opération à effectuer (addition, rotation,...) et
le nombre de mots de l'instruction. L'unité de commande
décode le code opératoire et peut alors exécuter
l'instruction.
6.3. L’exécution de l’instruction.
Après l’exécution de l’instruction par micro-programme, les
indicateurs sont positionnés (O, S, Z, A, P, C). L'unité de
commande positionne le compteur ordinal (PC) pour
l'instruction suivante.

59
Les différents systèmes programmables
 Les systèmes micro-programmés :
Les microcontrôleurs sont typiquement des systèmes micro-
programmés.
Un microcontrôleur est un :
« Circuit intégré comprenant essentiellement un
microprocesseur, ses mémoires, et des éléments personnalisés
selon l'application »

Microcontrôleur = microprocesseur + périphériques

14/11/2022 60
Les différents systèmes programmables
 Les systèmes micro-programmés :

Avantages :
 Mise en œuvre simple.
 Coûts de développement réduits.

Inconvénients :
 Plus lent.
 Utilisation sous optimale.

14/11/2022 61
Architecture des systèmes à µP/µC

14/11/2022 62
Architecture des µP/µC
Deux types de processeurs :

• CISC : Complex Instruction Set Computer


 Grand nombre d'instructions,
 Type de processeur le plus répandu

• RISC : Reduced Instruction Set Computer


 Nombre d'instructions réduit (sélection des
instructions pour une exécution plus rapide)
 Décodage des instructions plus rapide

14/11/2022 63
Structures des systèmes micro-
programmés
 Les différents bus d'un système micro-
programmés :
« Un bus est un jeu de lignes partagées pour l’échange de
mots numériques. » (Traité de l’électronique, Paul Horowitz
& Winfield Hill)
Définition : Un bus permet de faire transiter (liaison
série/parallèle) des informations codées en binaire entre deux
points. Typiquement les informations sont regroupés en mots
: octet (8 bits), word (16 bits) ou double word (32 bits).
Caractéristiques d'un bus:
 nombres de lignes,
 fréquence de transfert.

14/11/2022 64
Structures des systèmes micro-
programmés
 Les différents bus d'un système micro-
programmés :

14/11/2022 65
Structures des systèmes micro-
programmés
Il existe 3 Types de bus :
 Bus de données : permet de transférer entre composants des
données,
ex. : résultat d'une opération, valeur d'une variable, etc.
 Bus d'adresses : permet de transférer entre composants des
adresses,
ex. : adresse d'une case mémoire, etc.
 Bus de contrôle : permet l'échange entre les composants
d'informations de contrôle ( bus rarement représenté sur les
schémas).
ex. : périphérique prêt/occupé, erreur/exécution réussie, etc.
Définition : Une adresse est un nombre binaire qui indique un
emplacement dans une zone mémoire
14/11/2022 66
Structures des systèmes micro-programmés
 Structure de Von Neumann
L'architecture VON NEUMANN a été la plus utilisée dans les
premiers systèmes microprogrammés.

Le principe de base de l'architecture de Von Neumann


est que les données et les instructions sont véhiculées
sur un même bus qui est le bus de données. Pour
accéder à ces données situées en mémoire, ou dans des
cases mémoires des circuits périphériques, le bus
d'adresse permet de véhiculer un mot binaire qui défini
où se trouvent les données.

14/11/2022 67
Structures des systèmes micro-programmés
 Structure de Harvard
Cette structure se distingue de l'architecture de Von Neuman par le fait que les
mémoires programmes et données sont séparées. L'accès à chacune des deux
mémoires se fait via un chemin distinct. Cette organisation permet de transférer
une instruction et des données simultanément, ce qui améliore les performances.

L'architecture généralement utilisée par les microprocesseurs est la structure Von


Neuman (exemples : la famille Motorola 68XXX, la famille Intel 80X86).
L'architecture Harvard est plutôt utilisée dans des microprocesseurs spécialisés
pour des applications temps réels, comme les DSP ou certains microcontrolleurs.

68
Les éléments de choix
 Architecture :
 ALU (8, 16, 32, 64 bits)
 Structure du processeur (Harvard, Von Neumann).
 Type de processeur (RISC, CISC).
 Taille des mémoires programme et donnée.
 Nombre de ports d’entrée/sortie.
 Fonctionnalités :
 Fonctions analogiques : CAN, CNA, Comparateur, ...
 Fonctions de communication : UART (Communication
 série), USB, I2C, ...
 Facilité de programmation

14/11/2022 69
Les éléments de choix
 Mise en œuvre, maintenance :
 Coût de développement : outils de développement,
formation, ...
 Suivi du microcontrôleur : production suivie,
disponibilité, composant obsolète, ...
 Caractéristiques électriques :
 Fréquence d’horloge
 Tensions d’alimentation
 Consommation d’énergie,…
 Caractéristiques physiques :
 Type de boîtier : DIL, PLCC, ...

14/11/2022 70
Les mémoires
Il existe deux types de mémoires:
Les mémoires vives : RAM (Random Access Memory)
 conservent leur contenu que lorsqu’elles sont sous tension
(mémoires volatiles) .

Les mémoires mortes: ROM (Read Only Memory)


 conservent leur contenu même en absence de tension
(mémoires non volatiles) .
des circuits accessibles uniquement en lecture (sauf pour
certaines types).

71
Les mémoires vives : RAM
On peut réaliser des mémoires RAM avec deux technologies
différentes:
 RAM dynamiques (DRAM)
 Ce type de mémoire est très utilisé car peu couteux.
 Chaque cellule binaire est réalisée à partir d’un transistor relié à
un petit condensateur.
 Nécessite un rafraichissement de tous les condensateurs du
boitier périodiquement, environ 1000 fois par seconde.
 RAM statiques (SRAM)
 chaque cellule binaire est réalisée à l’aide de 4 transistors
formant un bistable, circuit restant d’un l’état 0 ou 1 tant qu’il
est alimenté électriquement.
 utilisées lorsque l’on désire maximiser les performances (plus
coûteuses car leur construction demande 4 fois plus de
transistors que les DRAM).

72
Les mémoires mortes: ROM
Les mémoires mortes ne sont normalement accessibles qu’en lecture. On distingue
différents types de circuits de mémoires mortes :

 ROM :
circuit intégré dont le contenu est déterminé une fois pour toute au moment de la
fabrication.
 PROM (Programmable ROM) :
configurée une seule fois par l’utilisateur en utilisant un programmateur de PROM.
 EPROM (Erasable PROM) :
ce sont des PROM reconfigurables L’effaçage se produit en exposant le boitier à un
fort rayonnement ultraviolet (UV).
 EEPROM (Electricaly Erasable PROM) :
Même principe qu’une EPROM, mais l’effacement se fait à l’aide de signaux
électriques.
 FLASH EPROM :
Les mémoires FLASH sont similaires aux mémoires EEPROM, mais l’effacement
peut se faire par sélectivement par blocs et ne nécéssite pas le démontage du circuit.

73
Microprocesseur
6809
Rappel
Le microprocesseur est le composant hardware le plus

connu d'un système micro-programmé et l'unité

intelligente de traitement des informations. Son travail

consiste à lire des programmes (des suites

d'instructions), à les décoder et à les exécuter.

75
• Bit
signifie "binary digit", c'est-à-dire 0 ou 1 en numérotation
binaire. C'est la plus petite unité d'information manipulable
par une machine numérique.

Avec un bit il est ainsi possible d'obtenir deux états:


soit 1, soit 0. Pour un groupe de n bits, il est possible de
représenter 2n valeurs.

76
 L'octet.
L'octet est une unité d'information composée de 8 bits allant de
0 à 255. Il permet de stocker un caractère, telle qu'une lettre, un
chiffre ... Ce regroupement de nombres par série de 8
permet une lisibilité plus grande.

Une unité d'information composée de 16 bits est généralement


appelée mot. Une unité d'information de 32 bits de longueur est
appelée double mot.

77
 Unité S.I.:
Un kilo-octet (Ko) = 1000 octets

Un méga-octet (Mo) = 1000 Ko = 1 000 000 octets

Un giga-octet (Go) = 1000 Mo = 1 000 000 000 octets

Un tera-octet (To) = 1000 Go = 1 000 000 000 000 octets

78
Microprocesseur 6809
Le MC6809 est un microprocesseur à 8 bits très rapide et doté de caractéristiques
supportant les techniques de programmation moderne telles que la position
indépendante du code, la ré-entrée et la programmation modulaire. Différentes versions
du MC6809 sont offertent, voici la désignation du numéro de code.
VSS 1 40 /HALT
MC 68 A 09 C P XTAL
/NMI 2 39
/IRQ 3 38 EXTAL
Circuit intégré de Motorola /FIRQ 4 37 /RESET
Famille M6800 BS 5 36 MRDY
Vitesse: BA 6 M 35 Q
VCC 7 34 E
vide = 1Mhz A0 8 C 33 /DMA
A = 1.5 Mhz A1 9 32 R//W
A2 10
6 31 D0
B = 2.0 Mhz A3 11 8 30 D1
Désignation de la pièce A4 12 29 D2
pour la famille M6800 A5 13 0 28 D3
A6 14 27 D4
Plage de température: A7 15 9 26 D5
vide = 0° à +70° A8 16 25 D6
A9 17 24 D7
C = -40° à +85° A10 18 23 A15
Boîtier: A11 19 22 A14
A12 20 21 A13
P = Plastique
L = Céramique
Brochage du MC6809

79
Architecture Interne
Le microprocesseur possède 3 bus indépendants (non
multiplexés):
Bus de données bidirectionnel de 8 bits,
Bus d’adresse de 16 bits,
Bus de contrôle de 10 bits.

80
Architecture Interne

81
Architecture Interne
Le microprocesseur est composé de plusieurs registres et d'une unité
arithmétique et logique communément appelée ALU Arithmetic Logic Unit.
DO-D7 vcc
A0-A15
vss

Registre
d'instruction
16 8

PC
/RESET
U /NMI
Contrôle des /FIRQ
S interruptions /IRQ
/DMA
Y R/W
Contrôle /HALT
X des Bus BA
BS
A XTAL
D { B Horloge
EXTAL
MRDY
76543210 Position des bits
E
DP CC
EFHINZVC Nom des drapeaux Q

Carry = bit de report


oVerflow = bit de dépassement ALU
Zero = bit indiquant un résultat de 0
Negatif = résultat < 0
Irq = masque de l'interruption IRQ
Half carry = bit de demi report
Firq = masque d'interruption FIRQ
Entire flag = indicateur d'empilement 82
Registre de condition

83
Programmation d’un µP
PROGRAMME DE
NOM EXEMPLE DE TRADUCTION REMARQUES
PROGRAMME EN MACHINE

LANGAGE En binaire: Hexadecimal Loader - le seul langage compris par le CPU


- accepte les codes - le programme en langage machine est
MACHINE 10100101 hexadécimaux appelé programme objet
01100000 - les traduit en binaire - le programme Hexadecimal Loader fait
01100101 - les place en ordre dans la en général partie d'un programme appelé
01100001 mémoire MONITEUR. ses fonctions: examiner et
10000101 modifier le contenu des mémoires et des
registres; il permet l'exécution partielle
01100010 ou totale du programme
En hexadécimal:
A5
60
65
61
85
62

LANGAGE LDA $60 ASSEMBLEUR - le programme écrit sous forme


ASSEMBLEUR - accepte les mnémoniques mnémonique est appelé programme
ADC $61 - les traduit en binaire Source
STA $62 - les place généralement dans - il contient les champs: étiquette,
un fichier mnémonique (instruction avec
opérande) et commentaire.

LANGAGE DE En BASIC: INTERPRETEUR - langage orienté vers les procédures


- traduit et exécute le plutôt que des instructions données au
HAUT NIVEAU PRINT Allo programme ligne par ligne. CPU
- Basic N=PEEK(96) POKE COMPILATEUR: - prog. source indépendant du CPU ou de
-C 98,N END - traduit tout le programme l'ordinateur.
- Pascal en machine avant de
- ... l'exécuter.
84
Programmation d’un µP
Dès que l'on commence à programmer, il est extrêmement important de comprendre
les modes d'adressage si l'on veut profiter de toute la puissance du 6809. Dans une
instruction, l'adressage spécifie l'emplacement de l'opérande avec lequel l'instruction doit
être exécutée. Cet emplacement sera dorénavant appelé l'adresse effective.

85
Mode d’adressage
Adressage Immédiat
Dans ce mode d'adressage, le code opératoire 8 bit est suivi d'une valeur qui est
l'opérande de l'instruction. Ce type d'adressage permet de charger les registres
internes du microprocesseur avec la valeur de l'opérande. Le symbole « # »
signifie immédiat dans la syntaxe assembleur.

CPU

86
Adressage Inhérent
Mode d’adressage
Adressage Inhérent
Utilisé par les instructions qui agissent sur les registres internes du CPU et non sur
la mémoire. Il existe deux types de mode d'adressage inhérent :

1- Adressage inhérent simple: Le code opération contient toute


l'information nécessaire à l'exécution de l'instruction. Ces instructions codées sur un
octet sont: CLRA, CLRB, INCB, LSRA, LSRB...
exemple : CLRA, initialisation de l'accumulateur A par $00
INCB, incrémentation de 1 de l'accumulateur B.
ABX, addition de l'accumulateur B au registre X.
2- Adressage inhérent paramétré: L'instruction comporte un octet
supplémentaire permettant de préciser les opérandes intervenant dans
l'instruction. La présence de cet octet supplémentaire est indispensable pour les
instructions de type:
Echange et transfert de registres: le premier octet détermine le code opératoire
pur , le second les registres source et destination.
TFR U,S  transfert de U dans S
Instructions d'accès aux piles: le premier octet détermine le code opératoire pur, le
post-octet, les registres concernés par l’accès à la pile.
PSHS A, B, X  sauvegarde dans la pile de A, B, X 87
Mode d’adressage
Adressage Direct
Le premier octet définit le code opératoire, le second représente les 8 bits de
poids faible de l'adresse effective dont les 8 bits de poids fort se trouvent dans
le registre de page (DP). Ce mode nécessite au moins 2 octets. Il permet l'accès à des
données situées sur l'ensemble de l'espace mémoire du microprocesseur. Le symbole
« < » est une directive assembleur qui force l'adressage direct.

CPU

88
Mode d’adressage
Adressage Direct
Exemple :
Si le registre de page vaut $D3 : l'instruction LDA <$42 chargera l'accumulateur « A
» par le contenu de la case mémoire $ D342 qui est $7F.

Note:
l'adressage direct sera spécifié par le signe « < » placé devant l'opérande, dans la
syntaxe assembleur.

89
Mode d’adressage
Adressage Étendu
L'adressage étendu ou absolu permet de retrouver des données en mémoire. Le code
opératoire (8 bits) est suivi de 2 octets constituant l'adresse effective de
l'opérande proprement dit. Le symbole « > » est une directive assembleur qui force
l'adressage étendu.
CPU CPU

90
Mode d’adressage
Adressage Étendu
o Instructions sur trois octets:
Le premier octet (code opératoire) est suivi de l’adresse 16 bits spécifiant
l’emplacement de l’opérande (8 ou 16 bits).

Exemple :
LDA $21C0 ou LDA >$21C0  chargement de l’accumulateur A avec le
contenu de l’adresse $21C0.
Dans ce cas ,l’opérande est l’accumulateur A .
o Instructions sur quatre octets:

Le code opératoire est défini par les deux premier octet. Les 3éme et le 4éme
octets constituent l’adresse effective. Le premier octet est seulement
nécessaire pour les instructions qui opèrent sur les pointeurs S et Y et sur les
instructions de comparaison CMPU,CMPD.
Exemple :
LDY $347B ou LDY > $347B  Chargement du registre Y avec le contenu
de $ 347B.
91
Adressage Étendu Indirect

Ce mode d'adressage est identique au mode d'adressage étendu mais il possède en


plus une indirection. La notation assembleur " [ ]" force l'adressage étendu indirect.
Exemple :
LDA [$2000] chargement de l’accumulateur A avec le contenu dont
l’adresse se trouve en $2000 et $2001.
Exemple :
LDY [$2000] chargement du registre d’index Y avec le contenu dont
l’adresse se trouve en $2000 et $2001.
CPU CPU

92
Mode d’adressage
Adressage Relatif
1- Adressage Relatif Court:
Ce mode d'adressage est réservé pour les instructions de branchement.
CPU

2- Adressage Relatif Long:


Ce mode est identique au précédent, il est toujours réservé aux branchements. Les
instructions sont codées sur quatre octets, les deux premiers déterminent le code
opération, les 3è et 4è octets donnent la valeur signée du déplacement.

93
Mode d’adressage

Adressage Indexé Indirect


Le mode d'adressage indexé présente l'avantage de pouvoir travailler en indirection.
Dans ce cas on accède à l'adresse effective en transitant par une adresse intermédiaire

ADRESSE EFFECTIVE = BASE + DEPLACEMENT

Pour ce qui est du déplacement:


Déplacement nul.
Déplacement constant.
Déplacement accumulateur.
Base=compteur programme.
Auto-incrémentation/décrémentation.

94
Mode d’adressage
Adressage Indexé
Le mode d'adressage indexé présente l'avantage de pouvoir travailler en indirection.
Dans ce cas on accède à l'adresse effective en transitant par une adresse intermédiaire.
On peut donc écrire :
ADRESSE EFFECTIVE =
CONTENU MÉMOIRE DONT L'ADRESSE DE BASE EST LA SOMME
DE L'INDEX
+
LE DÉPLACEMENT.

Tous les modes d'adressage peuvent travailler en indirection


Pour ce qui est du déplacement: sauf les modes auto-incrémentation/décrémentation par un (
ce qui est normal car on ne génère ici que des octets) et le
Déplacement nul. mode déplacement constant codé sur 5 bits. La syntaxe
Déplacement constant. assembleur utilisée pour définir l'indirection est la même que
celle de l'adressage étendu : « [ ] ». Les instructions sont
Déplacement accumulateur. codés sur deux octets, le premier définit le code opératoire
Base=compteur programme. (identique à l'indexé simple), le second le type de
déplacement, le type de base et l'indirection.
Auto-incrémentation/décrémentation.

95
Mode d’adressage
Le microprocesseur 6809 offre de nombreuses possibilités d'adressage indexé (simple ou
indirect) suivant le type de base et de déplacement choisi. Le tableau suivant résume
toutes ces possibilités :

96
Exercices
Exercices sur les modes d'adressage
Trouvez le mode d’adressage utilisé pour chaque instruction. Les instructions de cet
exercice ne représentent pas un programme utilisable.
Mnémonique
Mode d’adressage
Opération Opérande
CLRA
LDA #$B4
STA $1000
LDA #$10
TFR A,DP
LDA $00
LDB [$1000]
LDA ,X
ADDA $01,X
STA $02,X

97
Exercices
Exercices sur les modes d'adressage
Trouvez le mode d’adressage utilisé pour chaque instruction. Les instructions de cet
exercice ne représentent pas un programme utilisable.
Mnémonique
Mode d’adressage
Opération Opérande
CLRA Inhérent simple
LDA #$B4 immédiat
STA $1000 étendu
LDA #$10 immédiat
TFR A,DP Inhérent paramétrique
LDA $00 direct
LDB [$1000] Étendu indirect
LDA ,X Indexé avec dépl nul
ADDA $01,X Indexé avec dépl cte
STA $02,X Indexé avec dépl cte

98

Vous aimerez peut-être aussi