Vous êtes sur la page 1sur 22
g Mi - Chapitre II: Architecture Générale d’un Microcontréleur Plan Introduction Architecture de pe Microprocesseur (CPU) Les registres Entré/sortie Mémoires Oscillateur Convertisseurs ). Temporisateur ; Timer /compteur 10.Chiens de garde (watchdog) 11 Interruption eer awa yo 1. Introduction : Un microcontréleur (en notation abrégée pe, ou uc ou encore MCU en anglais) est un circuit intégré qui rassemble les éléments essentiels d'un ordinateur : processeur, mémoires (mémoire morte pour le programme, mémoire vive pour les données), unités périphériques et interfaces dentrées-sorties. Les microcontroleurs se caractérisent par: ® un plus haut degré dintégration * une plus faible consommation électrique (quelques milliwatts en fonctionnement, quelques nano watts en veille). = une vitesse de fonctionnement plus faible (quelques mégahertz a quelques centaines de mégahertz © un cost réduit par rapport aux microprocesseurs polyvalents utilisés dans les ordinateurs personnels. Un microcontréleur est un circuit programmable capable d’exécuter un programme et qui posséde des circuits d’interface avec le monde extérieur. On retrouve ainsi les microcontréleurs dans de nombreuses applications : Y Télécommunications : cartes FAX et MODEM, Minitel, téléphones portables (interfaces homme machine, gestion d'écrans graphiques). ¥ Industriels : automates programmables, controle de processus divers, supervision. Prof. KHOULJI S. g ‘Commercial : électroménager, domotique. Automo! ile : ABS, tableau de bord, contréle des siéges, des vitres. ial : sonde, lanceurs de fusées, missile, robots.. Loisirs : expo-sciences Réunion Systémes embarqués, comme les contrdleurs des moteurs automobiles, les télécommandes, les appareils de bureau, l'électroménager, les jouets, la téléphonie mobile, ete. SA8484 a) Un peu d'Histoire; De l'ordinateur au microcontréleur : Le diagramme ci-dessous montre les grandes étapes de lévolution. Chaque étape a été marquée par un processeur différent. Laavénement des transistors (1958), des circuits intégrés (1968) et des circuits intégrés 4 haute densité (1978) a permis de construire des ordinateurs de plus en plus petits et de plus en plus puissants. Chacune des intégrations laisse leurs traces dans les différents noms que l'on rencontre aujourd'hui : mini-ordinateur, microprocesseur, micro-ordinateur, microcontrdleur... On les doit principalement a la société Intel fondé en 1968 Voici les grandes étapes d'évolution > Mini-Ordinateur : premiere intégration, cet ordinateur contient maintenant une Unité Centrale de traitement sur une seule carte Microprocesseur ; deuxiéme intégration, "Unité Centrale est contenue dans un seul circuit, c'est le C.P.U. . Ce fut le 4004 en 1971, le 8008 en 1972 puis le 8080 en 1974. Ce demier eut un tel succés quill est considéré comme le pére de nos microprocesseurs et microcontréleurs d'aujourd'hui. ro-Ordinateur : c'est le nom qui désignera désormais un ordinateur congu autour dun microprocesseur. Microcontrdleur : troisi¢me intégration, l'ensemble des 3 unités (centrale, mémoires et périphériques) sont maintenant contenues dans un seul circuit. Ce fut le 8048 en 1976 puis le 8051 en 1980. > Micro-ordinateur embarqué : C'est un ordinateur spécialisé et congu autour d'un microcontréleur. Il est capable de réagir 4 des événements plus rapides. Deux noms sont 4 Torigine des plus fameux microcontrdleurs utilisés : Intel et Motorola, avec deux architectures différentes. En terme électronique, on parlera de coeur 8051 ou coeur 68HCI1 par exemple. ‘ ¥ “yt Prof. KHOULJI S. g Miccocontrleur b) Le marché des microcontrdleurs Différents constructeurs de microcontréleurs se disputent le marché mondial. Parmi les plus importants a I'heure actuelle et dans I'ordre décroissant de leur importance en termes de volumes de vente: + Motorola (68HC11). + Microchip (séries des PIC) + Mitsubishi (M30620). + NEC (78C10). + Philips (80C352). + Intel (8051). Entre parenthése est indiquée la référence du microcontréleur le plus vendu par la société en question. Historiquement la société pionniére est INTEL qui est considéré comme le pére du microcontréleur avec le 8048 dans les années 1970. Ainsi il existe quatre principaux types de microcontréleurs que l'on peut différencier par la taille de leur bus de données. + Led bits essentiellement utilisé pour les automatismes simples (petits automatismes, jouets,...). Peu cher il est fabriqué en grande quantité pour des applications de grande consommation. + Le8 bits qui est le plus répandu, En effet il existe une grande diversité de ces microcontrdleurs et ceux-ci permettent une grande souplesse quant 4 leur utilisation. + Le 16 bits moins courant est utilisé pour des applications exigeantes. + Enfin le 32 bits trés peu utilisé n’intervient qu'au sein de trés gros projets. ©) Les composants intégrés Un microcontrdleur intégre sur un unique die + Central Processing Unit (CPU), désigne le microprocesseur, avec une largeur du chemin de données alant de 4 bits pour les modéles les plus basiques 4 32 ou64bits pour les modéles les plus évolués + de lamémoire vive (RAM) Random Access Memory, mémoire servant & stocker les variables et les données er par le programme + de la mémoire morte (ROM): Read Only Memory, est une mémoire a lecture seule, qui stocke le programme. —“Dfférentes.-—technologies. = peuvent. — tre employées : EPROM, EEPROM, mémoire flash (la plus récente) ; Prof. KHOULJI S. ‘+ souvent un oscillateur pour le cadencement. I peut étre réalisé avec un quartz, un circuit RC ou encore une PLL ; + des périphériques, capables d'effectuer des tiches spécifiques. On peut mentionner entre autres : + les convertisseurs_analogiques-numériques (CAN) (donnent un nombre binaire partir d'une tension électrique) + les convertisseurs mumériques-analogiques (CNA) (effectuent I'opération inverse), + les générateurs de signaux 4 modulation de largeur d'impulsion (MLI, ou en anglais, PWM pour Pulse Width Modulation), + les timers/compteurs (compteurs d'impulsions dhorloge interne ou d’événements externes), + les chiens de garde (watchdog), + les comparateurs (comparent deux tensions électriques), + les contréleurs de bus de communication (UART, EC, SSP, CAN, FlexRay, USB, Ethernet, etc.). © Le fonctionnement des périphériques peut étre paramétré et commandé par le programme et/ou les entrées-sorties. Les périphériques peuvent générer une interruption qui contraint le processeur a quitter le programme en cours pour effectuer une routine de traitement de interruption, lorsque I’événement qui la déclenche survient. © Les microcontrdleurs peuvent généralement se placer dans un état de sommeil, dans lequel ils présentent une trés faible consommation électrique, Un signal envoyé par I'un de leurs périphériques (timer, broche d'entrée-sortie, watchdog, etc.) permet de les faire sortir de cet état de sommei © — Certains microcontréleurs ont un nombre trés restreint de broches, si bien qu'une broche ie doit alors étre donnée peut correspondre a plusieurs périphériques internes. La fonction choi: sélectionnée par logiciel. © Le choix des périphériques a intégrer dans un microcontroleur est délicat. Les fabricants doivent réaliser un compromis entre des besoins contradictoires : utiliser des fréquences élevées, réduire la taille du circuit, apporter des fonctionnalités nombreuses, élaborer une architecture flexible, assurer des cofits modérés, ete 2. Architecture générale d’un microcontréleur 3. Microprocesseui Prof. KHOULJI S. 3.1. Architecture interne du microprocesseur Le processeur (microprocesseur) est le composant hardware le plus connu d'un systéme micro-programmeé. C'est lunite intelligente de traitement des informations. Le microprocesseur a pour mission de rechercher les instructions (lire le programme) qui sont en mémoire, de les décoder et de les exécuter. Un microprocesseur est construit autour de deux éléments principaux : > Une unité de commande et Une unité de traitement Unie de traitement 1. Une unité de commande (UC) chargée de traduire puis d’exécuter les commandes ; Son role est d’aller chercher une information en mémoire centrale, d’analyser cette instruction (décodage), d’exécuter cette instruction, de localiser l'instruction suivante. + Un décodeur d’instruction + Un séquenceur et des circuits de commande Les blocs de l’unité de commande contiennent: ¥ Le compteur de programme (PC : Programme Registre d@ Counter) appelé aussi Compteur Ordinal (CO) est constitué par un registre dont le contenu est initialisé avec adresse de la premiére instruction du programme. I contient toujours l'adresse de la prochaine instruction Aexécuter. ¥ Le registre d'instruction et le décodeur d'instruction: Y Chacune des instructions & exécuter est transférée depuis la mémoire dans le registre instruction puis est décodée par le décodeur d’instruction, Y Bloc logique de commande (ou séquenceur) : Il organise I'exécution des instructions au rythme dune horloge. Il élabore tous les signaux de synchronisation internes ou externes (bus de commande) du microprocesseur en fonction de ’instruction qu'il a a exécuter. Il Sagit d'un automate réalisé de fagon micro-programmée. 2. Lunité de traitement Elle regroupe les circuits qui assurent les traitements nécessaires a Texécution des instructions Les blocs de I’unité de traitement contiennent : Y Les accumulateurs sont des registres de travail qui servent a stocker une opérande au début dune opération arithmétique et le résultat la fin de l'opération. Prof. KHOULJI S. Y L'Unité Arithmétique et Logique (UAL) est un circuit complexe qui assure les fonctions logiques (ET, OU, Comparaison, Décalage, etc...) ou arithmétique (Addition, soustraction...). Y Le registre d'état est généralement composé de & bits 4 considérer individuellement. Chacun de ces bits est un indicateur dont l'état dépend du résultat de la demiére opération effectuée par 'UAL. On les appelle indicateur d'état ou flag ou drapeaux. Dans un programme le résultat du test de leur état conditionne souvent le déroulement de la suite du programme. On peut citer par exemple les indicateurs de : Retenue (carry : C) Débordement (overflow : OV ou V) Zér0 (Z) UAL : Unité Arithmétique et Logique) Architecture compléte du microprocessew! : (1) Charger une instruction depuis la mémoire (2) Charger les opérandes depuis la mémoire (3) Effectuer les calculs (4) Stocker le résultat en mémoire Architecture Prof. KHOULJI S. Texiste deux types @ architecture des microprocesseurs * Architecture de Von Neumann Architecture de Harvard = Lvarehitecture dite de « Von Neumann » est une organisation des composants telle que le bus qui relie la mémoire programme et la mémoire de donnée au microprocesseur soit le méme. En général, il existe qu’une mémoire de programme contenant 4 la fois des instructions et les données placées a Ia suite les unes les autres. Ce bus sert alors alternativement a transmettre les instructions et les données Architecture de Harvard est une organisation des composants telle que ln mémoire du programme et la mémoire des données sont séparés et sont reliés par 4 bus: —R] # Unbus de données programme, {Un bus de données pour les données Un bus d’adresse programme, [ee | Un bus d’adresse pour les données. Meilleure utilisation du CPU Chargement du programme et des données en paralléle Kee. Remarque : c’est I’Architecture de Harvard que utilise les microcontrdleurs PIC. Seul les bus de donnée (data ou instructions) sont représentées 212 (14, 16) a) Listen 2.1.2. Le traitement des instructions Une instruction est définie comme étant une tache accomplie (comme une addition) réalisé par un processeur. Chaque microprocesseur dispose de son propre ensemble d’instructions. Pour que le wp puisse “comprendre” instruction, les instructions doivent étre envoyées (fournies) sous forme binaire, c.a.d. langage machine. Organisation dune instruction Le microprocesseur ne comprend qu’un certain nombre d’instructions qui sont codées en binaire. Une instruction est composée de deux éléments : = Le code opération : C’est un code binaire qui correspond a l’action effectuer par le processeur = Le champ opérande : Donnée ou bien adresse de la donnée. Prof. KHOULJI S. Micoccontreur Ta taille dune instruction peut varier, elle est genéralement de quelques octets (I a 8), elle depend également de l'architecture du processeur. Exemple d’instructio Instruction Addition : Accumulatcur = Accumulateur + Opérande Correspond I'instruction ADD A#2 Cette instruction est comprise par le processeur par le mot binaire : 11001 000 0000 0010 = code mac! Phase 1: Recherche de instruction en mémoire © La valeur du PC est placée sur le bus d'adresse par Tunité de commande qui émet un ordre de lecture. © Aprés le temps d'aceés la mémoire, le contenu de la case mémoire sélectionnée est disponible sur le bus des données. © Linstruction est stockée dans le _registre instruction du processeur. se 2 : Décodage et recherche de Vopérande © Lunité de commande transforme Minstruetion en une suite de commandes élémentaires nécessaires au traitement de l'instruction. ® Si instruction nécessite une donnée en provenance de la mémoire, l'unité de commande récupére sa valeur sur le bus de données, = L’opérande est stocké dans le registre de données. Phase 3 ; Exécution de Vinstruction = Le séquenceur réalise l'instruction. = Les drapeaux sont positionnés (registre d'état). = Llunité de commande positionne le PC pour Vinstruetion suivante Les architectures RISC et CISC Actuellement architecture des microprocesseurs se composent de deux grandes familles = L? architecture CISC (Complex Instruction Set Computer): Architecture a jeu instructions complexe e Prof. KHOULJI S. Instruction Set Computer): Architecture diinstructions réduit > instructions simples ne prenant qu'un| "instructions complexes prenant plusieurs seul cycle cycles © instructions au format fixe ®& instructions au format variable & décodeur simple (cablé) & décodeur complexe (microcode) > beaucoup de registres > peu de registres aX peu de modes d'adressage *& beaucoup de modes d’adressage = compilateur complexe *& compilateur simple Les PICs sont congus selon une architecture RISC. Programmer avec un nombre d’instructions réduit permet de limiter la taille de leur codage et done de la place mémoire et du temps d’exécution 2.1.3. Les modes d’adressages Les modes d'adressages sont un aspect de architecture des processeurs et de leurs jeux instructions. Les modes d'adressages définis dans une architecture régissent la fagon dont les instructions en langage machine identifient leurs opérandes. Un mode d'adressage spécifie la fagon dont est calculée I'adresse mémoire effective d'un opérande a partir de valeurs contenues dans des registres et de constantes contenues dans |'instruction ou ailleurs dans la machine. En programmation informatique, les personnes préoccupées par les modes d'adressage sont principalement celles qui programment en assembleur et les auteurs de compilateurs. Les instructions utilisent toutes une maniére particuliére daccéder aux informations qu’elles manipulent. Ces méthodes sont appelées « modes d’adressage ». Ce sont les diverses maniéres de définir la localisation d’un opérande. C'est a dire la maniére dont la donnée est spécifié dans une instruction, Les trois modes d’adressage les plus courants sont & Adressage littéral ou immédiat, = Adressage direct © Adressage indirect Adressage littéral ou immédiat : la donnée est contenue dans "instruction Exemple ADDA #4 Memoce gh Oni - i rel aay} oe i } Prof. KHOULJI S. = Adressage direct : Ia donnée est contenue dans un registre © Adressage indirect : I’adresse de la donnée est contenue dans un pointeur Dans les PIC, un seul pointeur est disponible pour |’adressage indirect :SFR Exemple: ADDA @adresseX Mémoire Adresses ___Contenu. Compteur Ordinal rc [_adset__} ‘Accumulateur The du programme {Processeur vise Adresse début programe {Adresse du Haut Pareur 40 Hexa) ‘onstante,menerane relachee Constante, membrane stew \ ____ Prof. KHOULJI S. Programme: instructions Vue symbolique Adresses, Le Pipeline : fini Pun pipelin La technique du pipeline est une technique de mise en oeuvre qui permet a plusieurs instructions de se chevaucher pendant l'exécution, Une instruction est découpée dans un pipeline en petits morceaux appelés étage de pipeline, La technique du pipeline améliore le débit des instructions plutot que le temps dexécution de chaque instruction, La technique du pipeline exploite le parallélisme entre instructions d’un flot séquentiel instructions. Elle présente l’avantage de pouvoir, contrairement a d'autres techniques daccélération, étre rendue invisible du programmeur. ult Pipetine: Toutes tes units Imatériles du DSP sont en actistés Comparaison avec et sans pipeline n avec et sans pipeline __— Prof. KHOULJIS. Cycles required without pipeline Ee Saved using pipelin | # Moins de cycles par instruction + Consommation réduite Utilisation des ressources par le pipeline epee Description Partie hardware utilisée pipeline P| Generate program address PC F |Get Opcode Program memory D__ [Decode instniction Decoder A | Generate read address ARs, ARAU Reed Operand Date memory R [Generate write address ‘ARS, ARAU x [Execute instruction MAC, ALU Write result Data Memory ARAU = Auxiliary Register Arithmetic Unit Les retards © Le pipeline atteint son plein rendement une fois qu’il est “rempli” ‘¢ Unretard peut se produire ¥ S'il existe un conflit de ressources (retard ponctuel) © accés i la mémoire © utilisation des bus ¥ Encas de rupture de séquence (vidange du pipeline) © — branchement non prévu © —appel de sous-programme © interruption Exemple de rupture Solution par Vorga le Prof. KHOULJI S. I No CONFLICT Types de pipelining Séquentie! Pipetine simple 2 pipeline (Plupart des DSP) lotorola 66000) ——“4 me —— se Double pipeline Superpipeling : (ex Pentium) Nombre d'étages plus élevé (ex: TM8320¢6000) eee oo epee — Ree = pe Remarques sur les performances ; Certaines phases sont inutiles pour certaines instructions (p.ex. un LOAD ne nécessite pas dlexécution), mais toutes les instructions doivent traverser tout le pipeline. Ce "gaspillage” est nécessaire pour simplifier le contréle. Exemple de profondeur Processeur ‘Profondeur du pipeline Aléas d'un pipeline Les types daléas Prof. KHOULJI S. © La présence d'un pipeline (et donc le partage de 'exécution d'une instruction en plusieurs Stages) introduit des aléas ¥ Alas de structure : L'implémentation empéche une certaine combinaison opérations (lorsque des ressources matériels sont accédées par plusieurs étages). ¥ Aléas de données : Le résultat dune opération dépend de celui d'une opération précédente qui n'est pas encore terminée. Y Aléas de contréle : Liexécution d'un saut conditionnel ne permet pas de savoir quelle instruction il faut charger dans le pipeline puisque deux choix sont possibles Aléas de structure : Les aléas de structure peuvent étre processeur lors de sa conception. inés en agissant sur l'architecture du Aléas de données : Une instruction ne peut récupérer le résultat de la précédente car celui-ci nfest pas encore disponible. Exemple : ADD RI, R2, R3 // R1=R2+R3 STORE RI, 1000 // C(1000) = RI Cette séquence ne stocke pas a emplacement mémoire 1000 la valeur de RI contenant ta somme R2 + R3, mais la valeur de R1 contenue avant linstruction ADD. léas de contréle : La présence d'un pipeline introduit des complications lors de exécution d'un saut ou d’un saut conditionnel, L’étage de décodage de I'instruction n'est pas en mesure de caleuler adresse de instruction suivante avant de connaitre le résultat de instruction précédente. 6 - Prof. KHOULJI S. ven 5 [eich [ execute 1 Feich? | Ereade? Feicn3 | Eveares Fecn 4 All instructions are single cycle, except for any program branches. These take two cycles since the fetch instruction is flushed” from the pipeline while the new instruction is being fetched and then executed, © Une solution possible est de faire en sorte que le processeur devine si le branchement sera pris ou pas pris (branch prediction) et commencer 4 exécuter les instructions correspondant a cette décision. — Sile choix se révéle correct, la pénalité de branchement est éliminée. * Si le choix se révéle incorrect, il faudra vider le pipeline et charger l'instruction correcte. © Pour faire de la prédiction de branchement il y a deux possibilités * Solution statique : La direction du branchement est fixe, définie en matériel au moment de la conception du processeur. Solution dynamique : La direction du branchement est définie au moment de Yexécution du programme, sur la base d'une analyse du code. 's sauts en arriére (boucles) sont plus souvent pris que pas pris, En effet, une boucle est souvent réaliser avec plus que 2 itérations. >On peut done faire une prédiction selon la direction: ‘¢ sile saut est en arriere, il est pris, © siilest en avant, il n'est pas pris. Cette stratégie donne des trés bons résultats (70- 80%) avec une augmentation relativement restreinte de la logique de contrdle: elle est utilisée dans plusieurs processeurs (p.ex., icroSparc, HP-PA). Solution dynamique ¥ Pour réaliser une prédiction dynamique le processeur mémorise le comportement du programme lors de Il'exécution des sauts. A chaque exécution d'un branchement dans un programme, le processeur mémorise si le saut était pris ou pas pris dans un tampon de prédiction de branchement. Sur la base du comportement passé du programme pour un branchement donné, le processeur prédit son comportement pour lexécution suivante du méme saut. Y Par rapport a la prédietion statique, la prédiction dynamique est plus performante, mais nécessite une quantité trés importante de logique de contrile. Prof. KHOULJI S. NON PRIS. NON PRIS Machine d'état présente dans le processeur pour la prédiction de branchement statistique 3.4. Les bus On appelle Bus, en informatique, un ensemble de liaisons physiques (cables, pistes de circuits imprimés, ...) pouvant étre exploitées en commun par plusieurs éléments matériels afin de communiquer. Pour la communication, un microprocesseur a besoin en général de trois Bus. Un Bus de données, un Bus d’adresse et un Bus de commande. Bus de donné Il permet de véhiculer des données du microprocesseur vers un composant ou d'un composant vers le microprocesseur, Il est done bidirectionnel. Le nombre de fils de ce bus varie suivant les microprocesseurs (8 / 16 / 32 / 64 bits). Dans la littérature, les différents fils de ce bus sont appelés DO, D1, ..., Dp-1, si le bus a "p" fils. Bus d’adresse La mémoire est composée de nombreuses cases mémoires. Chaque case est repérée par une adresse, Lorsque le microprocesseur veut, par exemple, lire une case, il doit indiquer 4 quelle adresse elle se trouve, Il met cette adresse sur le bus des adresses. La case mémoire reconnait alors son adresse et met sur le bus de données son contenu. Exemple : Bus d’adresse 16 bits - données sur 8 bits. Bus de commande Le bus des commandes est constitué d'un ensemble de fils de "commandes", permettant la synchronisation et bien sir la commande des boitiers mémoires et entrées/sorties par le microprocesseur. Dans le cas précédent, la cellule mémoire doit savoir 4 quel instant elle doit mettre son contenu sur le bus de données. Pour cela, le microprocesseur posséde une broche appelée Read ( ) qu'il met 0 (Ov) lorsque la cellule doit agir. De méme, lors d'une écriture du microprocesseur vers la cellule, il met sa broche Write () a 0 (OV). Les signaux RD ct WR sont des signaux de synchronisation, de contréle et de commande. Ils sont reliés aux autres composants par un bus: le bus des commandes. Celui-ci comporte dlautres signaux de commandes. 4. Les registres Ce terme va étre beaucoup utilisé dans ce cours. On désigne par registre un mot (de 8 bits généralement) qui sert aux calculs ou plus souvent a configurer un paramétre dans le microcontroleur. Quand on parle de registre, on met chaque fois son aspect. En effet, chaque bit d'un registre configure quelque chose. Prof. KHOULJI S. Prenons un exemple = soit le registre de 8 bits nommé ELEVE_SI, qu’on représente comme cela: a [fonction |brun [grand |webmaster | sympas |chef |intelligent |programmeur |fort & Starcraft. Chaque bit du registre peut étre mis 4 1 ou a 0. Dans notre exemple, il s'agit des caractéristiques dun individu J. J'ai montré le LSB et le MSB avec Ia numérotation des bits. Lorsque Ton configure un registre, cela signifie que l'on doit assigner chaque bit du registre 4 une valeur (0 ow 1), sachant que les bits ont tous a un état par défaut. Ici, nous savons que la personne posséde un certain talent a Starcraft, donc nous mettons le bit 0 a 1 par exemple. Le reste est laissé pour Vinstant a 0. L'octet a écrire dans le registre sera donc (01)hex, soit : ELEVE_SI=(01)hex. Hop c'est fait. Tenez, cela me fait penser a une autre notion : le masquage. Lorsque vous programmerez un micro, il arrivera que vous ne vouliez pas changer tous les bits d'un coup. Un pltit exemple : voici le registre ELEVE_SI tel que bt | 7 | 6 5 4 [3 2 i ° ‘fonction |brun [grand [webmaster |sympas |chef [intelligent |programmeur |fort Starcraft valeur | 0 | 0 ° o [o ° 0 i On souhaite mettre le bit nommé “intelligent” 1 (si l'on considére qu'il existe des éléves intelligents en S-SI J), sans toucher aux autres valeurs. Ce qu’on va utiliser, ce sont les "bétes" opérateurs logiques (si vous étes perdu, revoir votre cours). Le plus facile serait de charger une nouvelle valeur, ce qui donnerait ici ELEVE_SI=(05)hex, mais cela est possible que si l'on connait la valeur de tous les bits. Admettons que nous ne connaissons pas les autres valeurs : nous allons alors créer un masque logique afin de ne pas les modifier (les autres bits peuvent servir ailleurs). Pour mettre un bit 1, il faut réaliser un OU (voir les tableaux des opérateurs logiques de votre cours) entre le bit "intelligent" et le chiffre 1. Ainsi, nous avons 0 OU 1 = 1. Hop, c'est fait. Maintenant, nous allons préparer le masque des autres bits : pour laisser un bit tel quil est, il faut réaliser un OU entre ce bit et 0. Le masque complet pour ce registre est done : (04)hex. Enfin, on applique ce masque au registre : ELEVE_SI = ELEVE_SI OU (04)hex Hop voila, le registre ELEVE_ SI devient done a ea 5 4 [3 A 7 ° [fonction |brun [grand [webmaster | sympas |chef intelligent |programmeur |fort 8 Starcraft [valeur [0 | 0 oO o [o 1 0 a Test bien sir possible de réaliser autre masque, pour mettre un bit 4 0 : on utilise ici Nopérateur ET entre le bit et 0. Pour ne pas modifier les autres bits, on masque aussi mais avec des 1 (voir le tableau de 'opérateur ET). Nous aurions eu alors : ELEVE_SI= ELEVE_SI ET (FB)hex 5. Les entrées — sorties Le microcontréleur posséde beaucoup de broches directement utilisables. Outre les habituelles broches d'alimentations et de configuration, il y a ce qu'on appelle des Ports. A I'instar des PC, il existe des ports série et paralléle. Les ports séries servent le plus souvent comme port de 6 Prof. KHOULJI S. ‘communication avec Textérieur (un PC par exemple, pour télécharger un programme) ou pour dialoguer avec d'autres microcontréleurs, composants esclaves ou autres modules. Quant aux ports paralléles, ils constituent la majorité des broches que l'on peut voir sur un microcontrdleur. Cependant, on programme les ports directement par leur nom pour simplifier la programmation (il faut configurer les noms). Par exemple, mettons que I’on a le composant fictif suivant qui posséde un port paralléle nommé ELEVE SI ELEVESt Comme vous pouvez le voir, les ports sont composés de 8 broches, ce qui forme un octet. Chaque broche a son propre poids ; on nomme généralement chaque broche en prenant le nom du port et le poids d'une broche. Par exemple, on appellera la premiére broche (bit 0) du port ELEVE_SI (0), puis (1) pour le deuxiéme bit, (2) pour le troisiéme et ainsi de suite. Une demiére chose : il existe trois statuts différents pour les ports, * Port en entrée : il est capable de recevoir des informations en provenance de l'extérieur. * Port en sortie : il émet des informations du microcontroleur vers l'extérieur. * Port bidirectionnel : il est capable, pour toutes ses broches ou certaines d'entre elles, de recevoir ou d'émettre des données, Il sagit 1 d'un statut physique, c'est a dire que c'est la fabrication électronique des ports qui décide dans quel mode il sera capable de fonctionner. Certains microcontrleurs possédent des Port dont certaines broches sont en entrée et d'autres en sortie. Enfin, il est possible sur certains modéles de définir logicielle ment dans quel mode le Port va fonctionner. v Pound ‘on écrit une donnée sur un port, le CPU va transformer un ordre logiciel en une donnée bien physique : un niveau de tension. Ainsi, lorsqu'une broche d'un port est "mise & 1” (expression qui signifie que l'on a placé dans le programme cette brache 4 l'état 1), la tension sur cette borne sera de SV. Et bien sar, lorsque l'on placera une broche a 0 dans un proaramme, la tension sur cette borne sera de OV. Cette tension, qui a pour valeur soit OV, soit SV, est normalisée. Ainsi, la plupart des composants électroniques ossédent cette reference. A linverse, une tension de SV qui apparait sur une broche se traduit par un niveau logique ‘1’, sion tit Vetat de cette broche dans un programme, 6. Les mémoires La mémoire est utilisée pour le stockage d’instructions, de donnée et de la pile (portion mémoire réservée pour sauvegarder le contexte d’exécution d'une procédure. Si on donnait une adresse & chaque bit de mémoire, 1a quantité d’adresses serait trés élevée. La mémoire est constituée de cellules de mémorisation binaires, groupé en mot de 8, 16, 32 ou 64 bits. La mémoire est adressée par mot de 8 bits (octet). Une position mémoire est spécifiée par adresse d’un octet. Prof. KHOULJI S. Ta majorite de microcontroleurs utilisent deux zones de mé Y une pour le programme. Y et une pour les variables. Ceite séparation comporte de nombreux avantages, dus aux différences d’utilisation de ces mémoires. La mémoire contenant le programme n’est modifiée que lors de la programmation du composant, elle est bien plus souvent luc. Elle doit également étre sauvegardée lors de coupures d’alimentation La technologie utilisée est couramment la mémoire Flash La mémoire contenant les données est autant lue qu’écrire Elle n’a pas besoin d’étre préservé lors des coupures d’alimentation car celles-ci provoquent de toute fagon un redémarrage du composant. Classification des mémoires: RAM: Random Access Memory (mémoire a accés aléatoire) : Ces mémoires perdent de l'information lorsqu’elles ne sont pas alimentées. Le microcontrleur a souvent besoin de stoker des données temporaires dans la mémoire RAM Y General Purpose Register : Mémoire RAM classique, utiliser pour stocké des variables. Exemple : int i; i++; // incrémentation de i depuis la RAM ¥ SFR (Special Function Register) : C'est aussi de la mémoire RAM, sauf que les réles de chacune des cases mémoire (registres) ont 616 définis par le fabriquant, Chaque registre SFR est connecté a un périphérique matériel spécifique et permet de la contrdler. Exemple : ADCONO register (adresse 9Fh) permet de piloter le convertisseur A/D. ROM: Read Only Memory: Aussi appelé (a juste titre) program memory. C’est une mémoire Flash qui contient le programme a exécuter. PROM : (Programmable Read Only Memory) On les appelle aussi mémoire fusibles ou OTP (One Time Programmable) type de mémoire mort EEPROM memory : (Erasable-Programable Read Only Memory). C’est une mémoire similaire 4 la mémoire programme. On s’en sert surtout pour stocker des constantes. UVPROM: EPROM effacable par une exposition aux ultraviolet U.V Mémoires programmable électriquement effacables par UV done réutilisables. FLASH: méme fent que la mémoire EEPROM, mais avec une vitesse supérieure mais ne permettent que l’effacement total de la mémoire. Ces mémoires sont utilisés dans les PC(BIOS) et dans les systémes embarqués. Prof. KHOULJI S. re, Un oscillateur électronique est un montage électronique, dont la fonction est de produire un signal périodique, de forme sinusoidale, carrée, voire en dents de scie, ou quelcongue. Lioseillateur peut avoir une fréquence fixe ou variable. Il existe deux types doscillateurs : les oscillateurs harmoniques qui produisent un signal sinusoidal et les oscillateurs de relaxation ne produisant pas un signal sinusoidal. 8. Convertisseur analogique-numérique Un convertisseur analogique-numérique (CAN, parfois convertisseur A/N), ou en anglais ADC pour (Analog to Digital Converter) ou plus simplement A/D, est un montage électronique dont la fonction est de traduire une grandeur analogique en une valeur numérique (codée sur plusieurs bits), proportionnelle au rapport entre la grandeur analogique dientrée et la valeur maximale du signal. Le signal converti est le plus souvent une tension électrique. existe plusieurs techniques pour convertir un signal analogique en signal numérique 9. Temporisateur : Timer/compteur Le temporisateur est utili microcontréleur. Un timer est un périphérique matériel permettant de mesurer des durées (généralement inclus dans les microcontréleurs). Son réle est de permettre la synchronisation des opérations que le microcontrdleur est chargé d'effectuer. Les timers sont des registres incrémentés chaque réalisation d’un événement, la valeur de ces registres pouvant étre pré-positionnée & une valeur initiale. é pour contrdler le ‘temps’ et pour contréler la rapidité du Les événements qui commandent 'inerémentation sont, © un cycle d’horloge, c'est la fonction « timer » ; © un front montant sur une broche en entrée, c'est la fonction « counter ». Les timers sont des registres incrémentés 4 chaque réalisation d’un événement, la valeur de ces registres pouvant étre pré-positionnée a une valeur initiale, Hen découle que le module timer peut remplir les fonctions suivantes, © Utilisation « timer » : permet de fournir une référence temporelle partir de Vhorloge du micro-controleur, notamment dans le cadre d’applications temps réel. © Utilisation « counter » : sert a compter un nombre d’événements asynchrones sur une broche d’entrée du micro-contrileur. 0. Un chien de garde (watchdog) Un chien de garde, en anglais watchdog, est un circuit électronique ou un logiciel utilisé en électronique numérique pour s'assurer qu'un automate ou un ordinateur ne reste pas bloqué a une étape particuliére du traitement quill effectue. C'est une protection destinge généralement & redémarrer le systéme, si une action définie n'est pas exécutée dans un délai imparti. Prof. KHOULJI S. g eT En informatique industrielle, le chien de garde est souvent réalisé par un dispositif électronique, en général une bascule monostable. Il repose sur le principe que chaque étape du traitement doit s'exécuter en un temps maximal. A chaque étape, le systéme arme une temporisation avant son exécution. Si la bascule retourne 4 son état stable avant que la tiche ne soit achevée, le chien de garde se déclenche. Il met en ceuvre un systéme de secours qui peut soit déclencher une alarme, soit faire redémarrer automate, soit mettre en marche un systéme redondant... Les chiens de garde sont souvent intégrés aux microcontrdleurs et aux cartes méres dédiées au temps réel. Quand il est réalisé par logiciel, il s'agit en général d'un compteur qui est réguliérement remis, zéro. Si le compteur dépasse une valeur donnée out) alors on procéde aun reset (redémarrage) du systéme. Le chien de garde consiste souvent en un registre qui est mis & jour via une interruption réguliére. Il peut également consister en une routine d'interruption qui doit effectuer certaines tiches de maintenance avant de redonner a main au programme principal. Si une routine entre dans une bouele infinie, le compteur du chien de garde ne sera plus remis a zéro et unreset est ordonné. Le chien de garde permet aussi d'effectuer un redémarrage si aucune instruction nest prévue & cet effet. II suffit alors d’écrire une valeur dépassant la capacité du compteur directement dans le registre : le chien de garde lancera le reset. Dune fagon plus générale, il peut également s'agir d'un logiciel destiné a observation de certaines conditions. Par exemple, en matiére de sécurité, a s'assurer réguliérement qu'aucune action malveillante n'est effectuée (dans la mémoire vive en particulier) ou que certaines Is service exécuté en tache de fond et done, invisible l'utilisateur. 11. Les interruptions > Liinterruption est un mécanisme fondamental de tout processeur. Il permet de prendre en compte des événements au processeur et de leur associer un traitement spécifique. > L’exécution d’une instruction n’est jamais interrompu en cours; c’est a la fin de Vinstruction en cours lors de I'arrivée de l’événement que le sous programme interruption est exécuté. > Une interruption est un arrét temporaire de Texécution normale d'un programme informatique par le microprocesseur afin d'exécuter un autre programme (appelé routine diinterruption). > Les interruptions matérielles sont utilisées lorsqu'il est nécessaire de pouvoir réagir en temps réel a un événement asynchrone, ou bien, de maniére plus générale, afin déconomiser le temps d'exécution lié une boucle de consultation (polling loop).» > Une interruption peut avoir différentes sources : périphérique d’entrée/sortie, timer, conditions de fonctionnement sont bien remp! git généralement de processus ou de watchdog (cf. explications plus loin), Prof. KHOULJI S. ee re, Tes interruptions sont utilisées pour avertir le micro-controleur quand une condition est % remplie. En utilisant les interruptions, on évite que le micro-contrdleur reste en attente inutilement (pooling-loop), elles permettent de gérer les événements asynchrones. > Les interruptions sont, en général, contrdlées par 3 bits : © Un bit de flag : indique qu’une interruption a été déclenchée et indique la source. © Un bit de validation : permet 4 l'utilisateur d’activer ou non une interruption. © Un bit de priorité : permet de sélectionner la priorité (haute/basse) de interruption. Gestion des priorités : Il existe des interruptions de priorité hautes et basses. A chaque type de priorité correspond un vecteur d’interruption et done potentiellement une gestion différente des Interruptions suivant leur priorité. \ ) Prof, KHOULJI S.

Vous aimerez peut-être aussi