View
121
Download
8
Category
Preview:
Citation preview
1
Architecture des microcontrôleurs
© ESPRIT 2009 H.JEDIDI & M.ABDALLAH
Chapitre 1: Introduction
ABDALLAH Mohamed
mohamed.abdallah@isetso.rnu.tn
JEDIDI Hassen
Hassen.jedidi@esprit.ens.tn
2© ESPRIT 2009 H.JEDIDI & M.ABDALLAH
Objectifs
Le but de ce module est de :
• Comprendre l’architecture des microcontrôleurs.
• Développer des programmes en Assembleur et en langage C et les tester sur des simulateurs et des maquettes.
• Réaliser un mini projet a base d’un microcontrôleur de la famille Microchip.
3© ESPRIT 2009 H.JEDIDI & M.ABDALLAH
Programme du module
Introduction
Architecture et fonctionnement des PIC 16F84
Le jeu d’instructions
Les modes d’adressage
Les interruptions
Le TIMER
Le WATCHDOG
4© ESPRIT 2009 H.JEDIDI & M.ABDALLAH
Le Mini-Projet
• Le mini-projet se déroule pendant la deuxième période.
• Le mini-projet est réalisé par binôme.
• Un sujet ne peut être pris par plus d’un binôme.
• Le projet doit être réalisé sur les PIC 16F877.
• Une soutenance est prévue durant la dernière semaine du semestre pour présenter le mini-projet.
5© ESPRIT 2009 H.JEDIDI & M.ABDALLAH
Histoire des calculateurs
6
1800 : pile de Volta 1826 : loi d’ohm 1831 : premier relais électrique 1837 : télégraphe de Morse 1847 : lois de kirchhoff 1866 : dynamo 1876 : téléphone (Bell) 1904 : la diode, premier tube à vide 1907 : la triode à vide (Lee de Forest) 1909 : premier central téléphonique automatique 1914 : premier circuits électroniques 1946 : ENIAC (Electronic Numeral Integrator and Calculator) : premier calculateur électronique (17468 tubes électroniques ,
1500 relais, 30 tonnes, 15O KW, 5000 additions par seconde). 1947 : transistor à pointes germanium (brattain, bardeen,
shockley) Nobel 1958 1954 : transistor silicium (G. Teal, TI)
Histoire des Sciences : quelques points de repères
© ESPRIT 2009 H.JEDIDI & M.ABDALLAH
7
1959 : circuit intégré (J. Kilby Nobel 2000 en parallèle avec Noyce) assemblage sur un même substrat de résistances, condensateurs et transistors interconnectés.
1959 : transistor à effet de champ (FET) : transistor MOS
1970 : mémoire DRAM 1024 bits Intel 1971 : microprocesseur 4004, Intel 1980 : microcontrôleur 8 bits ASIC
Microélectronique CMOS 1990 : microcontrôleur 32 bits 2000 « convergence » des S T I C: Sciences de l
’information et de la communication S O C IP (composant virtuel matériel/logiciel)
< 2010 : 1 processeur CMOS = 1 milliard de transistors sur une puce …nouveaux types de mémoires
Histoire des Sciences : quelques points de repères(2)
© ESPRIT 2009 H.JEDIDI & M.ABDALLAH
8
Une évolution
Taille Nombre
Mais pas seulement …..
© ESPRIT 2009 H.JEDIDI & M.ABDALLAH
9
En 1965, Gordon Moore, un des fondateurs de la société Intel remarqua que le nombre de transistors dans un circuit intégré doublait tous les 18 à 24 mois.
Cette observation est devenue une loi, dite loi de Moore et n’a pas été démentie jusqu’à présent.
Pour les microprocesseurs, grâce à d’autres améliorations telles que l’addition de nouveaux circuits, l’amélioration en vitesse a été de quatre à cinq tous les trois ans.
Loi de Moore
© ESPRIT 2009 H.JEDIDI & M.ABDALLAH
10
Loi de MOORE
Année 1971 2001
Transistors 2300 42 000 000
Fréq (Khz) 108 2 000 000
Tech (µm) 10,0 0,13
Intel 4004 Intel Pentium 4
© ESPRIT 2009 H.JEDIDI & M.ABDALLAH
11© ESPRIT 2009 H.JEDIDI & M.ABDALLAH
12
Autres barrières historiques
© ESPRIT 2009 H.JEDIDI & M.ABDALLAH
13
Des nouvelles IHM
© ESPRIT 2009 H.JEDIDI & M.ABDALLAH
14
Des nouveaux objets et dispositifs communicants
• Tag RFID
• Capteurs
• Robots
© ESPRIT 2009 H.JEDIDI & M.ABDALLAH
15
Des nouveaux objets et dispositifs communicants (2)
© ESPRIT 2009 H.JEDIDI & M.ABDALLAH
16
Vers la convergence totale
Mobilité
Multimédia
Connectivit
é
© ESPRIT 2009 H.JEDIDI & M.ABDALLAH
17
Microcontrôleur
© ESPRIT 2009 H.JEDIDI & M.ABDALLAH
18
un contrôleur est un dispositif qui - placé au cœur d’un processus - surveille l’évolution d’un événement et compare son état (ou sa valeur) à une donnée prédéterminée, pour intervenir dès que les limites préfixées sont atteintes.
Son travail consiste à surveiller (lire) la valeur d’une situation, et à la comparer en permanence à une valeur fixée d’avance.
© ESPRIT 2009 H.JEDIDI & M.ABDALLAH
Contrôleur
19
Les plus souples de tous les contrôleurs sont évidemment les contrôleurs faisant appel à l’électronique, et plus particulièrement les microcontrôleurs
Selon un arrêté français du 14 septembre 1990 relatif à la terminologie des composants électroniques « Circuit intégré comprenant essentiellement un microprocesseur, ses mémoires, et des éléments personnalisés selon l'application »
© ESPRIT 2009 H.JEDIDI & M.ABDALLAH
Microcontrôleur
20© ESPRIT 2009 H.JEDIDI & M.ABDALLAH
Microcontrôleur(2)
21© ESPRIT 2009 H.JEDIDI & M.ABDALLAH
Circuit intégré
22© ESPRIT 2009 H.JEDIDI & M.ABDALLAH
23© ESPRIT 2009 H.JEDIDI & M.ABDALLAH
Architecture de Von Neumann
• Une mémoire pour le programme et les données.
• Double utilisation des BUS données et d’adresses.
• Employée dans la plupart des processeurs (Intel 80xx, Motorola HC05, …)•
24© ESPRIT 2009 H.JEDIDI & M.ABDALLAH
Architecture de Harvard
• Mémoire programme et mémoire données séparée.
• Bus indépendant pour chaque mémoire.
• Utilisée dans les microcontrôleurs de Microchip
25
CISC RISC
Avantages Jeu d’instructions riche 1. Jeu d’instructions facile à mémoriser.
2. Le code est compact, chaque instruction dure un cycle.
Inconvénients 1. Durée d’une instruction variable.
2. Codage sur plusieurs octets
Jeu d’instruction pauvre
© ESPRIT 2009 H.JEDIDI & M.ABDALLAH
RISC/ CISC
26© ESPRIT 2009 H.JEDIDI & M.ABDALLAH
Schéma bloc d’un microcontrôleur
27© ESPRIT 2009 H.JEDIDI & M.ABDALLAH
Schéma bloc d’un microcontrôleur
Mémoires
Contrôle ALU
Ports E/S
Timer
28
Microprocesseurs
◦ Architecture: CPU mono-chip, nécessite des circuits additionnels externes
RISC: Reduced Instruction Set Computer CISC: Complex Instruction Set Computer
Exemples: Pentium-Series, PowerPC, MIPS,…
© ESPRIT 2009 H.JEDIDI & M.ABDALLAH
Classes des processeurs
29
Microcontrôleurs
◦ Architecture: CPU, RAM, ROM, interfaces Serie/Parallèle, timer, circuits d’interruptions.
◦ Applications: contrôle / commande de processus.
◦ Caractéristiques: pas d’exigence de vitesse, jeu d’instructions compact.
◦ Exemples: 8051, 68HC11, PIC,…
© ESPRIT 2009 H.JEDIDI & M.ABDALLAH
Classes des processeurs
30
Processeurs numériques des signaux (DSP)
◦ Architecture: CPU optimisée pour le traitement mathématique temps
réel rapide et répétitif
RAM, ROM, interfaces série / parallèle, timer, circuits d’interruptions
◦ Exemples: ADSP-21xx, AD-BF-5xx, AD-TS-xxx, TMS320Cxx,…
© ESPRIT 2009 H.JEDIDI & M.ABDALLAH
Classes des processeurs
31
RÉFÉRENCE
FABRICANT VITESSE RAM (O) ROM / EPROM / FLASH (KO)
EEPROM(KO)
E / S LOGIQUES
TIMER
ENTRÉES ANALOGIQUES
PARTICULARITÉ
8051 Intel 12 Mhz 128 4 Ko X 32 2 0
16C71 Microchip 20 Mhz 36 1Kx14 X 13 1 4 RISC
6805 S2 Motorola 4 MHz 64 1 Ko X 16 2 8
68HC11 A1 Motorola 8 MHz 256 X 512 22 1 8
AT90S 8515 Atmel 20 MHz 512 4 Ko 512 32 3 8 RISC
ST 6265 Thomson 8 MHz 128 4 Ko 64 21 2 13
© ESPRIT 2009 H.JEDIDI & M.ABDALLAH
Exemples de microcontrôleurs
32
Contrôle des processus industriels:◦ régulation, pilotage.
Appareil de mesure: ◦ affichage, calcul statistique, mémorisation.
Automobile:◦ ABS, injection, GPS, airbag
Téléphones:◦ fax, portable, modem)
Electroménager :◦ lave-vaisselle, lave-linge, four micro-onde)
© ESPRIT 2009 H.JEDIDI & M.ABDALLAH
Domaines d’application
33© ESPRIT 2009 H.JEDIDI & M.ABDALLAH
Représentation et traitement des données
34
Codage et décodage d’informations
© ESPRIT 2009 H.JEDIDI & M.ABDALLAH
35
Les différents types de caractères
© ESPRIT 2009 H.JEDIDI & M.ABDALLAH
© ESPRIT 2009 H.JEDIDI & M.ABDALLAH
36
Code ASCII
© ESPRIT 2009 H.JEDIDI & M.ABDALLAH
37
Unité de stockage
38
Le système décimal
On utilise dix symboles différents: { 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 } N’importe quelle combinaison des symboles { 0 , 1 , 2 , 3 , 4 , 5 ,
6 , 7 , 8 , 9 } nous donne un nombre.
Partie fractionnelle Partie entière
345 , 567
Poids fort Poids faible
2 3 3 4 5 6 7
© ESPRIT 2009 H.JEDIDI & M.ABDALLAH
39
• Dans le système binaire, pour exprimer n’importe quelle valeur on utilise uniquement 2 symboles : { 0 , 1}
103210123
2
100123
2
)625,14(2*12*02*12*02*12*12*1(1110,101)
)14(2*02*12*12*1(1110)
. Un nombre dans la base 2 peut être écrit aussi sous la forme polynomial
( 1101)2La base
Un bit
( 1 1 0 1)2Le bits du poids forts
Le bits du poids faible
Système binaire ( système à base 2 )
© ESPRIT 2009 H.JEDIDI & M.ABDALLAH
40
Comptage en binaire
• Sur un seul bit : 0 , 1
Décimal Binaire
0
1
2
3
00
01
10
11
Sur 3 Bits
Décimal Binaire
0
1
2
3
4
5
6
7
000
001
010
011
100
101
110
111
.Sur 2 bits :
© ESPRIT 2009 H.JEDIDI & M.ABDALLAH
41
Le système octal ( base 8 )
• 8 symboles sont utilisés dans ce système:
{ 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 }
• Exemple 1 :
210128
0128
8*58*68*78*28*1(127,65)
8*78*28*1(127)
Exemple 2 :Le nombre (1289) n’existe pas dans la base 8 puisque les symboles 8 et 9 n’appartiennent pas à la base .
© ESPRIT 2009 H.JEDIDI & M.ABDALLAH
42
Le système hexadécimal ( base 16 )
• On utilise seize (16) symboles différents:
Hexadécimal Décimal
0 0
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
A 10
B 11
C 12
D 13
E 14
F 15
1*1116*1016*16*(AB)
16*716*1(17)101
16
0116
BA
© ESPRIT 2009 H.JEDIDI & M.ABDALLAH
43
Résumé
Dans une base X , on utilise X symboles distincts pour représenter les nombres.
La valeur de chaque symbole doit être strictement inférieur à la base X.
Chaque nombre dans une base X peut être écrit sous sa forme polynomiale .
© ESPRIT 2009 H.JEDIDI & M.ABDALLAH
44
Conversion d’une base X à la base 10
• Cette conversion est assez simple puisque il suffit de faire le développement en polynôme de ce nombre dans la base X , et de faire la somme par la suite.
10101
5
103210123
2
10012012
16
100123
2
)4,23(4,03205*25*35*4)2,43(
)625,13(2*12*02*12*12*02*12*1(1101,101)
)423(716025616*716*1016*116*716*16*1(1A7)
)13(2*12*02*12*1(1101)
A
Exemple :
© ESPRIT 2009 H.JEDIDI & M.ABDALLAH
45
Exercice
Effectuer les transformations suivantes à la base 10
◦ (123)6=(?)10
◦ (1100,11)2 =(?)10
◦ (2563)8 =(?)10
◦ (1ABC)16 =(?)10
© ESPRIT 2009 H.JEDIDI & M.ABDALLAH
46
Conversion de la base 10 à la base 2
35 2
171 2
81
2
40 2
20 2
0 1 2
1 0
Exemple 1 : (35)10=(?)2
Le principe consiste à faire des divisions successives du nombre sur 2 , et prendre le reste des divisions dans l’ordre inverse.
Après division : on obtient : (35)10=(100011)2
© ESPRIT 2009 H.JEDIDI & M.ABDALLAH
47
Conversion de la base 10 à la base 2 : cas d’un nombre réel
Un nombre réel est constitué de deux parties : la partie entière et la partie fractionnelle.
La partie entière est transformée en effectuant des divisions successives.
La partie fractionnelle est transformée en effectuant des multiplications successives par 2 .
Exemple : 35,625=(?)2
P.E= 35 = (100011)2
PF= 0,625 = (?)2
(0,625)=(0,101)2
Donc 35,625=(100011,101)2
0,625 * 2 = 1,250,25 * 2 = 0 ,50,5 * 2 = 1 ,0
© ESPRIT 2009 H.JEDIDI & M.ABDALLAH
48
Exemple 2: (0,6)10=(?)2
0,6 * 2 = 1,2
0,2 * 2 = 0,4 0,4 * 2 = 0,8 0,8 * 2 = 1,6
(0,6)= (0,1001)2
Remarque :
Le nombre de bits après la virgule va déterminer la précision .
Exercice :
Effectuer les transformations suivantes :
(23,65)=(? )2
(18,190)=(?)2
© ESPRIT 2009 H.JEDIDI & M.ABDALLAH
49
Conversion du décimal à une base X
La conversion se fait en prenant les restes des divisions successives sur la base X dans le sens inverse.
35 3
112 3
32
3
10 3
01
Exemple :
35 = (?)3
35=(1022)3
• Question : Effectuer les transformations suivantes :
(43)10=(?)2=(?)5 =(?)8 =(?)16
© ESPRIT 2009 H.JEDIDI & M.ABDALLAH
50
43 2
211 2
1012
50 2
21 2
0 1 2
1 0
43 16
211 16
02
43 5
83 5
13 5
11
(101011)2
(133)5
(2B)16
8
53 8
05
(53)8
43
© ESPRIT 2009 H.JEDIDI & M.ABDALLAH
51
Conversion d’une base b1 à une base b2 Il n’existe pas de méthode pour passer d’une base b1 à une
autre base b2 directement. L’idée est de convertir le nombre de la base b1 à la base 10
, en suit convertir le résultat de la base 10 à la base b2 .
b1 b2
10
Développement
en polynôme Divisions successives
?
© ESPRIT 2009 H.JEDIDI & M.ABDALLAH
52
Exemple : ( 34)5=(?)7
71001
5 (?))19(4155*45*3)34(
19 7
25 7
02
(19)10=(25)7
( 34)5=(25)7
Exercice : effectuer les transformations suivantes
(43)6=(?)5=(?)8
(2A)16=(?)9
© ESPRIT 2009 H.JEDIDI & M.ABDALLAH
53
Conversion : binaire octal
Binaire Octal
000
001
010
011
100
101
110
111
0
1
2
3
4
5
6
7
. En octal chaque, symbole de la base s’écrit
sur 3 bits en binaire.. L’idée de base est de replacer chaque symbole dans la base octal par sa valeur en binaire sur 3 bits ( faire des éclatement sur 3 bits ).
Exemples : (345)8=(011 100 101)2
(65,76)8=(110 101, 111 110)2
(35,34)8=(011 101 , 011 100)2Remarque : le remplacement se fait de droit à gauche pour la partie entière et de gauche à droite pour la partie fractionnelle .
© ESPRIT 2009 H.JEDIDI & M.ABDALLAH
54
Conversion : Octal binaire
. L’idée de base est de faire des regroupements de 3 bits à partir du poids faible.
. Par la suite remplacer chaque regroupement par la valeur octal correspondante .
Exemple :
(11001010010110)2=(011 001 010 010 110)2=(31226)8
(110010100,10101)2= (110 010 100 , 101 010)2=(624,51)8
Remarque : le regroupement se fait de droit à gauche pour la partie entière et de gauche à droite pour la partie fractionnelle .
© ESPRIT 2009 H.JEDIDI & M.ABDALLAH
55
Conversion : hexadécimal binaireHexadécimal Décimal
0 0
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
A 10
B 11
C 12
D 13
E 14
F 15
. En Hexa chaque symbole de la base s’écrit sur 4 bits.
. L’idée de base est de replacer chaque symbole par sa valeur en binaire sur 4 bits ( faire des éclatement sur 4 bits ).
Exemple :
(345B)16=(0011 0100 0101 1011)2
(AB3,4F6)16 = ( 1010 1011 0011 , 0100 1111 0110 ) 2
© ESPRIT 2009 H.JEDIDI & M.ABDALLAH
56
Conversion : binaire hexadécimal
. L’idée de base est de faire des regroupements de 4 bits à partir du
poids faible.
Par la suite remplacer chaque regroupement par la valeur Héxa
correspondante . Exemple :
(11001010100110)2=(0011 0010 1010 0110)2=(32A6)16
(110010100,10101)2= (0001 1001 0100,1010 1000)2=(194,A8)16
© ESPRIT 2009 H.JEDIDI & M.ABDALLAH
57
Opérations arithmétiques en
binaire 0
0+
0
0
1+
1
1
0+
1
1
1+
1 0
1 1 0 0 0 1 1
+ 1 0 0 0 1 0 1 1
0
1
1
1
110111
© ESPRIT 2009 H.JEDIDI & M.ABDALLAH
58
Opérations arithmétiques en octal
Le résultat final : (5036)8
4 3 6 5+
4 5 1
11
En octal 11 s’écrit 13
3
1
8
En octal 8 s’écrit 10
0
1
5 6
© ESPRIT 2009 H.JEDIDI & M.ABDALLAH
59
Opérations arithmétiques en
hexadécimal
Le résultat final : (C2B6)16
4 8 6 5+ 7 A 5 1
11
En hexa 11 s’écrit B
B
18
En hexa 18 s’écrit 12
2
1
12
C
6
© ESPRIT 2009 H.JEDIDI & M.ABDALLAH
60
Exercice
Effectuer les opérations suivantes et transformer le résultat au décimal à chaque fois:
◦ (1101)2+(111)2=(?)2
◦ (43)8+(34)8=(?)8
◦ (AB1)16+(237)8=(?)16
© ESPRIT 2009 H.JEDIDI & M.ABDALLAH
Représentation des nombres
entiers
© ESPRIT 2009 H.JEDIDI & M.ABDALLAH 61
Il existe deux types d’entiers : ◦ les entiers non signés ( positifs ) ◦ et les entiers signés ( positifs ou négatifs )
Problème : Comment indiquer à la machine qu’un nombre est négatif ou positif ?
Il existe 3 méthodes pour représenter les
nombres négatifs :◦ Signe/ valeur absolue ◦ Complément à 1( complément restreint )◦ Complément à 2 ( complément à vrai )
1. Représentation des nombres
entiers
62© ESPRIT 2009 H.JEDIDI & M.ABDALLAH
Si on travail sur n bits , alors le bit du poids fort est utilisé pour indiquer le signe : 1 : signe négatif 0 : signe positif
Les autres bits ( n -1 ) désignent la valeur absolue du nombre.
Exemple : Si on travail sur 4 bits.
1.1 Représentation signe / valeur absolue ( S/VA )
1 001
Signe Valeur absolue
1001 est la représentation de - 1
0 001
Signe Valeur absolue
0001 est la représentation de + 1
63© ESPRIT 2009 H.JEDIDI & M.ABDALLAH
valeur VA signe
+ 0+ 1+ 2+ 3
00011011
0000
- 0- 1- 2- 3
00011011
111 1
• Les valeurs sont comprises entre -3 et +3
-3 ≤ N ≤ +3- ( 4-1 ) ≤ N ≤ + (4 -1 )-(22 -1) ≤ N ≤ +(22-1 )-(2 (3 -1) -1) ≤ N ≤ +(2 (3 -1) -1 )
Sur 3 bits on obtient :
Si on travail sur n bits , l’intervalle des valeurs qu’on peut représenter en S/VA :
-(2 (n -1) -1) ≤ N ≤ +(2 (n -1) -1 )64© ESPRIT 2009 H.JEDIDI & M.ABDALLAH
C’est une représentation assez simple . On remarque que le zéro possède deux représentations +0
et -0 ce qui conduit à des difficultés au niveau des opérations arithmétiques.
Pour les opérations arithmétiques il nous faut deux circuits : l’un pour l’addition et le deuxième pour la soustraction .
L’idéal est d’utiliser un seul circuit pour faire les deux
opérations, puisque a- b =a + ( -b )
Avantages et inconvénients de la représentation signe/valeur absolue
65© ESPRIT 2009 H.JEDIDI & M.ABDALLAH
On appel complément à un d’un nombre N un autre nombre N’ tel que :
N+N’=2n-1 n : est le nombre de bits de la représentation du nombre
N .
Exemple : Soit N=1010 sur 4 bits donc son complément à un de N :
N’= (24 - 1)-NN’=(16-1 )-(1010)2= (15 ) - (1010)2 = (1111)2 – (1010)2 =
0101
1.2 Représentation en complément à un ( complément restreint )
1 0 1 00 1 0 1+
1 1 1 166© ESPRIT 2009 H.JEDIDI & M.ABDALLAH
Pour trouver le complément à un d’un nombre, il suffit d’inverser tous les bits de ce nombre : si le bit est un 0 mettre à sa place un 1 et si c’est un 1 mettre à sa place un 0 .
Exemple :
Remarque 1 :
1 0 1 0
0 1 0 1
0 1 0 1 0
1 0 1 0 1
Sur 4 Bits Sur 5 Bits
67© ESPRIT 2009 H.JEDIDI & M.ABDALLAH
Dans cette représentation , le bit du poids fort nous indique le signe ( 0 : positif , 1 : négatif ).
Le complément à un du complément à un d’un nombre est égale au nombre lui même .
CA1(CA1(N))= N Exemple :
Quelle est la valeur décimale représentée par la valeur 101010 en complément à 1 sur 6 bits ?
Le bit poids fort indique qu'il s'agit d'un nombre négatif. Valeur = - CA1(101010)
= - (010101)2= - ( 21)10
Remarque 2
68© ESPRIT 2009 H.JEDIDI & M.ABDALLAH
Valeurdécimal
Valeur en binaire
Valeur en CA1
+ 0+ 1+ 2+ 3
000001010011
000001010011
- 3- 2- 1- 0
- 011- 010- 001- 000
100101110111
•On remarque que dans cette représentation le zéro possède aussi une double représentation ( +0 et – 0 ) .
Si on travail sur 3 bits :
•Dans cette représentation , le bit du poids fort nous indique le signe .
69© ESPRIT 2009 H.JEDIDI & M.ABDALLAH
• Sur 3 bits on remarque que les valeurs sont comprises entre -3 et +3
-3 ≤ N ≤ +3- ( 4-1 ) ≤ N ≤ + (4 -1 )-(22 -1) ≤ N ≤ +(22-1 )
-(2 (3 -1) -1) ≤ N ≤ +(2 (3 -1) -1 )
Si on travail sur n bits , l’intervalle des valeurs qu’on peut représenter en CA1 :
-(2 (n -1) -1) ≤ N ≤ +(2 (n -1) -1 )
70© ESPRIT 2009 H.JEDIDI & M.ABDALLAH
Si on suppose que a est un nombre sur n bits alors :
a + 2 n = a modulo 2n
et si on prend le résultat sur n bits on va obtenir la même valeur que a .
a + 2 n = a
Exemple : soit a = 1001 sur 4 bits 24= 10000
1.3 Complément à 2 ( complément à vrai )
1 0 0 11 0 0 0 0
+
1 1 0 0 1Si on prend le résultat sur 4 bits on trouve la même valeur de a
= 1001
71© ESPRIT 2009 H.JEDIDI & M.ABDALLAH
Trouver le complément à vrai de : 01000101 sur 8 bits ?
CA2(01000101)= CA1(01000101)+ 1CA1(01000101)= (10111010)CA2(01000101)=(10111010)+ 1 = (10111011)
Remarque 1 :Pour trouver le compétemment à 2 d’un nombre : il faut
parcourir les bits de ce nombre à partir du poids faible et garder tous les bits avant le premier 1 et inverser les autres bits qui viennent après.
Exemple
0 1 0 0 0 1 0 1
1 0 1 1 1 0 1 1
1 1 0 1 0 1 0 0
0 0 1 0 1 1 0 0
72© ESPRIT 2009 H.JEDIDI & M.ABDALLAH
Dans cette représentation , le bit du poids fort nous indique le signe ( 0 : positif , 1 : négatif ).
Le complément à deux du complément à deux d’un nombre est égale au nombre lui même .
CA2(CA2(N))= N Exemple :
Quelle est la valeur décimale représentée par la valeur 101010 en complément à deux sur 6 bits ?
Le bit poids fort indique qu'il s'agit d'un nombre négatif. Valeur = - CA2(101010)
= - (010101 + 1)
= - (010110)2= - ( 22)
Remarque 2
73© ESPRIT 2009 H.JEDIDI & M.ABDALLAH
valeur Valeur en binaire
Valeur en CA2
+ 0+ 1+ 2+ 3
000001010011
000001010011
- 4- 3- 2- 1
- 100- 011- 010- 001
100101110111
Si on travail sur 3 bits :
•Dans cette représentation , le bit du poids fort nous indique le signe .•On remarque que le zéro n’a pas une double représentation.
74© ESPRIT 2009 H.JEDIDI & M.ABDALLAH
Sur 3 bits on remarque que les valeurs sont comprises entre -4 et +3
-4 ≤ N ≤ +3- 4 ≤ N ≤ + (4 -1 )- 22 ≤ N ≤ +(22-1 )
-2 (3 -1) ≤ N ≤ (2 (3 -1) -1 )
Si on travail sur n bits , l’intervalle des valeurs qu’on peut représenter en CA2 :
-(2 (n -1)) ≤ N ≤ +(2 (n -1) -1 )
La représentation en complément à deux ( complément à vrai ) est la représentation la plus utilisée pour la représentation des
nombres négatifs dans la machine.
75© ESPRIT 2009 H.JEDIDI & M.ABDALLAH
Opérations arithmétiques en CA2
+ 9
+ 4
+ 13
0 1 0 0 1
0 0 1 0 0+
0 1 1 0 1
Effectuer les opérations suivantes sur 5 Bits , en utilisant la représentation en CA2
Le résultat est positif
(01101)2= ( 13)10
Le résultat est positif
(00101)2= ( 5)10
+ 9
- 4
+ 5
0 1 0 0 1
1 1 1 0 0
+
1 0 0 1 0 1
Report
76© ESPRIT 2009 H.JEDIDI & M.ABDALLAH
- 9
- 4
- 13
1 0 1 1 1 1 1 1 0 0
+
1 1 0 0 1 1
- 9
+ 9
+ 0
1 0 1 1 1
0 1 0 0 1+
1 0 0 0 0 0
Le résultat est négatif :
Résultat = - CA2 (10011)
= -( 01101)
= - 13
Le résultat est positif
(00000)2= ( 0)10
Report Report
77© ESPRIT 2009 H.JEDIDI & M.ABDALLAH
Représentation des nombres
réels
© ESPRIT 2009 H.JEDIDI & M.ABDALLAH 78
Un nombre réel est constitué de deux parties : la partie entière et la partie fractionnelle ( les deux parties sont séparées par une virgule )
Problème : comment indiquer à la machine la position de la virgule ?
Il existe deux méthodes pour représenter les nombre réel :◦ Virgule fixe : la position de la virgule est fixe◦ Virgule flottante : la position de la virgule
change ( dynamique )
2. La représentation des nombres réels
79© ESPRIT 2009 H.JEDIDI & M.ABDALLAH
2.1 La virgule fixe
Dans cette représentation la partie entière est représentée sur n bits et la partie fractionnelle sur p bits , en plus un bit est utilisé pour le signe.
Exemple : si n=3 et p=2 on va avoir les valeurs suivantes
valeur P.F P.E Signe
+ 0,0+ 0,25+ 0,5+ 0,75+ 1,0..
00011011.00..
000000000000001..
00000..
Dans cette représentation les valeurs sont limitées et nous n’avons pas une grande précision
80© ESPRIT 2009 H.JEDIDI & M.ABDALLAH
Chaque nombre réel peut s’écrire de la façon suivante :
N= ± M * b e
◦ M : mantisse , ◦ b : la base , ◦ e : l’exposant
Exemple :
15,6 = 0,156 * 10+2
- ( 110,101)2 = - (0,110101)2 * 2+3
(0,00101)2= ( 0,101)2 * 2-2
Remarque : on dit que la mantisse est normalisée si le premier
chiffre après la virgule est différent de 0 et le premier chiffre avant la virgule est égale à 0.
2.2 Représentation en virgule flottante
81© ESPRIT 2009 H.JEDIDI & M.ABDALLAH
Dans cette représentation sur n bits : ◦ La mantisse est sous la forme signe/valeur absolue
1 bit pour le signe et k bits pour la valeur.
◦ L’exposant ( positif ou négatif ) est représenté sur p bits .
Signe mantisse Exposant Mantisse normalisée
1 bit p bits k bits
Pour la représentation de l’exposant on utilise :
* Le complément à deux
* Exposant décalé ou biaisé
82© ESPRIT 2009 H.JEDIDI & M.ABDALLAH
On veut représenter les nombres ( 0,015)8 et -( 15, 01)8 en
virgule flottante sur une machine ayant le format suivant :
Représentation de l’exposant en complément à deux
Signe mantisse Exposant en CA2 Mantisse normalisée
1 bit 4 bits 8 bits
(0,015)8=(0,000001101)2= 0,1101 * 2-5
Signe mantisse : positif ( 0)Mantisse normalisé : 0,1101Exposant = -5 utiliser le complément à deux pour représenter le -5Sur 4 bits CA2(0101)=1011
0 1 0 1 1 1 1 0 1 0 0 0 0
1 bit 4 bits 8 bits83© ESPRIT 2009 H.JEDIDI & M.ABDALLAH
- (15,01)8 = - (001101,000001)2= - 0,1101000001 * 24
Signe mantisse : négatif ( 1)Mantisse normalisée : 0,1101000001Exposant = 4 , en complément à deux il garde la même valeur ( 0100)
1 0 1 0 0 1 1 0 1 0 0 0 0
1 bit 4 bits 8 bits
Remarque : si la mantisse est sur k bits et si elle est représentée sur la machine sur k’ bits tel que k> k’ , alors la mantisse sera tronquée : on va prendre uniquement k’ bits perdre dans la précision .
On remarque que la mantisse est sur 10 bits (1101 0000 01), et sur la machine seulement 8 bits sont utilisés pour la mantisse.Dans ce cas on va prendre les 8 premiers bits de la mantisse
84© ESPRIT 2009 H.JEDIDI & M.ABDALLAH
en complément à 2, l’intervalle des valeurs qu’on peut représenter sur p bits :
- 2 (p -1) ≤ N ≤ 2 (p -1) -1
Si on rajoute la valeur 2 (p -1) à tout les terme de cette inégalité :
- 2 (p -1) + 2 (p -1) ≤ N + 2 (p -1) ≤ 2 (p -1) - 1 + 2 (p -1)
0 ≤ N + 2 (p -1) ≤ 2 p - 1
On pose N’= N + 2 (p -1) donc : 0 ≤ N’ ≤ 2 p -1
Dans ce cas on obtient des valeur positives. La valeur 2p-1 s’appelle le biais ou le décalage
L’ Exposant décalé ( biaisé )
85© ESPRIT 2009 H.JEDIDI & M.ABDALLAH
Avec l’exposant biaisé on a transformé les exposants négatifs à des exposants positifs en rajoutons à l’exposant la valeur 2p -1.
Exposant Biaisé = Exposant réel + Biais
86© ESPRIT 2009 H.JEDIDI & M.ABDALLAH
On veut représenter les nombres ( 0,015)8 et -( 15, 01)8en
virgule flottante sur une machine ayant le format suivant :
Exemple
Signe mantisse Exposant décalé Mantisse normalisée
1 bit 4 bits 11 bits
(0,015)8=(0,000001101)2= 0,1101 * 2-5
Signe mantisse : positif ( 0)Mantisse normalisé : 0,1101Exposant réel = -5 Calculer le biais : b= 24-1 = 8 Exposant Biaisé = -5 + 8 = +3 = ( 0011)2
0 0011 1 1 0 1 0 0 0 0 0 0 0
1 bit 4 bits 11 bits87
© ESPRIT 2009 H.JEDIDI & M.ABDALLAH
- (15,01)8=(001101,000001)2= 0,1101000001 * 24
Signe mantisse : négatif ( 1)Mantisse normalisée : 0,1101000001Exposant réel = + 4 Calculer le biais : b= 24-1 = 8 Exposant Biaisé = 4 + 8 = +12 = ( 1100)2
1 1100 1 1 0 1 0 0 0 0 0 1 0
1 bit 4 bits 11 bits
88© ESPRIT 2009 H.JEDIDI & M.ABDALLAH
89
Fin du premier Chapitre
© ESPRIT 2009 H.JEDIDI & M.ABDALLAH
Recommended