1 / 58

CONTENU DU COURS

CONTENU DU COURS. Partie C − Concepts matériels. C.1 Con figurations matérielles : architecture du système, mémoire, et ports d’e/s C.2 Gestion des exceptions: réponses aux remises-à-zéro et aux interruptions avec le 68HCS12

felton
Download Presentation

CONTENU DU COURS

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. CONTENU DU COURS GPA770: Microélectronique appliquée Éric Granger

  2. Partie C − Concepts matériels C.1 Configurations matérielles: • architecture du système, mémoire, et ports d’e/s C.2 Gestion des exceptions: • réponses aux remises-à-zéro et aux interruptions avec le 68HCS12 • vecteur et priorité d’exceptions, et routines de service d’interruption C.3 Module de temporisation: • module de temporisation standard du 68HC12 • saisie des entrées et comparaison de sorties C.4 Convertisseurs analogique-numérique: • processus de conversion • système de conversion du 68HC12 C.5Interfaces de communications sérielles: • communications sérielles avec un microcontrôleur • interfaces sérielles multiples du 68HC12: SCI et SPI GPA770: Microélectronique appliquée Éric Granger

  3. Sommaire de la section C.2 C.2 Gestion des exceptions: • Exceptions − remises-à-zéro et interruptions • Sous-systèmes du 68HC12 pour gérer les exceptions • Vecteurs d’exception • Réponses aux interruptions • Routines de service d’interruption • Système d’interruption en temps-réel GPA770: Microélectronique appliquée Éric Granger

  4. C.2(1) Exceptions • Déf.: un événement qui vient suspendre l’exécution normal d’un programme • Catégories d’exceptions: • remise-à-zéro (RAZ):en réponse à cet événement, le CPU exécute une routine d’initialisation, et repart dans un état connu (stable) • interruption (INT):en réponse à cet événement, le CPU exécute une routine de service, et repart à l’adresse à laquelle le programme a été suspendu GPA770: Microélectronique appliquée Éric Granger

  5. C.2(1) Exceptions GPA770: Microélectronique appliquée Éric Granger

  6. Sommaire de la section C.2 C.2 Gestion des exceptions: • Exceptions − remises-à-zéro et interruptions • Sous-systèmes du 68HCS12 pour gérer les exceptions • Vecteurs d’exception • Réponses aux interruptions • Routines de service d’interruption • Système d’interruption en temps-réel GPA770: Microélectronique appliquée Éric Granger

  7. C.2(2) Sous-systèmes du 68HC12 • Rôle des types de sous-systèmes dans le 68HC12: • CPU12:unité de traitement central • Gestion des exceptions: interrompre l’exécution normal d’un programme • Module LIM: combine les buses DATA, ADDR et CTRL • Mémoire: stocker des configurations (bloc), des variables (RAM) et des programmes (ROM) • Périphériques d’entrée/sortie: • ports d’entrée/sortie: échanger des données avec le monde externe • temporisation: capter des entrées, générer des sorties, accumuler des impulsions, PWM • conversion de données: convertir un signal analogique en codes binaires non-signés • communication sérielle: échanger de données par communications asynchrones (SCI) et synchrones (SPI) GPA770: Microélectronique appliquée Éric Granger

  8. C.2(2) Sous-systèmes du 68HC12 MC9S12C32 GPA770: Microélectronique appliquée Éric Granger

  9. C.2(2) Sous-systèmes du 68HC12 RESET IRQ XIRQ GPA770: Microélectronique appliquée Éric Granger

  10. C.2(2) Sous-systèmes du 68HC12 • Taxonomie des exceptions du 68HC12: GPA770: Microélectronique appliquée Éric Granger

  11. C.2(2) Sous-systèmes du 68HC12 Remise-à-zero (‘reset’ ou RAZ) du système • Étape de traitement –lorsqu’une RAZ est enclenchée, le CPU: • place le vecteur de la RAZ dans le PC (i.e., une adresse mémoire qui correspond au type de RAZ); • effectue un branchement vers cette adresse; • réexécute l’initialisation du système pour reprendre dans un état stable et bien défini. remarque: on ne revient pas à l’endroit d’exécution atteint avant que la RAZ ait eu lieu. GPA770: Microélectronique appliquée Éric Granger

  12. C.2(2) Sous-systèmes du 68HC12 • Événements qui enclenchent une RAZ du système: • RAZ d’alimentation (‘power on’): quand l’alimentation est appliqué au 68HC12 • RAZ externe: le 68HC12 est équipé avec une broche de RAZ qui est active sur une valeur basse: . • sur la carte de développement du laboratoire, cette broche est connectée à un des boutons poussoirs • RAZ de surveillance d’horloge − CM (‘Clock Monitor’): quand la fréquence de l’horloge du système tombe sous un certain seuil, ou quand l’horloge s’arrête GPA770: Microélectronique appliquée Éric Granger

  13. C.2(2) Sous-systèmes du 68HC12 • RAZ de surveillance d’ordinateur − COP (‘Computer Operating Properly’): quand il y a un gel ou un défaut dans l’exécution du programme • sous-système COP: • normalement désactivé lors du développement, mais représente une mesure préventive importante lors d’opération • consiste d’une minuterie configurable qui décompte: • le programme doit écrire $55, suivi de $AA, dans un registre spécifique avant l’expiration de la minuterie sinon, on suppose un gel du programme, et une RAZ COP est enclenchée GPA770: Microélectronique appliquée Éric Granger

  14. C.2(2) Sous-systèmes du 68HC12 • Registres du bloc associés au CM et au COP: • [$003C]COPCTL−registre de contrôle du COP (‘COP Control Register’): • permet d’activer et configurer les RAZ de type CM et COP • permet de spécifier le délai d’expiration de la minuterie • [$003F]ARMCOP− registre de minuterie COP (COP Reset Register’): • la séquence de $55 et de $AA doit être écrite dans ce registre avant l’expiration de la minuterie GPA770: Microélectronique appliquée Éric Granger

  15. C.2(2) Sous-systèmes du 68HC12 • RegistreCOPCTL: GPA770: Microélectronique appliquée Éric Granger

  16. C.2(2) Sous-systèmes du 68HC12 • CR[2:0]− intervalle d’expiration de minuterie: 16MHz/2^14 = 976Hz. = 1 ms. 16MHz/2^24 = 1Hz. = 1 sec. GPA770: Microélectronique appliquée Éric Granger

  17. C.2(2) Sous-systèmes du 68HC12 • Exemple: Programme qui écrit la séquence $55 et $AA dans ARMCOP. Le délai d’expiration de minuterie est de 1sec COPCTL EQU $003C ; adresse de COPCTL ARMCOP EQU $003F ; adresse de COPRST TIMEOUT EQU $07 ; activer avec expiration de 1sec ORG $4000 LDAA #TIMEOUT STAA COPCTL ; active le COP et fixe l’expiration ▪▪▪▪ Debut: MOVB #$55, ARMCOP ; écrit $55 au COPRST ▪▪▪▪ MOVB #$AA, ARMCOP ; écrit $AA au COPRST BRA Debut GPA770: Microélectronique appliquée Éric Granger

  18. C.2(2) Sous-systèmes du 68HC12 • Classification des exceptions du 68HC12: GPA770: Microélectronique appliquée Éric Granger

  19. C.2(2) Sous-systèmes du 68HC12 • Interruption (INT) – événement prioritaire qui est planifié mais imprévu dans le temps, pour: • la coordination des activités avec périphériques d’e/s, sans devoir constamment vérifier leur état • la gestion élégante des erreurs • rappeler au CPU d’effectuer une tâche routinière • Suite à la détection de cet événement, le CPU: • permet une suspension ordonnée du programme principal • exécute une routine de service • reprend à l’adresse à laquelle le programme a été suspendu GPA770: Microélectronique appliquée Éric Granger

  20. C.2(2) Sous-systèmes du 68HC12 • Deux techniques logiciels pour la coordination d’activités avec périphériques d’e/s: • approche par balayage de ports (‘polling’): le CPU vérifiepériodiquement l’activation d’un drapeau qui indique un événement ► le programmeestoccupé à attendre un drapeau • approche par interruption: une INT indique au CPU lorsqu’un événement a eu lieu ► le programme peut exécuter d’autres tâches GPA770: Microélectronique appliquée Éric Granger

  21. C.2(2) Sous-systèmes du 68HC12 • Catégories d’INT ─ selon le masquage: • activation d’un masque ≡ le CPU ne peut percevoir une INT GPA770: Microélectronique appliquée Éric Granger

  22. C.2(2) Sous-systèmes du 68HC12 • Catégories d’INT ─ selon le masquage: • INT non-masquable ≡le masque ne peut être activé par instructions • pour le TRAP et SWI: on ne peut jamais les masquer • pour le XIRQ: le masque est normalement activé (X=1) suite à une RAZ ou un XIRQ, et désactivé (X=0) une seule fois quand le système est stable à l’aide d’un instruction • INT masquable ≡le masque peut être activé et désactivé par instructions • le masque est normalement activé (I=1) par instructions, ou avec une RAZ, et désactivé (I=0) par instructions • le masque s’active temporairement lors d’un INT non-masquable GPA770: Microélectronique appliquée Éric Granger

  23. C.2(2) Sous-systèmes du 68HC12 • Registre à code de contrôle (CCR) à 8 bits: GPA770: Microélectronique appliquée Éric Granger

  24. C.2(2) Sous-systèmes du 68HC12 • Étapes d’activation d’une INT masquable: • Activation du système global: il faut désactiver le bit de contrôle I du CCR (fixer I= 0) • le bit ‘I’ est contrôlé par les instructions spécialisées: • CLI: ‘Clear Interrupt Mask’ – active le système d’INT NM global (I=0) • SEI: ‘Set Interrupt Mask’ – désactive le système d’INT NM global (I=1) • Activation du système local: il faut activer le matériel d’interruption spécifique GPA770: Microélectronique appliquée Éric Granger

  25. C.2(2) Sous-systèmes du 68HC12 • Événements qui peuvent enclencher une INT non-masquable: • instructions non existantes: si le CPU tente d’exécuter une instruction inconnue ou non spécifiée • Exemple: instructions à 2 octets: p. 396 CPU12 $18 $30 à $18 $39 et $18 $40 à $18 $FF • l’instruction d’INT logiciel: si le CPU exécute l’instruction SWI • requête d’interruption non-masquable externe: si la tension sur la broche est basse GPA770: Microélectronique appliquée Éric Granger

  26. C.2(2) Sous-systèmes du 68HC12 • Événements qui peuvent enclencher une INT masquable: • requête d’interruption masquable externe: selon la valeur sur la broche (actif bas) • interruptions en temps réel (RTI): généré selon une intervalle périodique qui est pré-définit par l’usager • pour rappeler l’exécution d’une tâche routinière • les canaux du système de temporisation (TIM): généré lorsqu’un événement (pré-définit par l’usager) à lieu sur un de ses 8 canaux GPA770: Microélectronique appliquée Éric Granger

  27. C.2(2) Sous-systèmes du 68HC12 • le débordement du compteur au TIM: généré quand le drapeau TOF (‘Timer Overflow Flag’ − bit 7 du registre TFLG2) devient actif • quand le compteur à 16 bits compte jusqu’à 65,536 et déborde • utile pour réaliser un délai ou pour chronométrer des événements • le débordement de l’accumulateur d’impulsions au TIM: généré quand le compteur interne de l’accumulateur d’impulsions déborde GPA770: Microélectronique appliquée Éric Granger

  28. C.2(2) Sous-systèmes du 68HC12 • la transition d’entrée de l’accumulateur d’impulsions au TIM: généré chaque fois qu’un événement a lieu à l’accumulateur d’impulsions • utile pour compter des événements externes au 68HC12 • l’interfaces de communications sérielles: généré pour indiquer l’état d’une transmission avec modules SCI et SPI • le système de conversion N-A (ATD): généré pour indiquer lorsque la conversion N-A est complète • le système de réveil: généré pour réveiller le 68HC12 en mode WAIT ou STOP GPA770: Microélectronique appliquée Éric Granger

  29. C.2(2) Sous-systèmes du 68HC12 • Exemple: activation de l’INT • Étapes d’activation d’une INT masquable: • activation global: fixer le bit I du CCR à 0 avec l’instruction CLI • activation local: fixer le bit 6 (IRQEN = 1) du registre INTCR (‘Interrupt Condition Register’ – adresse $001E) • Remarque − le bit 7 (IRQE) du registre INTCR permet de sélectionner la sensibilité aux transitions: • IRQE = 0: la broche est configurée pour reconnaître le niveau actif bas • IRQE = 1: la broche est configurée pour reconnaître la transition descendante GPA770: Microélectronique appliquée Éric Granger

  30. C.2(2) Sous-systèmes du 68HC12 • Exemple: activation de l’INT INTCR EQU $001E ; adresse du registre INTCR INTCR_INI EQU $C0 ; initialise la valeur de INTCR ORG $4000 CLI ; désactive le bit I du CCR LDAA #INITCR_INI STAA INTCR ; activer INTCR ▪▪▪▪ GPA770: Microélectronique appliquée Éric Granger

  31. Sommaire de la section C.2 C.2 Gestion des exceptions: • Exceptions − remises-à-zéro et interruptions • Sous-systèmes du 68HC12 pour gérer les exceptions • Vecteurs d’exception • Réponses aux interruptions • Routines de service d’interruption • Système d’interruption en temps-réel GPA770: Microélectronique appliquée Éric Granger

  32. C.2(3) Vecteurs d’exception • Déf.: mécanisme qui redirige le CPU vers l’action correspondante à un exception • chaque exception demande un traitement ou une routine qui lui est spécifique: • chaque RAZ→ réinitialisation • chaque INT→ routine de service d’INT (RSI) qui est stockée en mémoire • Vecteur d’interruption ≡ adresses mémoires (de 16 bits) qui indiquent au CPU les adresses de départ des routines de service. GPA770: Microélectronique appliquée Éric Granger

  33. C.2(3) Vecteur d’exception • Le vecteur d’exceptions: • contient toutes les adresses des routines • l’emplacement du vecteur: • adresses mémoire $FF80 à $FFFF • les 128 derniers octets du modèle de mémoire • chacune de ces adresses est associée avec un type spécifique d’exception • remarque: l’usager doit créer le lien aux vecteurs GPA770: Microélectronique appliquée Éric Granger

  34. C.2(3) Vecteur d’exception • Vecteur d’exception pour le 68HC12: non-masquable priorité plus élevée RAZs masquable priorité plus basse GPA770: Microélectronique appliquée Éric Granger

  35. C.2(3) Vecteur d’exception • Priorité des exceptions: • les exceptions sont exécutées dans l’ordre descendante de priorité, dictée par la table de vecteurs: • une exception ne peut interrompre l’exécution d’une routine même si elle détient une priorité plus élevée. • Ordre: • RAZ: priorité fixe, et ne peut être changée • interruptions non-masquables: priorité fixe, et ne peut être changée • interruptions masquables: priorité fixe qui peut être modifiée en écrivant une séquence de bits spécifique au registre HPRIO (‘High Priority Interrupt’ – adresse $001F) • la dernière colonne de la table donne la valeur qui doit être écrite au HPRIO pour lui allouer la plus haute priorité GPA770: Microélectronique appliquée Éric Granger

  36. Sommaire de la section C.2 C.2 Gestion des exceptions: • Exceptions − remises-à-zéro et interruptions • Sous-systèmes du 68HC12 pour gérer les exceptions • Vecteurs d’exception • Réponses aux interruptions • Routines de service d’interruption • Système d’interruption en temps-réel GPA770: Microélectronique appliquée Éric Granger

  37. décodage lecture exécution C.2(4) Réponses aux interruptions • Étapes d’exécution d’une instruction: • lecture − charger le op-code et opérants de la mémoire au registre d’instructions • décodage − interpréter l’instruction et traduire en actions du CPU • exécution − effectuer les opérations liées à l’instruction. GPA770: Microélectronique appliquée Éric Granger

  38. C.2(4) Réponses aux interruptions • Réponse générale aux INT du 68HCS12: RSI décodage lecture exécution Sauf l’instruction REV de la logique floue GPA770: Microélectronique appliquée Éric Granger

  39. C.2(4) Réponses aux interruptions • Réponse spécifique aux INT: Entrée en INT: le CPU permet une suspension ordonnée du programme principal • termine l’exécution normal de l’instruction en cours • stocke tous les registres CPU sur la pile (CCR inclus) • on suppose que tous ces registres sont pertinents au moment de la suspension • transfert le contrôle d’exécution à une RSI qui est spécifique à l’interruption GPA770: Microélectronique appliquée Éric Granger

  40. C.2(4) Réponses aux interruptions • Réponse spécifique aux INT: (suite) Sortie d’une INT: à le fin de la RSI, exécute l’instruction RTI • restaure l’état original du processeur (la valeur de tous les registres CPU) avec la pile (CCR inclus) • transfert le contrôle d’exécution au programme principal, là ou il était avant l’INT GPA770: Microélectronique appliquée Éric Granger

  41. C.2(4) Réponses aux interruptions GPA770: Microélectronique appliquée Éric Granger

  42. C.2(4) Réponses aux interruptions • Utilisation de la pile: • lors d’une INT, le CPU place les registres CPU sur la pile dans l’ordre suivant: • PC • Y • X • D (B:A) • CCR • quand l’instruction RTI est exécutée, le CPU retire les registres clés dans l’ordre inverse GPA770: Microélectronique appliquée Éric Granger

  43. C.2(4) Réponses aux interruptions • Instruction RTI (‘Return from Interrupt’): • RTI connaît le format de l’état stocké sur la pile, et restore correctement cet état dans les registres • il configure aussi le CPU pour gérer les INT futurs • après le retour, le programme principale n’a aucun idée qu’une interruption a eu lieu. GPA770: Microélectronique appliquée Éric Granger

  44. C.2(4) Réponses aux interruptions • Instruction WAI (‘Wait for Interrupt’): • stocke la valeur de tous les registres clés sur la pile • ne procède pas à la prochaine instruction • place le 68HCS12 en mode basse puissance en attente pour une interruption • arrête l’horloge du CPU • Avantages: • accélérer l’entrée à la RSI (car le CPU a déjà stocké les registres clés sur la pile) • réduire sa consommation de puissance (car il ne doit pas exécuter une boucle infinie en attente pour l’interruption) GPA770: Microélectronique appliquée Éric Granger

  45. C.2(4) Réponses aux interruptions • Instruction STOP (‘Stop Processing’): • stocke la valeur de tous les registres clés sur la pile • ne procède pas à la prochaine instruction • place le 68HCS12 en mode basse puissance en attente pour une interruption • arrête toutes les horloges du HCS12. • Avantages: • accélérer l’entrée à la RSI (car le CPU a déjà stocké les registres clés sur la pile) • réduire sa consommation de puissance (car il ne doit pas exécuter une boucle infinie en attente pour l’interruption) GPA770: Microélectronique appliquée Éric Granger

  46. Sommaire de la section C.2 C.2 Gestion des exceptions: • Exceptions − remises-à-zéro et interruptions • Sous-systèmes du 68HC12 pour gérer les exceptions • Vecteurs d’exception • Réponses aux interruptions • Routines de service d’interruption • Système d’interruption en temps-réel GPA770: Microélectronique appliquée Éric Granger

  47. C.2(5) Routines de service d’interruption • Étapes préliminaires pour gérer une INT: • initialiser le pointeur de pile • initialiser la table de vecteur (approche par directives) • écrire une RSI pour permettre au CPU de répondre à l’INT spécifique • déterminer comment activer l’INT • activation local: fixer un bit d’activation spécifique • activer les interruptions globales GPA770: Microélectronique appliquée Éric Granger

  48. C.2(5) Routines de service d’interruption • Exemple: écrire une RSI pour répondre à une INT qui a lieu sur la broche • quand la broche tombe à ‘0’, le programme principale est interrompu pour exécuter une RSI stockée à partir de l’adresse ‘Broche’ • on suppose que ‘Broche’ est brûlé en ROM, à l’adresse du vecteur d’exception pour ($FFF2:$FFF3) • fonction de la RSI: le message ‘Bonjour du IRQ’ est imprimé à l’écran GPA770: Microélectronique appliquée Éric Granger

  49. C.2(5) Routines de service d’interruption • Exemple: écrire une RSI pour ;************************************************** ;* Macro * include DBUG12M.MAC ;* Définitions * stktop EQU $1000 ; sommet de pile intcr EQU $001E ; adresse du registre INTCR irqini EQU $C0 ; les bits IRQEN à 1et IRQE à 1 ;************************************************** ;* Vecteurs RAZ reset* ORG $FFFE FDB Start GPA770: Microélectronique appliquée Éric Granger

  50. C.2(5) Routines de service d’interruption • Exemple: écrire une RSI pour ;************************************************** ;* Vecteur de IRQ * ORG $FFF2 FDB Broche ; ou DC .W Broche ;************************************************** ;* Les constantes, routines et programme * ORG $4000 salut: DC.B ‘Bonjour du IRQ’,$00 GPA770: Microélectronique appliquée

More Related