Sie sind auf Seite 1von 40

CHAPITRE IV : ARCHITECTURE DES

SYSTEMES PROGRAMMES

I. Généralités

Un système microprogrammé est un ensemble de cartes électroniques (ou un circuit intégré)


qui va pouvoir être programmé pour réaliser des tâches particulières.
Les structures matérielles des systèmes de traitement de l’information sont essentiellement
organisées autour d’un microprocesseur.

Cependant, le microprocesseur ne peut fonctionner sans un environnement minimal


comportant :
- une horloge
- une zone de mémoire (mémoire vive et mémoire morte) pour les données, les
programmes et résultats,
- une ou plusieurs interfaces pour les périphériques.
Entre les différents ensembles, les liaisons fonctionnelles sont assurées par un ou plusieurs
groupe de conducteurs en parallèles appelés bus.

Deux architectures différentes existent :

– l’architecture de Von Neumann qui utilise une mémoire unique pour les programmes
et les données et basée sur un bus unique. Celui-ci véhicule les instructions et les données.
(Fig.1) ;
– l’architecture de Harvard où la mémoire pour les programmes est séparée de la
mémoire pour les données ; cette architecture est basée sur deux bus. Un bus est utilisé pour
les données et un autre pour les instructions. (Fig.2).

Fig.1 Architecture de Von Neumann

B. MONNE Electronique numérique et systèmes programmés L2 1


Fig.2 Architecture de Harvard

Avantages et inconvénients.

II. Structure de base du système microprogrammé

En se basant sur l’architecture de Harvard, la structure va être la


suivante :

-Le processeur est l’organe principal du système, c’est lui qui exécute le programme qu’on lui
a demandé.
-La mémoire (RAM et ROM) permet de stocker le programme et les données (initiales et

B. MONNE Electronique numérique et systèmes programmés L2 2


résultats).
-Les Ports d’entrées-sorties permettent une interface avec l’extérieur, elle gère les entrées
(clavier, capteurs, …) et les sorties (écran, relais, …) du montage.
-Le Bus de données est le bus sur lequel circulent les données.
-Le Bus d’adresses est le bus sur lequel circulent les adresses des données.
-Le Bus de contrôle est le bus sur lequel circulent les commandes (horloge, ordres de lecture,
ordres d’écriture).

III. l’environnement du microprocesseur

III.1. Les Entrées – Sorties :


Dans un système à base de microprocesseur, on appelle Entrées-Sorties les échanges
d'informations entre le processeur et les périphériques extérieurs qui lui sont associés.
Elles sont parfois désignées par l'acronyme I/O, issu de l'anglais Input/Output. On prend
toujours comme référence le microprocesseur.
Dans un système :
Les entrées sont les données envoyées par un périphérique (disque, réseau, clavier,
interrupteur, ...) à destination de l'unité centrale;
Les sorties sont les données émises par l'unité centrale à destination d'un périphérique
(disque, réseau, écran, relais, ...).

Pour les entrées-sorties, on utilise des ports d’interfaces d’entrées-sorties.


On distingue les interfaces série et les interfaces parallèles.

III.2. La mémoire :

1°) Principe:
Il faut voir la mémoire comme un tableau, où les lignes contiennent les données, et le numéro
de la ligne du tableau est l’adresse.
Les données sont groupées :
Un groupe de 4 bits s’appelle un quartet,
Un groupe de 8 bits s’appelle un octet,
Un groupe de 16 bits s’appelle un mot, …
Un groupe de 32 bits s’appelle un double mot, …
2°) Capacité d’une mémoire :
La capacité d’une mémoire représente le nombre total de bits et le format correspond à la
longueur des mots. Le nombre de bits d'adresse k définit le nombre total de mots de la
mémoire, si n est le nombre de bits par mot, la capacité de la mémoire est donnée par :
Capacité = 2k mots = 2k x n bits
Cette capacité est exprimée en multiple de 1024 ou kilo. La table suivante résume la valeur
des autres préfixes utilisés pour exprimer les capacités des mémoires :

B. MONNE Electronique numérique et systèmes programmés L2 3


Application :
On a une mémoire qui possède 9 fils sur le bus d’adresses et 4 bits sur le bus de données.
Donnez sa capacité en Bits, octets, kb, kO ?
Réponse : 2
9
x4 = 512x4 = 2048 bits = 2kbits = 256O = 1 / 4KO

3°) Mémoire vive :


a) Définition:
La mémoire vive, aussi appelée RAM (Random Access Memory, soit mémoire à accès
aléatoire), est un type de mémoire informatique à accès aléatoire (par opposition à séquentiel)
et en lecture-écriture. On l'appelle aussi mémoire volatile pour signifier que toutes les
données sont perdues à l'extinction de l'alimentation électrique. Il s'agit typiquement de la
mémoire électronique qui contient les données en cours de traitement dans un système
programmé.
b) Divers types de mémoire vive :
 La Ram Statique :
C’est une mémoire peu gourmande en énergie, mais chaque bit mémoire nécessite 4
transistors MOS.
Ainsi une mémoire de 8ko nécessite 8192*8*4 = 262 144 transistors MOS !
 La Ram Dynamique :
Une mémoire dynamique (DRAM) ne conserve ses informations que si elle est « rafraîchie »
régulièrement, c'est-à-dire si un signal lui est transmis de manière régulière (toutes les x
millisecondes) afin de remettre au bon niveau les charges électriques représentant
l'information, et qui sinon s'affaibliraient progressivement jusqu'à disparaître. Pourquoi
compte-tenu de ces contraintes de rafraîchissement et de consommation utiliser quand même
de la DRAM ? Parce qu'elle est à la fois bon marché et rapide. Pourquoi est-elle bon marché
et rapide? Parce que la cellule mémoire élémentaire de la DRAM est très simple et ne
nécessite que peu de silicium.

B. MONNE Electronique numérique et systèmes programmés L2 4


On distingue sur les machines actuelles les types de mémoire RAM allant de la
SDRAM (Synchronous Dynamic RAM) à la XDRRAM (XDimm Rambus RAM).
Il existe aussi des mémoires Flash. Ce sont des mémoires NVRAM effaçables électriquement
(EEPROM), qui par conséquent gardent la mémoire sans être alimentée.

4° ) Mémoire morte :
a) Définition :
La mémoire morte, aussi appelée ROM (Read Only Memory, soit mémoire à lecture seule)
est une mémoire informatique impossible à modifier.
La mémoire morte n'est pas volatile, elle ne perd pas ses données, en l'absence de courant
électrique, contrairement à la mémoire vive.
b) Utilisation :
Les mémoires mortes sont utilisées, entre autres, pour stocker :
les informations vitales d'un ordinateur (exemples :BIOS, instructions de démarrage,
microcode)
Puisqu'elles ne peuvent pas être modifiées, il n'y a pas de risque d'effacement accidentel par
l'utilisateur.
des tables de constantes ou bien des tables de translation d'une valeur par une autre.
des jeux vidéo de consoles d'ancienne génération.

c) Types de ROM :
Il existe différents types de ROM en fonction de la possibilité de les programmer ou de les
effacer :
Les ROM (Read Only Memory) dont le contenu est défini lors de la fabrication.
Les PROM (Programmable Read Only Memory) sont programmables par l'utilisateur,
mais une seule fois.
Les EPROM (Erasable Programmable Read Only Memory) sont programmables par
l'utilisateur. Effaçables par une machine spéciale, la mémoire doit donc être facilement
démontable de son support.
Les EEPROM (Electrically Erasable Programmable Read Only Memory) sont
programmables par l'utilisateur. Elles sont effaçables électriquement.
Les UVPROM (Ultra Violet Programmable Read Only Memory) sont programmables par
l'utilisateur. Elles sont effaçables par bombardement d'ultra violet.

5°) Synthèse :

B. MONNE Electronique numérique et systèmes programmés L2 5


Un composant qu’on ne peut reprogrammer est appelé O.T.P. pour One Time
Programming : composant à programmation unique.

6°) Mémoire de masse :


En informatique, le terme de mémoire de masse regroupe tous les systèmes de stockage
d'informations
(données et programmes) auxquels a accès un microprocesseur (ordinateur).
Disque dur
Disquette
Bande magnétique
Disque Zip
CD
DVD
Clé USB

7°) Exemples de circuits mémoires

 SN74S89 : Mémoire à accès aléatoire (RAM) de16 mots de 4 bits

B. MONNE Electronique numérique et systèmes programmés L2 6


 SN7488 : Mémoire morte (ROM) de 32 octets

Les sorties de cette ROM sont des sorties à collecteurs ouverts.

 2764 – EPROM 64 kbits :

B. MONNE Electronique numérique et systèmes programmés L2 7


 C’est une mémoire EPROM de 8 koctets.
 Les entrées d’adresses A0..A12 sélectionnent une des mémoires du n°0 au n°8191.
L’entrée E active la puce et associée à G autorise la sortie (EN) de la donnée contenue
dans la case mémoire sélectionnée.

 Les sorties sont en haute impédance lorsque le circuit n’est pas validé.

 4016 – RAM statique 2K x 8 :

B. MONNE Electronique numérique et systèmes programmés L2 8


 C’est une mémoire RAM de 2 koctets.
 Les entrées d’adresses A0..A10 sélectionnent une mémoire n°0 à n°2047.
 L’entrée /S contrôle W.
 L’entrée /G contrôle W pour l’opération de lecture.
 L’entrée /W à « 1 » contrôlée par S et G (1,2) valide la sortie (EN), la cellule adressée (A)
est interconnectée (A,Z4) avec la sortie Dn. C’est l’opération de lecture.
 L’entrée /W à « 0 » contrôle (C3) l’entrée Dn adressée (A,3). Cette entrée est de type D
(mémoire bit). C’est l’opération d’écriture.

III.3. Le processeur ou microprocesseur :

1°). Généralités :
Le processeur, (ou CPU, Central Processing Unit, « Unité centrale [de traitement] » en
anglais) est le composant essentiel d'un Système (Micro) Programmé. Il exécute les
programmes qui permettent d’effectuer les principaux calculs. C’est en grande partie de lui
que dépendent les performances du système. Il permet d'effectuer des opérations
arithmétiques (additions, soustraction, multiplications, …) et logiques (Non, Ou, Et, OU

B. MONNE Electronique numérique et systèmes programmés L2 9


Exclusif, …) et d'organiser des transferts de données entre les différents éléments du système
; Sa cadence (le nombre de microinstructions qu'il effectue en une seconde) est exprimée en
Hertz (Hz) et dépend donc de la fréquence de son horloge.
Il faut faire la distinction entre CPU, processeur, microprocesseur et microcontrôleur.
le processeur, c'est le nom générique. C’est un composant (ou une carte électronique)
puissant (par opposition au microprocesseur).
le microprocesseur, c'est un composant généraliste (il peut tout faire, et n'est optimisé
pour rien), employé préférentiellement dans les systèmes informatiques, qui nécessite
quelques circuits complémentaires pour pouvoir dialoguer avec son environnement.
Selon les types il peut traiter directement des données de 8, 16, 32, 64 et même
quelquefois 128 bits. C'est le composant de base de l'informatique.
.
le microcontrôleur est plus adapté aux applications embarquées car il comporte sur sa
puce un certain nombre d'interfaces en plus du microprocesseur (Ram, ROM, I/O,…),
par contre il est généralement moins puissant en terme de rapidité ou de taille de
mémoire adressable et le plus souvent cantonné aux données de 8 ou 16 bits.
le processeur de signal (DSP : Digital Signal Processeur) est beaucoup plus spécialisé
calcul. Il est optimisé pour le traitement du signal, mais n'est pas prévu pour accomplir
des tâches généralistes de bas niveau qu'exécutent les deux précédents.

2°). Familles de microprocesseurs :


Il existe plusieurs familles de microprocesseurs parmi lesquelles :
La plus connue par le grand public est celle de la famille x86, développée
principalement par Intel (Pentium), AMD (Athlon), VIA, Transmeta... Les deux
premiers constructeurs sont désormais les seuls encore réellement dans la course et
fabriquent la plus grande partie des processeurs pour PC.
Les PowerPC d'IBM et Motorola
Le 6502 a servi à fabriquer le célèbre Apple II.
La famille 68000 de Motorola et dérivés
…….

3°). Fonctionnement :
Les microprocesseurs sont cadencés par une horloge. Au milieu des années 1980, les
microprocesseurs fonctionnaient de 4 à 8 MHz.
Les microprocesseurs actuels sont optimisés pour exécuter plus d'une instruction par cycle
d'horloge, ce sont des microprocesseurs avec des unités d'exécution parallélisées. De plus ils
sont dotés de procédures qui « anticipent » les instructions suivantes avec l'aide de la
statistique.
Dans la course à la puissance des microprocesseurs, deux méthodes d'optimisation sont en
concurrence :
1. La technologie du jeu d'instructions simplifié (RISC, Reduced Instruction Set Computer),
rapide avec des instructions simples, facile à fabriquer et dont on peut monter la vitesse de
l'horloge sans trop de difficultés techniques.
2. La technologie appelée CISC (Complex Instruction Set Computer), dont chaque
instruction complexe nécessite plus de cycles d'horloge, mais qui a en son coeur beaucoup
d'instructions pré-câblées.
Néanmoins, avec la considérable augmentation de la taille des puces électroniques et la

B. MONNE Electronique numérique et systèmes programmés L2 10


gigantesque accélération des fréquences d'horloge, la distinction entre RISC et CISC a quasi
complètement disparu.

4°). Structure d'un microprocesseur :

L'unité centrale d'un microprocesseur comprend essentiellement :

 une unité arithmétique et logique (UAL) qui effectue les opérations,


 des registres qui permettent au microprocesseur de stocker temporairement des
données,
 une unité de contrôle qui commande l'ensemble du microprocesseur en fonction des
instructions du programme.
Certains registres ont un rôle très particulier :
 le registre indicateur d'état (flags), ce registre donne l'état du microprocesseur à tout
moment, il peut seulement être lu,
 le compteur de programme (PC, Program Counter), il contient l'adresse de la
prochaine instruction à exécuter,
 le pointeur de pile (SP, Stack Pointer), c'est le pointeur d'une zone spéciale de la
mémoire appelé pile où sont rangées les arguments des sous-programmes et les adresses
de retour.

L'unité de contrôle peut aussi se décomposer :


 le registre d'instruction, mémorise le code de l'instruction à exécuter,
 le décodeur décode cette instruction,
 le séquenceur exécute l'instruction, c'est lui qui commande l'ensemble des organes du

B. MONNE Electronique numérique et systèmes programmés L2 11


microprocesseur.

5°) Jeu d’instructions


Le jeu d'instructions est l'ensemble des instructions machines qu'un processeur d'ordinateur
peut exécuter. Ces instructions machines permettent d'effectuer des opérations élémentaires
(addition, ET logique…) ou plus complexes (division, passage en mode basse
consommation…). Le jeu d'instructions définit quelles sont les instructions supportées par le
processeur. Le jeu d'instructions précise aussi quels sont les registres du processeur
manipulables par le programmeur (les registres architecturaux).

5.1. Types d’instructions


Instructions d’affectation
Ce sont des instructions indiquant un transfert entre la mémoire et un des registres principaux
du processeur.
Lorsque le transfert est effectué de la mémoire vers le CPU, on parle de lecture en mémoire.
Lorsque le transfert est effectué du CPU vers la mémoire, on parle d’écriture en mémoire.
Instructions arithmétiques et logiques
Ce sont des instructions mettant en jeu une donnée et le registre accumulateur de l’UAL. Le
résultat de cette opération est placée dans le registre accumulateur.
Exemple : Quelques exemples d’instructions arithmétiques et logiques :
– addition (ACC ← ACC + donnée) ;
– soustraction (ACC ← ACC - donnée) ;
– incrémentation de l’accumulateur (ACC ← ACC + 1) ;
– décrémentation de l’accumulateur (ACC ←ACC - 1) ;
– décalages à droite ou à gauche.
Instructions de comparaison
Comparaison du registre ACC à une donnée et positionnement des indicateurs d’état.
Exemple : L’opération ACC- donnée est calculée, le résultat est perdu mais le bit indicateur
d’état N est mis à 1 dans le registre d’état si ACC < donnée.
Instructions de branchement
Ces instructions apparaissent lorsqu’il y a des boucles
(do{...}while(condition), while(condition){...}, . . .)
ou des tests
(if(condition){...} else {...}, . . .).
Dans ce cas, le processeur ne doit plus suivre l’ordre séquentiel des instructions placées en
mémoire mais doit effectuer des sauts (en avant ou en arrière). La prochaine instruction à
exécuter étant repérée en mémoire par le registre IP, c’est ce registre qui est modifié lorsqu’un
saut doit être effectué.
On distingue deux types de branchements :
– branchements inconditionnels : IP ← @instruction ;
– branchements conditionnels : Si une condition est satisfaite, alors branchement, sinon
passage simple à l’instruction suivante.

5.2. Codage des instructions


Les instructions et leurs opérandes sont stockées en mémoire. Cet ensemble de données
composent le programme qui doit être exécuté.
Comme toute information, une instruction admet un codage binaire. Dû à la structure de la
mémoire (organisée en ensemble d’octets), une instruction sera représentée par un nombre

B. MONNE Electronique numérique et systèmes programmés L2 12


entier d’octets.
On distingue deux champs qui permettent de coder une instruction :
– le code opération indiquant au processeur quelle instruction réaliser ;
– le code opérande qui contient la donnée ou la référence à une donnée en mémoire (son
adresse).

5.3.Temps d’exécution
Chaque instruction nécessite un certain nombre de cycles d’horloges pour s’effectuer. Le
nombre de cycles dépend de la complexité de l’instruction. Il dépend également de l’endroit
où le processeur doit récupérer la donnée. Il est plus long d’accéder à la mémoire qu’aux
registres du processeur.
La durée d’un cycle d’horloge dépend de la fréquence d’horloge utilisée. Plus l’horloge bat
rapidement, plus un cycle est court et plus on exécute un grand nombre d’instructions par
seconde.

5.4.Classes des jeux d'instructions

On distingue plusieurs familles de jeux d'instructions, selon la façon dont les instructions
accèdent à leurs opérandes, leur codage et leur complexité. Les jeux d'instructions des
processeurs diffèrent aussi dans la façon dont sont spécifiés les opérandes des instructions.

5.5.Exemple :Description des instructions du µp 6809

ajoute l'accumulateur B à X (non


ABX
signé)
addition du contenu mémoire à
ADCA, ADCB
l'accumulateur avec retenue
addition mémoire à
ADDA, ADDB
l'accumulateur
addition mémoire avec
ADDD
accumulateur D (16 bits)
ET logique mémoire et
ANDA, ANDB
l'accumulateur
ET logique du CCR avec la
ANDCC
mémoire
ASL, ASLA,
décalage arithmétique à gauche
ASLB
ASR, ASRA,
décalage arithmétique à droit
ASRB
branchement si pas de retenue
BCC, LBCC
(bit C)
BCS, LBCS branchement si retenu (bit C)
BEQ, LBEQ branchement si égal à zéro (bit Z)

B. MONNE Electronique numérique et systèmes programmés L2 13


branchement si supérieur ou
BGE, LBGE
égale à zéro
branchement si supérieur à zéro
BGT, LBGT
(signé)
branchement si supérieur (non
BHI, LBHI
signé)
branchement si supérieur ou égal
BHS, LBHS
(non signé)
test d'un bit mémoire avec
BITA, BITB
l'accumulateur
branchement si inférieur ou égal
BLE, LBLE
(signé)
branchement si inférieur (non
BLO, LBLO
signé)
branchement si inférieur ou égal
BLS, LBLS
(non signé)
BLT, LBLT branchement si inférieur (signé)
BMI, LBMI branchement si négatif (bit N)
branchement si différent de zéro
BNE, LBNE
(bit Z)
BPL, LBPL branchement si positif (bit N)
BRA, LBRA branchement inconditionnel
BRN, LBRN non branchement
branchement à un sous-
BSR, LBSR
programme
branchement si pas de
BVC, LBVC
dépassement (bit V)
branchement si dépassement (bit
BVS, LBVS
V)
CLR, CLRA, mise à zéro mémoire ou de
CLRB l'accumulateur
comparaison mémoire avec
CMPA, CMPB
l'accumulateur
comparaison mémoire avec
CMPD
l'accumulateur D (16 bits)
comparaison pointeur de pile
CMPS, CMPU
avec mémoire
CMPX, CMPY comparaison index avec mémoire
COM, COMA, complément à deux de la
COMB mémoire ou de l'accumulateur
ET logique du CCR et attente
CWAI
d'interruption
DAA ajustement décimale de A
DEC, DECA, décrémentation de 1 mémoire ou
DECB accumulateur
OU exclusif mémoire et
EORA, EORB
accumulateur
EXG D,R Echange de D et de R

B. MONNE Electronique numérique et systèmes programmés L2 14


Echange de R1 et R2 (R1, R2 =
EXG R1,R2
A, B, CC, DP)
Incrémentation de 1 mémoire ou
INC, INCA, INCB
accumulateur
JMP saut inconditionnel
JSR saut à un sous-programme
chargement d'un accumulateur à
LDA, LDB
partie de la mémoire
chargement de la pile à partie de
LDS, LDU
la mémoire
chargement de l'index à partie de
LDX, LDU
la mémoire
chargement de l'adresse effective
LEAS, LEAU
dans le pointeur de pile
chargement de l'adresse effective
LEAX, LEAY
dans l'index
décalage logique à gauche
LSL, LSLA, LSLB
mémoire ou accumulateur
décalage logique à droite
LSR, LSRA, LSRB
mémoire ou accumulateur
multiplication non signée
MUL
(AxB=D)
NEG, NEGA, négation mémoire ou
NEGB accumulateur
NOP Non OPération
OU logique mémoire et l'-
ORA, ORB
accumulateur
OU logique du CCR avec la
ORCC
mémoire
empilement de tout registre sauf
PSHS
S sur la pile S
empilement de tout registre sauf
PSHU
U sur la pile U
Dépilement de tout registre sauf
PULS
S sur la pile S
Dépilement de tout registre sauf
PULU
U sur la pile U
ROL, ROLA, rotation à gauche mémoire ou
ROLB accumulateur
ROR, RORA, rotation à droite mémoire ou
RORB accumulateur
RTI retour d'interruption
RTS retour de sous-programme
soustraction accumulateur et de
SBCA, SBCB
la mémoire avec retenue
extension du signe B au travers
SEX
de l'accumulateur A
stockage accumulateur en
STA, STB
mémoire

B. MONNE Electronique numérique et systèmes programmés L2 15


stockage de D en mémoire (16
STD
bits)
stockage de pointeur de pile en
STS, STU
mémoire
STX, STY stockage de l'index en mémoire
soustraction accumulateur
SUBA, SUBB
mémoire sans retenue
soustraction D et mémoire (16
SUBD
bits)
SW11, SW12,
interruption par logiciel
SW13
synchronisation avec une
SYNC
interruption
TFR D,R transfert de D dans R
TFR R,D transfert de R dans D
TFR R1,R2 transfert de R1 dans R2
test d'une mémoire ou
TST, TSTA, TSTB
accumulateur

6°). Performances

Les caractéristiques des µP sont :


 la structure interne : taille des bus et des registres.
 la fréquence d'horloge (MHz) fixe la durée d'un cycle µP. Le 6809 fonctionne à 1
MHz avec un quartz à 4 MHz.
 la consommation : 0.5w pour le 6809.

Les performances d'un ordinateur mesurent le temps qui lui est nécessaire pour effectuer un
traitement donné. Trois éléments influencent ces performances :

 la puissance du processeur ;
 la mémoire disponible ;
 le temps consacré aux opérations d'entrées/sorties.

Le temps nécessaire pour un traitement informatique quel qu'il soit est toujours déterminé par
un de ces trois éléments mais celui des entrées/sorties est généralement prépondérant. En
effet, le temps consacré aux opérations I/O se compte en millisecondes alors que celui
consacré aux instructions effectuées par le processeur se compte en nanosecondes.

La taille de la mémoire est surtout importante dans la mesure où elle permet de réduire le
nombre d'opérations d'entrées/sorties, soit parce qu'une part plus importante des programmes
applicatifs peut résider en mémoire, réduisant ainsi les phénomènes de pagination, soit parce
qu'une partie de cette mémoire peut-être utilisée comme tampon (mémoire cache) pour le
stockage des flux de données des opérations I/O.

B. MONNE Electronique numérique et systèmes programmés L2 16


En programmation comme au niveau système, deux éléments matériels (entre autres)
influencent les performances des entrées/sorties, c'est-à-dire leur vitesse :

 la charge du processeur (i.e. son taux d'occupation), qui fournit les données sortantes
ou traite les données entrantes ;
 la charge du dispositif d'entrée/sortie, qui émet ou reçoit les données (on parle
généralement des lectures/écritures notamment pour les accès disques).

Si les ressources CPU ou I/O sont insuffisantes lors de l'exécution d'un ou plusieurs
traitements simultanés, on parle de saturation.

III.4. Adressage mémoire :


L'adressage mémoire est une technique informatique permettant au processeur d'accéder à la
mémoire informatique. L'interface utilisée est dans la plupart des cas un bus.
Sur N fils, on peut coder 2N valeurs. Ainsi, en précisant la largeur du bus d'adresse, en nombre
de bits (ou fils) on indique la capacité mémoire maximum accessible par le processeur (la
taille de son espace d'adressage).
En plus des fils codant l'adresse, il en faut au minimum un fil supplémentaire indiquant
l'opération qui sera faite sur la mémoire : lecture ou écriture.
Il est possible de multiplexer le bus d'adresse avec le bus de données, en mettant en commun
un certain nombre de fils, sachant qu'un signal supplémentaire devra être généré pour savoir
comment interpréter les valeurs binaires circulant sur ces fils (adresse ou données). Un
exemple de processeurs avec bus multiplexé : les 8086 ou 8088 d'Intel.
La méthode d'accès décrite ici est la plus simple : les fils d'adresses relient directement le
processeur à la mémoire. Des mécanismes plus complexes, tels que ceux utilisés pour la mise
en place d'un système à mémoire virtuelle nécessitent un décodage des adresses plus élaboré.

L’adressage mémoire se base sur la structure ci-dessous constituant la structure d’un système
minium à µp :

B. MONNE Electronique numérique et systèmes programmés L2 17


PIO = Interface parallèle souvent nommée PIA
IV. Décodage d’adresses ou Chip select :
On nomme chip select une entrée de contrôle de nombreux circuits intégrés, tel que les puces
mémoires, permettant d'activer ou désactiver le circuit. Quand elle est active, le composant
peut être adressé, quand elle ne l'est pas le composant est dans un mode dit standby (au
repos). L'économie d'énergie qui en découle est appréciable, surtout quand le nombre de
circuits désactivés est important (ce qui est le cas pour les puces formant la mémoire centrale
d'un ordinateur par exemple).

IV.1. Exemple pratique de Chip Select :


Voici le diagramme de connexion de l'EPROM Intel C1702A. La broche numéro 14 est le
Chip Select, dénoté CS. La consommation est de 35 mA et de 5 mA quand la puce est
inactivée par le biais du Chip Select.

B. MONNE Electronique numérique et systèmes programmés L2 18


Le brochage de la puce Intel C1702A.
La patte 14 est le Chip Select, actif quand il est à 0 V.

IV.2. Mise en application :

C'est une extraction des fils d'adresses, dirigées vers une unité de décodage qui contrôle les
broches Chip Select des unités raccordées sur les bus d'adresses et données. Le CPU est le
processeur, le PIO le contrôleur d'entrées/sorties parallèle et SIO le contrôleur
d'entrées/sorties série. Sur un ordinateur plus «étoffé» on trouvera plutôt des contrôleurs de
bus (PCI etc.).
Suivant le nombre de fils que possède le bus d'adresse d'un microprocesseur, on peut
déterminer la taille mémoire maximum qu'il peut adresser. Par exemple s'il possède 16 fils
d'adresse, il pourra accéder à 64 KO (216Octets) de mémoire.
Le bus d'adresse est donc décodé pour contrôler la ligne chip select des puces qui y sont relié.

B. MONNE Electronique numérique et systèmes programmés L2 19


Il y a plusieurs façons de décoder les adresses :
a). Décodage direct :
Il suffit de prendre directement les fils d'adresses pour activer les composants. Cela n'est
possible que dans les cas ou l'adressage est très simple comme par exemple un
microprocesseur qui adresse 4 Ko de ROM et 1 Ko de RAM, sans aucune autre contrainte.
Si l'on raccorde directement le fil A14 du bus d'adresse à la broche Chip Select de la ROM et le
fil A12 du bus d'adresse à la broche chip select de la RAM, ces deux espaces mémoire seront
accessibles comme suit :

Un autre argument en la faveur de cette technique est l'économie réalisée, le nombre de


circuits extérieurs étant nul.

b). Décodage par logique combinatoire :


Reprenons le cas du montage précédent, mais on a maintenant la contrainte que les 4 Ko de
ROM doivent être accessible à partir de l'adresse 0, et les 1 K de RAM contigüe, toute la
mémoire étant ainsi accessible entre 0 et 5 Ko.
Découpons la mémoire en tranches de 1 K, et assignons les 4 premières à la ROM et la
dernière à la RAM. Les adresses sont alors :

Il faut donc construire un circuit à 6 entrées (de A10 à A15) et 2 sorties CSROM et CSRAM qui
contrôleront chacune la broche Chip Select de la ROM et de la RAM.

B. MONNE Electronique numérique et systèmes programmés L2 20


Décodage complet des adresses. La circuiterie est complexe et relativement lente et coûteuse.
On constate qu'il faut 3 circuits intégrés pour décoder l'adresse.
Cette technique revient à décomposer l'adresse en deux parties : les N bits de poids fort
permettront la sélection du circuit via son Chip Select, et les bits de poids faible à adresser les
données à l'intérieur du circuit sélectionné.

c). Décodage partiel :

Il est possible de partiellement décoder l'adresse, dans cet exemple seul un inverseur est
utilisé.
Dans l'exemple précédent, on remarque que le bit A12 est discriminant. On peut donc tout
simplement l'utiliser pour partiellement décoder l'adresse : on économisera des circuits. On
notera que l'adresse 0xFxxx sélectionnera la RAM, alors qu'il n'y a pas de RAM à cette
adresse.

d). Utilisation d'un décodeur :


Des circuits intégrés spéciaux ont été conçu pour prendre en charge le décodage d'adresse, on
les appelle donc simplement décodeurs ou bien parfois démultiplexeurs. Ils possèdent N
entrées et 2N sorties.
Voici la table de vérité pour un décodeur «3 vers 8» :

B. MONNE Electronique numérique et systèmes programmés L2 21


Celui-ci vient donc tout naturellement s'interfacer sur le bus d'adresse, d'où les N fils de poids
fort iront vers l'entrée du décodeur, tandis que les 2N fils de sorties contrôleront les broches
Chip Select des circuits.
L'usage d'un décodeur implique que les blocs mémoires accédés sont de même taille.

e). Autres méthodes :


On peut utiliser une mémoire morte pour faire la sélection. Dans notre exemple ci-dessus,
pour complètement décoder l'adresse, il suffit d'une mémoire de 64 x 2 bits dont le premier fil
de sortie sera relié sur le Chip Select de la ROM et le second sur celui de la RAM. La
mémoire contiendra la valeur 10 pour les adresses entre 0 et 4 K et 01 aux adresses entre 4 et
5 K et 00 au delà.
L'inconvénient de l'utilisation de table de translation implanté sous forme de mémoire morte
est qu'elle peut être d'assez grande capacité si beaucoup de bits sont utilisés pour décoder.
Une PAL plus ou moins complexe est aussi parfois utilisée.

f ). Exemple simple de décodage d’adresses

B. MONNE Electronique numérique et systèmes programmés L2 22


Prenons l’exemple ci-contre
d’une mémoire RAM (4K*4)
situé dans l’espace mémoire
adressable.

On désire déterminer la plage


d’adresses utilisée par ce
périphérique ; le décodage
d’adresse étant réalisé par une
simple structure à portes
logiques.

a. l’état logique des lignes A12 à A15 qui sélectionnent la mémoire est :
A15A14A13A12=0010

b. la plage d’adresse utilisée par cette mémoire est définie par :


De A15A14A13A12A11A10A9A8A7A6A5A4A3A2A1A0=0010 0000 0000 0000 soit $2000
à A15A14A13A12A11A10A9A8A7A6A5A4A3A2A1A0=0010 1111 1111 1111 soit $2FFF

IV.3. Exercices d’application :

A. Un système à microprocesseur utilise le décodeur d’adresses suivant; quelle est la plage


d’adresses qui correspond au signal de sélection /Y6?
U1
A13 1 15
A Y0
A14 2 14
B Y1
A15 3 13
C Y2
Y3 12
6809 Y4 11
E 6 10
G1 Y5
4 G2A Y6 9
5 G2B Y7 7

74LS138

Réponse :
A15=1, A14=1 et A13=0. Alors la plage d’adresses est: $C000 à $DFFF.

B. Quelles sont la première et la dernière adresse où répond le boîtier U3 ?

B. MONNE Electronique numérique et systèmes programmés L2 23


U1 U2 U3

A15 B Y0 Table de
A14 A Y1 CS vérité de U2
Y2
B A sortie
Y3
E CS
0 0 Y0
DECODEUR 0 1 Y1
CPU D'ADRESSE MEM 1 0 Y2
6809 1 1 Y3

Indiquez la bonne réponse ou encerclez votre choix :


a) 1000 - $1FFF
b) 4000 - $7FFF
c) 8000 - $BFFF
d) $1000 - $7FFF
e) aucune de ces réponses
Réponse :
b) 4000 - $7FFF

V. Plan mémoire

Un plan mémoire (en anglais memory map) est une représentation graphique de ce que le
microprocesseur est susceptible de trouver à telle ou telle adresse. Le plan mémoire est la
traduction graphique du décodage d’adresses.

Exemple ; Soit le tableau suivant indiquant les plages d’adresses des circuits composant un
système à µp 6809 de Motorola :

B. MONNE Electronique numérique et systèmes programmés L2 24


Le plan mémoire correspondant est donné ci-dessous :

VI. Les échanges de données

Les interfaces d'entrées/sorties

B. MONNE Electronique numérique et systèmes programmés L2 25


Une interface d’entrées/sorties est un circuit intégré permettant au microprocesseur de
communiquer avec l’environnement extérieur (périphériques) : clavier, écran, imprimante,
modem, disques, processus industriel, ...
Les interfaces d’E/S avec des ports d’E/S sont connectées au microprocesseur à travers les
bus d’adresses, de données et de commandes.

On distingue des interfaces parallèles et des interfaces séries.

Schéma synoptique d’un circuit d’E/S :

l’interface parallèle (PIA ou PIO) :


PIA (Parallel Interface Adapter : adaptateur d’interface parallèle)

Ce type d’interface, répartie sur plusieurs ports (maximum 8 bits pour un µp 8 bits), permet de
prendre en compte des états logiques appliqués en entrée (état de capteurs) ou de générer des
signaux binaires en sortie (commande d’actionneurs). Les broches de ces ports peuvent donc
être configurées en entrée ou en sortie, avec différentes options (résistances de rappel, sorties
collecteurs ouverts, interruption...). La configuration ainsi que l’état logique de ces broches
est obtenue par des opérations d’écriture ou de lecture dans différents registres
associés à chaque port. On trouve généralement :
 Un registre de direction pour une configuration en entrée ou en sortie,
 Un registre de donnée recopiant les états logiques de chaque broche de
port,
 Un registre d’option permettant plusieurs configurations en entrée ou en
sortie.

B. MONNE Electronique numérique et systèmes programmés L2 26


Le rôle d’une interface parallèle est de transférer des données du microprocesseur vers
des périphériques et inversement, tous les bits de données étant envoyés ou reçus
simultanément.
L’interfaçage parallèle s’effectue comme l’indique le schéma ci-dessous :

Le 6821 de Motorola ou le 8255 d’Intel sont des interfaces parallèles programmables : elles
peuvent être configurée en entrée et/ou en sortie par programme.

l’interface série (ACIA) : ACIA (Asynchronous Control Interface Adapter)


qui est une interface série type bus RSXXX)
Ce type d’interface permet au microcontrôleur de communiquer avec d’autres systèmes à base
de microprocesseur. Les données envoyées ou reçues se présentent sous la forme d’un
succession temporelle de valeurs binaires images d’un mot.

Une interface série permet d’échanger des données entre le microprocesseur et un


périphérique bit par bit.

L’interfaçage série s’effectue comme l’indique le schéma ci-dessous :

Avantage : diminution du nombre de connexions (1 fil pour l’´émission, 1 fil pour la


réception).
Inconvénient : vitesse de transmission plus faible que pour une interface parallèle.
Il existe deux types de transmissions séries :

B. MONNE Electronique numérique et systèmes programmés L2 27


• asynchrone : chaque octet peut être émis ou reçu sans durée d´exterminée entre un
octet et le suivant ;
• synchrone : les octets successifs sont transmis par blocs séparés par des octets de
synchronisation.
La transmission asynchrone la plus utilisée est celle qui est d´définie par la norme RS232.

Exemple : transmission du caractère ’E’ (code ASCII 45H = 01000101B) sous forme série
selon la norme RS232 :

• l’´état 1 correspond `a une tension négative comprise entre −9 et −15 V, l´état 0 à


une tension positive comprise entre +9 et +15 V. Au repos, la ligne est `a l’´état 1
(tension négative) ;
• le bit de start marque le début de la transmission du caractère ;
• les bits de données sont transmis l’un après l’autre en commençant par le bit de
poids faible. Ils peuvent être au nombre de 5, 6, 7 ou 8. Chaque bit est maintenu sur la
ligne pendant une durée d´déterminée T. L’inverse de cette durée d´définit la fréquence
de bit = nombre de bits par secondes = vitesse de transmission. Les vitesses
normalisées sont : 50, 75, 110, 134.5, 150, 300, 600, 1200, 2400, 4800, 9600 bits/s ;
• le bit de parité (facultatif) est un bit supplémentaire dont la valeur dépend du
nombre de bits de données ´égaux à 1. Il est utilisé pour la détection d’erreurs de
transmission ;
• les bits de stop (1, 1.5 ou 2) marquent la fin de la transmission du caractère.

Principe d’une interface série :

B. MONNE Electronique numérique et systèmes programmés L2 28


Un circuit intégré d’interface série asynchrone s’appelle un UART : Universal Asynchronous
Receiver Transmitter) ; une interface série synchrone/asynchrone est un USART.
Exemples d’interfaces séries :
• 8251 (Intel) ;
• 8250 (National Semiconductor) ;
• 6850 (Motorola).
Connexion de deux équipements par une liaison série RS232 : les équipements
qui peuvent être connectés à travers une liaison série RS232 sont de deux types :
• les équipements terminaux de données (DTE : Data Terminal Equipment) qui
génèrent les données à transmettre, exemple : un ordinateur ;
• les équipements de communication de données (DCE : Data Communication
Equipment) qui transmettent les données sur les lignes de communication, exemple :
un modem.
Pour connecter ces équipements, on utilise des connecteurs normalises DB9 ou DB25 :

Différents signaux sont transportés par ces connecteurs :

B. MONNE Electronique numérique et systèmes programmés L2 29


Seuls les 2 signaux TxD et RxD servent à transmettre les données. Les autres signaux sont des
signaux de contrôle de l’échange de données.

Gestion des entrées/sorties


On distingue principalement trois façons de gérer les entrées/sorties.

Entrées/sorties programmées

Pendant l'exécution de son programme principal, le microprocesseur va périodiquement lire


l'état des périphériques d'entrée et modifie, si nécessaire, l'état des ports de sortie. C'est la
technique la plus simple. Exemple : système de régulation de chauffage d'un bâtiment.

Interruptions

Cette technique est utilisée lorsque le processeur doit réagir rapidement à un changement
d'état d'un port d'entrée. Le périphérique prévient le processeur par une ligne d'interruption
prévue à cet effet. Le processeur interrompt la tâche en cours, saute dans le sous-programme
destiné à gérer la demande spécifique qui lui est adressée ; à la fin du sous-programme, le
processeur reprend l'exécution du programme principal là où il l'avait laissée et donne un
résultat cohérent.

Accès direct à la mémoire

Cette technique, connue souvent par ses initiales DMA (Direct Memory Access), est utilisée
lorsque l'on doit procéder à un transfert rapide d'un grand nombre de données entre, par
exemple, un lecteur de CD et un disque dur. Plutôt que de transférer les octets d'abord vers un
registre du processeur, puis seulement vers le disque dur, les octets sont transférés directement
d'un périphérique à l'autre sans passer par les registres du processeur. Le transfert des données
est organisé par un circuit spécial appelé contrôleur DMA, qui prend la place du processeur
pendant le transfert et gère les bus d'adresses et de contrôle.

B. MONNE Electronique numérique et systèmes programmés L2 30


CHAPITRE V : LES MICROCONTROLEURS

V. Généralités
1. Du microprocesseur au microcontrôleur
Le microcontrôleur est un dérivé du microprocesseur. Sa structure est celle des systèmes à
base de microprocesseurs. Il est donc composé en plus de l’unité centrale de traitement, d’une
mémoire (mémoire vive RAM et mémoire morte ROM), une (ou plusieurs) interface de
communication avec l’extérieur matérialisé par les ports d'entrée/sortie.
En plus de cette configuration minimale, les microcontrôleurs sont dotés d'autres circuits
d’interface qui vont dépendre du microcontrôleur choisi à savoir les systèmes de comptage
(TIMER), les convertisseur analogique/numérique (CAN) intégré, gestion d’une liaison série
ou parallèle, un Watchdog (surveillance du programme), une sortie PWM (modulation
d’impulsion),…

2. Intérêt des microcontrôleurs :


Les microcontrôleurs sont de taille tellement réduite qu’ils peuvent être sans difficulté
implantés sur l’application même qu’ils sont censés piloter. Leur prix et leurs performances
simplifient énormément la conception de système électronique et informatique. L’utilisation
des microcontrôleurs ne connaît de limite que l’ingéniosité des concepteurs, on les trouve
dans nos cafetières, les magnétoscopes, les radios …..

3. Domaines d’application des microcontrôleurs


Les domaines d’application sont extrêmement variés et touchent tous les secteurs : grand
public, industriel, informatique, les télécommunications avec les téléphones portables,
l’automobile pour toutes les fonctions autour du tableau de bord, de l’ouverture des portes,
contrôle des sièges, feux, et autres alarmes.

4. Familles de microcontrôleurs
Il existe plusieurs familles de microcontrôleurs dont les plus connues sont :
Atmel : AT; familles AT89Sxxxx, AT90xxxx, …
Motorolla : famille 68HCxxx, …
Microship : PIC ; familles 12Cxxx, 16Cxxx, 16Fxxx, 18Fxxx, …
Intel : famille 80C186XX
STMicroelectronics : famille STX
Analog Devices : famille ADuC
Nous allons nous intéresser dans le cadre de ce cours à la famille Microchip PIC
(Programmable Integrated Circuit) de moyenne gamme (MIDRANGE).

VI. Architecture et utilisation d’un microcontrôleur

1. Structure de base du microcontrôleur


La structure générale du microcontrôleur se présente comme ci-dessous :

B. MONNE Electronique numérique et systèmes programmés L2 31


Voici 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 et EEPROM),
 De la mémoire programme (ROM, OTPROM, UVPROM ou EEPROM),
 Des interfaces parallèles pour la connexion des entrées / sorties,
 Des interfaces séries (synchrone ou asynchrone) pour le dialogue avec d’autres
unités,
 Des timers pour générer ou mesurer des signaux avec une grande précision
temporelle.

Selon les besoins de l’application et les modèles de microcontrôleurs disponibles dans une
famille (PIC, ATMEL, INTEL) il peut comprendre en plus :
 des blocs analogiques (CAN, CNA, filtres, amplificateurs, comparateurs analogiques,
…..)
 des blocs numériques (temporisateurs, modulateurs, multiplexeur, UART,…..)
 Un chien de garde : système anti-plantage du microcontrôleur. Il s’assure qu’il
n’y ait pas d'exécution prolongé d’une même suite d’instruction.Un compteur
préchargeable se décrémente régulière au rythme de la fréquence d’horloge. Si aucun
préchargement n’est effectué avant qu’il n’atteigne la valeur “0” un Reset est généré
relançant ainsi le microcontrôleur. Il faut donc penser à précharger régulièrement ce
chien de garde par programme lorsqu’il est activé.

B. MONNE Electronique numérique et systèmes programmés L2 32


Sur la figure suivante nous présentons le schéma type d’un microcontrôleur.

2. Programmation du microcontrôleur

a) langages et démarche de programmation pour les pic

Les microcontrôleurs sont des composants programmables. Ils font ce que leur dit de faire le
programme et rien d'autre. Le programme est une suite d'instructions. Elles sont codées en
binaire pour pouvoir être exécutées par le microcontrôleur (code machine).
Pour écrire un programme, il existe plusieurs solutions mais chacune nécessite une forme de
traduction.
On peut écrire le programme dans un langage de programmation de haut niveau (quelque
chose proche de l'Anglais) et ensuite utiliser plusieurs programmes pour le traduire en code
machine.
On peut écrire le programme dans un langage proche du code machine. C'est un langage de
bas niveau appelé assembleur. Il est alors aisé de le traduire en code machine.
La première méthode est habituellement plus rapide et plus facile pour le programmeur, mais
sa traduction n'est pas optimisée (la taille du programme est plus grande). La deuxième est
plus longue pour le programmeur mais elle permet de produire un code optimisé.
Dans tous les cas, la programmation débute par un algorithme ou un algorigramme qui décrit
l'enchaînement des actions à réaliser. A partir de là, le programmeur traduit chaque étape de
l'algorithme en langage évolué, comme le langage C ou en assembleur.

B. MONNE Electronique numérique et systèmes programmés L2 33


Pour programmer les PIC nous utiliserons un logiciel de programmation graphique,
FLOWCODE, grâce auquel le programme à implanter dans le PIC est directement représenté
sous forme d'ordinogramme.

 L’ALGORITHME.
Définition :
L’algorithme est une série des actes ou opérations élémentaires, qu’il faut exécuter en
séquence pour accomplir une tache quelconque, en suivant un enchaînement strict.
Représentation normalisée :
l’algorithme s’établit par une succession de phrases simples. L’algorithme utilise ce que l’on
appelle des structures algorithmiques.

 L’ALGORIGRAMME
Définition :
L’algorigramme ou ordinogramme ou organigramme est une représentation graphique et
normalisée de l’algorithme.

Représentation normalisée : il s’agit de dessiner une suite de symboles définit


comme il suit :

 DÉVELOPPEMENT DU PROGRAMME ET MISE AU POINT.


Que ce soit dans un langage assembleur ou évolué, l’écriture du programme ainsi que sa mise
au point doivent suivre le diagramme suivant:

B. MONNE Electronique numérique et systèmes programmés L2 34


 STRUCTURE D’UN PROGRAMME.
La saisie d’un programme, que ça soit en langage assembleur ou évolué, doit suivre la
structure suivante :

b) Le langage mnémonique (assembleur)

On désigne par le terme ASSEMBLEUR, le programme qui permet d’assembler le code


(programme d’assemblage), et le langage utilisé dans l’éditeur (langage d’assemblage).
Pour programmer en assembleur, on utilise des MNEMONIQUE, des OPERANDES et des
labels.
Les mnémoniques sont des mots réservés compris et interprétés par le programme
d’assemblage.
En assembleur MPLAB tout ce qui suit le point-virgule est ignoré de l’assembleur (donc c’est
la zone commentaire).
B. MONNE Electronique numérique et systèmes programmés L2 35
L'on travaille sur 3 colonnes principales pour programmer en assembleur :

 Colonne 1 : les labels ou la déclaration de variables,


 Colonne 2 : les opérateurs, mnémoniques, etc...
 Colonne 3 : les données à traiter

Fenêtre d’un éditeur standard pour réaliser un programme en assembleur :

On remarque que l'écran se découpe en 4 champs :


Champ étiquette
Champ opérateur (code mnémonique) ou directive d'assemblage
Champ opérande
Champ commentaire

c) Les langages structurés


La plupart des langages évolués comme le langage C sont structurés. Dans la
programmation, ces langages utilisent des structures algorithmiques fondamentales qui
sont décrites ci-dessous :

 Structure linéaire ou séquentielle :

Ex: P = U x I

B. MONNE Electronique numérique et systèmes programmés L2 36


 Structure itérative :

 Structure itérative : boucle « tant que » :

Tant que < condition réalisée >


Faire quelque chose

Répéter

B. MONNE Electronique numérique et systèmes programmés L2 37


Remarque : Le travail peut ne jamais être effectué.

 Structure itérative : boucle « jusqu’à » :

Faire quelque chose

Jusqu’à ce que < condition réalisée >

Remarque : Le travail à effectuer l’est au moins une fois.

 Structure alternative :

Ex: Un candidat est reçu au BTS si

B. MONNE Electronique numérique et systèmes programmés L2 38


VII. Analyse d’un problème et synthèse par une solution
microprogrammée

1. Analyse et solution microprogrammée


Pour une conception liée à un problème avec une solution microprogrammée, on procède
comme suit :
 Analyse du problème et découpage éventuel en sous problèmes
 Elaboration de l’algorithme
 Choix du microcontrôleur
 Programmation du microcontrôleur

2. Le choix du microcontrôleur
Lorsqu’on décide de développer un nouveau produit à base de μC, puisque l’offre est très vaste,
plusieurs paramètres vont orienter notre choix vers un produit plutôt qu’un autre :

1) Le prix : il y a de grand écart de prix entre les produits, liés par exemple à la
taille et au type de mémoire, ainsi qu’à la nature et le nombre de périphériques.
2) Les périphériques : on peut se demander si toutes les fonctions décrites dans le
cahier des charges seront réalisées par le μC ou s’il faut ajouter des
périphériques externes.
3) La taille des espaces mémoire : L’espace mémoire programme sera-t-il
suffisant pour l’application ?
4) La consommation électrique : déterminant pour des produits destinés à
fonctionner sur batterie.
5) Les outils de développement de programmes : peut-on développer en langage
évolué ? Existe-t-il un environnement de développement intégré (éditeur,
assembleur, compilateur, simulateur/debugger) ?
6) Expérience/savoir faire.

B. MONNE Electronique numérique et systèmes programmés L2 39


3. Outils de programmation d'un PIC
Comme toute solution programmable, le microcontrôleur nécessite un outillage informatique
et éventuellement un programmateur. A chaque microcontrôleur correspond son outil de
développement.
Pour développer une application fonctionnant à l’aide d’un microcontrôleur, il faut disposer
de :

- Le compilateur : Logiciel traduisant un programme écrit dans un langage donné (C,


basic, assembleur) en langage machine.
- Le programmateur : Transfert le programme compilé (langage machine) dans
la mémoire du microcontrôleur. Il est constitué d’un circuit branché sur le port série
du PC, sur lequel on implante le PIC, et d’un logiciel permettant d’assurer le transfert.
Il existe différents logiciels pour le programmateur, exemple : Icprog.

Les microcontrôleurs PIC utilisent la plate-forme logiciel de développement MPLAB


Integrated Development Environment IDE.
Dans l'environnement MPLAB, Le programme doit être écrit en assembleur, langage proche
de la machine et donc nécessitant un long apprentissage.
On peut utiliser un langage de programmation évolué comme le langage C pour programmer
les microcontrôleurs:
Le code source écrit en langage c doit donc être compilé en assembleur à l'aide d'un
compilateur C.

B. MONNE Electronique numérique et systèmes programmés L2 40