Interruptions 6809

21
Une interruption est une procédure qui permet de suspendre l'exécution d'un programme au profit d'un autre, avec la possibilité de reprendre l'exécution du programme initial là où il avait été suspendu INTERRUPTIONS

Transcript of Interruptions 6809

  • 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 suspenduINTERRUPTIONS

  • Interruptions matriellesRESET R-initialisation du microprocesseur.NMI Non Masquable Interrupt.FIRQ Fast Interrupt Request.IRQ Interrupt Request.

  • Traitement des interruptions

    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.

  • Traitement des interruptionsDans un systme simple et fig, o la demande dinterruption ne peut provenir que dune seule source, et o lon nenvisage quun seul programme dinterruption, il est possible dimplanter directement le dbut de ce programme ladresse contenue dans le vecteur dinterruption. La sortie de la procdure implicite aboutira directement lexcution du programme.Dans ce cas gnral o plusieurs "utilisateurs" peuvent demander linterruption et o un "utilisateur" au moins veut pouvoir choisir entre plusieurs programmes dinterruption diffrents, la procdure implicite doit aboutir dabord un programme de gestion de linterruption.

  • Mode simple: Un seul priphrique est susceptible de demander une interruption

    Mode multiniveaux : dans ce cas plusieurs priphriques peuvent demander une interruption. Il est donc necessaire didentifier le priphrique demandeur. On a donc deux possibilits: -- le processeur possde plusieurs entres dinterruptions en nombre suprieur celui des priphriques avec un ordre de priorit. -- Test des bits dtat : lorsque plusieurs dispositifs sont branchs sur la mme ligne dinterruption, on attribue chacun deux un niveau de priorit. Quand le systme microprocesseur reoit une demande dinterruption, il termine linstruction en cours puis effectue un sondage pour determiner le priphrique prioritaire.

    3) Mode interruptible vectoris : la gestion des interruptions est ralise par un dispositif dinterruption appel : contrleur de priorit dinterruptionPour le P 6809, on a le contrleur de priorit 6828 de la famille motorolaIl existe trois modes d interruptions:

  • Il existe deux types dinterruptions : masquables et non masquables

  • Les interruptions masquablesLe P possde un registre dtat de huis bits. Il est aussi appel registre code conditions(CCR). Ce registre rassemble des bits dtat ou indicateurs qui sont de precieuses informations rsultant dune instruction. Ainsi le but I(b4) du registre dtat du processeur indique si une interruption masquable sera prise en compte ou non.

    Remarque : Le bit I est appel masque dinterruption.

  • 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\.Linterruption IRQ\

  • Remarques: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.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\ Fast Interrupt RequestCest 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: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\.Lutilisateur peut sauvegarder dans la pile dautres registres que le PC et le CCR par programme (instruction PSHS).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.

  • Les interruptions non masquablesLinterruption NMI\

    Une entre spciale NMI\ active sur le niveau bas est prvue sur le P NMI Non Masquable interruptLes 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:

  • 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 NMI\

    Une entre spciale NMI\ active sur le niveau bas est prvue sur le P NMI Non Masquable interruptLes 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 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:

  • Les interruptions logicielles : (Software)La prsence de linstruction SWI dans un programme impose larrt de lexcution de celui-ci. Ainsi le processeur ralise un certain nombre de squences internes,avant dexcuter le programme de traitement de linterruption relatif SWI. Le mcanisme de traitement de cette interruption est le suivant: Linterruption logicielle SWI (software Interrupt)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 inactifInterruptions logicielles SWI2 et SWI3Remarque: 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

  • Les interruptions de synchronisation

    Pour finir, le microprocesseur peut se mettre en attente d'vnements extrieurs afin de synchroniser son volution sur l'apparition de ces derniers.Il y a une "pr-sauvegarde" complte du contexte.Pour cela, on trouve les instructions suivantes :CWAI (attente d'interruption).SYNC (attente de synchronisation).