université du québec École de technologie supérieure gpa770: microélectronique appliquée Éric...

58
Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger C.2-1 CONTENU DU COURS A . M ISE EN CONTEXTE B. C ONCEPTS LO G IC IELS ( PR O G R A M M A TIO N EN ASSEM BLEUR ET EN C) C . C ONCEPTS M ATÉRIELS ( COM POSANTS D UN M ICROCONTRÔLEUR )

Upload: raimond-collignon

Post on 04-Apr-2015

114 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger C.2-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

C.2-1

CONTENU DU COURS

A. MISE EN CONTEXTE

B. CONCEPTS LOGICIELS

(PROGRAMMATION EN ASSEMBLEUR ET

EN C)

C. CONCEPTS MATÉRIELS

(COMPOSANTS D’UN MICROCONTRÔLEUR)

Page 2: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger C.2-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

C.2-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 68HCS12vecteur et priorité d’exceptions, et routines de service d’interruption

C.3 Module de temporisation: module de temporisation standard du 68HC12saisie des entrées et comparaison de sorties

C.4 Convertisseurs analogique-numérique:processus de conversionsystème de conversion du 68HC12

C.5 Interfaces de communications sérielles:communications sérielles avec un microcontrôleurinterfaces sérielles multiples du 68HC12: SCI et SPI

Page 3: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger C.2-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

C.2-3

Sommaire de la section C.2

C.2 Gestion des exceptions: 1)Exceptions − remises-à-zéro et

interruptions2)Sous-systèmes du 68HC12 pour gérer les

exceptions3)Vecteurs d’exception4)Réponses aux interruptions5)Routines de service d’interruption6)Système d’interruption en temps-réel

Page 4: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger C.2-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

C.2-4

C.2(1) Exceptions

Déf.: un événement qui vient suspendre l’exécution normal d’un programme

Catégories d’exceptions:1. 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)

2. 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

Page 5: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger C.2-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

C.2-5

C.2(1) Exceptions

Page 6: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger C.2-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

C.2-6

Sommaire de la section C.2

C.2 Gestion des exceptions: 1)Exceptions − remises-à-zéro et interruptions2)Sous-systèmes du 68HCS12 pour gérer les

exceptions3)Vecteurs d’exception4)Réponses aux interruptions5)Routines de service d’interruption6)Système d’interruption en temps-réel

Page 7: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger C.2-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

C.2-7

C.2(2) Sous-systèmes du 68HC12Rôle des types de sous-systèmes dans le 68HC12: a) CPU12: unité de traitement central

Gestion des exceptions: interrompre l’exécution normal d’un programme

b) Module LIM: combine les buses DATA, ADDR et CTRLc) Mémoire: stocker des configurations (bloc), des variables (RAM) et

des programmes (ROM)d) Périphériques d’entrée/sortie:

ports d’entrée/sortie: échanger des données avec le monde externetemporisation: 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)

Page 8: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger C.2-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

C.2-8

C.2(2) Sous-systèmes du 68HC12

MC9S12C32

Page 9: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger C.2-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

C.2-9

C.2(2) Sous-systèmes du 68HC12

RESETIRQXIRQ

Page 10: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger C.2-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

C.2-10

C.2(2) Sous-systèmes du 68HC12

Taxonomie des exceptions du 68HC12:

Page 11: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger C.2-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

C.2-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:

1. place le vecteur de la RAZ dans le PC (i.e., une adresse mémoire qui correspond au type de RAZ);

2. effectue un branchement vers cette adresse;

3. 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.

Page 12: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger C.2-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

C.2-12

C.2(2) Sous-systèmes du 68HC12

Événements qui enclenchent une RAZ du système:

1. RAZ d’alimentation (‘power on’): quand l’alimentation est appliqué au 68HC12

2. 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

3. 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

RESET

Page 13: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger C.2-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

C.2-13

C.2(2) Sous-systèmes du 68HC12

4. 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

Page 14: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger C.2-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

C.2-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 COPpermet 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

Page 15: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger C.2-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

C.2-15

C.2(2) Sous-systèmes du 68HC12

Registre COPCTL:

BIT FONCTIONWCOP 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

Page 16: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger C.2-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

C.2-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.

Page 17: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger C.2-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

C.2-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 COPCTLARMCOP EQU $003F ; adresse de COPRST

TIMEOUT EQU $07 ; activer avec expiration de 1sec

ORG $4000LDAA #TIMEOUTSTAA COPCTL ; active le COP et fixe

l’expiration

▪▪▪▪

Debut: MOVB #$55, ARMCOP ; écrit $55 au COPRST

▪▪▪▪

MOVB #$AA, ARMCOP ; écrit $AA au COPRSTBRA Debut

Page 18: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger C.2-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

C.2-18

C.2(2) Sous-systèmes du 68HC12

Classification des exceptions du 68HC12:

Page 19: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger C.2-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

C.2-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 étatla gestion élégante des erreursrappeler au CPU d’effectuer une tâche routinière

Suite à la détection de cet événement, le CPU:1. permet une suspension ordonnée du programme principal

2. exécute une routine de service

3. reprend à l’adresse à laquelle le programme a été suspendu

Page 20: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger C.2-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

C.2-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:

1. 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

2. approche par interruption: une INT indique au CPU lorsqu’un événement a eu lieu► le programme peut exécuter d’autres tâches

Page 21: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger C.2-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

C.2-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

Page 22: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger C.2-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

C.2-22

C.2(2) Sous-systèmes du 68HC12Caté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 masquerpour 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 instructionsle masque s’active temporairement lors d’un INT non-masquable

Page 23: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger C.2-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

C.2-23

C.2(2) Sous-systèmes du 68HC12

Registre à code de contrôle (CCR) à 8 bits:

Page 24: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger C.2-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

C.2-24

C.2(2) Sous-systèmes du 68HC12

Étapes d’activation d’une INT masquable:

1. 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)

2. Activation du système local: il faut activer le matériel d’interruption spécifique

Page 25: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger C.2-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

C.2-25

C.2(2) Sous-systèmes du 68HC12

Événements qui peuvent enclencher une INT non-masquable:

1. 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

2. l’instruction d’INT logiciel: si le CPU exécute l’instruction SWI

3. requête d’interruption non-masquable externe: si la tension sur la broche est basse

XIRQ

Page 26: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger C.2-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

C.2-26

C.2(2) Sous-systèmes du 68HC12

Événements qui peuvent enclencher une INT masquable:

1. requête d’interruption masquable externe: selon la valeur sur la broche (actif bas)

2. 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

3. 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

IRQ

Page 27: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger C.2-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

C.2-27

C.2(2) Sous-systèmes du 68HC12

4. 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

5. le débordement de l’accumulateur d’impulsions au TIM: généré quand le compteur interne de l’accumulateur d’impulsions déborde

Page 28: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger C.2-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

C.2-28

C.2(2) Sous-systèmes du 68HC12

6. 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

7. l’interfaces de communications sérielles: généré pour indiquer l’état d’une transmission avec modules SCI et SPI

8. le système de conversion N-A (ATD): généré pour indiquer lorsque la conversion N-A est complète

9. le système de réveil: généré pour réveiller le 68HC12 en mode WAIT ou STOP

Page 29: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger C.2-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

C.2-29

C.2(2) Sous-systèmes du 68HC12

Exemple: activation de l’INT

Étapes d’activation d’une INT masquable:1. activation global: fixer le bit I du CCR à 0 avec l’instruction

CLI

2. 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

IRQ

IRQ

IRQ

Page 30: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger C.2-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

C.2-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

▪▪▪▪

IRQ

Page 31: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger C.2-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

C.2-31

Sommaire de la section C.2

C.2 Gestion des exceptions: 1)Exceptions − remises-à-zéro et interruptions2)Sous-systèmes du 68HC12 pour gérer les

exceptions3)Vecteurs d’exception4)Réponses aux interruptions5)Routines de service d’interruption6)Système d’interruption en temps-réel

Page 32: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger C.2-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

C.2-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.

Page 33: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger C.2-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

C.2-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

Page 34: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger C.2-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

C.2-34

C.2(3) Vecteur d’exceptionVecteur d’exception pour le 68HC12:

prioritéplus élevée

prioritéplus basse

non-masquable

masquable

RAZs

Page 35: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger C.2-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

C.2-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:1. RAZ: priorité fixe, et ne peut être changée2. interruptions non-masquables: priorité fixe, et ne peut être changée3. 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é

Page 36: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger C.2-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

C.2-36

Sommaire de la section C.2

C.2 Gestion des exceptions: 1)Exceptions − remises-à-zéro et interruptions2)Sous-systèmes du 68HC12 pour gérer les

exceptions3)Vecteurs d’exception4)Réponses aux interruptions5)Routines de service d’interruption6)Système d’interruption en temps-réel

Page 37: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger C.2-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

C.2-37

C.2(4) Réponses aux interruptions

Étapes d’exécution d’une instruction:

1. lecture − charger le op-code et opérants de la mémoire au registre d’instructions

2. décodage − interpréter l’instruction et traduire en actions du CPU

3. exécution − effectuer les opérations liées à l’instruction.

lecture décodage

exécution

Page 38: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger C.2-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

C.2-38

C.2(4) Réponses aux interruptions

Réponse générale aux INT du 68HCS12:

lecture décodage

exécution

RSI

Sauf l’instruction REV de la logique floue

Page 39: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger C.2-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

C.2-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

1. termine l’exécution normal de l’instruction en cours

2. stocke tous les registres CPU sur la pile (CCR inclus) on suppose que tous ces registres sont pertinents

au moment de la suspension

3. transfert le contrôle d’exécution à une RSI qui est spécifique à l’interruption

Page 40: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger C.2-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

C.2-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

1. restaure l’état original du processeur (la valeur de tous les registres CPU) avec la pile (CCR inclus)

2. transfert le contrôle d’exécution au programme principal, là ou il était avant l’INT

Page 41: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger C.2-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

C.2-41

C.2(4) Réponses aux interruptions

Page 42: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger C.2-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

C.2-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:

1. PC2. Y3. X4. D (B:A)5. CCR

quand l’instruction RTI est

exécutée, le CPU retire les

registres clés dans l’ordre inverse

Page 43: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger C.2-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

C.2-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.

Page 44: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger C.2-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

C.2-44

C.2(4) Réponses aux interruptions

Instruction WAI (‘Wait for Interrupt’):

1. stocke la valeur de tous les registres clés sur la pile2. ne procède pas à la prochaine instruction3. place le 68HCS12 en mode basse puissance en

attente pour une interruption4. 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)

Page 45: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger C.2-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

C.2-45

C.2(4) Réponses aux interruptions

Instruction STOP (‘Stop Processing’):

1. stocke la valeur de tous les registres clés sur la pile2. ne procède pas à la prochaine instruction3. place le 68HCS12 en mode basse puissance en

attente pour une interruption4. 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)

Page 46: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger C.2-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

C.2-46

Sommaire de la section C.2

C.2 Gestion des exceptions: 1)Exceptions − remises-à-zéro et interruptions2)Sous-systèmes du 68HC12 pour gérer les

exceptions3)Vecteurs d’exception4)Réponses aux interruptions5)Routines de service d’interruption6)Système d’interruption en temps-réel

Page 47: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger C.2-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

C.2-47

C.2(5) Routines de service d’interruption

Étapes préliminaires pour gérer une INT:

1. initialiser le pointeur de pile

2. initialiser la table de vecteur (approche par directives)

3. écrire une RSI pour permettre au CPU de répondre à l’INT spécifique

4. déterminer comment activer l’INTactivation local: fixer un bit d’activation spécifique

5. activer les interruptions globales

Page 48: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger C.2-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

C.2-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

IRQ

IRQ

IRQ

Page 49: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger C.2-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

C.2-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

IRQ

Page 50: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger C.2-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquée C.2-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

IRQ

Page 51: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger C.2-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

C.2-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

Page 52: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger C.2-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

C.2-52

Sommaire de la section C.2

C.2 Gestion des exceptions: 1)Exceptions − remises-à-zéro et interruptions2)Sous-systèmes du 68HC12 pour gérer les

exceptions3)Vecteurs d’exception4)Réponses aux interruptions5)Routines de service d’interruption6)Système d’interruption en temps-réel

Page 53: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger C.2-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

C.2-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

Page 54: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger C.2-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

C.2-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,997696 sec

Page 55: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger C.2-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

C.2-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 RTICTLCRGFLG EQU $0003 ; adresse de CRGFLGCRGINT EQU $0004 ; adresse de CRGINT

CPTDEP EQU 36621 ; valeur de compteur 36621X24,576ms.RTIF EQU $80 ; masque du RTIFLGCTLMSK EQU $75 ; masque du RTICTL 24,576 ms.RTIADD EQU $FFF0 ; vecteur d’interruption

;*************************************************;* Début des variables en RAM*

ORG $800Compteur: ds.w 1 ; 36621X24,576 ms.

Page 56: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger C.2-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquée C.2-56

C.2(6) Système d’interruption en temps-réel

;*************************************************;* RAZ reset *

ORG $FFFE ; Adresse du vecteur du RAZDC.W Debut ; Adresse du début du

; programme

;*************************************************;* Vecteur d’interruption *

ORG RTIADD ; Adresse du vecteur $FFF0DC.W RTI_INT ; Adresse de la routine de service

;*************************************************;* Début constantes, routines de service, programme en ROM*

ORG $4000

Page 57: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger C.2-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquée C.2-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 ; 36621 fois ?

BNE FinInt ; non

MOVW #CPTDEP,Compteur ; réinitialiser le compteur

. Vérifier la pile

.

.

.

FinInt: RTI ; retour

Page 58: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger C.2-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquée C.2-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 interruptionsBRA Encore ; pour l’éternité