580 likes | 733 Views
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
E N D
CONTENU DU COURS GPA770: Microélectronique appliquée Éric Granger
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
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
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
C.2(1) Exceptions GPA770: Microélectronique appliquée Éric Granger
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
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
C.2(2) Sous-systèmes du 68HC12 MC9S12C32 GPA770: Microélectronique appliquée Éric Granger
C.2(2) Sous-systèmes du 68HC12 RESET IRQ XIRQ GPA770: Microélectronique appliquée Éric Granger
C.2(2) Sous-systèmes du 68HC12 • Taxonomie des exceptions du 68HC12: GPA770: Microélectronique appliquée Éric Granger
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
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
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
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
C.2(2) Sous-systèmes du 68HC12 • RegistreCOPCTL: GPA770: Microélectronique appliquée Éric Granger
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
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
C.2(2) Sous-systèmes du 68HC12 • Classification des exceptions du 68HC12: GPA770: Microélectronique appliquée Éric Granger
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
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
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
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
C.2(2) Sous-systèmes du 68HC12 • Registre à code de contrôle (CCR) à 8 bits: GPA770: Microélectronique appliquée Éric Granger
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
C.2(4) Réponses aux interruptions GPA770: Microélectronique appliquée Éric Granger
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
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
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
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
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
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
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
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
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