Télécharger la présentation
1
GPA770: Microélectronique appliquée
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.5 Interfaces 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
GPA770: Microélectronique appliquée
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
GPA770: Microélectronique appliquée
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
Registre COPCTL: BIT FONCTION WCOP Si = 1, mode Window (dernier 25%) du temps d’expiration RSBCK Reste acif en BDM CR2:CR0 spécifient le délai d’expiration de la minuterie, et permet l’activation du système COP 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 $ ; 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érifie périodiquement l’activation d’un drapeau qui indique un événement ► le programme est occupé à 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 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
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. lecture décodage exécution 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 lecture décodage 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
51
C.2(5) Routines de service d’interruption
;************************************************** ;* Routine de service d’interruption * Broche: printf #salut ; imprime le message à l’écran RTI ; retour au main ;* programme principal * Start: LDS #stktop ; initialise le SP CLI ; activation global d’interruptions masquables LDAA #irqini ; le $C0 STAA intcr ; activation local d’interruption du IRQ Here: BRA Here ; attendre une IRQ include DEBUG12M.ASM END GPA770: Microélectronique appliquée Éric Granger
52
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
53
C.2(6) Système d’interruption en temps-réel
Le système d’interruption en temps-réel: permet d’interrompre le 68HCS12 à des intervalles régulières Ce système consiste en 3 registres: CRGINT (‘Clock and Reset Générator INTerrupt’): permet d’activer le RTI (RTIE = 1) RTICTL (‘Real Time Interrupt Control’) fixer le taux d’interruptions (selon RTR[6:0]) CRGFLG (‘Clock and Reset Générator INTerrupt’): drapeau RTIF GPA770: Microélectronique appliquée Éric Granger
54
C.2(6) Système d’interruption en temps-réel
Exemple: programme qui utilise le système pour rappeler au 68HSC12 de vérifier le niveau de puissance d’une pile électrique à chaque 15 minutes, c. à d. à chaque 900 secondes. 36900 X 25ms = 900 sec. 36621X24,576ms = 899, sec GPA770: Microélectronique appliquée Éric Granger
55
C.2(6) Système d’interruption en temps-réel
Exemple: vérifier le niveau de voltage d’une pile ;************************************************* ;* Définitions * STKTOP EQU $1000 ; sommet de pile RTICTL EQU $0007 ; adresse de RTICTL CRGFLG EQU $0003 ; adresse de CRGFLG CRGINT EQU $0004 ; adresse de CRGINT CPTDEP EQU ; valeur de compteur 36621X24,576ms. RTIF EQU $80 ; masque du RTIFLG CTLMSK EQU $75 ; masque du RTICTL 24,576 ms. RTIADD EQU $FFF0 ; vecteur d’interruption ;* Début des variables en RAM* ORG $800 Compteur: ds.w 1 ; 36621X24,576 ms. GPA770: Microélectronique appliquée Éric Granger
56
C.2(6) Système d’interruption en temps-réel
;************************************************* ;* RAZ reset * ORG $FFFE ; Adresse du vecteur du RAZ DC.W Debut ; Adresse du début du ; programme ;* Vecteur d’interruption * ORG RTIADD ; Adresse du vecteur $FFF0 DC.W RTI_INT ; Adresse de la routine de service ;* Début constantes, routines de service, programme en ROM* ORG $4000 GPA770: Microélectronique appliquée
57
C.2(6) Système d’interruption en temps-réel
;************************************************** ;* Routine de service d’interruption * RTI_INT: MOVB #RTIF,CRGFLG ; acquitter l’interruption LDD Compteur ; 16 bits SUBD #1 STD Compteur ; fois ? BNE FinInt ; non MOVW #CPTDEP,Compteur ; réinitialiser le compteur . Vérifier la pile . FinInt: RTI ; retour GPA770: Microélectronique appliquée
58
C.2(6) Système d’interruption en temps-réel
;************************************************** ;* Programme principal * Debut: LDS #STKTOP InitRTI: MOVB #CTLMSK,RTICTL ; p. 263 MC9S12C128V1.pdf ; pour le $75 = 24,576 ms. MOVW #CPTDEP,Compteur ; initialiser le compteur à 36621 MOVB #RTIF,CRGFLG ; écrire 1 = 0 dans le drapeau BSET CRGINT,$80 ; activation locale int. CLI ; activation globale int. Encore: WAI ; attendre les interruptions BRA Encore ; pour l’éternité GPA770: Microélectronique appliquée
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.