Bat a a a a a a a a At

  • Published on
    20-Jul-2015

  • View
    66

  • Download
    0

Embed Size (px)

Transcript

<p>I-Introduction Un microcontrleur est un circuit intgr qui rassemble les lments essentiels d'un ordinateur : processeur, mmoires (mmoire morte pour le programme, mmoire vive pour les donnes), units priphriques et interfaces d'entres-sorties. Les microcontrleurs se caractrisent par un plus haut degr d'intgration, une plus faible consommation lectrique, une vitesse de fonctionnement plus faible (quelques mgahertz quelques centaines de mgahertz[1]) et un cot rduit par rapport aux microprocesseurs polyvalents utiliss dans les ordinateurs personnels. Par rapport des systmes lectroniques base de microprocesseurs et autres composants spars, les microcontrleurs permettent de diminuer la taille, la consommation lectrique et le cot des produits. Ils ont ainsi permis de dmocratiser l'utilisation de l'informatique dans un grand nombre de produits et de procds. Les microcontrleurs sont frquemment utiliss dans les systmes embarqus, comme les contrleurs des moteurs automobiles, les tlcommandes, les appareils de bureau, l'lectromnager, les jouets, la tlphonie mobile, etc.</p> <p>Composants intgrsUn microcontrleur intgre sur un unique die : </p> <p>un processeur (CPU), avec une largeur du chemin de donnes allant de 4 bits pour les modles les plus basiques 32 ou 64 bits pour les modles les plus volus ; de la mmoire vive (RAM) pour stocker les donnes et variables ; de la mmoire morte (ROM) pour stocker le programme. Diffrentes technologies peuvent tre employes : EPROM, EEPROM, mmoire flash (la plus rcente) ; souvent un oscillateur pour le cadencement. Il peut tre ralis avec un quartz, un circuit RC ou encore une PLL ; des priphriques, capables d'effectuer des tches spcifiques. On peut mentionner entre autres : o les convertisseurs analogiques-numriques (CAN) (donnent un nombre binaire partir d'une tension lectrique), o les convertisseurs numriques-analogiques (CNA) (effectuent l'opration inverse), o les gnrateurs de signaux modulation de largeur d'impulsion (MLI, ou en anglais, PWM pour Pulse Width Modulation), o les timers/compteurs (compteurs d'impulsions d'horloge interne ou d'vnements externes), o les chiens de garde (watchdog), o les comparateurs (comparent deux tensions lectriques), o les contrleurs de bus de communication (UART, IC, SSP, CAN, FlexRay, USB, Ethernet, etc.).</p> <p>Ces microcontrleurs PIC intgrent des quantits de composants trs diffrentes. Le fonctionnement des priphriques peut tre paramtr et command par le programme et/ou les entres-sorties. Les priphriques peuvent gnrer une interruption qui contraint le processeur quitter le programme en cours pour effectuer une routine de traitement de linterruption, lorsque lvnement qui la dclenche survient. Les microcontrleurs peuvent gnralement se placer dans un tat de sommeil, dans lequel ils prsentent une trs faible consommation lectrique. Un signal envoy par l'un de leurs priphriques (timer, broche d'entre-sortie, watchdog, ...) permet de les faire sortir de cet tat de sommeil. Certains microcontrleurs ont un nombre trs restreint de broches, si bien qu'une broche donne peut correspondre plusieurs priphriques internes. La fonction choisie doit alors tre slectionne par logiciel. Le choix des priphriques intgrer dans un microcontrleur est dlicat. Les fabricants doivent raliser un compromis entre des besoins contradictoires : utiliser des frquences leves, rduire la taille du circuit, apporter des fonctionnalits nombreuses, laborer une architecture flexible, assurer des cots modrs, etc.</p> <p>ArchitectureUn microcontrleur peut effectuer la plupart des instructions machine habituelles, avec certaines restrictions lies son caractre embarqu (taille restreinte des mots machine, petite taille disponible, etc.). On note cependant quelques particularits. Les capacits mathmatiques sont en gnral particulirement limites, rduites des additions, soustractions et dcalages sur des octets pour les plus simples d'entre eux. Les calculs mathmatiques volus doivent donc tre ramens une succession d'oprations simples portant seulement sur des octets. Des routines mathmatiques (petits programmes permettant de raliser les calculs complexes) ont t dveloppes pour la plupart des microcontrleurs populaires. Les instructions d'entre-sortie sont bien dveloppes, de faon pouvoir : </p> <p>lire l'tat d'un port d'entre ; crire une information dans le registre d'un port de sortie, qui maintient l'information la disposition des circuits extrieurs.</p> <p>Les microcontrleurs disposent gnralement de nombreuses instructions ddies aux oprations sur les bits, de faon rendre les programmes plus compacts, notamment lorsqu'ils agissent sur une entre-sortie donne. Ainsi, un processeur gnraliste peut avoir besoin de plusieurs instructions pour tester la valeur d'un bit d'un registre et effectuer un saut si le bit vaut vrai. Cette fonction courante est assure par une seule instruction dans certains microcontrleurs[2]. Les modes d'adressage utilisables sont en gnral semblables ceux des autres processeurs. De faon gnrale, les instructions et modes d'adressage disponibles varient fort selon les familles de microcontrleurs. Certains microcontrleurs suivent une architecture Harvard[3] : ils possdent des bus spars pour la mmoire de programme et la mmoire de donnes, ce qui permet aux accs d'avoir lieu en mme temps (on parle d'accs concurrent). Lorsqu'on utilise une architecture Harvard, les mots de programme peuvent avoir une largeur (nombre de bits) diffrente de celle des mots de la mmoire de donnes et des registres. Par exemple, il peut y avoir des instructions de 12 bits et des registres de donnes de 8 bits.</p> <p>Utilisations et volume du marchLes microcontrleurs sont trs utiliss dans tous les systmes embarqus voqus en introduction. Ils sont galement trs priss en robotique amateur (robots autonomes) et en modlisme (automatismes des maquettes de rseaux ferroviaires par exemple). Les microcontrleurs reprsentent la plus grosse partie des ventes dans le march des microprocesseurs[rf. ncessaire]. En effet, un foyer moyen d'un pays dvelopp est susceptible d'tre quip de seulement un ou deux microprocesseurs gnralistes (ordinateurs), mais d'une ou deux douzaines de microcontrleurs (appareils lectromnagers). Une automobile de milieu de gamme est quipe d'au moins 50 microcontrleurs[rf. ncessaire].</p> <p>Microcontrleur ST6 quip d'une mmoire EPROM effaable aux UV. Les fabricants proposent souvent des versions spciales de leurs microcontrleurs pour faciliter le dveloppement matriel et logiciel des applications. Par exemple, lorsque les mmoires mortes utilises taient des EPROM, il existait des variantes des microcontrleurs quipes de fentres sur le dessus, qui permettaient d'effacer le programme grce de la lumire ultraviolette. Ceci permettait de recommencer une programmation aprs un cycle programmation-test.</p> <p>Pour de petites sries (quelques milliers d'units ou moins), les microcontrleurs programmables une seule fois (OTP, one-time programmable) sont conomiques. Ils sont bass sur la mme puce que la version UV-EPROM, se programment avec le mme matriel, mais le botier n'est pas quip de la fentre qui permet l'effacement (et qui est onreuse). Il peut exister des versions de microcontrleurs dpourvus de mmoire morte interne. La mmoire morte est alors situe dans un botier extrieur, par exemple une EPROM. Il suffit alors d'un simple programmateur d'EPROM pour raliser la programmation, mais des broches du microcontrleur sont requises pour la communication avec la mmoire externe, et ne peuvent donc pas tre utilises pour les entres-sorties. Ces versions sont plus coteuses, mais peuvent se rvler intressantes si les quantits vises sont faibles. Plus rarement, on rencontre une variante de l'approche prcdente, le piggy back. Le microcontrleur ne dispose pas non plus de mmoire morte interne, mais la communication avec lEPROM se fait non pas par des broches d'entre-sortie, mais par des broches spciales situes sur le dessus du botier. LEPROM se fixe alors au-dessus du microcontrleur, et ne monopolise pas de port d'entre-sortie. Ces versions sont souvent onreuses et peu pratiques, sauf pour les phases de dveloppement et les trs petites sries. Le recours la programmation sur place, dans le circuit applicatif, permet de mettre jour le programme aprs la fabrication du produit. On parle alors de flashage. Cette opration peut tre effectue via un programme situ en ROM, ou passer par l'utilisation d'un connecteur physique particulier. Dans tous les cas, on vite ainsi un retour en usine pour effectuer la mise jour. Lorsqu'il s'agit de produire de plus grandes sries (plusieurs milliers et plus), le cot de ralisation d'un masque pour la fabrication de mmoire morte non programmable est facilement amorti sur tous les exemplaires produits. On peut alors fixer le contenu de la mmoire morte lors de la ralisation du circuit intgr, et non plus lors du montage du produit. Cependant, ces mmoires prsentent l'inconvnient de ne pouvoir tre mises jour. Si l'on envisage nanmoins de telles mises jour, on peut prvoir de monter le microcontrleur sur un support, ce qui permet de le faire remplacer par un technicien en cas de ncessit.</p> <p>Environnements de programmationLe programme d'un microcontrleur est gnralement appel firmware ou micrologiciel. l'origine, les microcontrleurs se programmaient en assembleur. Fortement bas niveau (et donc, intrinsquement optimis), l'assembleur posa et pose toujours d'normes problmes pour la maintenance et l'volution des logiciels embarqus. Dsormais, on utilise de plus en plus des langages de haut niveau, notamment le langage C, capable de faciliter la programmation de microcontrleurs toujours plus puissants. Ces compilateurs C prsentent gnralement certaines restrictions lies aux spcificits des microcontrleurs (mmoire limite, par exemple). Le compilateur GCC peut produire du code pour certains microcontrleurs[4]. Avec laugmentation de la puissance et de la quantit de mmoire de stockage (FLASH) disponible dans les microcontrleurs, les programmes de ces derniers peuvent dsormais tre crits en C++. Il existe mme des framework et plateformes en C++ ddis lembarqu, comme Qtopia, mais l'utilisation de ceux-ci restera limite aux microcontrleurs les plus puissants.</p> <p>Certains microcontrleurs disposent galement de firmware ralisant l'interprtation d'un langage volu. Ainsi, lIntel 8052 et le Zilog Z8 ont pu tre programms en BASIC ds leurs dbuts. Plus rcemment, le BASIC Stamp dispose d'un interprte BASIC en mmoire morte. Il existe des environnements pour aider au dveloppement de certaines applications. Par exemple, LabVIEW et son langage G permettent de programmer les microcontrleurs Blackfin d'Analog Devices. Des simulateurs sont disponibles pour certains microcontrleurs, comme l'environnement MPLAB de Microchip. Les dveloppeurs peuvent ainsi analyser le comportement du microcontrleur et du programme, comme s'il s'agissait du composant rel. Un simulateur montre l'tat interne du processeur, ainsi que celui de ses sorties. Bien que la plupart des simulateurs ne proposent pas de simuler les autres composants d'un systme, ils permettent de spcifier les entres volont. On peut de cette faon crer des conditions qui seraient sans cela difficiles reproduire dans une implmentation physique. Cela facilite donc l'analyse et la rsolution des problmes. De la mme faon, certains logiciels de CAO simulent le comportement du microcontrleur et des composants qui l'entourent. On peut ainsi afficher les tats des entres et sorties des diffrents composant au cours de l'excution d'un programme.</p> <p>Programmateur de microcontrleur PIC. Une fois le programme compil, le fichier binaire doit tre envoy au microcontrleur. On utilise soit : </p> <p>un programmateur, pour microcontrleurs et souvent galement dEEPROM. On parle alors de programmateur universel. un programmateur ISP qui a l'avantage de ne pas ncessiter de sortir le microcontrleur du systme lectronique complet. Ce type de programmation pourra se faire via le bus de communication standard JTAG ou un autre bus, souvent propritaire (Microchip par ex. avec sa srie PIC16F) et, malheureusement, inadapt au test des cartes lors de la phase de production.</p> <p>Toutefois, le programme qui a t envoy peut comporter des bogues (bugs), aussi, pour parvenir les dtecter on peut utiliser un mulateur in-circuit. Le projet CLinux vise faire fonctionner Linux sur des microcontrleurs et des microprocesseurs dpourvus de MMU. Il est par exemple disponible sur Motorola ColdFire, Blackfin, Intel i960, Motorola QUICC, ARM7-TDMI, NEC V850.</p> <p>Familles de microcontrleurs </p> <p>la famille Atmel AT91 ; la famille Atmel AVR ( utilise par des cartes Arduino); le C167 de Siemens/Infineon ; la famille Hitachi H8 ; la famille Intel 8051, qui ne cesse de grandir ; de plus, certains processeurs rcents utilisent un cur 8051, qui est complt par divers priphriques (ports dE/S, compteurs/temporisateurs, convertisseurs A/N et N/A, chien de garde, superviseur de tension, etc.) ; lIntel 8085, l'origine conu pour tre un microprocesseur, a en pratique souvent t utilis en tant que microcontrleur ; le Freescale 68HC11 ; la famille Freescale 68HC08 ; la famille Freescale 68HC12 ; la famille des PIC de Microchip ; la famille des dsPIC de Microchip ; la famille des ST6, ST7, STM8, ST10, STR7, STR9, STM32 de STMicroelectronics ; la famille ADuC d'Analog Devices ; la famille PICBASIC de Comfile Technology; la famille MSP430 de Texas Instruments ; la famille 8080, dont les hritiers sont le microprocesseur Zilog Z80 (dsormais utilis en tant que contrleur dans l'embarqu) et le microcontrleur Rabbit ; la famille PSoC de Cypress ; la famille LPC21xx ARM7-TDMI de Philips ; la famille V800 de NEC ; la famille K0 de NEC.</p> <p>Microcontrleur PICLes microcontrleurs PIC (ou PICmicro dans la terminologie du fabricant) forment une famille de microcontrleurs de la socit Microchip. Ces microcontrleurs sont drivs du PIC1650 dvelopp l'origine par la division microlectronique de General Instrument. Le nom PIC n'est pas officiellement un acronyme, bien que la traduction en Peripheral Interface Controller (contrleur d'interface priphrique) soit gnralement admise. Cependant, l'poque du dveloppement du PIC1650 par General Instrument, PIC tait un acronyme de Programmable Intelligent Computer ou Programmable Integrated Circuit .</p> <p>Mise en uvre[modifier]Un microcontrleur est une unit de traitement de l'information de type microprocesseur laquelle on a ajout des priphriques internes permettant de raliser des montages sans ncessiter lajout de composants annexes. Un microcontrleur peut donc fonctionner de faon autonome aprs programmation. Les PIC intgrent une mmoire de programme, une mmoire de donnes, des ports d'entresortie (numriques, analogiques, MLI, UART, bus IC, etc.), et mme une horloge, bien que des</p> <p>bases de temps externes puissent tre employes. Certains modles disposent de port et units de traitement de l'USB.</p> <p>Architecture[modifier]Les PIC se conforment l'architecture Harvard : ils possd...</p>