Vous êtes sur la page 1sur 9

CHAPITRE 1 : GENERALITES SUR LE SYSTEME A MICROPROCESSEUR

I- INTRODUCTION
Un microprocesseur ou µP est un composant (un circuit intégré) né du développement de l’informatique et
de l’électronique. Il comprend plusieurs unités fonctionnelles autrefois réalisées par de nombreux
composants dans les anciens ordinateurs ou actuellement par quelques composants dans les ordinateurs
récents d’assez grande puissance. L’emploi du µP ne se limite pas aux ordinateurs. Les µPs et d’autres
composants intégrant quelques fonctions supplémentaires. Un µP est capable d’enchaîner automatiquement
des opérations arithmétiques, logiques, etc. sur des données binaires. L’enchaînement de ces opérations est
commandé par un programme enregistré dans une mémoire.
II- STRUCTURE D’UN SYSTEME A MICROPROCESSEUR
Un système à µP permet de réaliser un traitement
automatique de l’information ; le terme « information »
devant être compris comme « élément significatif » :
parole, image, mesure d’une grandeur physique, etc. Un
système à µP comprend le µP proprement dit et des
composants annexes. Un système à µP procède
périodiquement à une acquisition d’information, un
traitement automatique de cette information puis à sa
restitution.
II-1 Acquisition et restitution de l’information (Entrées et Sorties d’un s.a.m.)
Un système à µP n’a d’utilité que s’il peut
échanger des informations avec le milieu extérieur
; il dispose donc d’entrées/sorties (notées E/S).
Un système à µP comprend une unité de traitement
dont les E/S sont de type binaire (0/1). Le cœur de
cette unité est le µP. En général les E/S sont
groupées par paquet, ou mot (fréquemment de 8
bits) ; on parle alors de port d’E/S.
Un port 8 bits peut correspondre à plusieurs E/S
(état d’un poussoir, d’un détecteur de passage,
commande d’un relais, etc.) ou à une seule
information codée sur 8 bits (mesure de la vitesse d’un moteur issue d’un C.A.N. par exemple).
Pour traiter d’informations analogiques, un système à µP doit posséder des convertisseurs (Convertisseur
Analogique Numérique CAN et Convertisseur Numérique Analogique CNA-), comme sur la figure 2
II-2 Exemples d’application
1. Balance électronique
o acquisition : prix au kg (Pkg) saisi à partir d’un clavier, masse de l’article (M) issue d’un
capteur et d'un conditionnement (amplification, …)
o traitement : calcul du prix à payer (P) P = M × Pkg
o restitution : affichage de la masse, du prix au kg et du prix à payer, etc.
2. Asservissement en vitesse d’un moteur
o acquisition : vitesse souhaitée (consigne ΩC) et vitesse réelle du moteur (Ω)
o traitement : calcul de la commande à appliquer au moteur en fonction de la différence
ε=Ω−ΩC
o restitution : pilotage de l’interface de puissance de commande du moteur.

III- PRINCIPE DE FONCTIONNEMENT D’UN SYSTEME A MICROPROCESSEUR


III-1 Instruction et Programme
Le traitement automatique de l’information consiste en l’exécution par le µP d’une suite de tâches
élémentaires appelée instructions. L’ensemble de ces instructions constitue le programme.
Prenons l’exemple de l’asservissement de vitesse présenté précédemment. Le programme
correspondant, très simplifié, ressemble à ce qui suit :

1/9 Chapitre 1 : Généralités sur les S.A.M.


• acquérir le mot représentatif (octet) de la consigne (ici la vitesse
de rotation désirée),
• acquérir le mot représentatif de la vitesse réelle du moteur,
• soustraire l’octet représentatif de la vitesse de l’octet de la
consigne,
• multiplier le résultat par 32 (c’est un exemple),
• envoyer le résultat de la multiplication sur la sortie de
commande du moteur,
Chacune des lignes précédentes correspond à une
instruction.
En pratique, chaque type de µP peut comprendre un
ensemble limité d’instructions parfaitement définies ; on parle de jeu d’instructions du µP. A chacune de ces
instructions correspond un code (sur un ou plusieurs mots mémoire) connu du µP.
Le µP est donc obligatoirement associé à une mémoire (mémoire programme) qui contient les codes
des instructions à exécuter rangés dans des mots mémoires à des adresses successives (sauf en cas de rupture
de séquence).
Si le programme est « figé », on emploie une mémoire de type ROM ; au contraire si ce dernier doit
être changé régulièrement comme c’est le cas pour les logiciels d’applications des micro-ordinateurs on
utilise une RAM dans laquelle on charge au préalable (à partir d’une disquette par exemple) les codes du
programme.
La mémoire programme d’un µC est souvent de petite taille (quelques kilo octets ou quelques
dizaines de kilo octets), alors que celle associée à un µP peut être très importante (plusieurs Méga octets ou
beaucoup plus).
III-2 Exécution du programme
Une fois le programme placé dans la mémoire associée au µP, le µP
fonctionne de la façon suivante (fig.4)
Un µP décrit en permanence le cycle décrit à la figure 4. Ainsi, si
on considère l’exemple de la figure 3, le µP :
 place l’adresse Ad sur le bus d’adresses et lit l’octet
ainsi adressé en ROM,
 exécute l’instruction correspondante,
 calcule l’adresse de l’instruction suivante Ad+1,
 place Ad+1 sur le bus, exécute l’instruction 2, etc.
Remarque : le cycle décrit ici correspond à des µP simples. Certains
µP peuvent, dans certains cas, exécuter une instruction pendant
qu’ils recherchent la suivante.

IV- CONCEPTION D’UN SYSTEME A MICROPROCESSEUR


La conception d’un ensemble comprenant un système à µP ou un µC peut
se décomposer en 3 parties :
 Obtention du code à placer en mémoire programme à partir du
cahier des charges
 Essais / mise au point
 Programmation industrielle de la mémoire associée au µP.

IV-1 Obtention du code binaire


Le code placé en mémoire est dit code exécutable ou code binaire ou encore
code objet.
La démarche simplifiée suivie pour concevoir un programme, donc pour
obtenir la suite de codes correspondante est présentée à la figure 5 :
L’écriture du programme et la traduction se font sur un micro-ordinateur.
Le résultat est un fichier qui contient le code exécutable.

2/9 Chapitre 1 : Généralités sur les S.A.M.


a) Le traducteur
Terme général pour désigner un logiciel capable de traduire le SOURCE (écrit dans un langage « facilement
» compréhensible par le programmeur) en un fichier EXECUTABLE compréhensible par le µP.
b) L’assembleur
Traducteur pour langage basé directement sur le jeu d’instruction du µP. A chaque instruction du µP
correspond un mnémonique. Celui-ci est en général la contraction du ou des mots désignant l’action exercée
par l’instruction. Le mnémonique permet donc d’évoquer facilement ce que réalise l’instruction. Le langage
de programmation utilisé est le langage d'assemblage (Assembly language).
Par exemple : en langage d'assemblage 68HC11
(microcontrôleur 8 bits de MOTOROLA) la ligne suivante :
DEC $4000 signifie : décrémenter (d’où le mnémonique
DEC) la donnée enregistrée à l’adresse 4000h.
Après assemblage puis chargement en mémoire on
obtiendrait la suite de codes décrite figure 6.
Le programme source, écrit en langage d'assemblage
(assembly language), est constitué des mnémoniques et
d'autres informations.
Remarque : On utilise fréquemment le terme « assembleur »
à la place de « langage d'assemblage ». On dira alors un
programme écrit en assembleur.
Chaque µP à ses instructions propres et donc des
mnémoniques différents si bien qu’un programme écrit en
assembleur ne peut être directement utilisé avec un µP autre
que celui pour lequel il a été écrit.
c) Le compilateur
Traducteur pour langage indépendant du jeu d’instruction (C, Pascal, FORTRAN, etc.). Par exemple, en C
l’opération précédente pourrait s’écrire : DATA = DATA - 1; avec DATA (nom donné à la donnée)
enregistrée à l’adresse 4000h. Cette écriture est bien indépendante du µP choisi et peu être compilée aussi
bien pour un 68HC11 (elle produit alors les codes précédents), que pour un 8031, qu’un pentium, etc.
IV-2 Essais et mise au point
Après avoir obtenu le code exécutable, il existe plusieurs possibilités pour la mise au point. On commence
généralement par vérifier que le logiciel est correct d'un point de vue fonctionnel, avec un logiciel de
simulation sur ordinateur, puis on procède aux essais avec le matériel.
a) Essais matériels : solution à émulateur
C’est la solution la plus performante et la plus utilisée industriellement pour des µP 8/16 bits (et même plus).
Lors de la phase de mise au point, le programme n’est pas directement chargé dans la mémoire associée au
µP ou dans la mémoire interne du µC, mais il est placé dans un outil chargé de se substituer à cette mémoire
et de remplacer le µP ou µC. Il est alors possible de procéder à l’exécution contrôlée du programme.
On appelle émulateur l’outil de mise au point. Il est constitué d’un boîtier qui se connecte :
 à une sonde qui remplace le µP ou µC sur le système cible. La sonde s’enfiche sur le support de
Circuit Intégré dans lequel vient normalement prendre place le µP ou le µC.
 à un micro-ordinateur qui, avec le logiciel approprié, permet de contrôler le fonctionnement de
l’émulateur. Plusieurs commandes permettent une exécution contrôlée du programme,
fonctionnement en pas à pas, affichage de valeurs de registres internes du système, …
b) Essais matériels : autres solutions
Il existe des solutions moins performantes pour les µP 8/16 bits (carte d’évaluation, kit pédagogique…).
Avec le débogage in situ, le µC dispose alors de connexions spéciales pour une liaison série avec un PC et
des ressources nécessaires pour une exécution par partie du programme (point d’arrêt). Cette possibilité
commence à se développer sur des µCs récents. La mémoire programme est d’abord programmée par la
liaison série. Puis les commandes de débogage sont envoyées par cette même liaison. Le débogage in situ
n’est possible qu’avec des µC intégrant de la mémoire flash facile à programmer et reprogrammer depuis
l’ordinateur de débogage.

3/9 Chapitre 1 : Généralités sur les S.A.M.


IV-3 La Programmation
Selon la quantité de production souhaitée, on utilise un des types de mémoire suivants :
 ROM par masquage : programmation lors de la fabrication. Pour les très grosses quantités.
 ROM OTP programmable par l’utilisateur.
 EPROM programmable par l’utilisateur.
 EEPROM programmable par l’utilisateur.
Pour les 3 derniers types, la programmation s’effectue avec un programmateur de mémoire.

V- STRUCTURE D’UN SYSTEME MINIMUM A MICROPROCESSEUR


On appelle système minimum à µP l’ensemble comprenant le µP et les composants indispensables à son
fonctionnement. Cet ensemble est inclus dans tout µC.
V-1 Les constituants d’un système minimum à microprocesseur
Le microprocesseur doit pouvoir lire le code des instructions en mémoire, acquérir des données, les traiter
puis les restituer.
Un système minimum à µP est constitué de :
 une unité d’échanges : les interfaces d’E/S,
 une unité centrale de traitement (CPU - Central Processing Unit) : le µP ou une partie du µC. C’est
elle qui calcule les adresses des instructions, des données à utiliser, effectue les traitements indiqués
par les instructions, …
 une unité de stockage du programme et des données : les mémoires.
L’unité d’échange est vue par l’unité centrale comme un ensemble de registres accessibles. Les informations
vers l’extérieur transitent par certains de ces registres.
Les différentes unités sont réunies par des canaux d’échanges : les bus.
Les bus permettent de véhiculer :
 les adresses des instructions, des données et des registres des périphériques d’E/S (unité d’échange)
 les instructions du programme pour l’unité centrale de traitement
 les constantes figées dans le programme
 les variables provenant de l’unité d’échange
 les variables, provenant de calculs intermédiaires, stockées dans une mémoire temporaire (RAM)
Pour que toutes les informations puissent circuler correctement entre toutes les unités, des signaux de
contrôles regroupés sous le nom de bus de contrôle sont utilisés.
V-2 Les deux architectures d’un système à microprocesseur
Pour l’organisation des différentes unités, il existe deux architectures :
 l’architecture Von Neumann (du nom d’un des savants qui contribua à la mise au point d’un des tout
premiers ordinateurs). C’est la plus courante. Les instructions, les constantes et les variables circulent
sur le même bus appelé bus de données (fig.7)
 l’architecture Harvard. Les instructions et les constantes circulent sur un bus différent de celui utilisé
pour les variables (provenant des E/S ou de calculs). Ce type d’architecture est utilisé sur des µC qui
ont connu un très grand développement ces dernières années : les PIC de Microchip (fig.8)
Remarque : Dans les applications embarquées, le programme est figé et par conséquent stocké dans une
mémoire de type ROM tandis qu’une RAM permet de stocker des résultats intermédiaires de calcul, des
données temporaires, etc.

4/9 Chapitre 1 : Généralités sur les S.A.M.


VI- SYSTEME MINIMUM A ARCHITECTURE VON NEUMANN
VI-1 Structure d’un système minimum (fig.9)
Le µP utilise le même canal
d’échange pour lire les instructions et
acquérir (lire) et restituer (écrire) des
données : le bus de données. La taille de ce
bus est une des caractéristiques principales
des µP et µC.
Les tailles les plus courantes des bus de
données sont :
• 8 bits pour les petites applications
embarquées (ex 68HC11, 8051, …)
• 16 bits pour les applications embarquées
de moyenne complexité (ex 68HC16,
80196, …)
• 32 bits, 64 bits pour les gros calculateurs, les ordinateurs (et même certaines consoles de jeux grand public)
Les adresses délivrées par le µP sont véhiculées par le bus d’adresses (16 bits pour le 68HC11 ce qui
correspond à 216 = 65536 adresses). La taille de bus d’adresse est en général en relation avec celle du bus de
données.
Remarque : Certains µPs utilisent, pour réduire le nombre de broches utilisées pour le bus d’adresses et le
bus de données.
VI-2 Fonctionnement simplifié d’un système minimum
Le fonctionnement est présenté dans ses grandes lignes au travers de
quelques exemples d’instructions pour un système organisé autour d’un
µP ou µC Motorola 8 bits (6809, 68HC11, …). Le fonctionnement pour
une autre famille de µP est très proche à la différence des mnémoniques et
codes opératoires. On suppose que :
 la mémoire est programmée
 le µC a effectué un certain nombre de tâches
 le µC est prêt à exécuter le programme présenté à la figure 10.
a) Addition
Le µC commence par exécuter l’instruction ADDA #$10 pour laquelle le
contenu d’un registre A (interne au µC) est additionné au nombre 10h et
le résultat rangé dans A. On suppose que le code de l’instruction à exécuter est rangé à l’adresse 9000h et
que le nombre 10h est rangé en 9001h.
a-1) Recherche de l’instruction (fig.11)
Le µC va chercher l’instruction en
plaçant son adresse, ici 9000h, sur le
bus d’adresse. Le décodeur active CS1,
seule l’EPROM est sélectionnée; les
autres circuits ont leurs sorties en état
haute impédance. Le contenu de la
position mémoire adressée (8Bh qui
est le code de l’instruction ADDA) est
placé sur le bus de données et lu par le
µC.

5/9 Chapitre 1 : Généralités sur les S.A.M.


a-2) Exécution de l’instruction (fig.12)
Le µC reconnaît le code de l’instruction
ADDA (décodage) et sait alors qu’il
doit additionner A avec le contenu de
l’adresse suivante.
Le µC va alors chercher le nombre à
additionner en délivrant l’adresse
mémoire qui suit immédiatement celle
où était rangé le code opération. Tout se
passe comme précédemment et la
donnée 10h est transférée dans le
microcontrôleur via le bus de données.
Enfin, le µC additionne A et 10h en
interne puis stocke le résultat dans A.
a-3) Calcul de l’adresse de l’instruction suivante
Ici cette adresse est 9002h
b) Transfert d’une donnée du μP vers l’extérieur
Le µC exécute l’instruction suivante STAA $4000 pour laquelle le contenu du registre A est transféré vers
l’extérieur via un registre de l’interface parallèle (localisé à l’adresse 4000h).
b-1) Recherche de l’instruction (fig.13)
Tout se passe comme pour l’exemple
précédent. Le µC place l’adresse
d’enregistrement de l’instruction, ici
9002h, sur le bus d’adresses; le
décodeur active CS1 et le code
opération est transmis au µC.

b-2) Exécution de l’instruction (fig.14, fig.15, fig.16)


Le µC reconnaît l’instruction, il sait désormais qu’il doit successivement aller chercher le poids fort
de l’adresse de stockage de A (40h) puis le poids faible de cette adresse (00h).

6/9 Chapitre 1 : Généralités sur les S.A.M.


Le µC a maintenant en sa
possession toutes les informations
nécessaires à l’exécution de
l’instruction à proprement parler :
il connaît l’action à réaliser, ici
transférer A vers l’extérieur, et il
connaît l’adresse de la destination,
4000h.

Le µC place alors 4000h sur le


bus d’adresses, place A sur le bus
de données et fait une demande
d’écriture de donnée (activation
d’une ligne ܹܴ en général). Ceci
a pour effet d’enregistrer A dans
un registre de l’interface parallèle
et de permettre sa sortie vers
l’extérieur (pour commander un
afficheur 7 segments par
exemple).

b.3) Calcul de l’adresse de l’instruction suivante


Ici cette adresse est 9005h.
c) Saut à une adresse
Le µC exécute alors l’instruction JMP $A000 qui permet de sauter directement à l’instruction enregistrée à
l’adresse A000h
c-1) Recherche de l’instruction
Comme précédemment, le µC acquiert le code de l’instruction (7Eh pour JMP).
c-2) Exécution de l’instruction et calcul de l’adresse de l’instruction suivante
Le µC va chercher l’adresse du saut, ici A000h. L’adresse de la prochaine instruction est forcée à A000h (au
lieu de 9008h comme on pourrait le supposer). Lors du cycle suivant, l’exécution du programme reprendra
donc à l’instruction rangée à cette adresse.

VII- SYSTEME MINIMUM A ARCHITECTURE HARVARD


VII-1 Structure d’un système minimum (fig.17)
La CPU utilise 2 canaux d'échange
pour lire les instructions et acquérir
(lire) et restituer (écrire) les données :
le bus instruction ou bus programme et
le bus de donnée. Les tailles de ces bus
sont en général différentes.
La taille la plus courante du bus de
données pour un µC est de 8 bits.
Les deux bus distincts (programme et
donnée) permettent de réaliser
simultanément une recherche d'une
instruction et l'exécution de
l'instruction précédente.

7/9 Chapitre 1 : Généralités sur les S.A.M.


VII-2 Fonctionnement simplifié
Le fonctionnement est présenté dans ces grandes lignes au travers de quelques instructions d'un PIC 16C5x
de Microchip. Le fonctionnement pour un autre µC est très proche, à la différence des mnémoniques et des
codes opératoires.
La mémoire programme est organisée en mots de 12 bits. Le bus de donnée est de 8 bits.
Un mot en mémoire programme contient à la fois le code opératoire et
l'opérande si c'est une constante ou des informations sur l'adresse de
l'opérande s'il s'agit d'une variable.
On suppose que :
 la mémoire est programmée
 le µC a effectué un certain nombre de tâches
 le µC est prêt à exécuter le programme présenté à la figure 18
Ce programme permet d'effectuer une addition d'une variable
contenue dans un registre d'adresse 15h avec la constante 10h, de
ranger le résultat sur la sortie d'un port d'adresse 06h puis de sauter à
l'adresse programme 80h.
Une addition doit nécessairement se faire avec un opérande dans un
registre W (équivalent de l'accumulateur dans d'autres µP/µC) et
l'autre dans un registre quelconque. On a choisi ici le registre d'adresse
15h. Il faut donc avec de réaliser l'addition ranger la constante 10h
dans le registre W.
a) Transfert de la constante dans le registre de travail (fig.19)
On utilise l'instruction MOVLW 10h (MOVe
Litteral [ici 10] to W). Le code en mémoire
programme est C10 soit 1100 0001 0000. Les
4 MSB correspond au code de l'instruction,
les 8 LSB correspondent à la constante.
En une seule lecture de la mémoire
programme, le µC a le code de l'instruction et
la constante nécessaire pour exécuter
l'instruction.
Pendant qu'il effectue la lecture de
l'instruction, le µC exécute l'instruction qu'il a
précédemment lue (non représenté ci-dessus).

b) Exécution du « Transfert de la constante », et recherche du code de


« l’addition » (fig20)
Pendant qu'il écrit la valeur de la constante
précédemment lue dans W, le μP recherche le
code de l'instruction suivante. ADDWF 15h,
W permet d'additionner la valeur contenue
dans W (10h) à la valeur contenue dans le
registre d'adresse 15h.Les informations sur le
bus d'instruction correspondent au code de
l'instruction et à l'adresse de l'opérande à
utiliser pour l'exécution.

8/9 Chapitre 1 : Généralités sur les S.A.M.


c) Exécution de « l’addition » et recherche du code « transfert » (fig.21)
Le µC utilise les 2 bus d'adresse
simultanément. D'un côté, il recherche le
code de l'instruction suivante à l'adresse 42h,
d'un autre côté il recherche l'opérande à
l'adresse 15h. Cette dernière adresse était
placée avec le code de l'instruction
précédente.
MVWF 06h permet de transférer le contenu
de W dans un registre d'adresse 6 qui
correspond à un port de sortie.

d) Exécution du « transfert » et recherche du code « saut » (fig.22)


Le µC utilise les 2 bus d'adresse
simultanément. D'un côté, il
recherche le code de l'instruction
suivante à l'adresse 43h, d'un autre
côté il transfère le contenu de W à
l'adresse 06h. Cette dernière adresse
était placée avec le code de
l'instruction précédente.
GOTO 80h permet de continuer le
programme à partir de l'adresse
indiquée.

e) Exécution du « saut » (fig.23)


L'exécution de l'instruction revient à
rechercher la nouvelle instruction à
l'adresse contenue avec le code du
saut (précédente instruction).

9/9 Chapitre 1 : Généralités sur les S.A.M.

Vous aimerez peut-être aussi