Quelle est la différence entre un microcontrôleur et un microprocesseur?

189

Quelle est la différence entre un microcontrôleur et un microprocesseur?

endolithe
la source
2
Voir également cet article d'Atmel.
Sudoer
principalement des prix :-)
Hilmar
1
@ Hilmar, re "surtout le prix" - faux.
cp.engr

Réponses:

191

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.

JohnC
la source
4
De nombreux microcontrôleurs rendent un bus de mémoire disponible pour le code et les données externes; ces broches peuvent ou ne peuvent pas être utilisées à d'autres fins si la mémoire externe n'est pas utilisée. À mon sens, la distinction qui revient est de savoir si un périphérique serait capable ( ) de fonctionner au moins assez utilement sans bus de mémoire externe. ( ) Le 8051 est certainement capable, il est donc clairement "microcontrôleur". Un 8031 ​​est la même puce qu'un 8051, mais le contenu de la ROM n'est pas spécifié. Le manque de ROM utile en ferait un microprocesseur, mais comme il s'agit de la même puce que le 8051, on pourrait l'appeler un microcontrôleur.
Supercat
2
"Le bus de contrôle est interne et n'est pas disponible pour le concepteur de carte." Ce n'est pas nécessairement vrai. Il existe des microcontrôleurs avec une adresse / un bus de données externe permettant une mémoire supplémentaire.
stévenvh
Alors, pourrions-nous dire qu'un microcontrôleur est essentiellement un ordinateur alors qu'un microprocesseur est simplement une implémentation d'un processeur sur une seule puce?
DoubleOrt
@doubleOrt: Vous pourriez le dire ainsi, mais les limites sont floues. De nos jours, il y a beaucoup de puces qui incluent une mémoire de données volatile (SRAM), mais pas de mémoire de code non volatile (Flash). Ils sont souvent aussi appelés MPU (microprocesseur). Donc, la distinction semble être principalement associée à Flash sur puce ces jours-ci. NXP commercialise quelque chose qu'ils appellent un processeur "crossover" avec RAM, mais pas de Flash. Cela est dû à la difficulté croissante d'intégrer Flash dans une puce avec des transistors de plus en plus petits. La limite actuelle semble être autour de 28 nm.
sh-
29

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 à

http://www.luciani.org/not-quite-ready/doc/intro-to-uC.pdf

jluciani
la source
25

Microcontrôleurs:

  • sont généralement de 8 bits, mais peuvent être de 4, 16 ou 32 bits
  • fonctionner à des vitesses inférieures à 200 MHz
  • utilise très peu d'énergie
  • peut fournir suffisamment de courant pour faire fonctionner une LED
  • sont utiles pour interfacer avec des capteurs et des moteurs
  • sont facilement remplacés, étant peu coûteux (0,10 $ à 10 $)
  • sont vraiment limités pour la RAM et le stockage persistant (espace flash)
  • sont vraiment sympas pour les amateurs d'électronique

Microprocesseurs:

  • sont souvent au moins 16 bits, et généralement 32 bits ou 64 bits, bien que 8 bits ait toujours une grosse part de marché
  • beaucoup pourront faire des calculs en virgule flottante dans le matériel
  • courir à des vitesses mesurées en centaines de MHz
  • sont conçus pour être les cerveaux d'un système (et ont besoin de tout un système pour les supporter)
  • besoin de matériel spécial pour l'interface avec les capteurs, les moteurs, les DEL, etc.
  • sont chers (pensez 50 $ - 250 $ pour 32 ou 64 bits)
  • sont conçus pour la RAM externe et le stockage persistant (disques durs)
  • ne sont pas aussi faciles à travailler avec un amateur

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 .

Clinton Blackmore
la source
2
Le microprocesseur dominant est le 8 bits, mais il est loin d'être le plus courant. Je pensais avoir lu plus tôt cette année qu'ils ne représentaient plus plus de 50% de la part de marché.
Kortuk
3
En fait, je voudrais dire que je ne suis pas d'accord avec une grande partie de la liste des microcontrôleurs. La plupart des systèmes bon marché qu’ils mettent dans les systèmes ne coûtent pas un dollar, beaucoup, en fonction de la marque, ne peuvent fournir le courant nécessaire à l’alimentation d’une LED. Il existe également un très grand groupe qui dépasse 20 MHz, mais en général, il répond à cette spécification. Je pense qu'ils sont également intéressants pour hobyist.
Kortuk
J'ai incorporé certaines révisions et transformé ma réponse en wiki de communauté - aidez-moi à bien faire les choses!
Clinton Blackmore
3
AT91SAM7S256 est définitivement un microcontrôleur ni un microprocesseur.
jpc
4
J'ai commencé à éditer ceci, en postant, mais je ne pense pas que c'est vraiment échangeable. La réponse acceptée à cette question a l'essence même de la différence, qui est fondamentalement «mémoire intégrée» ou «pas de mémoire intégrée». Je crains que ce lot ne soit en grande partie une liste de généralisations, dont certaines sont tout simplement fausses.
13

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 ?

JustJeff
la source
> Comment appelez-vous un PPC604 à 400 MHz avec un contrôleur d'interruption, un contrôleur SDRAM, la prise en charge d'Ethernet et une multitude d'autres périphériques sur une seule puce? => Je l'appellerais un "gros microprocesseur". Pas de ROM et de RAM, donc certainement pas un microcontrôleur.
Wouter van Ooijen
2
@Wouter van Ooijen - J'aurais dû le dire, j'appellerais ça un "système sur puce".
JustJeff
5

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.

Jason S
la source
Où puis-je en savoir plus sur ces "microconvertisseurs"? La chose la plus proche que j'ai trouvée est le TAS3202.
endolith
ils ont peut-être cessé de les appeler ainsi. analog.com/fr/analog-microcontrollers/analog-microcontrollers/..Je n'ai jamais été impressionné par les microprocesseurs d'ADI, leurs fonctions analogiques sont bonnes et leurs DSP sont supposés être bons, mais je n'ai pas d'expérience avec eux .
Jason S
Fréquence d'échantillonnage maximale de 8 kHz, donc inutile pour l'audio. : /
endolith
2
Je ne suis pas d'accord pour dire que c'est surtout du marketing. Je suis d'accord avec JohnC réponse.
Daniel Grillo
5

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).

supercat
la source
4

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 :)

Swanand
la source
3

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).

Igor Skochinsky
la source
2

Différence entre microcontrôleur et microprocesseur

  1. 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

  2. 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.

  3. 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.

Neelam Singh
la source
3
Ces informations sont un peu aléatoires et pas très bien formulées, pour une question avec autant de réponses. Prenons un exemple: qui dit qu'un microcontrôleur doit disposer de pilotes ADC, DAC et LCD? Beaucoup en ont, mais ce n'est pas une règle. Même chose pour le traitement des bits et le fonctionnement en temps réel.
Clabacchio
@neelamSingh, Bienvenue sur le site, votre message n'a pas été correctement mis en forme et semble avoir été coupé à mi-parcours. Il pourrait vous être utile de travailler!
Kortuk
2
Votre troisième point n'est pas valide. La capacité en temps réel est déterminée par le système d'exploitation, pas par le type de processeur. Il n'y a aucune raison pour qu'un RTOS ne s'exécute pas sur un microprocesseur. Et les microcontrôleurs n'ont pas nécessairement plus d'instructions de manipulation de bits.
Steven
1

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).

  1. Le microprocesseur est un composant du micro-ordinateur.
  2. Le microcontrôleur est un ordinateur complet similaire à tout autre ordinateur.
Bibek
la source
1

Toutes les réponses sont correctes, comme cette différence plus de blocs ayant en mC et en mP, voir le tableau ci-dessous,

entrez la description de l'image ici

Prakash Darji
la source
0

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.

GigaJoules
la source