15
Chapitre 3 : Les interruptions et les interfaces d’entrées/sorties Dr. M. DJARALLAH 1 3.1- Introduction Dans ce chapitre, nous allons exposer, bref, la définition d’une interruption, la prise en charge d’une interruption par le microprocesseur, les adressages des sous programmes d’interruptions et en fin les adressages des ports d’entrées/sorties (E/S) suivie de la gestion de ces ports. 3.2- Interruptions 3.2.1-Définition d’une interruption Les interruptions (interrupt) viennent interrompre le déroulement normal du microprocesseur. Elles sont générées par appel d’un périphérique. Alors, une interruption est un signal déclenché par un événement interne ou externe (envoyer par un périphérique ou un programme) demandant un service donné. Cela, donne lieu `a l’exécution d’un programme, appel´e routine de service ou routine de traitement de l’interruption (en anglais interrupt service routine, ISR, ou interrupthandler), en se souvenant que routine est un sous-programme. Fig. 3.1 : Demande d’interruption Le dialogue entre le processeur et le périphérique demandeur de service est donné par : Fig. 3.2 : Dialogue μp-périphérique

3.1- Introduction Dans ce chapitre, nous allons exposer, bref

  • Upload
    others

  • View
    7

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 3.1- Introduction Dans ce chapitre, nous allons exposer, bref

Chapitre 3 : Les interruptions et les interfaces d’entrées/sorties

Dr. M. DJARALLAH 1

3.1- Introduction Dans ce chapitre, nous allons exposer, bref, la définition d’une interruption, la prise en

charge d’une interruption par le microprocesseur, les adressages des sous programmes d’interruptions et en fin les adressages des ports d’entrées/sorties (E/S) suivie de la gestion de ces ports. 3.2- Interruptions 3.2.1-Définition d’une interruption

Les interruptions (interrupt) viennent interrompre le déroulement normal du microprocesseur. Elles sont générées par appel d’un périphérique.

Alors, une interruption est un signal déclenché par un événement interne ou externe (envoyer par un périphérique ou un programme) demandant un service donné.

Cela, donne lieu `a l’exécution d’un programme, appel´e routine de service ou routine de

traitement de l’interruption (en anglais interrupt service routine, ISR, ou interrupthandler), en se souvenant que routine est un sous-programme.

Fig. 3.1 : Demande d’interruption

Le dialogue entre le processeur et le périphérique demandeur de service est donné par :

Fig. 3.2 : Dialogue µp-périphérique

Page 2: 3.1- Introduction Dans ce chapitre, nous allons exposer, bref

Chapitre 3 : Les interruptions et les interfaces d’entrées/sorties

Dr. M. DJARALLAH 2

La classification des interruptions est résumée par :

3.2.2- Prise en charge d’une interruption par le microprocesseur A la suite d’une demande d’interruption par un périphérique d’E/S, le processus de l’exécution d’une interruption est résumé par :

1- Le µp termine l’exécution de l’instruction en cours d’exécution ; 2- Le µp range le contenu des principaux registres dans la Pile ; 3- Le µp émet un accusé de réception de demande d’interruption indiquant au E/S que la

demande est acceptée ou non (masquée) ; 4- Le µp abandonne l’exécution du programme en cours et exécuter un ISR ; 5- Après l’exécution du ISR, l’état précédent du µp sera restauré à partir de la Pile ; 6- Le µp reprend l’exécution du programme abandonné.

Fig. 3.4 : Principe de l’exécution d’une interruption

Page 3: 3.1- Introduction Dans ce chapitre, nous allons exposer, bref

Chapitre 3 : Les interruptions et les interfaces d’entrées/sorties

Dr. M. DJARALLAH 3

3.2.3- Adressages des sous programmes d’interruptions Lorsqu’une interruption survient, le µp a besoin de connaitre l’adresse d’ISR

1- Alors, la source d’interruption place sur le bus de données un code numérique indiquant la nature de l’interruption ;

2- Le µp utilise ce code pour chercher dans une table en mémoire centrale l’adresse du sous programme d’interruption à exécuter ;

3- Chaque élément de cette Table s’appelle VECTEUR D »INTERRUPTION Interruption vectorisées ;

4- La table des vecteurs d’interruption est chargée par l’OS, comme MONITOR du Sydicom + ;

Vecteur d’interruption du µp8085 Priorité Interruption vecteurs dans l’EPROM adresse d’hébergement dans la RAM

1 TRAP Catalogue: 24h, EPROM :c3h 6179h

2 RST 7.5 Catalogue: 3ch, EPROM : 3ch 6176h

3 RST 6.5 Catalogue :34h, EPROM : 20h 6173h

4 RST 5.5 Catalogue : 2ch, EPROM :20h 6170h

5 INTR Selon l’instruction émise à 8055

Les instructions utilisées par le µp 8085 pour le traitement des interruptions sont comme

suit :

Exemples Voici deux exemples développés pour le Kit Sydicom +, il est demandé de déduire la

tâche de chaque exemple, par une lecture attentive de chacun en les titrant. Exemple 1 :

; Titre: Utilisation de rst 7.5 pour:.......................? ; Initialisation pile equ 8000h pa equ 50h pb equ 51h cmd equ 53h Vect75 equ 6176h serv equ 9000h N equ 100 org Vect75 jmp serv org 7000h lxi sp, pile

Page 4: 3.1- Introduction Dans ce chapitre, nous allons exposer, bref

Chapitre 3 : Les interruptions et les interfaces d’entrées/sorties

Dr. M. DJARALLAH 4

;mvi a,18h ;sim ;di ;mvi a, 080h ; Ports A et B en sortie Mvi a,0a2h out cmd ei un mvi a, 01 out pa call retard mvi a, 00h out pa call retard jmp un ;------------------ tempo frequence retard mvi d,N loop dcr d jnz loop ret ;------------------ Sous prog. de Service org serv push psw mvi a, 00 ; Interruption de la commande out pa ;------------------ Arret de boucles vides lxi d,1000d call 0ffah pop psw ei ret

Exemple 2 :

; Titre:......................................................? pile equ 8000h pa equ 50h cmd equ 53h Tco equ 6176h temp equ 7500h serv equ 9000h T equ 0ffh org Tco jmp serv

Page 5: 3.1- Introduction Dans ce chapitre, nous allons exposer, bref

Chapitre 3 : Les interruptions et les interfaces d’entrées/sorties

Dr. M. DJARALLAH 5

org 7000h lxi sp, pile mvi a, 18h sim di mvi a, 0a2h out cmd ei mvi c,0ffh

un mvi a, 01 out pa dcr c jnz cont mvi c,0ffh

cont mov d,c call temp mvi a, 02 out pa mvi a,T sub c mov d,a call temp jmp un rst 1 org temp

loop dcr d jnz loop ret org serv push psw sui mvi a,01d out pa mvi c,100d

d1 dcr c jnz d1 mvi a, 00d out pa mvi c,100d

d2 dcr c jnz d2 jmp sui pop psw ei rst 1

Page 6: 3.1- Introduction Dans ce chapitre, nous allons exposer, bref

Chapitre 3 : Les interruptions et les interfaces d’entrées/sorties

Dr. M. DJARALLAH 6

3.3- Interface parallèle 8255A 3.3.1- Achitecture

Le 8255 est un circuit programmable de 40 broches (Fig. 3.4) d'interface d'entrée/sortie parallèle qui a été conçu pour travailler avec les microprocesseurs de la famille INTEL. Il est formé par trois ports d'entrées/sorties, chaque port est de 8 bits qui peuvent être programmés en entrée ou en sortie avec trois modes différents (mode zéro, mode un et mode deux).

Fig. 3.4: Brochage du 8255

Le port C est divisé en deux ports C haut et port C bas, le schéma bloque du 8255A est donné par la figure suivante :

Page 7: 3.1- Introduction Dans ce chapitre, nous allons exposer, bref

Chapitre 3 : Les interruptions et les interfaces d’entrées/sorties

Dr. M. DJARALLAH 7

Fig. 3.5 : Schéma bloc du 8255

Le schéma bloc du 8255, montre bien qu'il est divisé en deux groupes :

Groupe A : formé par le port A et le port C haut. Groupe B : formé par le port B et le port C bas.

Le registre de données (Data buffer Bus) assure la liaison entre le bus de données extérieur et

le registre de contrôle ainsi que les ports d'entrées/sorties. La sélection du 8255A se fait par l'intermédiaire de la pine CS (qui est en général fournie par

une logique de décodage qui permet la sélection du 8255A : voir plus loin les exemples d'applications)

Le bus d'adresse du 8255A est formé essentiellement par deux pines (A0et A1) qui permettent

de sélectionner les ports ainsi que le registre de contrôle comme le montre le tableau suivant :

Page 8: 3.1- Introduction Dans ce chapitre, nous allons exposer, bref

Chapitre 3 : Les interruptions et les interfaces d’entrées/sorties

Dr. M. DJARALLAH 8

Plus en détail l'adressage des différents ports en entrée sortie se fait selon la table de vérité suivante :

Le 8255 est connecté avec le système à base de microprocesseur comme le montre la figure suivante :

Interfaçage avec le bus et mode de fonctionnement du 8255A

Page 9: 3.1- Introduction Dans ce chapitre, nous allons exposer, bref

Chapitre 3 : Les interruptions et les interfaces d’entrées/sorties

Dr. M. DJARALLAH 9

3.3.2- Programmation du 8255A On peut programmer le 8255A selon trois modes :

Mode 0 : Entrée/sortie de base. Mode 1 : Entrée sortie échantillonnée. Mode 2 : Bus bidirectionnel.

Le format ainsi que le choix des modes se fait à partir du mot de contrôle suivant :

3.3.3.- Adressage des dispositifs E/S Dans n’importe quel système à base d’un microprocesseur avec mémoire, il se trouve qu’il est connecté aux périphériques d’E/S par le bais des interfaces. Comme on cité déjà dans l’adressage des mémoires, un dispositif d’E/S est adressé comme étant une case mémoire ; mais il prend des nombres entres 0 et 255 ; Donc les adresses 0, 2, 4 et 6 dans le segment h40, dans les PC, peuvent être correspond aux différentes adresses du périphérique série. On remarque que la manière d’adressage des mémoires, du point de vu nombre d’octets, est différente de celle d’adressage des périphériques. Le Tableau suivant, donne un aperçu général sur la topologie d’adressage des dispositifs d’E/S pour le Kit SYDICOM. On note que les adresses qui nous concernent dans ce tableau, sont ceux du PIO0 (8255).

Tableau de quelques adresses des dispositifs d’E/S du système SYDICOM+ Adresse (

00h 04h 14h 18h 1C 40h 50h 51 52h 53h

Destinée

UART0

URT1 8253 8253 Interruption

8255 Port A Port B

Port C

R. de commande

Dispositif

Port série 1

Port série 2

Horloge0 Horloge1 Contrôle PIO-1 PIO-0 (Port parallèle)

Page 10: 3.1- Introduction Dans ce chapitre, nous allons exposer, bref

Chapitre 3 : Les interruptions et les interfaces d’entrées/sorties

Dr. M. DJARALLAH 10

Exemple : ;///............................................................. ; Initialisation pile equ 8000h serv equ 9000h rcmd equ 53h porta equ 50h portb equ 51h ;********* PP: Programme principale ************* org 7000h lxi sp, pile mvi a, 0A2h out rcmd ; port A en sortie port B en entree

Gperiod mvi a, 01 out porta ; demi periode … 1 call tempo mvi a, 00 out porta ; demi periode … 0 call tempo in portb dcr a jp serv ; activation de l'interruption logiciel ; par l'un des interrupteur du port b jmp Gperiod ; sous-programme de temporisation

tempo push psw mvi d, 212

boucle dcr d jnz boucle pop psw ret ; routine de service de l'interruption org serv mvi a,00h out porta rst 1 ret

Page 11: 3.1- Introduction Dans ce chapitre, nous allons exposer, bref

Chapitre 3 : Les interruptions et les interfaces d’entrées/sorties

Dr. M. DJARALLAH 11

3.4- Entraînement d’un moteur pas à pas par un µ-processeur (µp8085) 3.4.1- Interfaçage du moteur pas à pas au système µp / µm

La figure ci-contre, montre comment connecter le moteur pas à pas au système à microprocesseur (µp / µm). Le moteur pas à pas est connecté avec des broches de sortie du système à microprocesseur via un réseau ULN2003A/L293D.

3.4.2- Interfaçage du moteur pas à pas au µp8085 Brochage avec L293D: L293d est utilisé pour commander (entraîner = piloter) le moteur et fournir l’alimentation externe nécessaire.

Page 12: 3.1- Introduction Dans ce chapitre, nous allons exposer, bref

Chapitre 3 : Les interruptions et les interfaces d’entrées/sorties

Dr. M. DJARALLAH 12

Brochage 8085-8255A-L293D-Moteur Pas-à-Pas :

Page 13: 3.1- Introduction Dans ce chapitre, nous allons exposer, bref

Chapitre 3 : Les interruptions et les interfaces d’entrées/sorties

Dr. M. DJARALLAH 13

Programmes en assembleur (8085): Version 1 :

Table de données: DATA 9200 DB 03H,06H,0CH,09H (CLOCK WISE); 0011, 0110, 1100, 1001 ???? 9204 END

Version 2 :

label program comments START Lxi h,8000h Pointe vers 1200h MVI A,A3h MC OUT 53h CONF LOOP MVI A,M OUT 50h MVI D,120 delay L DCR D delay JNZ L delay INX H Go to the next JMP LOOP Loop until all… JMP START Continuous.. RST 1 FIN 8000h 9, 5, 6, A 4 sequences

LABEL Opcode OPERANDE Commentaires LXI SP, 8000H Initialisation SP MVI A,0A2H Mot de Conf. OUT 53H Conf. des ports MVI B,32H 8x4= 8 tours REPEAT: MVI C,04H 4 séquences LXI H,9200H Pointe vers 1ere Séq BACK : MOV A,M Recup. 1ere Séq OUT 50H Envoi vers PA CALL DELAY Temps entre Séq INX H Pointe la Séq sui . DCR C C C-1 JNZ BACK Si C<>0 VA …. DCR B B B-1 JNZ REPEAT Si B<>0 VA …. RST 1 DELAY push psw ……………….. b mvi d, 50 ……………….. dcr d ……………….. jnz b ……………….. pop psw ……………….. ret ………………..

Page 14: 3.1- Introduction Dans ce chapitre, nous allons exposer, bref

Chapitre 3 : Les interruptions et les interfaces d’entrées/sorties

Dr. M. DJARALLAH 14

Annexe sur le rappel la commande des moteurs pas à pas Définition

Un moteur pas à pas est un actionneur qui transforme une information numérique sous forme de train d’impulsions en un nombre équivalent de pas angulaire de caractère incrémental.

Principe de fonctionnement d’un moteur pas à pas

La figure ci-après donne la constitution simplifiée d'un moteur à quatre phases statoriques et un aimant rotorique : • Si une seule bobine est alimentée l’aimant se positionne parallèlement à son axe • Si on inverse le courant dans la bobine, l’aimant fait un 1/2 tour (90°) et reste parallèle à l’axe de la bobine • Si les deux bobines sont alimentées, l’aimant se positionne suivant la bissectrice des deux axes On dit que l’aimant se positionne de façon qu’il soit traversé par le maximum de flux : règle de flux maxima C

Constitution On rencontre trois types de moteur pas à pas.

i- Moteur pas à pas à aimant : Malgré son couple élevé, il a un nombre de pas par tours limité (en général de 2 à 24), celui-ci dépendant du nombre de phases et du nombre de pôles par phases.

ii- Moteur pas à pas à réluctance variable : En jouant sur le pas des enroulements statoriques as et des dents au rotor ar, on peut obtenir un nombre de pas par tour très important (exemple 72 pas par tours). Le couple fourni par ce moteur est plus faible que celui d'un moteur à aimant et il n'existe pas de couple de maintien en cas de suppression de l'alimentation.

iii- Moteurs pas à pas hybrides : Ce type de moteur réuni les avantages du moteur à aimant (couple élevé) et à réluctance (nombre de pas par tour élevé) en associant les deux principes.

Types de moteurs pas à pas On peut classer les moteurs pas à pas en deux types selon l’alimentation de bobinage :

Page 15: 3.1- Introduction Dans ce chapitre, nous allons exposer, bref

Chapitre 3 : Les interruptions et les interfaces d’entrées/sorties

Dr. M. DJARALLAH 15

1- Les moteurs bipolaires : Ils ont en général 4 fils et se commandent en inversant le sens du courant dans une des deux bobines, qui sont alimentés une fois dans un sens, une fois dans l'autre sens. Ils créent une fois un pôle nord, une fois un pôle sud d'où le nom de bipolaire. La commande du moteur s’effectue par envoie successif, une à une, des combinaisons suivantes (Pour le demi pas voir l’Internet):

I- Mode 1 : Mode à pas entier, une phase alimentée à la fois (One Phase ON, Full Step) :

II- Mode 2 : Mode à pas entier, deux phases alimentées en même temps (Two Phase ON, Full Step) :

2- Les moteurs unipolaires : Ils ont en général 6 fils, dont deux sont reliés au milieu des bobines. Ils se commandent en les alimentant tour à tour, mais les bobinages sont alimentés toujours dans le même sens par une tension unique d'où le nom d'unipolaire.

Séquence d’alimentation des enroulements sont les mêmes que le bipolaire, exemple Mode 1: