Cours - Microprocesseurs et Microcontroleurs - internet.pdf

January 20, 2018 | Author: soukaina | Category: Central Processing Unit, Microprocessor, Microcontroller, Computer Program, Compiler
Share Embed Donate


Short Description

Download Cours - Microprocesseurs et Microcontroleurs - internet.pdf...

Description

Microprocesseurs & Microcontrôleurs Sylvain MONTAGNY [email protected] Bâtiment chablais, bureau 13 04 79 75 86 86 Retrouver tous les documents de Cours/TD/TP sur le site www.master-electronique.com

Présentation cours : Sommaire l Cours : 10.5 h en 7 séances l

Chapitre 1 : Rappels généraux sur les processeurs

l

Chapitre 2 : Les microcontrôleurs l

l

l

Définition Etude des périphériques

Chapitre 3 : La programmation

Université de Savoie

2

Présentation TD l TD

: 10.5 h en 7 séances

l

TD1 : Rappel sur les systèmes à microprocesseur. Cadencement d’un microcontrôleur. Instructions assembleurs.

l

TD2 : Utilisation du timer d’un microcontrôleur. Configuration des ports d’entrée/sortie d’un microcontrôleur.

l

TD3 : Les interruptions

l

TD4 : Gestion d’afficheur 7 segments

l

TD5 : Conversion Analogique / Numérique

Université de Savoie

3

Présentation TP l

TP : 12h en 3 séances de 4h l

TP1 : Prise en main d’un environnement de programmation sur microcontrôleur

l

TP2 : Etude du Watchdog, et des interruptions dans un microcontrôleur

l

TP3 : Réalisation d’un minuteur à l’aide d’un afficheur 7 segments.

Université de Savoie

4

Chapitre 1 : Rappel généraux sur les processeurs

l l l l

1.1 Rappel sur l’architecture interne des microprocesseurs 1.2 Le traitement des instructions 1.3 Les modes d’adressages 1.4 Exemple d’exécution d’un programme

Université de Savoie

5

Le microprocesseur Architecture interne (1) Bus d’adresses

Microprocesseur

Unité de commande

Programme Mémoire

Unité de Accumulateur traitement Registre d’état

Données

Bus de données 6

Le microprocesseur Architecture interne (2) Bus d’adresses

Microprocesseur PC

Programme Mémoire

Accumulateur Accumulateur Registre d’état Registre d’état

Bloc logique de commande Décodeur d’instruction

Données

Bus de données 7

Le microprocesseur Unité de commande Elle permet de séquencer le déroulement des instructions. Bus d’adresse

PC

Bloc logique de commande

Instruction

Décodeur d’instruction

PC : Programme Counter, appelé aussi Compteur Ordinal. Il contient toujours l’adresse de la prochaine instruction à exécuter. Le décodeur d'instruction : Le mot binaire (instruction) est décodé pour savoir à quelle action correspond l’instruction. Bloc logique de commande (séquenceur) : Il organise l'exécution des instructions au rythme de l’horloge. Il élabore tous les signaux de synchronisation du microprocesseur en fonction de l’instruction qu’il a à exécuter. 8

Le microprocesseur Unité de traitement Elle exécute les instructions.

Microprocesseur Accumulateur Accumulateur Registre d’état Registre d’état

L’accumulateur : C’est un registre de travail qui sert à stocker le résultat des opérations réalisées par L’UAL. L’Unité Arithmétique et Logique (UAL) est un circuit complexe qui assure les fonctions logiques (ET, OU, comparaison, décalage, etc…) ou arithmétique (addition, soustraction…). Le registre d'état : Chacun des bits de ce registre dépend du résultat de la dernière opération effectuée par l’UAL. Exemple : Bit de retenue (carry : C), débordement (overflow : OV ou V), Zéro (Z) ... 9

Le traitement des instructions Résumé 1 2

CPU

Mémoire 4 3

l l l l

(1) Charger une instruction depuis la mémoire (2) Charger les opérandes depuis la mémoire (3) Effectuer les calculs (4) Stocker le résultat en mémoire

Université de Savoie

10

L’architecture Von Neuman

CPU l

Un seul chemin d'accès à la mémoire l l

l l

BUS

Mémoire Programme & données

Un bus de données (programme et données), Un bus d’adresse (programme et données)

Architecture des processeurs d’usage général Goulot d'étranglement pour l'accès à la mémoire Université de Savoie

11

L’architecture Harvard

CPU l

Mémoire donnée

Séparation des mémoires programme et données l l l l

l

Mémoire programme

Un bus de données programme, Un bus de données pour les données, Un bus d’adresse programme, Un bus d’adresse pour les données.

Meilleure utilisation du CPU : l

Chargement du programme et des données en parallèle

12

L’architecture Harvard : Cas des microcontrôleurs PIC l

Seul les bus de donnée (data ou instructions) sont représentées

Université de Savoie

13

Chapitre 1 : Rappel généraux sur les processeurs l l l l

1.1 Rappel sur l’architecture interne des microprocesseurs 1.2 Le traitement des instructions 1.3 Les modes d’adressages 1.4 Exemple d’exécution d’un programme

Université de Savoie

14

Le traitement des instructions Organisation d’une instruction Le microprocesseur ne comprend qu’un certain nombre d’instructions qui sont codées en binaire. Une instruction est composée de deux éléments : l

l

Le code opération : C’est un code binaire qui correspond à l’action à effectuer par le processeur Le champ opérande : Donnée ou bien adresse de la donnée.

La taille d'une instruction peut varier, elle est généralement de quelques octets (1 à 8), elle dépend également de l'architecture du processeur.

Université de Savoie

15

Le traitement des instructions Exemple d’instruction l

Instruction Addition : Accumulateur = Accumulateur + Opérande

Correspond à l’instruction ADD A,#2

Instruction (16 bits) Code opératoire (5 bits) Champ opérande (11 bits) ADD A #2 11001 000 0000 0010 Cette instruction est comprise par le processeur par le mot binaire :

11001

000 0000 0010 = code machine Université de Savoie

16

Le traitement des instructions Phase 1 : Recherche de l’instruction en mémoire Rapporter moi les ordres écrits sur ce parchemin !!!

Ordres : 1. Attaquer camp romain 2. Organiser banquet Outils : 1. Menhir, Potion magique 2. Sanglier

Unité de traitement

Unité de commande

La valeur du PC est placée sur le bus d'adresse, et l'unité de commande émet un ordre de lecture de la mémoire. Après le temps d'accès à la mémoire, le contenu de la case mémoire sélectionnée (instruction) est disponible sur le bus des données et arrive à l’entrée du décodeur.

Université de Savoie

17

Le traitement des instructions Phase 2 : Décodage et recherche de l’opérande Rapportez moi les outils écrits sur ce parchemin !!!

Ordres : 1. Attaquer camp romain 2. Organiser banquet Outils : 1. Menhir, Potion magique 2. Sanglier

Unité de traitement

Unité de commande

Si l'instruction nécessite une donnée en provenance de la mémoire, l'unité de commande récupère sa valeur sur le bus de données en faisant un nouvel accès mémoire. La donnée arrive à l’entrée de l’ALU.

Université de Savoie

18

Le traitement des instructions Phase 3 : Exécution de l’instruction On va commencer par attaquer le camps Romain avec des menhir et de la potion !!!

Ordres : 1. Attaquer camp romain 2. Organiser banquet Outils : 1. Menhir, Potion magique 2. Sanglier

Unité de traitement

Unité de commande

L’ALU réaliser l’opération que le séquenceur lui demande. Les drapeaux sont positionnés (registre d'état). Le PC est incrémenté pour indiquer l'instruction suivante.

Université de Savoie

19

Le traitement des instructions Déroulement Bus d’adresses

Microprocesseur PC

Programme Mémoire

Accumulateur Accumulateur Registre d’état Registre d’état

Bloc logique de commande Décodeur d’instruction

Données

Bus de données 20

Le traitement des instructions Les architectures RISC et CISC (1) Actuellement l’architecture des microprocesseurs se composent de deux grandes familles :

l

L’ architecture CISC (Complex Instruction Set Computer)

l

L’architecture RISC (Reduced Instruction Set Computer)

Université de Savoie

21

Chapitre 1 : Rappels généraux sur les processeurs l l l l

1.1 Rappel sur l’architecture interne des microprocesseurs 1.2 Le traitement des instructions 1.3 Les modes d’adressages 1.4 Exemple d’exécution d’un programme

Université de Savoie

22

Les modes d’adressages l

Ce sont les diverses manières de définir la localisation d ’un opérande. Les trois modes d’adressage les plus courant sont : l l l

Adressage immédiat Adressage direct Adressage indirect

Pourquoi existe-t-il plusieurs modes d’adressage ? Université de Savoie

23

Les modes d’adressages Immédiat Exemple : ADDA

#4 ALU

Mémoire Mé Contenu

0x00

0……………….. 110 1101

0x01

0……………….. 100 0101 0……………….. 010 1111

Compteur Ordinal adrs+1 PC

adrs

1 1 0ADDA 1 0101

adrs + 1

0 1 1 0#41 0 0 1

adrs + 2

………………… 1……………….. 010 1101

Accumulateur

Adresses

………………… 0011 1000 1………………… 100 0101 1………………… 010 1001 …………………. 0111 1010

Université de Savoie

24

Les modes d’adressages Direct Exemple : ADDA

adresseX ALU

Mémoire Contenu

0x00

0……………….. 110 1101

0x01

0……………….. 100 0101 0……………….. 010 1111

Compteur Ordinal adrs+1 PC

adrs

1 1 0ADDA 1 0101

adrs + 1

0 adresseX 110 1001

adrs + 2

………………… 1010 1101

adresseX

Accumulateur

Adresses

0xxxx 0 1 1 xxxx 1000 1………………… 100 0101 1………………… 010 1001 …………………. 0111 1010

Université de Savoie

25

Les modes d’adressages Indirect Exemple : ADDA

@adresseX ALU

Mémoire Contenu

0x00

0……………….. 110 1101

0x01

0……………….. 100 0101 0……………….. 010 1111

Compteur Ordinal adrs+1 PC

adrs

1 1 0ADDA 1 0101

adrs + 1

0@adresseX 110 1001

adrs + 2

………………… 1010 1101

@adresseX

Accumulateur

Adresses

0 adresseX 011 1000 1………………… 100 0101

adresseX

1 0 1 0 xxxxxx 1001 xxxxx …………………. 0111 1010

Université de Savoie

26

Chapitre 1 : Rappel généraux sur les processeurs l l l l

1.1 Rappel sur l’architecture interne des microprocesseurs 1.2 Le traitement des instructions 1.3 Les modes d’adressages 1.4 Exemple d’exécution d’un programme

Université de Savoie

27

Exemple d’exécution (1) Le compilateur génère aussi un fichier assembleur, représentant le code et les emplacements mémoire qui seront utilisés.

Université de Savoie

28

Exemple d’exécution (2) À l’infini PORTC

Université de Savoie

29

Le jeu d’instruction du PIC16F D’après la datasheet : l

Quelles sont les trois grandes catégories d’instruction du PIC16F877A?

l

Quelle est la taille d’une instruction en mémoire ?

l

Expliquez les instructions : INCFSZ, BTFSC, ANDLW et donner un exemple d’utilisation pour chacune de ces instructions.

l

Le programme compilé ci-dessous rassemble un code exécutable de la forme suivante, donner la séquence d’instruction réalisée et l’action de chacune : l l l l

0187h 2822h 0987h 0BFCh

CLRF PORTC; GOTO 22h; COMF PORTC,1; DECFSZ 7C,1;

30

Chapitre 2 : Les microcontrôleurs

l l l l l l l

2.1 Définition d’un microcontrôleur 2.2 Cadencement du microcontrôleur 2.3 Les timers 2.4 Les ports d’entrée/sortie 2.5 La liaison série 2.6 Le watchdog 2.7 Le CAN

Université de Savoie

31

Définition d’un microcontrôleur Un microcontrôleur est un circuit qui intègre un maximum de fonctions dans un même boitier. L’intégration de ces fonctions dans le même environnement permet de créer des applications plus simplement. Le circuit intégré d'un microcontrôleur 8 bits Intel 8742 possède sur une unique puce : l Un processeur cadencé à 12 MHz l 128 octets de mémoire vive l Une EPROM de 2048 bits l De nombreuse entrées-sorties

Université de Savoie

32

Ventes de microcontrôleurs

Université de Savoie

33

Définition d’un microcontrôleur Avantages l

Cout réduit

l

Encombrement moindre

l

Fiabilité

l

Mise en œuvre plus simple

l

Consommation plus faible

Université de Savoie

35

Définition d’un microcontrôleur Contenu l

La structure interne d'un microcontrôleur comporte typiquement : l l l l l l l

l

Une unité de calcul et de commande Mémoire ROM Mémoire RAM Un contrôleur d’interruption Un compteur/temporisateur (timer) Des entrées/sorties parallèles (ports) Un UART (port série)

Il peut aussi posséder : l l l l

Un Watchdog : (surveillance du programme) Une sortie PWM (modulation d’impulsion) Un CAN/CNA (Convertisseur analogique numérique) Un interface I²C, CAN… Université de Savoie

36

Définition d’un microcontrôleur Exemple : Microcontrôleur PIC 16F877

Université de Savoie

37

Définition d’un microcontrôleur Les mémoires (1) l

ROM memory : Aussi appelé (à juste titre) program memory. C’est une mémoire Flash qui contient le programme à exécuter.

l

EEPROM memory C’est une mémoire similaire à la mémoire programme. On s’en sert surtout pour stocker des constantes.

Université de Savoie

38

Définition d’un microcontrôleur Les mémoires (2) l

RAM memory : l

General Purpose Register : Mémoire RAM classique, utiliser pour stocké des variables. Exemple : int i; i++;

l

// incrémentation de i depuis la RAM

SFR (Special Function Register) : C’est aussi de la mémoire RAM, sauf que les rôles de chacune des cases mémoire (registres) ont été définis par le fabriquant. Chaque registre SFR est connecté à un périphérique matériel spécifique et permet de la contrôler. Exemple : ADCON0 register (adresse 9Fh) permet de piloter le convertisseur A/D.

Université de Savoie

39

Définition d’un microcontrôleur Les mémoires (3) Déclaration de « i » en RAM

Détail d’un registre SFR

Affectation d’une valeur à un registre SFR

Université de Savoie

40

Chapitre 2 : Les microcontrôleurs

l l l l l l l

2.1 Définition d’un microcontrôleur 2.2 Cadencement du microcontrôleur 2.3 Les timers 2.4 Les ports d’entrée/sortie 2.5 La liaison série 2.6 Le watchdog 2.7 Le CAN

Université de Savoie

41

Cadencement du microcontrôleur Schéma du pic 16F877

Université de Savoie

42

Cadencement du microcontrôleur Les cadencements possibles l

Quartz l

l

Résonateur céramique l l

l

Très bonne Stabilité (10 ppm)

Stabilité ( 0.5%) Moins couteux que le quartz

Exemple pour un oscillateur à 8 Mhz Quartz : Résonateur :

Fréquence +/- 80 Hz Fréquence +/- 40 000 Hz 43

Chapitre 2 : Les microcontrôleurs

l l l l l l l

2.1 Définition d’un microcontrôleur 2.2 Cadencement du microcontrôleur 2.3 Les timers 2.4 Les ports d’entrée/sortie 2.5 La liaison série 2.6 Le watchdog 2.7 Le CAN

Université de Savoie

44

Les timers Mode compteur ou temporisateur (1) l

Un timer est le nom courant de compteur / temporisateur . Mesurer du temps (compter le nombre de coup d’horloge) > Mode temporisateur

Compter le nombre d’évènement sur une broche > Mode compteur

45

Les timers Mode compteur ou temporisateur (2) l

En pratique, on visualise la valeur de départ, puis la valeur d’arrivée. La valeur de comptage est la différence des deux valeurs.

l l

Dans quelle mode fonctionne le timer ici? Donner la valeur du temps en fonction de A et B dans cette application.

Université de Savoie

46

Les timers Utilisation d’un prescaler l

Un prescaler permet de diviser la fréquence de comptage.

Quelle est le temps mesuré dans cette application en fonction de A et B?

Université de Savoie

47

Chapitre 2 : Les microcontrôleurs

l l l l l l l

2.1 Définition d’un microcontrôleur 2.2 Cadencement du microcontrôleur 2.3 Les timers 2.4 Les ports d’entrée/sortie 2.5 La liaison série 2.6 Le watchdog 2.7 Le CAN

Université de Savoie

48

Les ports d’entrée / Sortie Ce sont des ports parallèles. Ils permettent de recueillir des informations ou de piloter des modules sur l’environnement extérieur. Ils sont souvent bidirectionnels (configurable en entrée ou sortie).

Université de Savoie

49

Les ports d’entrée / Sortie l

Quelles sont les ports d’E/S de ce microcontrôleur?

Université de Savoie

50

Les ports d’entrée / Sortie Les sorties logiques

l

Sortie trois états

l

Sortie collecteur ouvert

Université de Savoie

52

Les ports d’entrée / Sortie 1. Sortie trois états Fonctionnement

l

T1

T2

Sortie

Bloqué

Bloqué

Etat haute impédance

Bloqué

Saturé

"0"

Saturé

Bloqué

"1"

Saturé

Saturé

non utilisé

Des sorties trois états peuvent être reliées entres elles mais il faut bien veiller à ce que une seule impose un niveau (haut ou bas) et que les autres sorties soit en haute impédance. Université de Savoie

53

Les ports d’entrée / Sortie 2. Sortie collecteur ouvert (1)

Fonctionnement T2

S

Saturé

"0"

Bloqué

Dépend du montage

Université de Savoie

54

Les ports d’entrée / Sortie 2. Sortie collecteur ouvert (2)

l

l

Pour générer le niveau "1", une résistance extérieure est nécessaire (résistance de tirage // pull-up). Plusieurs sorties "collecteur ouvert" peuvent être reliées entre elles, cela réalise un "ET logique" Une sortie « collecteur ouvert » peut commander une charge sous une tension différente de la tension d'alimentation. Université de Savoie

55

Les ports d’entrée / Sortie Entrée trigger de Schmitt

"1" "0"

Vseuil- Vseuil+

Université de Savoie

Vi

56

Les ports d’entrée / Sortie l

Bouton poussoir :

l

Led :

Donner la valeur de la résistance sachant qu’une led rouge à une tension de 1,5V et qu’il faut 10 mA pour avoir un éclat correct.

Université de Savoie

57

Les ports d’entrée / Sortie Cas du PIC16F877 D’après la datasheet : l Combien possède t on de bits d’E/S pour le PORTA, B, C, D et E? l

Quel registre respectif permet de les configurer en entrée ou en sortie?

l

Quelle mise en garde est faite pour le PORTA?

l

Quelle particularité du PORTB peut nous être utile pour connecter un bouton poussoir par exemple? Université de Savoie

58

Chapitre 2 : Les microcontrôleurs

l l l l l l l

2.1 Définition d’un microcontrôleur 2.2 Cadencement du microcontrôleur 2.3 Les timers 2.4 Les ports d’entrée/sortie 2.5 La liaison série 2.6 Le watchdog 2.7 Le CAN

Université de Savoie

59

La liaison série l

La liaison série USART (Universal Synchronous Asynchronous Receiver Transmitter ) est le mode le plus rependu pour communiquer (et aussi le plus vieux).

60

La liaison série Connexions (1) l

Une liaison série permet de transmettre des données sur un nombre limité de fils. Cette liaison peut être Half duplex (liaison synchrone) ou full duplex (liaison asynchrone).

l

Sur le microcontrôleur PIC16F877A, la liaison série asynchrone peut être mise en œuvre à l’aide des pins RxD et TxD. Elle est réalisée par un USART : l l

RxD, signal de réception de l’USART TxD, signal de transmission de l’USART

Université de Savoie

61

La liaison série Connexions (2)

1ère étape : Configuration de la transmission 2ième étape : Envoyer et recevoir des données Université de Savoie

62

La liaison série USART Transmit bloc register

Université de Savoie

63

La liaison série USART receive bloc register

Université de Savoie

64

La liaison série D’après la datasheet : l

Pourquoi avons-nous une corrélation entre le fait d’être synchrone/Asynchrone et full duplex / half duplex?

l

Prenez note de toutes les étapes à réaliser pour configurer une liaison série asynchrone.

l

Configurer la liaison série asynchrone pour qu’elle soit cadencée à 9600 bauds.

Université de Savoie

65

Chapitre 2 : Les microcontrôleurs

l l l l l l l

2.1 Définition d’un microcontrôleur 2.2 Cadencement du microcontrôleur 2.3 Les timers 2.4 Les ports d’entrée/sortie 2.5 La liaison série 2.6 Le watchdog 2.7 Le CAN

Université de Savoie

66

Le Watchdog (1) Le chien de garde (watchdog) est un dispositif matériel et logiciel qui permet de se prémunir contre les plantages accidentels. L’idée est de provoquer un RESET du CPU afin de relancer l’application. (Les données sont bien sur perdues). Le plantage est défini lorsque le programme n’est pas venu à temps faire signe au watchdog. Instructions « Clear Watchdog »

Si je reçoit rien, j’appuie sur le RESET!!!

67

MICROCONTROLEUR

Le Watchdog (2)

68

Le Watchdog Cas du PIC16F877

D’après la datasheet : l

Comment met-on en route le Watchdog? (lire en plus le chapitre 14.1 : configuration bits)

l

Quel est l’effet d’un watchdog time out?

l

Quelle instruction du PIC permet de réaliser le reset du Watchdog? Comment allez vous coder cette instruction en C? Université de Savoie

69

Chapitre 2 : Les microcontrôleurs

l l l l l l l

2.1 Définition d’un microcontrôleur 2.2 Cadencement du microcontrôleur 2.3 Les timers 2.4 Les ports d’entrée/sortie 2.5 La liaison série 2.6 Le watchdog 2.7 Le CAN

Université de Savoie

70

Le CAN Multiplexage des voies l

CAN : Dans les microcontrôleurs, les voix de conversion analogique/numérique sont souvent multiplexées. Ceci signifie que la fréquence maximale de conversion analogique numérique est divisée par le nombre de voies utilisées.

l

Très souvent, il faut configuré les entrées de conversion en « entrée analogique » car celles-ci peuvent aussi être utilisée en entrée numérique.

Université de Savoie

71

Le CAN

Le CAN Questions D’après la datasheet : l l l l l l

Quel est le nombre de bits du convertisseur AN. Dans quels registres est stocké le résultat? Comment fait-on pour justifier le résultat à droite ou à gauche. Combien possède t on de voies multiplexés? A quoi correspond Vref+ et Vref - ? Comment configure t on une entrée en analogique?

Université de Savoie

73

Le CAN Etude de cas théorique l

Sur l’application ci-dessous, quelle est la résolution maximale que nous pourrons avoir?

l

Donner l’expression de la résolution en fonction de Vref+, Vref- et du nombre de bits du convertisseur. l Exprimer la valeur analogique en fonction de Vref+, Vref- et de la valeur numérique donnée par le convertisseur. Université de Savoie

74

Le CAN Récupération des valeurs converties l

Donner le code C permettant d’obtenir un entier représentatif de la valeur de conversion en fonction des valeurs de ADRESH et ADRESL.

Université de Savoie

75

Le CAN Tension de références Vref l

Le schéma ci-dessous représente les plages de valeurs possibles pour Vref+ et Vref-.

Université de Savoie

76

Le CAN Etude de cas pratique La tension d’une batterie est celle d’une cellule lithium-ion qui possède les caractéristiques suivantes : l

Donner les valeurs de votre choix pour les tensions de références l Donner la résolution de la conversion l Donner l’expression de la tension en fonction de la valeur numérique de la conversion.

Umin=2,5 V Umax= 4,3V Danger si en dehors de cette zone

Udéchargée=3 V

Un=3,6 V Uchargée=4,2 V

Université de Savoie 77

Le CAN l

Vitesse maximale du convertisseur

Université de Savoie

78

Gamme des microcontrôleurs l

Exemple chez ST micro

http://www.st.com

l

>> gamme STM

Exemple chez microchip

http://www.microchip.com/ >> gamme PIC

l

Exemple chez ATMEL

http://www.atmel.com/

l

>> gamme AVR

Exemple chez Infineon

http://www.infineon.com

Etc … Université de Savoie

79

Chapitre 3 : La programmation

l

3.1 Les interruptions l 3.2 Le logiciel

Université de Savoie

80

Les interruptions Problématique & définition l

Un système informatique n’est utile que s’il communique avec l’extérieur. L’objectif est de pouvoir prendre connaissance que le périphérique sollicite le processeur. Cette sollicitation arrive de façon totalement asynchrone.

Deux modes sont possibles : l

l

Une méthode par scrutation (polling) permet d’interroger régulièrement les périphériques afin de savoir si une nouvelle donnée est présente. Une méthode par interruption permet au périphérique luimême de faire signe au processeur de sa présence.

Université de Savoie

81

Les interruptions Scrutation Vs interruption l

Scrutation (polling) l

l

l

Coûteux en temps (multiplier par le nombre de périphérique à interroger) Implémentation : Appel classique à une fonction dans le programme

Interruption l l l

Demande à l’initiative du périphérique Prise en compte rapide de l’évènement Implémentation : Interruption asynchrone d’un programme puis retour au même endroit à la fin du traitement

Université de Savoie

82

Les interruptions Schéma l

Une interruption est un arrêt temporaire de l'exécution normale d'un programme informatique par le microprocesseur afin d'exécuter un autre programme (appelé routine d'interruption).

Université de Savoie

83

Les interruptions Types d’interruption l

Interruption masquable l

l

Un masque d’interruption est un mot binaire de configuration du microprocesseur qui permet de choisir (démasquer) quels modules pourront interrompre le processeur parmi les interruptions disponibles.

Interruption non masquable l

Elles s ’exécutent quoi qu’il arrive, souvent avec une priorité élevé (ex : Reset)

Université de Savoie

84

Les interruptions Configuration l

Un système peut accepter plusieurs sources d’interruption. Chacune est configurable par registre (registre d’interruption).

l

Méthode de configuration des interruptions l l l l

Sélectionner les interruptions qui nous intéressent Valider les interruptions de façon globale Ecrire le/les sous programme d’interruption Définir les priorités entres interruptions

Université de Savoie

85

Les interruptions Configuration l

Dans le sous programme d’interruption l l

l l l

Sauvegarder le contexte (fait automatique en langage C) Définir la source d’interruption (si le sous programme est commun entres plusieurs sources d’interruption) Réinitialiser les flags d’interruption Ecrire le code relatif à l’application Restituer le contexte (fait automatique en langage C)

Cas du 80C51 (intel) Cas du PIC 16F877 (microchip)

Flag d’interruption

Bit de masquage

Les interruptions Démasquage des interruptions l

Autorisation des interruptions l

L’autorisation globale des interruptions

l

Démasquage des interruptions

Université de Savoie

88

Les interruptions Les flags d’interruption l

Visualisation des flags d’interruption

Université de Savoie

89

Les interruptions Le rôle de la pile l

La pile est une mémoire LIFO (Last In First Out) dans laquelle on stoke des variable temporaire (donnée ou adresse). Le haut de la pile est pointé par le registre SP (Stack Pointer).

90

Les interruptions Rôle de la pile l

Elle va servir à : l

l

sauvegarder le contexte l’environnement (adresse du programme et valeur des registres au moment de l’interruption). restituer le contexte à la fin de l’interruption

Note 1 : La sauvegarde et la restitution est faite implicitement en langage C. Note 2 : Une fonction d’interruption est noté spécifiquement. Exemple du PIC qui ne possède qu’un seul vecteur d’interruption :

Université de Savoie

91

Les interruptions Avant l’interruption PC ( Addr Prog )

SP ( Addr Pile) Programme principal

Registres x

Pile

xx

Programme d’interruption 92

Les interruptions Arrivée d’une interruption SP ( Addr Pile +1)

PC ( Addr Prog IT )

Programme principal

Registres x Addr Prog

Pile

xx

Programme d’interruption 93

Les interruptions Arrivée d’une interruption : Sauvegarde contexte PC ( Addr Prog )

SP ( Addr Pile + 3) Programme principal

Registres x

x xx Addr Prog

Pile

xx

Programme d’interruption 94

Les interruptions Fin d’une interruption : Restitution contexte SP ( Addr Pile + 1)

PC ( Addr fin Prog IT)

Programme principal

Registres x

x

xx

Addr Prog

Pile

xx

Programme d’interruption 95

Les interruptions Fin d’une interruption PC ( Addr Prog )

SP ( Addr Pile) Programme principal

Registres x

Addr Prog

Pile

xx

Programme d’interruption 96

Les interruptions Retour au programme principal PC ( Addr Prog + 1 )

SP ( Addr Pile) Programme principal

Registres x

Pile

xx

Programme d’interruption 97

Les interruptions Exemple sur le PIC 16F877 l l

Quelle interruption est concernée ici ? Quelles actions sont réalisées pendant le sous-programme d’interruption?

Université de Savoie

98

Chapitre 3 : La programmation

l

3.1 Les interruptions l 3.2 Le logiciel

Université de Savoie

99

Le logiciel La chaîne de compilation (1)

Université de Savoie

100

Remplacer les deux lignes du programme C ci dessus par le code assembleur correspondant Donner le code machine correspondant à chaque instruction trouvée

Le logiciel La chaîne de compilation (2) Le compilateur génère aussi un fichier listing (en assembleur), représentant le code et les emplacements mémoire qui seront utilisés.

Université de Savoie

102

Le logiciel Programmation de la mémoire programme (Flash) Utilisation d’un logiciel de programmation de mémoire Flash

Université de Savoie

103

Le logiciel Programmation de la mémoire programme (Flash)

Université de Savoie

104

Le logiciel Avantage du langage C

Université de Savoie

105

View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF