Cours 1 ASP GBM3-LMDv4.pdf
Document Details
Uploaded by Deleted User
Full Transcript
Institut Supérieur des Technologies Médicales de Tunis Architecture des systèmes à processeurs 3ème année Licence Appliquée en GBM Cours Préparé par : M. Hedi ABDELKRIM M. Slim BEN...
Institut Supérieur des Technologies Médicales de Tunis Architecture des systèmes à processeurs 3ème année Licence Appliquée en GBM Cours Préparé par : M. Hedi ABDELKRIM M. Slim BEN OTHMAN M. Ahmed Karim BEN SALEM M. Taoufik MAJOUL (Classés par ordre alphabétique des noms) http://ent.uvt.rnu.tn/course 2024-2025 Chapitre 1 : Du Microprocesseur au Microcontrôleur Fonctionnement basique d’un calculateur Circuit Circuit Stockage Calcul 3 Introduction Un microprocesseur est un circuit intégré complexe caractérisé par une très grande intégration et doté des facultés d'interprétation et d'exécution des instructions d'un programme. Il est chargé d’organiser les tâches précisées par le programme et d’assurer leur exécution. Il doit aussi prendre en compte les informations extérieures au système et assurer leur traitement. 4 Le microprocesseur Architecture interne Bus d’adresses Microprocesseur Accumulateur Programme Unité de Registre d’état Unité de traitement commande Mémoire Données Bus de données 5 Le microprocesseur Architecture interne Bus d’adresses Microprocesseur Accumulateur Accumulateur PC Programme Registre d’état Registre Mémoire d’état Bloc logique de commande Décodeur Données d’instruction Bus de données 6 Le microprocesseur Le microprocesseur Unité de commande (de contrôle) Elle permet de séquencer le déroulement des instructions. Bus d’adresse PC : Programme Counter, appelé aussi Compteur Ordinal. Il contient toujours l’adresse de la prochaine instruction à exécuter. RI : Registre Instruction : contient le code de l’instruction PC Le décodeur d'instruction : Le mot binaire (instruction) est décodé pour savoir à quelle action correspond Bloc logique l’instruction. de commande Bloc logique de commande (séquenceur) Il organise l’exécution des instructions au rythme de Instruction Décodeur RI d’instruction l’horloge. Il élabore tous les signaux de synchronisation du microprocesseur en fonction de l’instruction qu’il a à 7 exécuter Le microprocesseur Le microprocesseur Unité de traitement Elle exécute les instructions. L’Unité Arithmétique et Logique (UAL) est un circuit Unité de traitement complexe qui assure les fonctions logiques (ET, OU, Accumulateur comparaison, décalage, etc.) ou arithmétiques Accumulateur Registre d’état (addition, soustraction, etc.). Registre d’état L’accumulateur : C’est un registre de travail qui sert à stocker momentanément le résultat des opérations réalisées par L’UAL. Le registre d'état : Chacun des bits de ce registre dépend du résultat de la dernière opération effectuée par l’UAL. Exemple : Bit de retenue (Carry : C), débordement (OVerflow : OV ou V), Zéro (Z), etc. 8 Cycle d’instruction (ou machine) Chaque instruction nécessite un certain nombre de cycles d’horloges (Microcycles) pour s’effectuer. Il est plus long d’accéder à la mémoire principale qu’à un registre du processeur. La durée d’un cycle dépend de la fréquence d’horloge du séquenceur. Exemple : Un cycle d’instruction avec 3 périodes d’horloge EPT 9 Le microprocesseur Architecture Mémoire La mémoire de Lecture/Ecriture est un grand bloc contigu de cases mémoires. Elle est utilisée pour stocker les programmes et les données. 2 architectures permettent de différencier les processeurs selon la disposition des mémoires de données et programme : Architecture Von Neumann Architecture Harvard 10 Architecture Mémoire Adressage de plusieurs blocs mémoires/périphériques Système Von Neumann Système Harvard EPT 11 Architecture Mémoire Architecture Von Neumann Un système utilisant le même espace mémoire pour les données et les instructions admet une architecture de type Von Neumann Architectures Von Neumann : PC, 6809, 68HC11... 12 Architecture Mémoire Architecture Harvard Les microprocesseurs utilisant des espaces mémoires séparés pour les données et les instructions du programme ont une architecture de type Harvard Architecture Harvard : PIC, DSP... 13 Le traitement des instructions Les architectures RISC et CISC Actuellement l’architecture des microprocesseurs se compose de deux grandes familles : L’architecture CISC : Instructions nombreuses et complexes (Complex Instruction Set Computer) L’architecture RISC : Instructions réduites et plus simples (Reduced Instruction Set Computer) Réduire le jeu d’instructions aux instructions les plus couramment utilisées → plus de performance de calcul 14 Le microcontrôleur Définition Un microcontrôleur est un circuit qui intègre un maximum de fonctions dans un même boitier. L’intégration de ces fonctions dans le même environnement permet de créer des applications plus simplement. →Un microcontrôleur est un circuit capable de traiter, de stocker et de restituer de l’information. → Il est en particulier constitué d’un microprocesseur. 15 CAN Microprocesseur RAM Program Memory Oscillateur 0 - 40MHz Microcontrôleur 16 Le microcontrôleur Aspect général Un microcontrôleur typique contient sa propre mémoire, des ports d’E/S (parallèles, séries, etc.), une horloge et souvent un bon nombre de fonctions périphériques qui n’existent pas dans un microprocesseur. 17 Le microcontrôleur PIC - Les microcontrôleurs PIC crées par la société américaine Microchip. - Ils ont un bon rapport performance/prix puisqu'ils allient performance, faible coût, facilité de mise en œuvre et faible encombrement - En plus de bénéficier d’une architecture Harvard, les microcontrôleurs PIC sont conçus autour d ’une architecture RISC 18 18 Le microcontrôleur Harvard : Cas des microcontrôleurs PIC Seul les bus de données (data ou instructions) sont représentées 19 Le microcontrôleur PIC Famille des PICs Microchip propose 3 familles de PIC. Certaines versions du PIC existent en ROM et d'autres en EEPROM, ou encore en mémoire Flash. Ondistingue aussi les familles suivantes selon la taille du bus de données de sa mémoire de programme : Base-Line : Les instructions sont codées sur 12 bits Mid-Range : Les instructions sont codées sur 14 bits High-End : Les instructions sont codées sur 16 bits 20 Le microcontrôleur PIC Identification Un PIC est identifié par un numéro de la forme suivant : xxXXyy –zz xx : Famille du composant (12, 14, 16, 17, 18) XX : Type de mémoire de programme C - EPROM ou EEPROM Soit un PIC 16F84–10, donc : 16 : CR - PROM Mid-Range ; F - FLASH F : Flash ; yy : Identification 84 : Type ; 10 : Quartz à 10MHz au maximum zz : Vitesse maximum du quartz 21 Le microcontrôleur PIC Comparatif Caractéristiques 16F84 16F628 16F88 16F876 16F877 Nombre de 18 18 18 28 40 broches Mémoire 1024 2048 4096 8192 8192 programme RAM 68 224 368 368 368 Mémoire 64 128 256 256 256 EEPROM Entrées/Sorties 13 (2 ports) 16 (2 ports) 16 (2 ports) 22 (3 ports) 33 (5 ports) - 1 Timer - UART - UART - UART - UART - 3 Timers - 3 Timers - 3 Timers - 3 Timers Commentaires - ADC 7 canaux - ADC 5 canaux - ADC 8 canaux - PSP 22 Le microcontrôleur PIC : cas du PIC16F84 Descriptif - 35 instructions codées chacune sur 14 bits - Données sur 8 bits - 1 cycle machine par instruction, sauf pour les sauts (2 cycles machine) - Vitesse maximale 10 MHz, soit une instruction en 400 ns (1 cycle machine = 4 cycles d'horloge) - 4 sources d'interruption - 1000 cycles d'effacement/écriture pour la mémoire flash, 10 Million pour la mémoire de données EEPROM 23 Le PIC : 16F84 Brochage T0CKL : Entrée de Port A comptage du Temporisateur0 Oscillateur ou Horloge Reset ➔ : Alimentation Entrée d'interruption Port B 24 Le PIC 16F84 : Architecture interne 13 Bus de données 8 Mémoire EEPROM PC Flash ROM 1024 x 14 Mémoire RAM EEPROM programme EEDATA 68 x 8 64 x 8 Pile 8 niveaux Bus du Registres programme 14 7 Registre d’instructions Add MUX EEADR 5 Adressage direct Adressage 7 indirect TMR0 FSR STATUS RA4 / TOCKI 8 MUX Power up Timer Décodage 8 PORTS d’instructions Oscillateur Power on Reset ALU Base de RA3 : RA0 temps Chien de garde RB7 : RB1 W RB0 / INT OSC2 / CLKOUT MCLR VDD, Vss OSC1 / CLKIN 25 Le PIC 16F84 : Détails Architecture interne un compteur de programmeBus de données 13 8 Mémoire EEPROM une mémoire Flash ROM flash bus (program counter) PC spécifique pour les données 1024 x 14 EEPROM de programme Mémoire de RAM contenant RAM EEPROM 1k "mots" de 14 bits programme Pile 8 niveaux 68 octets 68 x8 de EEDATA de 64 octets 64 x 8 Bus du une pile données (mémoire Registres un bus spécifique 14 pour le programme programme de données utilisateur) 7 un registre contenant Registre le code de d’instructions Add MUX EEADR l'instruction à exécuter 5 Adressage direct Adressage 7 indirect TMR0 FSR compteur STATUS RA4 / TOCKI d'entrées/sorties (A et B) 8 ou timer un système d'initialisation (TMR0) un décodeur Deux ports MUX Power up Timer Décodage à la miseOscillateur sous tension 8 PORTS d’instructions d’instructions une unité un système de génération (power-up Power ontimer, Reset …) arithmétique ALU et Base de RA3 : RA0 garded'horloge chien de temps (watchdog)à partir Chiendu de quartz garde externe logique (ALU) RB7 : RB1 (base de temps W RB0 / INT OSC2 / CLKOUT MCLR VDD, Vss OSC1 / CLKIN 26 Le PIC : 16F84 Le cadencement du microcontrôleur Quartz Très bonne Stabilité (10 ppm ) Résonateur céramique Stabilité ( 0.5%) Moins couteux que le quartz 80 Hz 40 000 Hz 27 Le PIC : 16F84 Organisation de la mémoire Mémoire Mémoire programme Flash CPU Mémoire Mémoire RAM donnée Mémoire EEPROM - La structure Harvard des PICs fournit un accès séparé à chacune. ➔ Ainsi, un accès aux deux est possible pendant le même cycle machine 28 Le PIC : 16F84 Organisation de la mémoire La mémoire programme : Mémoire Flash contient le programme à exécuter contient 1k "mots" de 14 bits L'adresse 0000h contient le vecteur du reset, L'adresse 0004h contient l'unique vecteur d'interruption du PIC. La pile contient 8 valeurs, elle n'a pas d'adresse dans la plage de mémoire. Ce sont des zones réservées par le système. 29 Le PIC : 16F84 Organisation de la mémoire La mémoire de données : RAM séparée en deux pages ou bank ( page 0 et page 1 ). les premiers octets sont réservés (SFR pour Special File Register). La zone utilisateur est notée GPR (Registre à usage général ) de 68 cases de 1 octet chacune. Une zone interdite Le bus d’adresse est composé de 7 bits le bit RP0 du registre STATUS permet de sélectionner page 0 ou 1. 30 Le PIC : 16F84 Organisation de la mémoire 31 Le PIC : 16F84 Organisation de la mémoire La mémoire de données : RAM FSR : Permet l'adressage indirect INDF : Utilise le contenu de FSR pour l'accès indirect à la mémoire. TMR0 : Registre lié au compteur. PCL : Contient les bits de poids faible du compteur de programmes (PC). Le registre PCLATH (0Ah-8Ah) contient les poids forts. STATUS : Il contient l'état de l'unité arithmétique et logique ainsi que les bits de sélection des banques 32 Le PIC : 16F84 Organisation de la mémoire La mémoire de données : RAM PORTA : Donne accès en lecture ou écriture au port physique A, 5 bits. La sortie RA4 est à drain ouvert. Le bit 4 peut être utilisé en entrée de comptage. PORTB : Donne accès en lecture ou écriture au port physique B. Le bit 0 peut être utilisé en entrée d'interruption. EEDATA : Permet l'accès aux données dans la mémoire EEPROM. EEADR : Permet l'accès aux adresses de la mémoire EEPROM. 33 Le PIC : 16F84 Organisation de la mémoire La mémoire de données : RAM PCLATCH : Donne accès en écriture aux bits de poids fort du compteur de programme. INTCON : Masque d'interruptions, configuration des interruptions. OPTION_REG : Contient des bits de configuration pour divers périphériques. TRISA : Indique la direction (entrée ou sortie) du port A. TRISB : Indique la direction (entrée ou sortie) du port B. EECON1 : Permet le contrôle d'accès à l’EEPROM. EECON2 : Permet le contrôle d'accès à l’EEPROM 34 Le PIC : 16F84 Les ports d’entrée/sortie Ce sont des ports parallèles. Ils permettent de recueillir des informations ou de piloter des modules sur l’environnement extérieur. Ils sont souvent bidirectionnels (configurable en entrée ou sortie). 35 Le PIC : 16F84 Les ports d’entrée/sortie L ’utilisation des registres est ainsi la suivante: Port Donnée à transmettre Pour transmettre une donnée sur un port, il faut ECRIRE la donnée dans le Ecrire registre PORT correspondant. Port Pour recevoir une donnée sur un port, il faut LIRE la donnée dans le Donnée reçue registre PORT correspondant. Lire 36 Le PIC : 16F84 Les ports d’entrée/sortie Remarque 1: Sur le PIC 16F84, le port A du circuit PORTA ne présente en fait que 5 broches b4 b3 b2 b1 b0 d ’E/S. Le registre correspondant (8 bits) n ’a donc d ’actifs que les bits RA0 à RA4. b7 b6 b5 b4 b3 b2 b1 b0 Le port B possède bien 8 lignes PORTB d ’E/S. Le registre correspondant a donc les 8 bits actifs. 37 Le PIC : 16F84 Les registres de commande d’entrée/sortie Les registres de direction TRIS (8 bits) sont directement liés aux registres PORT. Le rôle des registres TRIS est de programmer chacune des lignes des ports soit en entrée, soit en sortie. Les différentes broches (lignes) d ’un même port peuvent donc avoir un rôle différent: transmettre ou recevoir une valeur logique (« 0 » ou «1 »). 38 Le PIC : 16F84 Les registres de commande d’entrée/sortie La programmation des registres TRIS est la suivante: TRIS b7 b6 b5 b4 b3 b2 b1 b0 La mise à « 0 » du bit programme la ligne 1 0 correspondante en sortie. La mise à « 1 » du bit programme la ligne Ligne R6 Ligne R1 correspondante en entrée. en entrée en sortie 39 Le PIC : 16F84 Les registres de commande d’entrée/sortie Exemple: PIC Programmons le port A en entrée et le Port A Port B port B en sortie. RA1 RA2 RA3 RA0 RA4 RB0 RB2 RB4 RB5 RB7 RB1 RB3 RB6 Remarque: le port A ne possède que 5 E E E E E S S S S S S S S lignes d ’E/S. TRISA TRISB En conséquence, les registres TRIS 1 1 1 1 1 0 0 0 0 0 0 0 0 se programment avec les valeurs: « 0 » = sortie TRISA 1F « 1 » = entrée TRISB 00 40 Cas d’application 41 Health & Medical Devices and applications based on µcontrollers https://www.hackster.io/health 42