GPA770: Microélectronique appliquée CONTENU DU COURS GPA770: Microélectronique appliquée Éric Granger
Partie A − Mise en contexte A.1 Survol de l’électronique numérique systèmes de numérotation opérations arithmétiques binaires représentation de nombres signés circuits électroniques de base: portes, registres, etc. systèmes électroniques universels A.2 Architecture et programmation du 68HC12: architecture, sous-systèmes et mémoires modèle du programmeur et exécution d’instructions GPA770: Microélectronique appliquée Éric Granger
Sommaire de la Section A.2 A.2 Architecture et programmation du 68HC12: Architecture, sous-systèmes et mémoires Instructions du 68HC12 Modèle du programmeur GPA770: Microélectronique appliquée Éric Granger
A.2(1) Architecture, sous-systèmes et mémoires Introduction du 68HC12 au marché en 1997: évolution direct du 68HC11 qui est plus performante et versatile (instructions, modes d’adressage, etc.) microcontrôleur avec CPU à 16 bits: le chemin de données interne est de 16 bits horloge de système à 8 MHz: générée par un crystal à 16MHz divisé par 2 conçu en technologie CMOS: la consommation de puissance est basse système = {modules} connectés à un bus inter module (LIM) GPA770: Microélectronique appliquée Éric Granger
A.2(1) Architecture, sous-systèmes et mémoires Évolution du 68HC12: GPA770: Microélectronique appliquée Éric Granger
A.2(1) Architecture, sous-systèmes et mémoires Principaux modules dans tous les 68HCS12: CPU12: unité de traitement central à haute performance de 16 bits modules de gestion d’interruptions et de remise à zéro Mémoire: un bloc de registres (512 octets), de la RAM (2Koctets) et de la EEPROM (variable) Bus: le module LIM ─ combine les buses de DATA, d’ADDR et de CTRL Périphériques d’entrées/sorties: ports d’entrées/sorties module de temporisation (TIM) à 16 bits convertisseur analogique-numérique (ADC) à 8 bits interfaces de communications sérielles: SCI et SPI GPA770: Microélectronique appliquée Éric Granger
A.2(1) Architecture, sous-systèmes et mémoires Plusieurs variantes du 68HCS12: différences entre variantes surtout selon: la structure de la mémoire le nombre de canaux d’entrée/sortie la configuration pour les communications sérielles en cours: MC9S12D ciblé pour mode circuit autonome au laboratoire: MC9S12C32 ciblé pour mode circuit autonome (série 68HCS12 − introduit au marché en 2002) plus de mémoire interne et une horloge à 16 MHz GPA770: Microélectronique appliquée Éric Granger
A.2(1) Architecture, sous-systèmes et mémoires Diagramme bloc du MC9S12C32: GPA770: Microélectronique appliquée Éric Granger
A.2(1) Architecture, sous-systèmes et mémoires Types de sous-systèmes dans le 68HCS12: communication sérielle: interfaces pour communications asynchrones et synchrones temporisation: capter des entrées, générer des sorties, accumuler des impulsions conversion de données: convertir un signal analogique en nombre binaire non-signé mémoire: stocker les variables, le code, etc. interruption et remise à zéro: permet d’interrompre un programme pour exécuter un routine de service ports: échange des signaux de données et contrôle avec le monde externe GPA770: Microélectronique appliquée Éric Granger
A.2(1) Architecture, sous-systèmes et mémoires Rôle des types de sous-systèmes dans le 68HCS12: CPU12: unité de traitement central gestion d’exceptions: interrompre l’exécution normal d’un programme Module LIM: combine les buses de DATA, d’ADDR et de 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
A.2(1) Architecture, sous-systèmes et mémoires Sous-système de mémoire du 68HCS12: modèle général: liste adressable de registres consiste de registres, RAM et EEPROM ADDR est de m = 16 bits, donc supporte ~64k d’espace adressable DATA est de N = 16 bits sur deux adresses GPA770: Microélectronique appliquée Éric Granger
A.2(1) Architecture, sous-systèmes et mémoires Capacité d’une mémoire: largeur de mémoire (n): correspond au nombre de bits par registre interne (i.e., mot de mémoire ou ‘word size’) N = largeur du DATA (pas toujours n) longueur de mémoire (M): correspond au nombre de registres qu’on peut adresser M = 2m, où m = largeur du ADDR capacité: largeur x longueur = n x M bits GPA770: Microélectronique appliquée Éric Granger
A.2(1) Architecture, sous-systèmes et mémoires Stockage en mémoire de données numériques: GPA770: Microélectronique appliquée Éric Granger
A.2(1) Architecture, sous-systèmes et mémoires Sous-système de mémoire: caractéristiques des mémoires RAM et ROM RAM ROM volatile non-volatile lire et écrire lire seulement SRAM, DRAM, SDRAM, etc. PROM, EPROM, EEPROM (effaçable par octets), FLASH EEPROM (effaçable par secteurs)... temps d’accès plus rapide, mais plus gros/coûteux temps d’accès plus lent, mais très compacte stocker des variables temporaires stocker de programmes et constants GPA770: Microélectronique appliquée Éric Granger
A.2(1) Architecture, sous-systèmes et mémoires Sous-système de mémoire: (MC9S12C32) GPA770: Microélectronique appliquée Éric Granger
Sommaire de la Section A.2 A.2 Architecture et programmation du 68HC12: Architecture, sous-systèmes et mémoires Instructions du 68HC12 Modèle du programmeur GPA770: Microélectronique appliquée Éric Granger
GPA770: Microélectronique appliquée A.2(2) Instructions du 68HC12 Jeu d’instructions: le 68HCS12 peut comprendre et exécuter 209 différents instructions inclus toutes les instructions du 68HC11 inclus de nouvelles instructions mathématique sophistiquées 7 catégories d’instructions Modes d’adressage: très flexible − plusieurs modes d’adressage pour accéder aux données GPA770: Microélectronique appliquée Éric Granger
GPA770: Microélectronique appliquée A.2(2) Instructions du 68HC12 Format d’instructions en assembleur: étiquette op-code opérant(s) commentaires debut: LDAA #$FC ;charger l’acc. A étiquette: identifie une ligne de code du programme permet de localiser une {instructions} à exécuter op-code/directive/macro: élément fonctionnel de l’instruction/dirige le compilateur/collage d’un texte. opérant(s): information permettant d’accéder aux données pour exécuter une instruction/directive/macro. Commentaires: “;” indique le début d’un commentaire utile aussi pour documentation au début d’une ligne. GPA770: Microélectronique appliquée Éric Granger
GPA770: Microélectronique appliquée A.2(2) Instructions du 68HC12 Cycle d’exécution d’une instruction: chercher − charger le op-code et opérants de la mémoire aux registres d’instructions (IR) décoder interpréter l’instruction et traduire en actions du CPU acheminer les signaux de contrôle exécuter − effectuer les opérations liées à l’instruction. chercher executer decoder GPA770: Microélectronique appliquée Éric Granger
Sommaire de la Section A.2 A.2 Architecture et programmation du 68HC12: Architecture, sous-systèmes et mémoires Instructions du 68HC12 Modèle du programmeur GPA770: Microélectronique appliquée Éric Granger
A.2(3) Modèle du programmeur déf.: modèle compacte pour visualiser l’état interne du CPU GPA770: Microélectronique appliquée Éric Granger
A.2(3) Modèle du programmeur A et B − accumulateurs à 8 bits: D − combine A et B pour former un accumulateur à 16 bits registres à usage général, avec lesquels toutes les opérations arithmétiques et logiques sont effectuées X, Y − indexes (pointeurs) à 16-bit: contient l’adresse mémoire d’un liste de données utilisé avec un décalage pour manipuler le élément de liste PC − compteur de programme à 16 bits: mécanisme qui gouverne l’exécution ordonnée d’instructions contient l’adresse mémoire de la prochaine instruction à exécuter SP − pointeur de pile à 16-bit: contient l’adresse mémoire de la dernière valeur de pile contrôle l’opération de la pile (FILO) en mémoire GPA770: Microélectronique appliquée Éric Granger
A.2(3) Modèle du programmeur Registre à code conditionnel (CCR) à 8 bits: GPA770: Microélectronique appliquée Éric Granger
A.2(3) Modèle du programmeur BIT TYPE FONCTION S contrôle S = 1: désactive l’instruction STOP (traitée comme NOP) X X = 1: permet des interruptions externes non-masquables H état H = 1: indique que le résultat d’opération arithmétique a produit une retenue à partir des 4 LSB I I = 0: permet des interruptions masquables N N = 1: indique que le résultat d’opération est négative (dans la représentation en complément à 2) Z Z = 1: indique que le résultat d’opération est 0 V V = 1: indique un résultat qui déborde en complément à 2 C C = 1: indique que le résultat d’opération arithmétique a produit une retenue ou emprunt pour le MSB GPA770: Microélectronique appliquée Éric Granger