Professional Documents
Culture Documents
Une interruption est une procdure qui permet de suspendre l'excution d'un programme au profit d'un autre, avec la possibilit de reprendre l'excution du programme initial l o il avait t suspendu
Programme Principal
Programme dinterruption
Demande dinterruption
Programme interrompu
Fin
Interruptions matrielles
RESET R-initialisation du microprocesseur. NMI Non Masquable Interrupt. FIRQ Fast Interrupt Request. IRQ Interrupt Request.
Interruptions logicielles
SWI SWI2 SWI3
(software interupt)
Le traitement dune interruption se fait selon un protocole bien tabli Ds la mise au niveau bas de la broche dinterruption , ou bien ds la rencontre de linstruction SWI, le microprocesseur entame une "procdure implicite", programme dans la silice, Il faut remarquer que chaque procdure doit se terminer par un chargement du PC avec la valeur contenue dans le vecteur de linterruption demande. Ceci provoque un saut ladresse correspondante.
Linterruption IRQ\
Le processeur 6809 possde une broche dinterruption masquable IRQ\ (Interrupt request).un niveau zro sur cette entre provoque, aprs excution de linstruction en cours, le test du masque dinterruption I. si le masque est 1 (I=1) la demande dinterruption est ignore.Si ce masque a t pralablement mis zro par linstruction CWAI ou AND cc # .. Le P excute la squence suivante: Sauvegarde des registres internes du P dans le pointeur de pile systme S, et cela aprs positionnement du bit E 1; Positionne le masque dinterruption I 1, ce qui inhibe les demandes dinterruption sur lentrre IRQ\; Le P recherche les vecteurs dinterruption, ce qui correspond la combinaison BA=0 et BS=1 (phase reconnaissance dinterruption); Chargement dans le compteur de programme (PC) du contenu des positions mmoires dadresses FFF8 et FFF9 ou lutilisateur aura pralablement rang ladresse du sous programme dinterruption excuter. Le processeur se branche alors ce programme de traitement de linterruption IRQ\.
Remarques: 1. La demande dinterruption est prise en compte si le masque I est positionn zro. Le sauvegarde des registres internes du processeur dans le pointeur de pile systme S se fait selon lordre suivant: - PC - Registre dindex - Accumulateurs - registre dtat. 2. Contenu de FFF8 = Poids fort de ladresse du programme de traitement dinterruption et contenu de FFF9 = Poids faible de ladresse du programme de traitement dinterruption
.
3. Linterruption IRQ\ du P 6809 est une interruption matrielle.
Linterruption FIRQ\
FIRQ\
Cest une interruption matrielle qui est plus prioritaire et rapide par rapport celle IRQ\. Cest une interruption masquable par le bit F(b6)du registre code condition (CCR). Le mcanisme de traitement de cette interruption est le suivant:
Remarques: 1. Le P se trouve dans lobligation de traiter des interruptions trs rapidement. Ltat de sauvegarde des registres internes prends du temps. Cest la raison pour laquelle le P ne sauvegarde que le PC et le CCR lors de lexcution de FIRQ\. 2. Lutilisateur peut sauvegarder dans la pile dautres registres que le PC et le CCR par programme (instruction PSHS). 3. Ltat de sauvegarde dans la pile des registres PC et CCR lors de lexcution dune interruption FIRQ\ se fait comme suit: PCL SP-1 PCH SP-2 CCR SP-3
La mmoire du P est une mmoire LIFO (last in first out), la dernire information rentrante est celle qui sort la premire. 4. Les interruptions matrielles FIRQ\ et IRQ\ sont des entres collecteur ouvert. Elles supportent donc la liaison avec plusieurs lments extrenes, il ne faut surtout pas oublier les rsistances de rappel de courant.
5. Les interruptions FIRQ\ et IRQ\ sont mmorises tant que ces entres sont au niveau zro. Elles sont alors toutes excutes par le P.
Une entre spciale NMI\ active sur le niveau bas est prvue sur le P
NMI Non Masquable interrupt Les interruptions non masquables sont plus prioritaires que celles masquables. Dans ce cas, linterruption est prise en compte quelque soit ltat des masques I et F du registre dtat du P. Le mcanisme de prise en compte de cette interruption est le suivant:
Linterruption NMI\
Une entre spciale NMI\ active sur le niveau bas est prvue sur le P NMI Non Masquable interrupt Les interruptions non masquables sont plus prioritaires que celles masquables. Dans ce cas, linterruption est prise en compte quelque soit ltat des masques I et F du registre dtat du P.
Remarque:
Linterruption NMI\ sert particulirement sauvegarder les registres internes du P en cas de problme de coupure dalimentation. Elle est rarement utilise pour les changes entre le P et lenvironnement extrieur.
Linterruption RESET\
Cette interruption est la plus prioritaire du systme. Elle est active sur un niveau bas, ce qui entrane linitialisation complte du P
la procdure de ralisation de linterruption RESET\ est la suivante:
REMARQUE: Linterruption SWI est plus prioritaire que celles FIRQ\ et IRQ\. Son traitement impose le masquage de ces dernires.
Ce sont deux interruptions caractre logiciel. Elles ont un fonctionnement identiques,et peuvent tre interrompues par toutes les autres interruptions du processeur 6809. Ce sont les interruptions les moins prioritaires; Leur mcanisme de traitement est identique celui de SWI, sauf que les masques dinterruptions ne sont pas positionns a ltat inactif
Remarque:
Dans le cas dun Kit microprocesseur ralis avec le 6809 le programme de service appel moniteur utilise linstruction SWI pour visualiser le contexte et donner le contrle des oprations au moniteur