Vous êtes sur la page 1sur 9

LES MICROCONTROLEURS...

___ Va-t-on faire de l'lectronique ou de l'informatique ??? ___ Rep : les 2, mon gnral !!!

Avant-propos :
Dans les exemples, j'utiliserai les microcontrleurs de la famille ST62xx ( SGS THOMSON ) et ceux de la famille des PIC16Cxx ( MICROCHIP ). Je sais, il y en a beaucoup d'autres, mais je prfre parler de ceux que j'ai effectivement dj pratiqus. Avant de me lancer fond dans le sujet ( les microcontrleurs ), je ferai tout d'abord quelques rappels sur les ordinateurs, les microprocesseurs, le codage des informations, l'algbre de Boole, les circuits logiques, etc.. Pour que tout soit bien clair ensuite. Certains pourront "sauter" allgrement tous ces rappels !

PLAN :
Gnralits : o Structure d'un ordinateur. o Unit centrale. o Mmoires. o Priphriques. o Les "Bus". o Les Langages. o Quelques rappels. Naissance du MICROPROCESSEUR. Les MICROCONTROLEURS. Microcontrleurs de la famille ST62xx. ( THOMSON ) Microcontrleurs de la famille PIC16.... ( MICROCHIP ) SCENIX Les DSP. Liens.

Gnralits:

Qui a invent l'ordinateur ? Les mathmaticiens ? Les ingnieurs ? Je ne me risquerai pas donner une rponse. Je dirai simplement que de 1935 1950 deux mathmaticiens ont jou un rle important dans l'invention de l'ordinateur. Il s'agit de l'anglais Alan TURING et de l'amricain John von NEUMANN. Ce dernier a donn son nom l'architecture des ordinateurs modernes. Elle fut dfinie dans un texte qu'il crivit en 1945. Je vais m'appuyer sur l'architecture de Von Neumann, par la suite, pour dcrire de facon simple ( du moins je l'espre ) le fonctionnement d'un ordinateur, d'un systme microprocesseur, ou d'un microcontrleur. Bien que cette architecture ne soit pas la seule mise en oeuvre de nos jours, elle permet d'avoir une vision simple des choses. N.B. Autre architecture : architecture de Harvard . Les instructions du programme, les donnes, se trouvent dans des mmoires spares. ( ordinateur MARK 1 - 1944 ). DEFINION : INFORMATIQUE = traitement automatique de l'information. ( information : pris au sens large = nombres, caractres, sons, images, grandeurs analogiques,...)

Structure d'un ordinateur.

Un ordinateur est donc constitu : - d' Une Unit Centrale ( UC ou CPU en anglais) C'est l'unit centrale de traitement des informations. Son rle est d'aller chercher, automatiquement les instructions du programme en mmoire et de les excuter. - d' Une Mmoire Centrale, qui sert au stockage des donnes et des programmes. - de Priphriques : ou units d'Entres/Sorties qui servent communiquer avec l'extrieur. ( ex : clavier, cran, souris, ...) Le systme ainsi constitu doit respecter les 4 rgles suivantes : -1) Les instructions et les donnes sont dans une mmoire unique, banalise, accessible en lecture/criture. -2) Les contenus de la mmoire sont accessibles par leurs adresses. -3) La commande de l'ensemble, l'excution des oprations se fait de manire squentielle (sauf indication expresse). L'excution d'une opration doit tre termine avant le lancement de la

suivante. -4) L'unit de traitement contient un jeu complet des oprations de l'algbre de Boole. ( au minimum ). REMARQUES : L'Unit Centrale est le coeur du systme. C'est un systme lectronique, mais, seule, l'Unit Centrale ne peut rien faire, il faut lui donner un programme excuter. ( Ce n'est pas un poste radio qui fonctionne des que l'on tourne le bouton !) Il faut donc de la mmoire pour contenir le programme excuter et les donnes sur lesquelles on dsire travailler. L'ensemble Unit Centrale et Mmoire peut dj fonctionner, mais cela ne servirait rien : il faut que l'on puisse donner des ordres au programme et rcuprer des rsultats. Il faut que le systme communique avec l'extrieur, d'o la prsence indispensable des priphriques.

Unit Centrale.
Elle peut tre dcompose en 2 sous ensembles : .1. L'Unit de Contrle ( ou unit de commande, ou automate) : Son rle est d'aller chercher une instruction en mmoire centrale, d'analyser cette instruction (dcodage de l'instruction ), d'excuter cette instruction, de localiser l'instruction suivante ( opration souvent implicite : adresse immdiatement suprieure celle de l'instruction en cours d'excution, sauf pour les instructions de branchement ). L'Unit de Contrle contient donc : ------ un dcodeur d'instruction. ------ un squenceur et des circuits de commandes. .2. Un ensemble de circuits lectroniques, commands par l'unit de contrle et permettant : ** d'changer des informations avec la mmoire centrale et avec le monde extrieur ( avec les priphriques ). ** d'effectuer des oprations sur les donnes ( Unit Arithmtique et logique : U.A.L. ou A.L.U. en anglais ). ** de mmoriser l'adresse de la prochaine instruction dans un registre particulier PC ( Compteur de programme (Program Counter)). ** de mmoriser le rsultat d'oprations dans des mmoires spciales : les Registres de travail. EXEMPLE : L'unit centrale lit l'instruction LD A,100 en mmoire centrale. Elle dcode l'instruction : il faut charger le registre A avec la valeur contenue dans la case mmoire n 100. L'unit centrale lance l'excution : demande de lecture de la mmoire l'adresse 100. Elle rcupre la valeur lue et enfin range cette valeur dans A. Elle met jour le compteur de programme PC, et l'on continue : lecture de l'instruction suivante ... Une horloge ( un circuit oscillateur dlivrant des impulsions une certaine frquence) sera ncessaire pour excuter les oprations squentiellement. Plus la frquence sera grande, plus l'unit centrale travaillera vite ! ( N.B.: Frquence = 8 MHz se lit 8 Mega Hertz et veut dire 8 millions d'impulsions par seconde.)

Mmoires.
Les programmes, les donnes, vont tre stocks en binaire, (suite de 0 et de 1) on y reviendra un peu plus loin ! Les diffrents types de mmoires : -1) Les mmoires mortes ( lecture seule ) : Ces mmoires ont la caractristique importante de conserver l'information mme lorsqu'elles ne sont pas alimentes, et ceci pendant des annes et mme indfiniment pour certaines. ------R.O.M. : de Read Only Memory. On en peut que les lire. Ces mmoires sont crites et mises en place par le constructeur ( BIOS des PCs, par ex.) ------P.R.O.M. : Programmable Read Only Memory. On les appelle aussi mmoires fusibles, ou encore OTP ( One Time Programmable). On achte ces mmoires vierges ( vides de tout programme ) et on peut les programmer l'aide d'un programmateur ( une simple carte lectronique) reli un PC via un port srie ( COM1, COM2,...) ou via le port parallle. On les place ensuite sur le systme auquel elle sont destines. Si l'on a fait une erreur dans le programme, ou si l'on dsire le modifier, la mmoire est bonne pour la poubelle, on ne peut pas la programmer une deuxime fois ! Il faut en prendre une nouvelle. La programmation de ce type de composant consiste a faire "claquer" des fusibles ( qui sont en fait des jonctions semi-conductrices). On comprend que lorsque le fusible est dtruit il est impossible de faire machine arrire ! On les utilise donc lorsque l'on a un programme parfaitement au point, dfinitif. Elles ont l'avantage d'tre peu couteuses. ------E.P.R.O.M. : Erasable Programmable Read Only Memory. Comme les PROM, on peut crire dans ces mmoires ( avec un dispositif similaire ), mais, si le programme n'est pas correct, il est possible d'effacer le programme, puis de l'crire nouveau ( ceci un tres grand nombre de fois) C'est bien sur tres intressant, et ce sont ces mmoires que l'on va utiliser pour faire du dveloppement. Ces mmoires ont une petite fentre transparente par laquelle on voit la puce. Cette fentre sert effacer la mmoire. On claire le composant avec des UV, dans une boite ( effaceur UV ), pendant une quinzaine de minutes environ. ( Attention aux yeux !!!). Il faut noter que l'effacement ( environ 15 min) et l'criture ( quelques minutes) sont des oprations relativement longues. (Principe utilis : utilisation de transistors FAMOS : Floating gate Avalanche injection Metal Oxide Silicium.) ------E.E.P.R.O.M. : Electrically Erasable PROM, ou aussi mmoires FLASH ces mmoires sont effaables par impulsion lectriques. L'effacement est plus rapide que lors d'une exposition aux UV, et il est possible d'effacer et de r-crire la mmoire in situ. -2) Les mmoires vives ( lecture et criture ) :

On les appelle, de faon impropre, R.A.M. ( Random Access Memory : mmoire accs alatoire ). Les PROMs, EPROMs, ... sont, elles aussi accs alatoires ! Ces mmoires perdent les informations contenues ds que l'on coupe leur alimentation. ( sauf s'il s'agit de mmoires secourues (pile, accu) ). On distingue : les Mmoires Statiques (S.R.A.M.) , les Mmoires Dynamiques (D.R.A.M.) . Les mmoires statiques sont ralises l'aide de circuits bistables ( ou bascules RS ). Les mmoires dynamiques conservent l'information, 0 ou 1, dans une petite capacit, qui se dcharge au cours du temps. ( courants de fuite ) Ces mmoires ncessitent donc un dispositif de rafraichissement pour maintenir l'information. Ce sont les plus utilises car elles permettent une grande densit d'intgration.

* CARACTERISTIQUES IMPORTANTES des MEMOIRES :


- Leur CAPACITE : c'est la quantit d'information que le composant peut contenir. ATTENTION, cette capacit est souvent donne en bits. ( Mmoire 8k = mmoire 8k bits = 1 k octets ). - ORGANISATION, ADRESSAGE : comment rcupre-t-on l'information ? En parallle ( tous les bits d'un coup), en srie ( bit a bit ) ? L'adresse est donne en une fois, en 2 fois ( adressage multiplex ) ? - TEMPS D' ACCES : c'est le temps qui s'coule entre la demande d'une valeur en mmoire et l' instant o cette valeur est disponible.

Les priphriques d'entres/sorties.


Les priphriques vont permettre la communication avec le systme Unit Centrale + Mmoires. On distingue 3 types de priphriques : les priphriques d'Entres, les priphriques de Sorties, et ceux qui font les 2 (Entres/Sorties). Les priphriques d'entres sont ceux qui apportent des informations au systme ; les priphriques de sorties envoient des informations l'extrieur du systme. --> Priphriques d'entres : le clavier ( indispensable ), la souris, un light pen, une table digitaliser, un scanner, un lecteur de cartes, un lecteur de codes barre,... N.B. Pour un petit systme microcontrleur, un interrupteur, un inverseur, un bouton poussoir, un rotacteur, sont des priphriques d'entres ! --> Priphriques de sorties : les classiques : un cran ( ou moniteur ), une imprimante, une table traante, ... N.B. Pour un petit systme microcontrleur, un voyant, une LED, des afficheurs 7 segments, un HP ( haut Parleur ), sont des priphriques de sorties ! --> Priphriques d'entres / sorties ou mmoires de masse : car ils vont servir stocker des masses d'informations. On mettra dans cette catgorie les lecteurs

de disquette, les disques durs, les lecteurs enregistreurs de bande magntique, ... N.B. Les priphriques ne sont pas relis directement l'ensemble Unit Centrale / Mmoires, il faut passer par une INTERFACE . ( carte interface, circuit interface, coupleur de priphrique ). Il y a quelques annes, une interface tait une carte lectronique qui pouvait tre de taille importante, de nos jours, une interface se rduit souvent un seul circuit intgr, programmable. L' interface se charge de l'adaptation des signaux lectroniques, de grer le dialogue entre le systme et le priphrique ( protocole d'changes). On peut donc dtailler un peu le diagramme de Von Neumann, de la faon suivante :

Les "Bus".
L'Unit Centrale doit pouvoir communiquer avec les mmoires et les priphriques. Par exemple, pour crire une donne en mmoire, l'U.C. doit d'abord spcifier l'adresse de la mmoire, puis envoyer la donne, et, en dernier lieu, envoyer un signal d'criture qui validera la mmorisation de la donne. Tous ces signaux seront vhiculs par les "Bus", ensembles de "conducteurs", sur lesquels viennent se brancher les mmoires, les interfaces des priphriques. On distingue 3 types de "bus" : ... Le bus d'adresses. ... Le bus de donnes. ... Le bus de contrle ( pour les signaux de service ).

Les Langages en Informatique.


Il y a une trs grande quantit de langages. On distingue :

- Les langages de bas niveau : - - > Langage Machine, Assembleur, Macro Assembleur. -Les langages volus : - - >BASIC, FORTRAN, COBOL, ALGOL, PASCAL, C, ... Un langage est dfini par : .. Un lexique : ensemble des mots valides ( mots clefs, identificateurs, ...) .. Une syntaxe : Rgles dcriture des instructions.Ensemble des rgles dcriture des phrases appartenant au langage (grammaire du langage). .. Une smantique : signification associe chaque construction syntaxique valide. Un langage permet de dfinir des objets manipulables ( entiers, caractres, chaines, rels, adresses, ...) et dexprimer des oprations sur ces objets ( par des ordres, des instructions qui vont constituer le PROGRAMME.) - Le Langage Machine : ou binaire, ou Hexa, ou BNPF ... C'est le seul langage compris par l'lectronique ( Unit Centrale), mais il est trs fastidieux de travailler directement en langage machine, en binaire ou en hexadecimal.( On s'en doute ! ). L'assembleur, les langages volus vont permettre une criture plus facile, plus cool, et eux vont se charger de la traduction du programme en langage machine, juste avant l'excution du programme. Le langage Machine est diffrent d'un circuit ( d'une UC) l'autre, sauf dans des familles de circuits issus d'un mme fabricant. - Le Langage Assembleur : C'est une transcription symbolique du langage machine ( Mnmonique) - La smantique est identique celle du langage machine et l'Assembleur sera aussi diffrent d'un circuit l'autre. Exemple : LDI A,10 en assembleur ST6 veut dire : charger le registre A avec la valeur 10 en dcimal. LDI de LOAD Immediate ( charger immdiatement, en anglais ). Cette instruction sera traduite en langage machine par: 00010111 00001010 en binaire,ou 17 0A en hexa. Un Macro-Assembleur autorise les macro-instructions (suite d'instructions que l'on peut insrer en plusieurs endroits d'un programme). - Les Langages volus : permettent une criture rapide des programmes, ils sont, en gnral, plus "lisibles" que les programmes en assembleur. Ils permettent de plus l'introduction dobjets nouveaux, d'oprations nouvelles.Ils sont adapts certains domaines. ( Ex: on utilisera le COBOL pour un programme de gestion.) - Diffrence : Interprteur / Compilateur. - Programme ralis avec un interprteur : au moment de l'excution chaque instruction est "interprte" ( traduite en langage machine) et excute. Ce processus est recommenc chaque excution. - Un compilateur, lui, interprte toutes les instructions du programme que l'on a crit ( le programme source), et construit un programme en langage machine. Ce programme sera ensuite excut, autant de fois que l'on voudra, sans avoir repasser par la phase d'interprtation.

Les corrections, les modifications sont plus faciles sur un programme interprt, mais un programme compil sera plus rapide l'excution.

Naissance du MICROPROCESSEUR.
Le processeur, ou UC (Unit Centrale), ou CPU (Central Process Unit) contient essentiellement ( on l'a vu ) : - l'U.A.L. (Unit Arithmtique et Logique). - Un dcodeur d'instructions. - Un squenceur. - Des registres ( gnraux et particuliers). - Des "Bus" ( donnes, adresses, contrle). - Une "horloge" ( plus souvent externe).

En 1971, INTEL loge toutes ses composantes dans une seule PUCE, dans un seul circuit, c'est le 1er MICROPROCESSEUR !
Il s'agit de l'Intel 4004 ! Il n'a encore rien d'un foudre de guerre : C'est un microprocesseur 4 bits, il n'utilise que 2300 transistors et la frquence de son horloge est de 108 kHz. ( On est bien loin de la densit d'intgration actuelle, et des centaines de MHz du moindre PC ! ). ( Peu de temps avant, un 1er microprocesseur tait brevet par TEXAS Instruments, le TMS 1000.) Pour ma part, j'ai dcouvert les microprocesseurs avec le 8008, dans les annes 70. C'tait passionnant, mais un peu laborieux... Apres le 8008, Intel a sorti le 8080. Quelques ingnieurs de chez Intel ont quitt alors cette socit pour fonder ZILOG et sortir le Z80, copie amliore du 8080. J'ai beaucoup travaill avec le Z80... Intel a continu avec le 8085, le 8086 (1er 16 bits), le 8088,... 80286, 80386, 80486,... le Pentium II ( avec plus de 5 millions de transistors !). N.B. Le Pentium IV : 24 millions de transistors. Exemple d'architecture d'un microprosesseur. Exemple de carte Microprocesseur.

Les MICROCONTROLEURS.
Un systme minimal, pour fonctionner, a besoin : . d'une Unit Centrale. . de Mmoire morte, pour le programme ( PROM, EPROM, ...). . de Mmoire vive, pour les calculs, pour stocker les donnes. . de circuits Interfaces, pour connecter les priphriques qui vont permettre la communication avec l' extrieur.

D' o l'apparition des Microcontrleurs ( ou Monochip ) : Dans un seul circuit, on va trouver : . Une Horloge ( oscillateur ). . Un Processeur ( Unit Centrale ). . De la Mmoire Vive ( RAM ). . De la Mmoire Morte ( PROM, EPROM ou EEPROM ). . Des Interfaces, qui vont dpendre, en gnral, du type de microcontrleur choisi : . Compteurs /timer. . Convertisseur Analogique/Numrique ( C.A.N. ). . chien de Garde ( "Watch Dog"). . Gestion d' un "port" parallle. . Gestion d' une liaison srie RS232. . Gestion d' interruptions.. . Gestion de moteurs en PWM. . Gestion d' cran LCD. . Gestion de Bus I2C. . etc ...