CONTENU DU COURS GPA770: Microélectronique appliquée Éric Granger A.2-1 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. A.2 Architecture et programmation du 68HC12: – systèmes électroniques universels – architecture, sous-systèmes et mémoires – instructions et modèle du programmeur GPA770: Microélectronique appliquée Éric Granger A.2-2 Sommaire de la Section A.2 A.2 Architecture et programmation du 68HC12: 1) Systèmes électroniques universels 2) Architecture, sous-systèmes et mémoires 3) Instructions et modèle du programmeur GPA770: Microélectronique appliquée Éric Granger A.2-3 A.1(5) Systèmes électroniques universels a. Système numérique déf.: un système composé de registres et de portes logiques contrôlées par un circuit séquentiel synchrone Structure: unité de contrôle + logique de traitement Avantage et inconvénients de l’approche: − donne généralement un système moins complexe − plus facile à concevoir, changer et réparer le matériel − mais, peut être plus lent qu’un circuit dédié GPA770: Microélectronique appliquée Éric Granger A.1-4 A.1(5) Systèmes électroniques universels Exemple: périphérique SPI pour la communication sérielle synchrone GPA770: Microélectronique appliquée Éric Granger A.1-5 A.1(5) Systèmes électroniques universels b. Système numérique contrôlé par instructions déf.: système numérique qui traite des nombres binaires selon plusieurs différents algorithmes Structure: unité de contrôle + processeur générique Code d’instruction ou ‘instruction’: ̶ indique à l’UC lequel des algorithmes à effectuer ̶ chacun correspond à une séquence particulière de transitions dans la machine d’état de l’UC GPA770: Microélectronique appliquée Éric Granger A.1-6 A.1(5) Systèmes électroniques universels GPA770: Microélectronique appliquée Éric Granger A.1-7 A.1(5) Systèmes électroniques universels c. Processeur avec programme en mémoire déf.: système numérique contrôlé par instructions avec une mémoire pour les données et les instructions structure: processeur générique + unité de contrôle + mémoire Deux types d’informations en mémoire: programme: séquence d’instructions → unité de contrôle données: pour effectuer les opérations → processeur Architecture von Neumann vs Harvard GPA770: Microélectronique appliquée Éric Granger A.1-8 A.1(5) Systèmes électroniques universels instructions Mémoire contrôle CPU données Périphériques d’e/s données Processeur générique Unité de contrôle Contrôle/état horloge GPA770: Microélectronique appliquée Éric Granger A.1-9 A.1(5) Systèmes électroniques universels Rôle des composants principaux: circuit d’horloge: (crystal quartz + circuit logique) génère un signal numérique périodique ‘stable’ pour synchroniser les composants de mémoire du système unité de contrôle: (circuit séquentiel synchrone) fonctionne selon un {instructions} reconnus génère les signaux de contrôle pour le reste du système selon une machine à états processeur générique: (UAL + logique + registres) effectue des opérations simples et communes GPA770: Microélectronique appliquée Éric Granger A.1-10 A.1(5) Systèmes électroniques universels Rôle des composants principaux: (suite) mémoire: (contient 2 types d’informations) programme en ROM: stocke des séquences de codes d’instructions accédés par l’UC pour effectuer des tâches données en RAM: stocke les opérants et résultats d’opérations requis par le processeur pour effectuer des instructions périphériques: (circuiterie pour interfacer) permet de transférer des données entre le processeur et modules externes (senseurs, actionneurs, etc.) via le bus de données GPA770: Microélectronique appliquée Éric Granger A.1-11 A.1(5) Systèmes électroniques universels Définitions à retenir: − instruction: la plus petite unité d’action qui peut être dictée au CPU (UC + processeur) dans un programme − jeu d’instructions du système: {instructions} valides, i.e., qu’un CPU (UC + processeur) peut reconnaître et exécuter − mode d’adressage: façon d’accéder aux données en mémoire qui sont requises pour exécuter une instruction GPA770: Microélectronique appliquée Éric Granger A.1-12 A.1(5) Systèmes électroniques universels Cycle d’exécution d’une instructions dans la machine universelle: 1. alimenter − charger le op-code et opérants de la mémoire aux registres d’instructions (IR) 2. décoder – interpréter l’instruction et traduire en actions du CPU – acheminer les signaux de contrôle 3. exécuter − effectuer les opérations liées à l’instruction alimenter executer GPA770: Microélectronique appliquée decoder Éric Granger A.1-13 A.1(5) Systèmes électroniques universels Catégories d’instructions dans une machine universelle: arithmétique: +, -, x, ∕, etc. logique: ET, OU, etc. charger/stocker (à partir de la mémoire) test et branchement (décisions pour modifier l’ordre d’exécution des instructions) − entrée/sortie (communiquer avec autres composants) − − − − GPA770: Microélectronique appliquée Éric Granger A.1-14 Sommaire de la Section A.2 A.2 Architecture et programmation du 68HC12: 1) Systèmes électroniques universels 2) Architecture, sous-systèmes et mémoires 3) Instructions et modèle du programmeur GPA770: Microélectronique appliquée Éric Granger A.2-15 A.2(1) Architecture, 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-16 A.2(1) Architecture, systèmes et mémoires Évolution du 68HC12: GPA770: Microélectronique appliquée Éric Granger A.2-17 A.2(1) Architecture, systèmes et mémoires Principaux modules dans tous les 68HC12: 1. CPU12: unité de traitement central à haute performance de 16 bits ̶ modules de gestion d’interruptions et de remise à zéro 2. Mémoire: un bloc de registres (512 octets), de la RAM (1Koctets) et de la EEPROM (variable) 3. Bus: le module LIM ─ combine les buses de DATA, d’ADDR et de CTRL 4. Périphériques d’entrée/sortie: ̶ ports d’entrée/sortie ̶ 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-18 A.2(1) Architecture, systèmes et mémoires Types de sous-systèmes dans le 68HC12: ̶ 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-19 A.2(1) Architecture, systèmes et mémoires Plusieurs variantes du 68HC12: 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: MC9S12B32 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 à 25 MHz GPA770: Microélectronique appliquée Éric Granger A.2-20 A.2(1) Architecture, systèmes et mémoires Diagramme bloc du MC9S12C32: composants propres: • la mémoire (32Kbytes de Flash EEPROM) • modulateur de durée d’impulsion (PWM) GPA770: Microélectronique appliquée Éric Granger A.2-21 A.2(1) Architecture, systèmes et mémoires Sous-système de mémoire du 68HC12: ̶ ̶ ̶ ̶ modèle général: liste adressable de registres lié à des registres, RAM et EEPROM physiques ADDR est de m = 16 bits, donc supporte ~64k d’espace adressable DATA est de N = 16 bits GPA770: Microélectronique appliquée Éric Granger A.2-22 A.2(1) Architecture, 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-23 A.2(1) Architecture, systèmes et mémoires Organisation en mémoire de données numériques: GPA770: Microélectronique appliquée Éric Granger A.2-24 A.2(1) Architecture, 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 octet), FLASH EEPROM (effaçable par secteur)... 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 constantes GPA770: Microélectronique appliquée Éric Granger A.2-25 A.2(1) Architecture, systèmes et mémoires Sous-système de mémoire: GPA770: Microélectronique appliquée Éric Granger A.2-26 A.2(1) Architecture, systèmes et mémoires Sous-système de mémoire: (MC9S12C32) GPA770: Microélectronique appliquée Éric Granger A.2-27 Sommaire de la Section A.2 A.2 Architecture et programmation du 68HC12: 1) Systèmes électroniques universels 2) Architecture, sous-systèmes et mémoires 3) Instructions et modèle du programmeur GPA770: Microélectronique appliquée Éric Granger A.2-28 A.2(2) Instructions et modèle programmeur Jeu d’instructions: ̶ le 68HC12 peut comprendre et exécuter 209 différents instructions ̶ 7 catégories d’instructions ̶ inclus toutes les instructions du 68HC11 ̶ inclus de nouvelles instructions mathématique sophistiquées Modes d’adressage: ̶ très flexible − 6 modes d’adressage pour accéder aux données GPA770: Microélectronique appliquée Éric Granger A.2-29 A.2(2) Instructions et modèle programmeur Format d’instructions en assembleur: étiquette op-code opérant(s) commentaires début: LDAA #FC ;charger l’acc. A étiquette: identifie une ligne de code du programme ̶ permet de localiser une {instructions} à exécuter op-code: élément fonctionnel de l’instruction opérant(s): information permettant d’accéder aux données pour exécuter une instruction, via le mode d’adressage 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 A.2-30 A.2(2) Instructions et modèle programmeur déf.: modèle compacte pour visualiser l’état interne du CPU GPA770: Microélectronique appliquée Éric Granger A.2-31 A.2(2) Instructions et modèle 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 de données utilisé avec un décalage pour manipuler les éléments d’une 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 au sommet de la pile contrôle l’opération de la pile (structure FILO) en mémoire GPA770: Microélectronique appliquée Éric Granger A.2-32 A.2(2) Instructions et modèle programmeur Registre à code conditionnel (CCR) à 8 bits: GPA770: Microélectronique appliquée Éric Granger A.2-33 A.2(2) Instructions et modèle programmeur BIT TYPE FONCTION S contrôle S = 1: désactive l’instruction STOP (traitée comme NOP) X contrôle X = 1: permet des interruptions externes non-masquables H état I contrôle I = 0: permet des interruptions masquables N état N = 1: indique que le résultat d’opération est négative (dans la représentation en complément à 2) Z état Z = 1: indique que le résultat d’opération est 0 V état V = 1: indique un résultat qui déborde en complément à 2 C état C = 1: indique que le résultat d’opération arithmétique a produit une retenue ou emprunt pour le MSB H = 1: indique que le résultat d’opération arithmétique a produit une retenue à partir des 4 LSB GPA770: Microélectronique appliquée Éric Granger A.2-34