Réponses:
Un microprocesseur n’a généralement pas de broches RAM, ROM et IO. Il utilise généralement ses broches comme bus pour l’interface avec des périphériques tels que la RAM, la ROM, les ports série, les E / S numériques et analogiques. Pour cette raison, il est extensible au niveau du conseil.
Un microcontrôleur est «tout en un», le processeur, le ram, les entrées / sorties sur la même puce, de sorte que vous ne pouvez pas (par exemple) augmenter la quantité de RAM disponible ni le nombre de ports IO. Le bus de contrôle est interne et n'est pas disponible pour le concepteur de la carte.
Cela signifie qu’un microprocesseur est généralement capable d’être intégré à des applications plus générales qu’un microcontrôleur. Le microcontrôleur est généralement utilisé pour des applications plus dédiées.
Toutes ces déclarations sont très générales. Il y a des puces disponibles qui brouillent les limites.
Comme cela a été mentionné, les microcontrôleurs sont essentiellement des systèmes sur puce. À l'exception de certains périphériques spécialisés, tout est réuni. L'interface avec les périphériques externes est presque toujours réalisée à l'aide de connexions série. Cela permet de garder les tailles de boîtier réduites (moins de broches) et la taille de la carte de circuit imprimé (moins de broches à connecter entre les packages).
Lors du dernier Boston Barcamp (MIT 2009), j’ai fait un exposé intitulé "Introduction aux microcontrôleurs". Une copie du document est à
Microcontrôleurs:
Microprocesseurs:
Je trouve intéressant que le jeu LEGO Mindstorms NXT ait un microprocesseur [microprocesseur principal AT91SAM7S256 32 bits (ARM7TDMI) à 48 MHz (mémoire flash de 256 Ko, RAM de 64 Ko)] pour la réflexion, et un microcontrôleur [ATmega de 8 bits microcontrôleur à 4 MHz (4 Ko de mémoire flash, 512 octets de RAM)] pour l’interfaçage avec les capteurs et les moteurs. Voir les spécifications techniques sur Wikipedia .
Cette distinction est beaucoup plus difficile à établir de nos jours, car tout un éventail d'appareils est apparu entre les extrêmes, mais s'il y a un identifiant qui semble fonctionner, il faut regarder le brouillon et regarder ce que les concepteurs fait avec les épingles . Sont-ils principalement des E / S individuelles? Ou est-ce que les bus dominent?
À mon avis, un microcontrôleur a toujours été une solution monopuce; mettez-en un sur un circuit imprimé avec quelques composants discrets inévitables, et quelques connecteurs, écrivez une petite quantité de logiciel et vous avez un système. Le microcontrôleur contient toute la mémoire, volatile ou non, dont le système a besoin, le prix à payer pour cette commodité étant qu’il n’y aurait pas grand-chose d’eux non plus. La plupart des broches sont dédiées aux fonctions d'E / S.
Tandis que, à l'autre extrême, le microprocesseur est le genre de bête à décharger autant que possible pour supporter les puces, afin de dédier le silicium à la maximisation du débit du coeur du processeur. La plupart des broches de ce type de périphérique sont des lignes d’adresse et de données, nécessaires pour se connecter à la mémoire et aux périphériques d’E / S dont le cœur manque.
Il est toujours possible d'appeler certaines choses les microprocesseurs, et d'autres choses les microcontrôleurs, lorsque les concepteurs ont clairement adhéré à l'une ou l'autre philosophie. Un Intel Core i7 est clairement un processeur, les PIC et les AVR sont clairement des contrôleurs. À ce stade, cependant, avec la quantité de logique que l’on peut mettre dans une seule puce, vous pouvez facilement intégrer un système à microprocesseur complet de 1990 à une seule puce. Comment appelez-vous un PPC604 à 400 MHz avec un contrôleur d'interruption, un contrôleur SDRAM, une prise en charge Ethernet et une multitude d'autres périphériques, le tout sur une seule puce ?
Principalement marketing.
Il y a d'autres termes étranges; Analog Devices a (ou avait) quelque chose qu'ils ont appelé "microconvertisseurs", qui ressemblait à des ADC / DAC avec un microprocesseur intégré. TI appelle maintenant certains de leurs contrôleurs de signal numérique DSP (série C2000).
Sinon, ce que JohnC a dit.
Je suggérerais qu'un microcontrôleur est un périphérique qui contient suffisamment de mémoire interne et de circuits qui, du moins dans certaines variantes, pourraient remplir certaines fonctions utiles sans mémoire externe. Selon une telle définition, le 8051 aurait suffisamment de circuits pour être utile en soi, mais pas le 8031; le 8031, cependant, est simplement un 8051 dans lequel le contenu de la ROM interne n'est pas spécifié (bien qu'il soit tout à fait possible que certaines puces et variantes "sans ROM" 8031 quittent l'espace ROM de la matrice, je suppose qu'il en existe d'autres qui, pour la cohérence de la disposition des matrices avec les versions qui incluent une ROM, incluez un tableau de ROM vierge inutile).
Pour ajouter toutes les réponses écrites excellemment ci-dessus, Analogie: Un microprocesseur est un cerveau. tandis que le microcontrôleur est un corps entier.
Le cerveau est capable d'exécuter toutes les instructions, mais nous devons attacher des yeux, des mains (c.-à-d. Des périphériques) à l'extérieur.
Alors que le corps a du cerveau et d’autres périphériques, c’est-à-dire un microcontrôleur :)
La ligne est un peu floue, mais généralement, elle se présente comme suit:
Les microprocesseurs contiennent le cœur du processeur (unité d'extraction / décodage, ALU, registres, etc.) et peut-être quelques blocs de base supplémentaires, mais généralement pas beaucoup plus.
Les microcontrôleurs ajoutent de la RAM (SRAM), généralement une ROM (peut être un masque ROM ou Flash / EEPROM) pour le stockage du code (mais peuvent aussi être sans ROM), ainsi qu’un ensemble de périphériques de base (SPI / I2C, UART, GPIO, voire USB Ethernet et ainsi de suite). Parfois, cela s'appelle système sur puce (SoC), ou parfois, le système sur puce est quelque chose d'encore plus intégré. Certaines entreprises japonaises aiment aussi le terme " micro-ordinateur ".
Cependant, comme je l'ai mentionné, la ligne devient floue. Par exemple, les processeurs Intel / AMD récents ajoutent un contrôleur de mémoire sur la puce (auparavant, il était dans le chipset).
En passant, je dirais que 8086 est un microprocesseur (les microcontrôleurs d’Intel incluent, par exemple, 8051 ou 80186).
Microprocesseur = cpu; Microcontrôleur = cpu + périphériques + mémoire Périphériques = ports + horloge + minuteries + uarts + convertisseurs adc + pilotes lcd + dac + autres éléments; Mémoire = eeprom + sram + eprom + flash
Dans le microprocesseur, plusieurs codes d'opération, quelques instructions de traitement de bits. Mais dans Microcontroller: moins d’opodes, plus de manipulations de bits.
Un microprocesseur ne peut pas non plus être programmé pour gérer des tâches en temps réel, alors qu'un microcontrôleur, comme dans les dispositifs devant contrôler la température de l'eau ou éventuellement mesurer la température d'une pièce, nécessite une surveillance en temps réel. Par conséquent, le microcontrôleur fonctionne avec ses instructions intégrées. seul.
Le microprocesseur est une unité centrale simple (CPU) sur une seule puce (rappelez-vous le mot 'Single Chip'). Il comprend une unité arithmétique et logique (ALU), une unité de contrôle (CU), des registres, des décodeurs d’instructions, un circuit de contrôle de bus, etc., mais tout doit se trouver sur une seule puce.
Microcontrôleur: un microcontrôleur est l'association du microprocesseur et des périphériques d'E / S périphériques, des circuits de support et de la mémoire (données et programme). Il n'est pas nécessaire d'être sur une seule puce (rappelez-vous ce point, pas dans une seule puce).
Toutes les réponses sont correctes, comme cette différence plus de blocs ayant en mC et en mP, voir le tableau ci-dessous,
Réponse longue et courte:
MicroProcessor - Est-ce que la «pensée», est fondamentalement une puce qui gère les mathématiques.
Microcontrôleur - Un système avec un microprocesseur inclus, capable de s’interfacer facilement avec des composants électroniques pour développer des systèmes embarqués.