89
Architecture des microcontrôleurs © ESPRIT 2009 H.JEDIDI & M.ABDALLAH 1 Chapitre 1: Introduction ABDALLAH Mohamed [email protected] n JEDIDI Hassen [email protected]

© ESPRIT 2009 H.JEDIDI & M.ABDALLAH1 Chapitre 1: Introduction

Embed Size (px)

Citation preview

Page 1: © ESPRIT 2009 H.JEDIDI & M.ABDALLAH1 Chapitre 1: Introduction

1

Architecture des microcontrôleurs

© ESPRIT 2009 H.JEDIDI & M.ABDALLAH

Chapitre 1: Introduction

ABDALLAH Mohamed

[email protected]

JEDIDI Hassen

[email protected]

Page 2: © ESPRIT 2009 H.JEDIDI & M.ABDALLAH1 Chapitre 1: Introduction

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.

Page 3: © ESPRIT 2009 H.JEDIDI & M.ABDALLAH1 Chapitre 1: Introduction

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

Page 4: © ESPRIT 2009 H.JEDIDI & M.ABDALLAH1 Chapitre 1: Introduction

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.

Page 5: © ESPRIT 2009 H.JEDIDI & M.ABDALLAH1 Chapitre 1: Introduction

5© ESPRIT 2009 H.JEDIDI & M.ABDALLAH

Histoire des calculateurs

Page 6: © ESPRIT 2009 H.JEDIDI & M.ABDALLAH1 Chapitre 1: Introduction

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

Page 7: © ESPRIT 2009 H.JEDIDI & M.ABDALLAH1 Chapitre 1: Introduction

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

Page 8: © ESPRIT 2009 H.JEDIDI & M.ABDALLAH1 Chapitre 1: Introduction

8

Une évolution

Taille Nombre

Mais pas seulement …..

© ESPRIT 2009 H.JEDIDI & M.ABDALLAH

Page 9: © ESPRIT 2009 H.JEDIDI & M.ABDALLAH1 Chapitre 1: Introduction

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

Page 10: © ESPRIT 2009 H.JEDIDI & M.ABDALLAH1 Chapitre 1: Introduction

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

Page 11: © ESPRIT 2009 H.JEDIDI & M.ABDALLAH1 Chapitre 1: Introduction

11© ESPRIT 2009 H.JEDIDI & M.ABDALLAH

Page 12: © ESPRIT 2009 H.JEDIDI & M.ABDALLAH1 Chapitre 1: Introduction

12

Autres barrières historiques

© ESPRIT 2009 H.JEDIDI & M.ABDALLAH

Page 13: © ESPRIT 2009 H.JEDIDI & M.ABDALLAH1 Chapitre 1: Introduction

13

Des nouvelles IHM

© ESPRIT 2009 H.JEDIDI & M.ABDALLAH

Page 14: © ESPRIT 2009 H.JEDIDI & M.ABDALLAH1 Chapitre 1: Introduction

14

Des nouveaux objets et dispositifs communicants

• Tag RFID

• Capteurs

• Robots

© ESPRIT 2009 H.JEDIDI & M.ABDALLAH

Page 15: © ESPRIT 2009 H.JEDIDI & M.ABDALLAH1 Chapitre 1: Introduction

15

Des nouveaux objets et dispositifs communicants (2)

© ESPRIT 2009 H.JEDIDI & M.ABDALLAH

Page 16: © ESPRIT 2009 H.JEDIDI & M.ABDALLAH1 Chapitre 1: Introduction

16

Vers la convergence totale

Mobilité

Multimédia

Connectivit

é

© ESPRIT 2009 H.JEDIDI & M.ABDALLAH

Page 17: © ESPRIT 2009 H.JEDIDI & M.ABDALLAH1 Chapitre 1: Introduction

17

Microcontrôleur

© ESPRIT 2009 H.JEDIDI & M.ABDALLAH

Page 18: © ESPRIT 2009 H.JEDIDI & M.ABDALLAH1 Chapitre 1: Introduction

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

Page 19: © ESPRIT 2009 H.JEDIDI & M.ABDALLAH1 Chapitre 1: Introduction

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

Page 20: © ESPRIT 2009 H.JEDIDI & M.ABDALLAH1 Chapitre 1: Introduction

20© ESPRIT 2009 H.JEDIDI & M.ABDALLAH

Microcontrôleur(2)

Page 21: © ESPRIT 2009 H.JEDIDI & M.ABDALLAH1 Chapitre 1: Introduction

21© ESPRIT 2009 H.JEDIDI & M.ABDALLAH

Circuit intégré

Page 22: © ESPRIT 2009 H.JEDIDI & M.ABDALLAH1 Chapitre 1: Introduction

22© ESPRIT 2009 H.JEDIDI & M.ABDALLAH

Page 23: © ESPRIT 2009 H.JEDIDI & M.ABDALLAH1 Chapitre 1: Introduction

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, …)•

Page 24: © ESPRIT 2009 H.JEDIDI & M.ABDALLAH1 Chapitre 1: Introduction

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

Page 25: © ESPRIT 2009 H.JEDIDI & M.ABDALLAH1 Chapitre 1: Introduction

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

Page 26: © ESPRIT 2009 H.JEDIDI & M.ABDALLAH1 Chapitre 1: Introduction

26© ESPRIT 2009 H.JEDIDI & M.ABDALLAH

Schéma bloc d’un microcontrôleur

Page 27: © ESPRIT 2009 H.JEDIDI & M.ABDALLAH1 Chapitre 1: Introduction

27© ESPRIT 2009 H.JEDIDI & M.ABDALLAH

Schéma bloc d’un microcontrôleur

Mémoires

Contrôle ALU

Ports E/S

Timer

Page 28: © ESPRIT 2009 H.JEDIDI & M.ABDALLAH1 Chapitre 1: Introduction

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

Page 29: © ESPRIT 2009 H.JEDIDI & M.ABDALLAH1 Chapitre 1: Introduction

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

Page 30: © ESPRIT 2009 H.JEDIDI & M.ABDALLAH1 Chapitre 1: Introduction

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

Page 31: © ESPRIT 2009 H.JEDIDI & M.ABDALLAH1 Chapitre 1: Introduction

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

Page 32: © ESPRIT 2009 H.JEDIDI & M.ABDALLAH1 Chapitre 1: Introduction

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

Page 33: © ESPRIT 2009 H.JEDIDI & M.ABDALLAH1 Chapitre 1: Introduction

33© ESPRIT 2009 H.JEDIDI & M.ABDALLAH

Représentation et traitement des données

Page 34: © ESPRIT 2009 H.JEDIDI & M.ABDALLAH1 Chapitre 1: Introduction

34

Codage et décodage d’informations

© ESPRIT 2009 H.JEDIDI & M.ABDALLAH

Page 35: © ESPRIT 2009 H.JEDIDI & M.ABDALLAH1 Chapitre 1: Introduction

35

Les différents types de caractères

© ESPRIT 2009 H.JEDIDI & M.ABDALLAH

Page 36: © ESPRIT 2009 H.JEDIDI & M.ABDALLAH1 Chapitre 1: Introduction

© ESPRIT 2009 H.JEDIDI & M.ABDALLAH

36

Code ASCII

Page 37: © ESPRIT 2009 H.JEDIDI & M.ABDALLAH1 Chapitre 1: Introduction

© ESPRIT 2009 H.JEDIDI & M.ABDALLAH

37

Unité de stockage

Page 38: © ESPRIT 2009 H.JEDIDI & M.ABDALLAH1 Chapitre 1: Introduction

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

Page 39: © ESPRIT 2009 H.JEDIDI & M.ABDALLAH1 Chapitre 1: Introduction

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

Page 40: © ESPRIT 2009 H.JEDIDI & M.ABDALLAH1 Chapitre 1: Introduction

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

Page 41: © ESPRIT 2009 H.JEDIDI & M.ABDALLAH1 Chapitre 1: Introduction

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

Page 42: © ESPRIT 2009 H.JEDIDI & M.ABDALLAH1 Chapitre 1: Introduction

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

Page 43: © ESPRIT 2009 H.JEDIDI & M.ABDALLAH1 Chapitre 1: Introduction

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

Page 44: © ESPRIT 2009 H.JEDIDI & M.ABDALLAH1 Chapitre 1: Introduction

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

Page 45: © ESPRIT 2009 H.JEDIDI & M.ABDALLAH1 Chapitre 1: Introduction

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

Page 46: © ESPRIT 2009 H.JEDIDI & M.ABDALLAH1 Chapitre 1: Introduction

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

Page 47: © ESPRIT 2009 H.JEDIDI & M.ABDALLAH1 Chapitre 1: Introduction

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

Page 48: © ESPRIT 2009 H.JEDIDI & M.ABDALLAH1 Chapitre 1: Introduction

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

Page 49: © ESPRIT 2009 H.JEDIDI & M.ABDALLAH1 Chapitre 1: Introduction

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

Page 50: © ESPRIT 2009 H.JEDIDI & M.ABDALLAH1 Chapitre 1: Introduction

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

Page 51: © ESPRIT 2009 H.JEDIDI & M.ABDALLAH1 Chapitre 1: Introduction

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

Page 52: © ESPRIT 2009 H.JEDIDI & M.ABDALLAH1 Chapitre 1: Introduction

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

Page 53: © ESPRIT 2009 H.JEDIDI & M.ABDALLAH1 Chapitre 1: Introduction

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

Page 54: © ESPRIT 2009 H.JEDIDI & M.ABDALLAH1 Chapitre 1: Introduction

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

Page 55: © ESPRIT 2009 H.JEDIDI & M.ABDALLAH1 Chapitre 1: Introduction

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

Page 56: © ESPRIT 2009 H.JEDIDI & M.ABDALLAH1 Chapitre 1: Introduction

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

Page 57: © ESPRIT 2009 H.JEDIDI & M.ABDALLAH1 Chapitre 1: Introduction

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

Page 58: © ESPRIT 2009 H.JEDIDI & M.ABDALLAH1 Chapitre 1: Introduction

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

Page 59: © ESPRIT 2009 H.JEDIDI & M.ABDALLAH1 Chapitre 1: Introduction

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

Page 60: © ESPRIT 2009 H.JEDIDI & M.ABDALLAH1 Chapitre 1: Introduction

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

Page 61: © ESPRIT 2009 H.JEDIDI & M.ABDALLAH1 Chapitre 1: Introduction

Représentation des nombres

entiers

© ESPRIT 2009 H.JEDIDI & M.ABDALLAH 61

Page 62: © ESPRIT 2009 H.JEDIDI & M.ABDALLAH1 Chapitre 1: Introduction

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

Page 63: © ESPRIT 2009 H.JEDIDI & M.ABDALLAH1 Chapitre 1: Introduction

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

Page 64: © ESPRIT 2009 H.JEDIDI & M.ABDALLAH1 Chapitre 1: Introduction

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

Page 65: © ESPRIT 2009 H.JEDIDI & M.ABDALLAH1 Chapitre 1: Introduction

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

Page 66: © ESPRIT 2009 H.JEDIDI & M.ABDALLAH1 Chapitre 1: Introduction

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

Page 67: © ESPRIT 2009 H.JEDIDI & M.ABDALLAH1 Chapitre 1: Introduction

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

Page 68: © ESPRIT 2009 H.JEDIDI & M.ABDALLAH1 Chapitre 1: Introduction

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

Page 69: © ESPRIT 2009 H.JEDIDI & M.ABDALLAH1 Chapitre 1: Introduction

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

Page 70: © ESPRIT 2009 H.JEDIDI & M.ABDALLAH1 Chapitre 1: Introduction

• 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

Page 71: © ESPRIT 2009 H.JEDIDI & M.ABDALLAH1 Chapitre 1: Introduction

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

Page 72: © ESPRIT 2009 H.JEDIDI & M.ABDALLAH1 Chapitre 1: Introduction

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

Page 73: © ESPRIT 2009 H.JEDIDI & M.ABDALLAH1 Chapitre 1: Introduction

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

Page 74: © ESPRIT 2009 H.JEDIDI & M.ABDALLAH1 Chapitre 1: Introduction

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

Page 75: © ESPRIT 2009 H.JEDIDI & M.ABDALLAH1 Chapitre 1: Introduction

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

Page 76: © ESPRIT 2009 H.JEDIDI & M.ABDALLAH1 Chapitre 1: Introduction

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

Page 77: © ESPRIT 2009 H.JEDIDI & M.ABDALLAH1 Chapitre 1: Introduction

- 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

Page 78: © ESPRIT 2009 H.JEDIDI & M.ABDALLAH1 Chapitre 1: Introduction

Représentation des nombres

réels

© ESPRIT 2009 H.JEDIDI & M.ABDALLAH 78

Page 79: © ESPRIT 2009 H.JEDIDI & M.ABDALLAH1 Chapitre 1: Introduction

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

Page 80: © ESPRIT 2009 H.JEDIDI & M.ABDALLAH1 Chapitre 1: Introduction

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

Page 81: © ESPRIT 2009 H.JEDIDI & M.ABDALLAH1 Chapitre 1: Introduction

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

Page 82: © ESPRIT 2009 H.JEDIDI & M.ABDALLAH1 Chapitre 1: Introduction

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

Page 83: © ESPRIT 2009 H.JEDIDI & M.ABDALLAH1 Chapitre 1: Introduction

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

Page 84: © ESPRIT 2009 H.JEDIDI & M.ABDALLAH1 Chapitre 1: Introduction

- (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

Page 85: © ESPRIT 2009 H.JEDIDI & M.ABDALLAH1 Chapitre 1: Introduction

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

Page 86: © ESPRIT 2009 H.JEDIDI & M.ABDALLAH1 Chapitre 1: Introduction

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

Page 87: © ESPRIT 2009 H.JEDIDI & M.ABDALLAH1 Chapitre 1: Introduction

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

Page 88: © ESPRIT 2009 H.JEDIDI & M.ABDALLAH1 Chapitre 1: Introduction

- (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

Page 89: © ESPRIT 2009 H.JEDIDI & M.ABDALLAH1 Chapitre 1: Introduction

89

Fin du premier Chapitre

© ESPRIT 2009 H.JEDIDI & M.ABDALLAH