La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Architecture des microcontrôleurs

Présentations similaires


Présentation au sujet: "Architecture des microcontrôleurs"— Transcription de la présentation:

1 Architecture des microcontrôleurs
Chapitre 1: Introduction ABDALLAH Mohamed JEDIDI Hassen © ESPRIT H.JEDIDI & M.ABDALLAH

2 Objectifs Comprendre l’architecture des microcontrôleurs.
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. © ESPRIT H.JEDIDI & M.ABDALLAH

3 Programme du module Introduction
Architecture et fonctionnement des PIC 16F84 Le jeu d’instructions Les modes d’adressage Les interruptions Le TIMER Le WATCHDOG © ESPRIT H.JEDIDI & M.ABDALLAH

4 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. © ESPRIT H.JEDIDI & M.ABDALLAH

5 Histoire des calculateurs
© ESPRIT H.JEDIDI & M.ABDALLAH

6 Histoire des Sciences : quelques points de repères
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 , relais, 30 tonnes, 15O KW, 5000 additions par seconde). 1947 : transistor à pointes germanium (brattain, bardeen, shockley) Nobel 1958 1954 : transistor silicium (G. Teal, TI) © ESPRIT H.JEDIDI & M.ABDALLAH

7 Histoire des Sciences : quelques points de repères(2)
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 © ESPRIT H.JEDIDI & M.ABDALLAH

8 Une évolution Taille Nombre Mais pas seulement …..
© ESPRIT H.JEDIDI & M.ABDALLAH

9 Loi de Moore 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. © ESPRIT H.JEDIDI & M.ABDALLAH

10 Loi de MOORE Année 1971 2001 Transistors 2300 42 000 000 Fréq (Khz)
108 Tech (µm) 10,0 0,13 Intel 4004 Intel Pentium 4 © ESPRIT H.JEDIDI & M.ABDALLAH

11 © ESPRIT 2009 H.JEDIDI & M.ABDALLAH

12 Autres barrières historiques
© ESPRIT H.JEDIDI & M.ABDALLAH

13 Des nouvelles IHM © ESPRIT H.JEDIDI & M.ABDALLAH

14 Des nouveaux objets et dispositifs communicants
Tag RFID Capteurs Robots © ESPRIT H.JEDIDI & M.ABDALLAH

15 Des nouveaux objets et dispositifs communicants (2)
© ESPRIT H.JEDIDI & M.ABDALLAH

16 Vers la convergence totale
Mobilité Multimédia Connectivité © ESPRIT H.JEDIDI & M.ABDALLAH

17 Microcontrôleur © ESPRIT H.JEDIDI & M.ABDALLAH

18 Contrôleur 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 H.JEDIDI & M.ABDALLAH

19 Microcontrôleur 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 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 H.JEDIDI & M.ABDALLAH

20 Microcontrôleur(2) © ESPRIT H.JEDIDI & M.ABDALLAH

21 Circuit intégré © ESPRIT H.JEDIDI & M.ABDALLAH

22 © ESPRIT 2009 H.JEDIDI & M.ABDALLAH

23 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, …) © ESPRIT H.JEDIDI & M.ABDALLAH

24 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 © ESPRIT H.JEDIDI & M.ABDALLAH

25 RISC/ CISC CISC RISC Avantages Jeu d’instructions riche
Jeu d’instructions facile à mémoriser. Le code est compact, chaque instruction dure un cycle. Inconvénients Durée d’une instruction variable. Codage sur plusieurs octets Jeu d’instruction pauvre © ESPRIT H.JEDIDI & M.ABDALLAH

26 Schéma bloc d’un microcontrôleur
© ESPRIT H.JEDIDI & M.ABDALLAH

27 Schéma bloc d’un microcontrôleur
Mémoires Ports E/S Contrôle ALU Timer © ESPRIT H.JEDIDI & M.ABDALLAH

28 Classes des processeurs
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 H.JEDIDI & M.ABDALLAH

29 Classes des processeurs
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 H.JEDIDI & M.ABDALLAH

30 Classes des processeurs
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 H.JEDIDI & M.ABDALLAH

31 Exemples de microcontrôleurs
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 16C71 Microchip 20 Mhz 36 1Kx14 13 1 4 RISC 6805 S2 Motorola 4 MHz 64 1 Ko 16 8 68HC11 A1 8 MHz 256 512 22 AT90S 8515 Atmel 20 MHz 3 ST 6265 Thomson 21 © ESPRIT H.JEDIDI & M.ABDALLAH

32 Domaines d’application
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 H.JEDIDI & M.ABDALLAH

33 Représentation et traitement des données
© ESPRIT H.JEDIDI & M.ABDALLAH

34 Codage et décodage d’informations
© ESPRIT H.JEDIDI & M.ABDALLAH

35 Les différents types de caractères
© ESPRIT H.JEDIDI & M.ABDALLAH

36 Code ASCII © ESPRIT H.JEDIDI & M.ABDALLAH

37 Unité de stockage © ESPRIT H.JEDIDI & M.ABDALLAH

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. Poids fort Poids faible Partie fractionnelle Partie entière 345 , 567 © ESPRIT H.JEDIDI & M.ABDALLAH

39 Système binaire ( système à base 2 )
Dans le système binaire, pour exprimer n’importe quelle valeur on utilise uniquement 2 symboles : { 0 , 1} ( 1101)2 La base Un bit ( )2 Le bits du poids forts Le bits du poids faible . Un nombre dans la base 2 peut être écrit aussi sous la forme polynomial © ESPRIT H.JEDIDI & M.ABDALLAH

40 Comptage en binaire .Sur 2 bits : Sur un seul bit : 0 , 1 Décimal
1 2 3 4 5 6 7 000 001 010 011 100 101 110 111 .Sur 2 bits : Décimal Binaire 1 2 3 00 01 10 11 © ESPRIT 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 : Exemple 2 : Le nombre (1289) n’existe pas dans la base 8 puisque les symboles 8 et 9 n’appartiennent pas à la base . © ESPRIT H.JEDIDI & M.ABDALLAH

42 Le système hexadécimal ( base 16 )
1 2 3 4 5 6 7 8 9 A 10 B 11 C 12 D 13 E 14 F 15 On utilise seize (16) symboles différents: © ESPRIT 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 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. Exemple : © ESPRIT 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 H.JEDIDI & M.ABDALLAH

46 Conversion de la base 10 à la base 2
Le principe consiste à faire des divisions successives du nombre sur 2 , et prendre le reste des divisions dans l’ordre inverse. 35 2 17 1 8 4 Exemple 1 : (35)10=(?)2 Après division : on obtient : (35)10=(100011)2 © ESPRIT 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 * 2 = 1,25 0,25 * 2 = 0 ,5 0,5 * 2 = 1 ,0 (0,625)=(0,101)2 Donc 35,625=(100011,101)2 © ESPRIT 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 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. Exemple : 35 = (?)3 35 3 11 2 1 35=(1022)3 Question : Effectuer les transformations suivantes : (43)10=(?)2=(?)5 =(?)8 =(?)16 © ESPRIT H.JEDIDI & M.ABDALLAH

50 43 2 21 1 10 5 43 5 8 3 1 (133)5 (101011)2 43 16 2 11 8 5 3 (53)8 43 (2B)16 © ESPRIT 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 H.JEDIDI & M.ABDALLAH

52 Exercice : effectuer les transformations suivantes (43)6=(?)5=(?)8
Exemple : ( 34)5=(?)7 19 7 2 5 (19)10=(25)7 ( 34)5=(25)7 Exercice : effectuer les transformations suivantes (43)6=(?)5=(?)8 (2A)16=(?)9 © ESPRIT H.JEDIDI & M.ABDALLAH

53 Conversion : binaire  octal
000 001 010 011 100 101 110 111 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=( )2 (65,76)8=( , )2 (35,34)8=( , )2 Remarque : le remplacement se fait de droit à gauche pour la partie entière et de gauche à droite pour la partie fractionnelle . © ESPRIT 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 : ( )2=( )2=(31226)8 ( ,10101)2= ( , )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 H.JEDIDI & M.ABDALLAH

55 Conversion : hexadécimal  binaire
1 2 3 4 5 6 7 8 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=( )2 (AB3,4F6)16 = ( , ) 2 © ESPRIT 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 : ( )2=( )2=(32A6)16 ( ,10101)2= ( , )2=(194,A8)16 © ESPRIT H.JEDIDI & M.ABDALLAH

57 Opérations arithmétiques en binaire
+ 1 1 0 1 1 + 1 1 1 1 1 1 © ESPRIT H.JEDIDI & M.ABDALLAH

58 Opérations arithmétiques en octal
1 1 + 5 8 11 6 En octal 11 s’écrit 13 En octal 8 s’écrit 10 3 Le résultat final : (5036)8 © ESPRIT H.JEDIDI & M.ABDALLAH

59 Opérations arithmétiques en hexadécimal
1 + A 12 18 11 6 C En hexa 11 s’écrit B En hexa 18 s’écrit 12 B 2 Le résultat final : (C2B6)16 © ESPRIT 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 H.JEDIDI & M.ABDALLAH

61 Représentation des nombres entiers
© ESPRIT H.JEDIDI & M.ABDALLAH

62 1. Représentation des nombres entiers
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 ) © ESPRIT H.JEDIDI & M.ABDALLAH

63 1.1 Représentation signe / valeur absolue ( S/VA )
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 001 0 001 Valeur absolue Valeur absolue Signe Signe 1001 est la représentation de - 1 0001 est la représentation de + 1 © ESPRIT H.JEDIDI & M.ABDALLAH

64 -(2 (n -1) -1) ≤ N ≤ +(2 (n -1) -1 ) Sur 3 bits on obtient :
valeur VA signe + 0 + 1 + 2 + 3 00 01 10 11 - 0 - 1 - 2 - 3 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 ) 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 ) © ESPRIT H.JEDIDI & M.ABDALLAH

65 Avantages et inconvénients de la représentation signe/valeur absolue
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 ) © ESPRIT H.JEDIDI & M.ABDALLAH

66 1.2 Représentation en complément à un ( complément restreint )
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)-N N’=(16-1 )-(1010)2= (15 ) - (1010)2 = (1111)2 – (1010)2 = 0101 + © ESPRIT H.JEDIDI & M.ABDALLAH

67 Remarque 1 : 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 : Sur 4 Bits Sur 5 Bits © ESPRIT H.JEDIDI & M.ABDALLAH

68 Remarque 2 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 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 © ESPRIT H.JEDIDI & M.ABDALLAH

69 Valeur décimal Valeur en binaire Valeur en CA1 + 0 + 1 + 2 + 3 000 001
Si on travail sur 3 bits : Valeur décimal Valeur en binaire Valeur en CA1 + 0 + 1 + 2 + 3 000 001 010 011 - 3 - 2 - 1 - 0 - 011 - 010 - 001 - 000 100 101 110 111 Dans cette représentation , le bit du poids fort nous indique le signe . On remarque que dans cette représentation le zéro possède aussi une double représentation ( +0 et – 0 ) . © ESPRIT H.JEDIDI & M.ABDALLAH

70 -(2 (n -1) -1) ≤ N ≤ +(2 (n -1) -1 ) -3 ≤ N ≤ +3
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 ) © ESPRIT H.JEDIDI & M.ABDALLAH

71 1.3 Complément à 2 ( complément à vrai )
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 + Si on prend le résultat sur 4 bits on trouve la même valeur de a = 1001 © ESPRIT H.JEDIDI & M.ABDALLAH

72 Trouver le complément à vrai de : 01000101 sur 8 bits ?
Exemple Trouver le complément à vrai de : sur 8 bits ? CA2( )= CA1( )+ 1 CA1( )= ( ) CA2( )=( )+ 1 = ( ) 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. © ESPRIT H.JEDIDI & M.ABDALLAH

73 Remarque 2 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 en complément à deux sur 6 bits ? Le bit poids fort indique qu'il s'agit d'un nombre négatif. Valeur = - CA2(101010) = - ( ) = - (010110)2= - ( 22) © ESPRIT H.JEDIDI & M.ABDALLAH

74 Si on travail sur 3 bits : + 0 + 1 + 2 + 3 000 001 010 011 - 4 - 3 - 2
valeur Valeur en binaire Valeur en CA2 + 0 + 1 + 2 + 3 000 001 010 011 - 4 - 3 - 2 - 1 - 100 - 011 - 010 - 001 100 101 110 111 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. © ESPRIT H.JEDIDI & M.ABDALLAH

75 -(2 (n -1)) ≤ N ≤ +(2 (n -1) -1 ) -4 ≤ N ≤ +3 - 4 ≤ N ≤ + (4 -1 )
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. © ESPRIT H.JEDIDI & M.ABDALLAH

76 Opérations arithmétiques en CA2
Effectuer les opérations suivantes sur 5 Bits , en utilisant la représentation en CA2 + 9 - 4 + 5 + + 9 + 4 + 13 + Report Le résultat est positif (01101)2= ( 13)10 Le résultat est positif (00101)2= ( 5)10 © ESPRIT H.JEDIDI & M.ABDALLAH

77 Le résultat est négatif : Résultat = - CA2 (10011) = -( 01101) = - 13
- 9 + 9 + 0 + + - 9 - 4 - 13 Report Report Le résultat est négatif : Résultat = - CA2 (10011) = -( 01101) = - 13 Le résultat est positif (00000)2= ( 0)10 © ESPRIT H.JEDIDI & M.ABDALLAH

78 Représentation des nombres réels
© ESPRIT H.JEDIDI & M.ABDALLAH

79 2. La représentation des nombres réels
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 ) © ESPRIT H.JEDIDI & M.ABDALLAH

80 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 . 00 01 10 11 .00 000 001 Dans cette représentation les valeurs sont limitées et nous n’avons pas une grande précision © ESPRIT H.JEDIDI & M.ABDALLAH

81 2.2 Représentation en virgule flottante
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. © ESPRIT H.JEDIDI & M.ABDALLAH

82 Pour la représentation de l’exposant on utilise :
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é © ESPRIT H.JEDIDI & M.ABDALLAH

83 Représentation de l’exposant en complément à deux
On veut représenter les nombres ( 0,015)8 et -( 15, 01)8 en virgule flottante sur une machine ayant le format suivant : Signe mantisse Exposant en CA2 Mantisse normalisée 1 bit bits bits (0,015)8=(0, )2= 0,1101 * 2-5 Signe mantisse : positif ( 0) Mantisse normalisé : 0,1101 Exposant = -5  utiliser le complément à deux pour représenter le -5 Sur 4 bits CA2(0101)=1011 1 bit bits bits © ESPRIT H.JEDIDI & M.ABDALLAH

84 Signe mantisse : négatif ( 1) Mantisse normalisée : 0,1101000001
- (15,01)8 = - (001101,000001)2= - 0, * 24 Signe mantisse : négatif ( 1) Mantisse normalisée : 0, Exposant = 4 , en complément à deux il garde la même valeur ( 0100) On remarque que la mantisse est sur 10 bits ( ), 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 1 1 bit bits 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 . © ESPRIT H.JEDIDI & M.ABDALLAH

85 L’ Exposant décalé ( biaisé )
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) (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 © ESPRIT H.JEDIDI & M.ABDALLAH

86 Exposant Biaisé = Exposant réel + Biais
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 © ESPRIT H.JEDIDI & M.ABDALLAH

87 Exemple On veut représenter les nombres ( 0,015)8 et -( 15, 01)8en virgule flottante sur une machine ayant le format suivant : Signe mantisse Exposant décalé Mantisse normalisée 1 bit bits bits (0,015)8=(0, )2= 0,1101 * 2-5 Signe mantisse : positif ( 0) Mantisse normalisé : 0,1101 Exposant réel = -5 Calculer le biais : b= 24-1 = 8 Exposant Biaisé = = +3 = ( 0011)2 0011 1 bit bits bits © ESPRIT H.JEDIDI & M.ABDALLAH

88 Signe mantisse : négatif ( 1) Mantisse normalisée : 0,1101000001
- (15,01)8=(001101,000001)2= 0, * 24 Signe mantisse : négatif ( 1) Mantisse normalisée : 0, Exposant réel = + 4 Calculer le biais : b= 24-1 = 8 Exposant Biaisé = = +12 = ( 1100)2 1 1100 1 bit bits bits © ESPRIT H.JEDIDI & M.ABDALLAH

89 Fin du premier Chapitre © ESPRIT H.JEDIDI & M.ABDALLAH


Télécharger ppt "Architecture des microcontrôleurs"

Présentations similaires


Annonces Google