Vous êtes sur la page 1sur 15

Université Mohamed Elbachir ElIbrahimi BBA Spécialité : L3 Automatique

Département d’Electromécanique Module : Microprocesseurs et Microcontrôleurs

Suite de chapitre 2 : II.3 Les interruptions

II.3.1 Définition :

L’interruption est une rupture d’un programme en cours d’exécution, avec la


possibilité de le reprendre. Il existe deux types d’interruptions : Interruption
matérielle (une impulsion) et interruption logicielle (une instruction).

Le μp6809 doit être capable de traiter rapidement aux sollicitations de ces


périphériques. Ces demandes externes au μp6809 sont vues comme des demandes
d'interruption, le μp6809 possède pour cela :

- 𝑁𝑁𝑁𝑁𝑁𝑁 , �����
3 Broches d'entrées d'interruption Matérielle ������ 𝐼𝐼𝐼𝐼𝐼𝐼 et ��������
𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹 et une
���������.
séquence d'initialisation 𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅
- ������ , 𝑆𝑆𝑆𝑆𝑆𝑆2
3 Instructions d'interruption Logicielle 𝑆𝑆𝑆𝑆𝑆𝑆 �������, 𝑆𝑆𝑆𝑆𝑆𝑆3
�������
- 2 Instructions d'Attente d'Interruptions SYNC et CWAI.

II.3.2 Interruptions matérielles :

Le 6809 possède trois interruptions matérielles : ������ ����� et 𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹


𝑁𝑁𝑁𝑁𝑁𝑁 , 𝐼𝐼𝐼𝐼𝐼𝐼 �������� et une entrée
���������
𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅.

a- ����������
𝑹𝑹𝑹𝑹𝑹𝑹𝑹𝑹𝑹𝑹 : un niveau bas sur cette broche, entraine la réinitialisation
complète du µP, le travail en cours est perdu, le registre DP est mise à zéro.
����� et 𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹
𝐼𝐼𝐼𝐼𝐼𝐼 ������� sont masquées, 𝑁𝑁𝑁𝑁𝑁𝑁 ��������� est la plus
�������est non valide, car 𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅
prioritaire, cette ligne doit être maintenue au niveau bas durant un temps
suffisamment long pour être active. L’adresse de ce programme se trouve
en $FFFE-$FFFF.
BA=0, BS=1 (reconnaissance d’une interruption).
Pour assurer le masquage des interruptions ������ ������� l’instruction
𝐼𝐼𝐼𝐼𝐼𝐼 et 𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹
suivante sera exécutée : ORCC #$50

b- NMI : (Non masquable interrupt : Interruption non masquable) Cette


interruption ne peut être interdite d’où son nom. Le programmeur ne peut
donc pas interdire son fonctionnement par programme et possède une
priorité supérieure à ������� ����� ou aux interruptions logicielles SWI,
𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹 ou à 𝐼𝐼𝐼𝐼𝐼𝐼
SWI2, SWI3. L'interruption 𝑁𝑁𝑁𝑁𝑁𝑁�������est la plus prioritaire après la séquence
���������
𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅.
NMI est prise en compte après la fin de l’instruction en cours. Lorsqu’un
niveau bas (un front descendant) est appliqué à cette broche, le µP

Chapitre II : Introduction au jeu d’instructions et interruptions 39


Université Mohamed Elbachir ElIbrahimi BBA Spécialité : L3 Automatique
Département d’Electromécanique Module : Microprocesseurs et Microcontrôleurs

sauvegarde le contenu de tous ses registres internes et se branche à la


routine dont l’adresse se trouve en $FFFC - $FFFD.
Le bit E de registre CC est mise à 1, et les registres sont sauvegardés dans
la pile S, dans l’ordre suivant : PC bas, PC haut, U bas, U haut, Y bas, Y haut,
X bas, X haut, DP, B, A, CC.
BA= 0, BS=1.
Les instructions suivantes sont exécutées :
CWAI #$FF : attente d’interruption ������
𝑁𝑁𝑁𝑁𝑁𝑁 .
ORCC #$80 : pour la sauvegarde totale des registres.

�������� : (Fast interrupt Request : demande d’interruption rapide) cette


c- 𝑭𝑭𝑭𝑭𝑭𝑭𝑭𝑭
interruption, peut être masquée par l’intermédiaire du bit F de registre CC,
si F=0, l’interruption �������
𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹 est autorisée, seuls les contenus des registres
PC, CC sont sauvegardés dans la pile, donc le bit E de registre CC est
positionné à zéro (E=0).
L’adresse de programme se trouve en : $FFF6 - $FFF7
BA= 0, BS=1.
Les instructions suivantes sont exécutées :
�������.
CWAI #$BF : attente d’interruption 𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹
ANDCC #$BF : pour démasquer l’interruption �������
𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹 .
ANDCC #$7F : pour la sauvegarde partielle des registres.
Pour masquer cette interruption, l’instruction requise est :
ORCC #$40

������ : (Interrupt request : demande d’interruption) cette interruption peut


d- 𝑰𝑰𝑰𝑰𝑰𝑰
être autorisée ou non suivant l’état du bit I de registre CC, si I=0
l’interruption est autorisée sinon elle est interdite. Sur un niveau bas de
������s’exécute après la fin de l’instruction en cours
cette broche, 𝐼𝐼𝐼𝐼𝐼𝐼
Tous les registres seront sauvegardés dans la pile S, c’est-à-dire E=1. Le µP
effectue une sauvegarde de l'ensemble des registres dans l'ordre suivant :
PC bas, PC haut, U bas, U haut, Y bas, Y haut, X bas, X haut, DP, B, A, CC.
Le pointeur S décroît de 12 unités.
Après le µP se pointe à l’adresse de son programme qui se trouve en $FFF8
- $FFF9.
BA=0, BS=1.
Les instructions suivantes sont exécutées :
CWAI #$EF : attente d’interruption �����
𝐼𝐼𝐼𝐼𝐼𝐼.
�����
ANDCC #$EF : pour démasquer l’interruption 𝐼𝐼𝐼𝐼𝐼𝐼

Chapitre II : Introduction au jeu d’instructions et interruptions 40


Université Mohamed Elbachir ElIbrahimi BBA Spécialité : L3 Automatique
Département d’Electromécanique Module : Microprocesseurs et Microcontrôleurs

ORCC #$80 : pour la sauvegarde totale des registres.


Pour masquer cette interruption, l’instruction requise est :
ORCC #$10

Cette interruption est la moins prioritaire des interruptions matérielles,


elle peut être interrompue par �������
𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹 ou ������
𝑁𝑁𝑁𝑁𝑁𝑁 .

II.3.3 Les interruptions logicielles :

Le µP possède 3 interruptions logicielles SWI, SWI2 et SWI3, leurs instructions


permettant l'arrêt du programme en cours.

Dès que le µP rencontre l’une des trois instructions ci-dessous SWI, SWI2, SWI3,
celui-ci sauvegarde l’état complet des registres internes dans la pile système, dans
l’ordre suivant : PC bas, PC haut, U bas, U haut, Y bas, Y haut, X bas, X haut, DP,
B, A, CC.

a- SWI : le bit E est positionné à 1, pour la sauvegarde totale des registres


internes sur la pile. Les bit F et I sont positionnés à 1 (c’est-à-dire �����
𝐼𝐼𝐼𝐼𝐼𝐼 et
������� sont interdites) car cette interruption est plus prioritaire que 𝐼𝐼𝐼𝐼𝐼𝐼
𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹 ����� et
�������
𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹 .
L’adresse de son programme se trouve en $FFFA - $FFFB

SWI trouve son utilité dans les utilitaires systèmes destinés à la mise au point
des programmes utilisateurs.

Par exemple, pour poser un point d'arrêt à une adresse donnée, le moniteur
remplace le premier octet de l'instruction par le code $3F.

A la rencontre d'un code, le sous-programme d'interruption SWI visualise les


registres du μP et arrête momentanément l’exécution en entrant dans une phase
d'attente.

Par la suite, si l'opérateur désire continuer, le moniteur établit l'op-code correct


sauvegardé dans la zone système, positionne le prochain point d'arrêt, puis
exécuter le programme utilisateur à partir de l'ancien point d'arrêt.

Cette interruption est réservée aux erreurs liées au logiciel système.

b- SWI2 : le fonctionnement est similaire à SWI, seulement les bits F et I


ne sont pas affectés, car les interruptions matérielles ������
𝐼𝐼𝐼𝐼𝐼𝐼 et �������
𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹 sont
autorisées. L’adresse de son programme se trouve en $FFF4 - $FFF5.
SWI2 à une priorité inférieure à SWI.

Chapitre II : Introduction au jeu d’instructions et interruptions 41


Université Mohamed Elbachir ElIbrahimi BBA Spécialité : L3 Automatique
Département d’Electromécanique Module : Microprocesseurs et Microcontrôleurs

c- SWI3 : le fonctionnement est similaire à SWI2, seulement les bits F et I


����� et 𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹
ne sont pas affectés, car les interruptions matérielles 𝐼𝐼𝐼𝐼𝐼𝐼 ������� sont
autorisées. L’adresse de son programme se trouve en $FFF3 - $FFF2.
SWI3 à une priorité inférieure à SWI.

SWI2 et SWI3 sont les moins prioritaires. Ces interruptions sont


réservées aux erreurs des logiciels d’application.

II.3.4 L’entrée ��������


𝑯𝑯𝑯𝑯𝑯𝑯𝑯𝑯 :
��������, il n’y a pas de perte
L’arrêt du µP est provoqué par l’état bas sur l’entrée 𝐻𝐻𝐻𝐻𝐻𝐻𝐻𝐻
d’informations, le µP termine l’instruction en cours puis positionne BA et BS à 1
����� et 𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹
Les demandes d’interruptions 𝐼𝐼𝐼𝐼𝐼𝐼 ��������ne sont pas valides.

𝑁𝑁𝑁𝑁𝑁𝑁 et ���������
������ 𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅 sont prises en compte mais leur traitement se fera après la
libération du µP.
�������/𝐵𝐵𝐵𝐵𝐵𝐵𝐵𝐵
Les demandes d’accès à la mémoire (𝐷𝐷𝐷𝐷𝐷𝐷 ��������) sont autorisées.

��������� : (Direct Memory Access / Bus REQuest)


�������/𝑩𝑩𝑩𝑩𝑩𝑩𝑩𝑩
II.3.5 L’entrée 𝑫𝑫𝑫𝑫𝑫𝑫

L’accès direct à la mémoire et rafraichissement mémoire, elle suspend le


fonctionnement du µP, permettant ainsi la libération des bus pour des
périphériques intelligents, ou bien pour un rafraichissement de la mémoire
dynamique.
� sont à l'état haute
Les bus de données et adresses ainsi que la broche R/𝑊𝑊
impédance, l'horloge interne est bloquée, E et Q continuent à osciller.

En général le contrôleur DMA fait une demande d'accès au bus en mettant au


�������/ 𝐵𝐵𝐵𝐵𝐵𝐵𝐵𝐵
niveau bas la broche 𝐷𝐷𝐷𝐷𝐷𝐷 �������� sur le front montant du signal E.

Lorsque la broche Q est au niveau Haut, le passage à l'état Bas de la broche �������
𝐷𝐷𝐷𝐷𝐷𝐷/
��������
𝐵𝐵𝐵𝐵𝐵𝐵𝐵𝐵 entraîne l'arrêt du programme à la fin de l'instruction en cours.

II.3.6 L’instruction CWAI : (Clear WAit Interrupt : attente d’interruption)

L'instruction CWAI synchronise le μP sur un évènement externe par le biais d’une


interruption.

Chapitre II : Introduction au jeu d’instructions et interruptions 42


Université Mohamed Elbachir ElIbrahimi BBA Spécialité : L3 Automatique
Département d’Electromécanique Module : Microprocesseurs et Microcontrôleurs

Cette instruction effectue un ET logique entre le registre CC et un octet


immédiat, comme suit :
������
CWAI #$FF : attente d’interruption 𝑁𝑁𝑁𝑁𝑁𝑁

CWAI #$EF ; attente d’interruption �����


𝐼𝐼𝐼𝐼𝐼𝐼
�������
CWAI #$BF ; attente d’interruption 𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹
����� et 𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹
CWAI #$AF ; attente d’interruption 𝐼𝐼𝐼𝐼𝐼𝐼 �������

Le mode d’adressage utilisé est l’inhérent paramétré (le code se trouve dans
l’immédiat).

BA et BS sont à zéro, avec la sauvegarde totale du contexte du µP.

II.3.7 L’instruction SYNC :

Cette instruction permet de synchroniser le µP sur un évènement extérieur,


������� �����
grâce aux broches d'interruption 𝑁𝑁𝑁𝑁𝑁𝑁, ������� .
𝐼𝐼𝐼𝐼𝐼𝐼 et 𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹

Lorsque le µP rencontre cette instruction il s’arrête et attend une interruption, si


cette interruption est interdite (interdite par les bits I ou F), le µP exécute les
instructions suivant le SYNC sinon (interruption autorisée) il exécute le
programme d’interruption qui se termine par RTI.

Utilisé dans le cas d’une tache exécutée par deux µP (un système biprocesseur),
où l’un des µP doit attendre que l’autre termine l’exécution du programme donné
pour qu’il puisse exécuter sa tâche.

Le mode d’adressage utilisé est l’inhérent simple.

II.3.8 L’instruction RTI :

Toutes les séquences d’interruption doivent se terminer par RTI, c’est une
instruction de retour d’un sous-programme.

Lorsque le µP rencontre cette instruction, il teste le bit E de registre CC, s’il est
à 1 les registres internes sont chargés par l’ordre suivant : CC, A, B, DP, X haut, X
bas, Y haut, Y bas, U haut, U bas, PC haut, PC bas. S’il est à zéro seuls les registres
CC, PC haut et PC bas seront restaurés.

Le mode d’adressage utilisé est l’inhérent simple.

Chapitre II : Introduction au jeu d’instructions et interruptions 43


Université Mohamed Elbachir ElIbrahimi BBA Spécialité : L3 Automatique
Département d’Electromécanique Module : Microprocesseurs et Microcontrôleurs

II.3.9 Récapitulatif des interruptions :

Le tableau suivant résume tous les interruptions par ordre de priorité

Interruptions Vecteurs fonction sauvegarde Masquage


Niveau matérielle logicielle d’interruption
de
priorité
1 ���������
𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅 FFFE-FFFF Initialisation Néant ������
𝑁𝑁𝑁𝑁𝑁𝑁, I, F
������
𝑁𝑁𝑁𝑁𝑁𝑁
2 FFFC-FFFD Int Non Masquable E=1 I, F
3 SWI FFFA-FFFB Int Logiciel Système E=1 I, F
�������
𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹
4 ����� FFF6-FFF7 Int rapide E=0 I
𝐼𝐼𝐼𝐼𝐼𝐼
5 FFF8-FFF9 Int normale E=1 Néant
6 SWI2 FFF4-FFF5 Int Logiciel E=1 Néant
6 SWI3 FFF2-FFF3 utilisateur E=1 Néant
Int Logiciel
utilisateur
Instructions d’interruptions fonction sauvegarde dépilement
Nom Traitement engendré
CWAI 𝑁𝑁𝑁𝑁𝑁𝑁, �������
������ 𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹 , �����
𝐼𝐼𝐼𝐼𝐼𝐼 Attente E=1 totale
SYNC 𝑁𝑁𝑁𝑁𝑁𝑁 ������� , 𝐼𝐼𝐼𝐼𝐼𝐼
������ , 𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹 ����� d’interruption Néant
Ou programme Synchronisation
principal externe
Total E=1
RTI Programme normal Retour d’interruption
Partiel E=0

Chapitre II : Introduction au jeu d’instructions et interruptions 44


Université Mohamed Elbachir ElIbrahimi BBA Spécialité : L3 Automatique
Département d’Electromécanique Module : Microprocesseurs et Microcontrôleurs

Annexe : séquences d’exécution des interruptions et leurs instructions

����������
Figure 1. Séquence 𝑹𝑹𝑹𝑹𝑹𝑹𝑹𝑹𝑹𝑹

Chapitre II : Introduction au jeu d’instructions et interruptions 45


Université Mohamed Elbachir ElIbrahimi BBA Spécialité : L3 Automatique
Département d’Electromécanique Module : Microprocesseurs et Microcontrôleurs

Figure 2. Séquence �������


𝑵𝑵𝑵𝑵𝑵𝑵

Chapitre II : Introduction au jeu d’instructions et interruptions 46


Université Mohamed Elbachir ElIbrahimi BBA Spécialité : L3 Automatique
Département d’Electromécanique Module : Microprocesseurs et Microcontrôleurs

Figure 3. Séquence ��������


𝑭𝑭𝑭𝑭𝑭𝑭𝑭𝑭

Chapitre II : Introduction au jeu d’instructions et interruptions 47


Université Mohamed Elbachir ElIbrahimi BBA Spécialité : L3 Automatique
Département d’Electromécanique Module : Microprocesseurs et Microcontrôleurs

Figure 4. Séquence ������


𝑰𝑰𝑰𝑰𝑰𝑰

Chapitre II : Introduction au jeu d’instructions et interruptions 48


Université Mohamed Elbachir ElIbrahimi BBA Spécialité : L3 Automatique
Département d’Electromécanique Module : Microprocesseurs et Microcontrôleurs

Figure 5. Séquence SWI

Chapitre II : Introduction au jeu d’instructions et interruptions 49


Université Mohamed Elbachir ElIbrahimi BBA Spécialité : L3 Automatique
Département d’Electromécanique Module : Microprocesseurs et Microcontrôleurs

Figure 6. Séquence SWI2/SWI3

Chapitre II : Introduction au jeu d’instructions et interruptions 50


Université Mohamed Elbachir ElIbrahimi BBA Spécialité : L3 Automatique
Département d’Electromécanique Module : Microprocesseurs et Microcontrôleurs

Figure 7. Séquence CWAI

Chapitre II : Introduction au jeu d’instructions et interruptions 51


Université Mohamed Elbachir ElIbrahimi BBA Spécialité : L3 Automatique
Département d’Electromécanique Module : Microprocesseurs et Microcontrôleurs

Figure 8. Séquence SYNC

Chapitre II : Introduction au jeu d’instructions et interruptions 52


Université Mohamed Elbachir ElIbrahimi BBA Spécialité : L3 Automatique
Département d’Electromécanique Module : Microprocesseurs et Microcontrôleurs

Figure 9. Séquence RTI

Chapitre II : Introduction au jeu d’instructions et interruptions 53

Vous aimerez peut-être aussi