Vous êtes sur la page 1sur 17

INSTITUT NATIONAL DES TELECOMMUNICATIONS ET DES TECHNOLOGIES

DE L’INFORMATION ET DE LA COMMUNICATION ORAN

MODULE

PROJET ELECTRONIQUE 1

1
LE MICROCONTROLEUR
Un microcontrôleur est une unité de traitement de l'information de type microprocesseur à
laquelle nous ajoutons des périphériques internes permettant de réaliser des montages sans
nécessiter l’ajout de composants annexes. Un microcontrôleur peut donc fonctionner de façon
autonome après programmation.

Il se présente sous la forme d’un circuit intégré réunissant tous les éléments d’une structure à
base de microprocesseur. Voici généralement ce que l’on trouve à l’intérieur de ce composant:

 microprocesseur (C.P.U.),
 mémoire de donnée (RAM et EEPROM),
 mémoire programme (ROM, OTPROM, UVPROM ou EEPROM),
 interfaces parallèles pour la connexion des entrées / sorties,
 interfaces séries (synchrone ou asynchrone) pour le dialogue avec d’autres unités,
 timers pour générer ou mesurer des signaux avec une grande précision temporelle,
 convertisseurs analogique / numérique pour le traitement de signaux analogiques.

Le fonctionnement d’un microcontrôleur est cadencé par une horloge généralement à base de
quartz ou de résonateur céramique.

Il peut aussi contenir les composants suivants :

 Un Watchdog : (surveillance du programme)


 Une sortie PWM (modulation d’impulsion)

Les microcontrôleurs présentent donc les avantages suivants :

 Encombrement réduit,
 Faible consommation,
 Coût réduit
 Fiabilité
 Mise en œuvre plus simple

Il existe trois familles de PIC :

- Base-Line : Les instructions sont codées sur 12 bits ;


- Mid-Line : Les instructions sont codées sur 14 bits ;
- High-End : Les instructions sont codées sur 16 bits.

Par rapport à des systèmes électroniques à base de microprocesseurs et autres composants


séparés, les microcontrôleurs permettent de diminuer la taille, la consommation électrique et le
coût des produits. Ils sont fréquemment utilisés dans les systèmes embarqués, comme les
contrôleurs des moteurs automobiles, les télécommandes, les appareils de bureau,
l'électroménager, les jouets, la téléphonie mobile, …etc.

2
Brochage du PIC ou microcontrôleur 16F84 :

 Vss et Vdd : broches d'alimentation (3 à 5,5 V).


 OSC1 et OSC2 : signaux d'horloges, ces broches peuvent recevoir un circuit RC ou un
résonateur.
 CLKIN : peut-être connectée à une horloge externe (0 à 4, 10 ou 20 MHz).
 MCLR : Reset (Master Clear).
 RA0, ..., RA4 : 5 entrées/sorties du port A.
 RB0, ..., RB7 : 8 entrées/sorties du port B.
 T0CKI : Entrée d'horloge externe du timer TMR0.
 INT : entrée d'interruption externe.

Brochage du PIC ou microcontrôleur 16F88 et 16F877 :

3
4
LE MICROPROCESSEUR
C’est l’apparition de la technologie CMOS permettant un grand degré d’intégration qui a ouvert
la voie à la fabrication de composants capables de contenir l’unité de contrôle et l’unité de
traitement d’un ordinateur sur une seule puce.

Le premier microprocesseur a été fabriqué par INTEL en 1971. C'était un 4 bits nommé 4004
destiné à équiper des calculatrices de bureau. En 1972 INTEL produit le premier
microprocesseur 8 bits appelé 8008 par référence au précédent destiné à répondre à un contrat
de fabrication d'un terminal et constitué de 3300 transistors et effectue 60000 instructions par
seconde grâce à une horloge à 300KHz. Ensuite, INTEL produisit, dès 1974, le 8080 qui
constituera le premier élément de la future famille de microprocesseurs de ce fabriquant. Fort
de ses 6000 transistors, le 8080, doté d'une horloge à 2MHz effectue 640000 instructions par
seconde. En 1974, MOTOROLA, autre fondeur de silicium, décide de lancer le 6800 qui
constituera lui aussi le début d'une grande famille. Les années 70 voient alors apparaître de
petites entreprises de fabrication de microprocesseurs comme (TEXAS INSTRUMENT,
FAIRCHILD, RCA, SIGNETICS etc.).

Définition

Un microprocesseur est un circuit intégré complexe caractérisé par une très grande intégration
et doté des facultés d'interprétation et d'exécution des instructions d'un programme. Il est chargé
d’organiser les tâches précisées par le programme et d’assurer leur exécution. Il doit aussi
prendre en compte les informations extérieures au système et assurer leur traitement. C’est le
cerveau du système. A l’heure actuelle, un microprocesseur regroupe sur quelques millimètres
carrés des fonctionnalités toujours plus complexes.

Un microprocesseur est construit autour de deux éléments principaux :

- Une unité de commande : appelé aussi Unité de Commande et de Contrôle (UCC)

- Une Unité de traitement Arithmétique et Logique (UAL)

Unité de contrôle et
Unité de traitement
de commande

L’unité arithmétique et logique (UAL)

C’est une unité combinatoire permettant de réaliser plusieurs fonctions sur un couple d'entrée.
Elle permet d'exécuter plusieurs fonctions de type arithmétique (addition, soustraction, ...). Elle
peut aussi exécuter plusieurs fonctions logiques (et, ou, ...).

Le registre accumulateur : C’est un registre de travail très important de l’UAL, dans la plus
part des opérations arithmétiques et logiques, l’accumulateur contient un des opérandes avant
l’exécution et le résultat après. Il peut aussi servir de registre tampon dans les opérations
d’entrée/sortie. Généralement, l’accumulateur a la même taille qu’un mot mémoire.

5
Le registre d'état : Le registre d'état est formé de plusieurs bits appelés drapeaux ou indicateurs
(Flags) qui sont positionnés par l'ALU après chaque opération. Par exemple l’indicateur Z
indique quand il est positionné que le résultat de l'opération est égal à Zéro. L’indicateur C
indique que l'opération a généré une retenue. Le bit N indique que le résultat est négatif …

L’unité de commande et de contrôle

C'est l'unité de control qui supervise le déroulement de toutes les opérations au sein du
processeur. Elle est constituée principalement de :

Horloge : Dans un système synchrone comme un microprocesseur, tout se synchronise avec


une horloge. C'est à dire que les tâches sont exécutées à des moments réguliers cadencés par
une horloge. Il nous faut donc une entrée supplémentaire pour appliquer cette horloge. Plus
cette horloge est rapide, plus le microprocesseur exécute les instructions rapidement.
Normalement les tâches commencent sur le front montant de l'horloge et se termine avant le
front montant de la période suivante.

Compteur de programme : (PC) appelé aussi compteur ordinal (CO). Le CO est constitué par
un registre dont le contenu représente l’adresse de la prochaine instruction à exécuter. Il est
donc initialisé avec l'adresse de la première instruction du programme. Puis il sera incrémenté
automatiquement pour pointer vers la prochaine instruction à exécuter.

Registre d'instruction : Contient l’instruction en cours de traitement.

Séquenceur : Il organise l'exécution des instructions au rythme d’une horloge. Il élabore tous
les signaux de synchronisation internes ou externes (bus de commande) du microprocesseur en
fonction des divers signaux de commande provenant du décodeur d’instruction ou du registre
d’état par exemple. Il s'agit d'un automate réalisé soit de façon câblée (obsolète), soit de façon
micro-programmée, on parle alors de microprocesseur.

Le microprocesseur échange des informations avec la mémoire et l’unité d’E/S, sous forme de
mots binaires, au moyen d’un ensemble de connexions appelé bus. Un bus permet de transférer
des données sous forme parallèle, c’est-à-dire en faisant circuler n bits simultanément.

Les microprocesseurs peuvent être classés selon la longueur maximale des mots binaires qu’ils
peuvent échanger avec la mémoire et les E/S : microprocesseurs 8 bits, 16 bits, 32 bits, ... Le
bus peut être décomposé en trois bus distincts :

Le bus d’adresse :

C’est un registre qui contient l’adresse du mot à accéder en mémoire centrale. A chaque accès
mémoire, l’adresse recherchée est stockée dans ce registre. Il a la taille d’une adresse qui est la
même que celle du bus d’adresses ce qui permet de déterminer le nombre de mots mémoires
adressables et l’espace mémoire adressable.

Le bus de mot mémoire ou de données :

Contient le mot mémoire faisant objet d’une opération de lecture ou d’écriture dans la mémoire
centrale. Ce registre a la taille d’un mot mémoire qui est la même que celle des registres de
travail et l’accumulateur qui est égale à la taille du bus de données.

6
Le bus de commande :

Il transmet les ordres de lecture et d’écriture de la mémoire et des E/S.

La liaison des différents composants donne l’architecture de base d’un ordinateur dite
architecture de Von Neumann

Architecture de base de Von Neumann de transfert des données

Langage de programmation

Le langage machine est le langage compris par le microprocesseur. Ce langage est difficile à
maîtriser puisque chaque instruction est codée par une séquence propre de bits. Afin de faciliter
la tâche de la compilation programmeur, on a créé différents langages plus ou moins évolués.

Le langage assembleur est le langage le plus « proche » du langage machine. Il est composé par
des instructions en général assemblage assez rudimentaires que l’on appelle des mnémoniques.
Ce sont essentiellement des opérations de transfert de données entre les registres et l'extérieur
du microprocesseur (mémoire ou périphérique), ou des opérations arithmétiques ou logiques.
Chaque instruction représente un code machine différent. Chaque microprocesseur peut
posséder un assembleur différent. L’assembleur est un programme qui produit les codes
opératoires compréhensibles par le microprocesseur à partir d’un fichier contenant les
mnémoniques. La sortie de l’assembleur est donc un fichier binaire à charger dans une mémoire.
Cette mémoire, souvent de type EPROM, contiendra donc le programme à exécuter par le
microprocesseur.

La difficulté de mise en œuvre de ce type de langage, et leur forte dépendance avec la machine
a nécessité la conception de langages de haut niveau, plus adaptés à l'homme, et aux
applications qu'il cherchait à développer. Faisant abstraction de toute architecture de machine,
ces langages permettent l'expression d'algorithmes sous une forme plus facile à apprendre, et à
dominer (C, Pascal, Java, …etc.). Chaque instruction en langage de haut niveau correspondra à
une succession d’instructions en langage assembleur. Une fois développé, le programme en
langage de haut niveau n’est donc pas compréhensible par le microprocesseur. Il faut le
compiler pour le traduire en assembleur puis l’assembler pour le convertir en code machine
compréhensible par le microprocesseur. Ces opérations sont réalisées à partir de logiciels
spécialisés appelés compilateur et assembleur.

7
Syntaxe d'instructions

Un microprocesseur exécute un programme. Le programme est une suite d’instructions


stockées dans la mémoire. Une instruction peut être codée sur un ou plusieurs octets. Le format
d’une instruction est données par :

Pour des instructions nécessitant deux opérandes :

Opération opérande2, opérande 1

Pour des instructions nécessitant un seul opérande la syntaxe est la suivante :

Opération opérande

Jeu d’instructions

La première étape de la conception d’un microprocesseur est son jeu d’instructions qui décrit
l’ensemble des opérations élémentaires que le microprocesseur pourra exécuter. Il va donc en
partie déterminer l’architecture du microprocesseur à réaliser et notamment celle du
séquenceur. A un même jeu d’instructions peut correspondre un grand nombre
d’implémentations différentes du microprocesseur.

Type d’instructions

Les instructions que l’on retrouve dans chaque microprocesseur peuvent être classées en 4
groupes :

 Transfert de données pour charger ou sauver en mémoire, effectuer des transferts de


registre à registre, etc…
 Opérations arithmétiques : addition, soustraction, division, multiplication
 Opérations logiques : ET, OU, NON, NAND, comparaison, test, etc…
 Contrôle de séquence : branchement, test, etc…

8
Opérations arithmétiques :

Opérations logiques :

Instruction de chargement :

MOVE

Recopie le contenu de l’adresse source dans l’adresse destination. Tous les modes d’adressage
sont supportés. La destination ne peut pas être une donnée immédiate.

Syntaxe

MOVE <adresse>, <adresse>

9
EXG

Les bits des deux registres sont échangés. Les registres peuvent être aussi bien des registres de
données que des registres d’adresses, on peut échanger un registre de données avec un registre
d’adresses.

Syntaxe

EXG Rx, Ry

LEA

Charge dans le registre l’adresse effective de la source et non pas son contenu. Cette instruction
est très couramment utilisée pour écrire des programmes qui doivent être indépendant de leur
position dans la mémoire.

Syntaxe

LEA <adresse>, An

PEA (Push Effective Address) : Cette instruction calcule une adresse effective et la dépose sur
la Pile.

Syntaxe

PEA <adresse>

Opérations de branchement :

« BRA déplacement »

Le processeur saute un nombre précis d’octets plus bas ou plus haut. L’instruction fournit le
déplacement (l’offset) par rapport au PC courant. Le déplacement est donné soit sur 8 bits (128
octets plus haut ou 127 octet plus bas) soit sur 16 bits (32768 octets plus haut ou 32767 octets
plus bas), (on parle de l’octet et non pas de l’instruction).

« JMP destination »

On donne carrément l’adresse de l’octet à brancher dessus. Ce n’est donc pas un branchement
relatif PC. Dans ce cas l’instruction contient l’adresse de la destination sur 32 bits.

Syntaxe

JMP <adresse>

Il existe aussi le branchement conditionnel et le branchement avec décrémentation.

10
Opérations diverses :

Il existe aussi d’autres instructions qui sont très souvent utilisées.

Brochage du microprocesseur :
Microprocesseur Intel à 16 bits, apparu en 1978, le premier microprocesseur de la famille Intel
80x86 (8086, 80186, 80286, 80386, 80486, Pentium I, PII, ...).

11
12
LES MEMOIRES
Une mémoire est un circuit à semi-conducteur permettant d’enregistrer, de conserver et de
restituer des informations (instructions et variables). Les informations peuvent être écrites ou
lues. Il y a écriture lorsqu'on enregistre des informations en mémoire, lecture lorsqu'on récupère
des informations précédemment enregistrées.

On distingue deux types de mémoires :

Les mémoires vives (RAM : Random Access Memory) ou mémoires volatiles. Elles perdent
leur contenu en cas de coupure d’alimentation. Elles sont utilisées pour stocker temporairement
des données et des programmes. Elles peuvent être lues et écrites par le microprocesseur ;

Les mémoires mortes (ROM : Read Only Memory) ou mémoires non volatiles. Elles
conservent leur contenu en cas de coupure d’alimentation. Elles ne peuvent être que lues par le
microprocesseur (pas de possibilité d’écriture). On les utilise pour stocker des données et des
programmes de manière définitive.

Caractéristiques d’une mémoire

La capacité : c’est le nombre total de bits que contient la mémoire. Elle s’exprime aussi souvent
en octet.

Le format des données : c’est le nombre de bits que l’on peut mémoriser par case mémoire. On
dit aussi que c’est la largeur du mot mémorisable.

Le temps d’accès : c’est le temps qui s'écoule entre l'instant où a été lancée une opération de
lecture/écriture en mémoire et l'instant où la première information est disponible sur le bus de
données.

Le temps de cycle : il représente l'intervalle minimum qui doit séparer deux demandes
successives de lecture ou d'écriture.

Le débit : c’est le nombre maximum d'informations lues ou écrites par seconde.

Volatilité : elle caractérise la permanence des informations dans la mémoire.

L'information stockée est volatile si elle risque d'être altérée par un défaut d'alimentation
électrique et non volatile dans le cas contraire.

13
Classification des mémoires

Jusqu’à la fin des années 1970, on utilisait des mémoires à tores magnétiques, lentes et de
faibles capacités. Actuellement, on n’utilise plus que des mémoires à semi-conducteurs.

Mémoires mortes

ROM : Read Only Memory. Mémoire à lecture seule, sans écriture. Son contenu est programmé
une fois pour toutes par le constructeur. Avantage : faible coût. Inconvénient : nécessite une
production en très grande quantité.

PROM: Programmable Read Only Memory. ROM programmable une seule fois par
l’utilisateur (ROM OTP : One Time Programming) en faisant sauter des fusibles. Nécessite un
programmateur spécialisé : application d’une tension de programmation (21 ou 25 V) pendant
20 ms.

EPROM : Erasable PROM, appelée aussi UVPROM. ROM programmable électriquement avec
un programmateur et effaçable par exposition à un rayonnement ultraviolet pendant 30 minutes.
Famille 27nnn, exemple : 2764 (8 Ko), 27256 (32 Ko). Avantage : reprogrammable par
l’utilisateur.

Exemple : EPROM commercialisé (Am29F010, 128 MO)

EEPROM : Electrically Erasable PROM. ROM programmable et effaçable électriquement.


Lecture à vitesse normale (≤ 100 ns). Ecriture (= effacement) très lente (≈ 10 ms).
Application : les EEPROM contiennent des données qui peuvent être modifiées de temps en
temps, exemple : paramètres de configuration des ordinateurs. Avantage : programmation sans
extraction de la carte et sans programmateur. Inconvénient : coût élevé.

14
Mémoires vives

SRAM : Static Random Access Memory. Mémoire statique à accès aléatoire, à base de bascules
à semi-conducteurs à deux états (bascules RS). Famille 62nnn, exemple : 62128 (16 Ko).
Avantage : très rapide, simple d’utilisation. Inconvénient : compliqué à réaliser.

DRAM : Dynamic RAM. Basée sur la charge de condensateurs : condensateur chargé = 1,


condensateur déchargé = 0. Avantage : intégration élevée, faible coût. Inconvénient : nécessite
un rafraîchissement périodique à cause du courant de fuite des condensateurs. Application :
réalisation de la mémoire vive des ordinateurs (barrettes mémoire SIMM : Single In-line
Memory module).

NOVRAM = (Non volatile RAM) : Mémoire de type SRAM associée à une pile de sauvegarde,
ou système de transfert vers une mémoire morte de type FLASH.

Leur coût à capacité égale est supérieur aux SRAMs. Elles sont donc limitées aux applications
micro contrôleurs industriels ou il est indispensable de ne pas perdre les données.

15
LES CIRCUITS LOGIQUES PROGRAMMABLES
Un réseau logique programmable (Programmable Logic Device ou PLD) est un circuit intégré qui
contient un grand nombre de fonctions logiques de base (surtout des portes et des bascules) dont
l'utilisateur peut définir l'interconnexion à volonté.

La classification des P.L.D

La plus ancienne et la plus connue est certainement la famille des P.A.L.

P.A.L. signifie Programmable Array Logic, c'est à dire réseau logique programmable. La
programmation de ces circuits s'effectue par destruction de fusibles. Ils possèdent un réseau
programmable de portes ET et un réseau fixe de portes OU. Une fois programmés on ne peut plus les
effacer. On distingue deux sous familles :

- Les P.A.L. combinatoires ou P.A.L. simples. Ils sont constitués des fonctions de logique combinatoire.
Nommés aussi FPLA (Field Programmable Logic Array) ils possèdent un réseau programmable de
portes ET et un réseau programmable de portes OU.

16
- Les P.A.L. à registres ou F.P.L.S. Field Programmable Logic Sequencer pour séquenceur logique
programmable. Ils sont constitués de logique combinatoire et séquentielle (Registre). Ils sont nommés
aussi FPLS.

* Les P.A.L. effaçables: E.P.L.D. qui signifie Erasable Programmable Logic Device, c'est à dire circuit
logique programmable et effasçable et qui sont aux P.A.L. ce que sont les U.V.P.R.OM. aux P.R.O.M.
Les E.P.L.D. peuvent être effacés par U.V. ou électriquement.

* Les G.A.L. qui signifie Generic Array Logic ou encore réseau logique générique ce qui veut dire pas
grand-chose mais qui sont aux P.A.L. ce que sont les E.E.P.R.O.M aux P.R.O.M, ils sont programmables
et effaçables électriquement.

* Les C.P.L.D. qui signifie Complex Programmable Logic Device. Ces circuits sont composés de
plusieurs P.A.L.s élémentaires. Grâce à cette architecture, ils permettent d’atteindre des vitesses de
fonctionnement élevées (plusieurs centaine de Mhz).

* Les L.C.A. Ce qui signifie Logic Cell Array ou encore réseau de cellules logiques. Ces circuits sont
composés de blocs logiques élémentaires de 2000 à 10000 portes que l'utilisateur peut interconnecter.

* Les F.P.G.A. à anti fusibles sont identiques aux L.C.A sauf qu'ils permettent une plus grande
intégration de portes et ils ne sont pas effaçables électriquement. Le nom anti-fusible vient de la
programmation des connexions qui s'effectue par fermeture de circuits, comparé aux fusibles où l'on
ouvre les circuits.

Avantage :

• Simplification de câblage

• Encombrement réduit

• Diminution des coûts

• Facilité d’utilisation

• Diminution du risque des pannes

Réseau logique :

Toute fonction logique booléenne peut s'exprimer sous forme canonique

17

Vous aimerez peut-être aussi