Vraag:
Wat is het verschil tussen een microcontroller en een microprocessor?
endolith
2009-12-18 03:18:22 UTC
view on stackexchange narkive permalink

Wat is het verschil tussen een microcontroller en een microprocessor?

Zie ook dit [artikel] (http://www.atmel.com/Images/MCU_vs_MPU_Article.pdf) van Atmel.
meestal prijs :-)
@Hilmar, re "meestal prijs" - verkeerd.
Dertien antwoorden:
#1
+199
JohnC
2009-12-18 03:28:09 UTC
view on stackexchange narkive permalink

Een microprocessor heeft doorgaans geen RAM-, ROM- en IO-pinnen. Het gebruikt meestal zijn pinnen als een bus om te communiceren met randapparatuur zoals RAM, ROM, seriële poorten, digitale en analoge IO. Hierdoor is het uitbreidbaar op boardniveau.

Een microcontroller is 'all in one', de processor, ram, IO allemaal op één chip, dus je kunt (zeg maar) de hoeveelheid RAM beschikbaar of het aantal IO-poorten. De controlerende bus is intern en niet beschikbaar voor de kaartontwerper.

Dit betekent dat een microprocessor over het algemeen kan worden ingebouwd in grotere algemene toepassingen dan een microcontroller. De microcontroller wordt meestal gebruikt voor meer specifieke toepassingen.

Dit zijn allemaal zeer algemene uitspraken. Er zijn chips beschikbaar die de grenzen doen vervagen.

Veel microcontrollers stellen een geheugenbus beschikbaar voor externe code en data; die pinnen kunnen al dan niet voor andere doeleinden worden gebruikt als er geen extern geheugen wordt gebruikt. Naar mijn mening is het bepalende onderscheid of een apparaat doorgaans (*) in staat zou zijn om op zijn minst enigszins bruikbaar te werken zonder een externe geheugenbus. (*) De 8051 is zeker in staat, dus het is duidelijk "microcontroller". Een 8031 ​​is dezelfde chip als een 8051, maar de ROM-inhoud is niet gespecificeerd. Het ontbreken van een bruikbare ROM zou het een microprocessor maken, maar aangezien het dezelfde chip is als de 8051, zou het een microcontroller kunnen worden genoemd.
"De controlerende bus is intern en niet beschikbaar voor de bordontwerper." Dat is niet per se waar. Er bestaan ​​microcontrollers met een extern adres / databus om extra geheugen mogelijk te maken.
Kunnen we dus zeggen dat een microcontroller in wezen een computer is, terwijl een microprocessor slechts een implementatie van een CPU met één chip is?
@doubleOrt: Je zou het zo kunnen zeggen, maar de grenzen zijn vervaagd.Tegenwoordig zijn er nogal wat chips die vluchtig datageheugen (SRAM) bevatten, maar geen niet-vluchtig codegeheugen (Flash).Ze worden vaak ook wel MPU (microprocessor) genoemd.Dus het onderscheid lijkt tegenwoordig voornamelijk te worden geassocieerd met on-chip Flash.NXP brengt iets op de markt dat ze een "crossover" -processor noemen met RAM, maar geen Flash.Dit heeft te maken met de toenemende moeilijkheid om Flash te integreren in een chip met steeds kleinere transistors.De huidige limiet lijkt rond de 28 nm te liggen.
#2
+29
jluciani
2009-12-18 03:54:18 UTC
view on stackexchange narkive permalink

Zoals gezegd zijn microcontrollers in wezen systemen op een chip. Behalve sommige gespecialiseerde randapparatuur zit alles in één pakket. De interface met externe randapparatuur gebeurt bijna altijd via seriële verbindingen. Hierdoor blijft het pakket klein (minder pinnen) en het PCB-formaat klein (minder pinnen om tussen pakketten te verbinden).

Bij de laatste Boston Barcamp (MIT 2009) heb ik een "Intro to Microcontrollers" -gesprek gehouden. Een kopie van de hand-out staat op

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

#3
+25
Clinton Blackmore
2009-12-18 07:01:44 UTC
view on stackexchange narkive permalink

Microcontrollers:

  • zijn doorgaans 8-bits, maar kunnen 4-, 16- of 32-bits zijn
  • draaien op snelheden van minder dan 200 MHz
  • gebruiken zeer weinig stroom
  • kunnen voldoende stroom leveren om een ​​LED te laten werken
  • zijn handig om te communiceren met sensoren en motoren
  • zijn gemakkelijk te vervangen, omdat ze niet duur zijn ($ 0,10 tot $ 10)
  • zijn echt beperkt voor RAM en permanente opslag (flash-ruimte)
  • zijn erg leuk voor elektronicahobbyisten

Microprocessors:

  • zijn vaak ten minste 16-bits en meestal 32-bits of 64-bits, hoewel 8-bits nog steeds een groot marktaandeel
  • velen zullen in staat zijn om drijvende-kommaberekeningen in hardware uit te voeren
  • draaien met snelheden gemeten in honderden MHz
  • zijn ontworpen als het brein van een systeem (en een heel systeem nodig om ze te ondersteunen)
  • hebben speciale hardware nodig om te communiceren met sensoren, motoren, LED's, enz.
  • zijn duur (denk aan $ 50 - $ 250 voor 32 of 64-bit)
  • zijn ontworpen voor extern RAM en permanente opslag (harde schijven)
  • zijn niet zo gemakkelijk te bewerken door een hobbyist

Ik vind het interessant dat de LEGO Mindstorms NXT-set een microprocessor heeft [32 -bit AT91SAM7S256 (ARM7TDMI) hoofdmicroprocessor @ 48 MHz (256 KB flashgeheugen, 64 KB RAM)] om mee te denken, en een microcontroller [8-bit ATmega48 microcontroller @ 4 MHz (4 KB flashgeheugen, 512 bytes RAM)] voor koppeling met de sensoren en motoren. Zie technische specificaties op Wikipedia.

8-bit is de dominante microprocessor, maar het is verre van de meest voorkomende, ik dacht dat ik eerder dit jaar las dat ze niet meer dan 50% van het marktaandeel uitmaken.
Eigenlijk zou ik willen zeggen dat ik het niet eens ben met een groot deel van de lijst met microcontrollers. De meeste goedkope die ze in systemen stoppen, kosten geen dollar, velen, afhankelijk van het merk, kunnen niet de stroom leveren om een ​​LED van stroom te voorzien. Er is ook een hele grote groep die 20 MHz breekt, maar over het algemeen wel aan die specificatie voldoet. ik denk dat ze ook geweldig zijn voor hobyist.
Ik heb enkele herzieningen opgenomen en van mijn antwoord een community-wiki gemaakt - help me om het goed te maken!
AT91SAM7S256 is absoluut een microcontroller noch een microprocessor.
Ik begon dit te bewerken door te posten, maar ik denk niet dat het echt inwisselbaar is. Het geaccepteerde antwoord op deze vraag heeft de essentie van het verschil, dat in feite 'geïntegreerd geheugen' of 'geen geïntegreerd geheugen' is. Ik ben bang dat dit kavel grotendeels een lijst van generalisaties is, waarvan er een aantal gewoonweg fout zijn.
Waarschijnlijk het beste om het gewoon te zappen.
#4
+14
JustJeff
2010-07-10 19:13:57 UTC
view on stackexchange narkive permalink

Dit onderscheid is tegenwoordig veel moeilijker te maken, aangezien er een hele reeks apparaten tussen de extremen is ontstaan, maar als er één identifier is die lijkt te werken, is het om naar de pin-out te kijken, en kijk wat de ontwerpers met de pinnen deden . Zijn het meestal individuele I / O's? Of domineren bussen?

Naar mijn mening is een microcontroller van oudsher iets dat werkt als een 1-chip-oplossing; plaats er een op een printplaat met een paar onvermijdelijke discreties en wat connectoren, schrijf een kleine hoeveelheid software en je hebt een systeem. De microcontroller bevat al het geheugen, vluchtig en niet, dat het systeem nodig heeft. De prijs die voor dit gemak wordt betaald, is dat er niet veel van beide beschikbaar zou zijn. De meeste pinnen zijn bestemd voor I / O-functies.

Terwijl, aan het andere uiterste, de microprocessor het soort beest is dat zoveel mogelijk ontlaadt om chips te ondersteunen, om silicium te wijden aan het maximaliseren van de doorvoer van de CPU-kern. De meeste pinnen op dit soort apparaten zijn adres- en datalijnen, nodig om verbinding te maken met het geheugen en de I / O-apparaten die de kern mist.

Het is nog steeds mogelijk om sommige dingen microprocessors te noemen, en andere dingen microcontrollers, wanneer de ontwerpers duidelijk vasthielden aan de ene of de andere filosofie. Een Intel Core i7 is duidelijk een processor, PIC's en AVR's zijn duidelijk controllers. Op dit moment kunt u echter, met de hoeveelheid logica die in een enkele chip kan worden gestopt, gemakkelijk een volledig microprocessor systeem uit 1990 in een enkele chip integreren. Hoe noem je een 400 MHz PPC604 met een interruptcontroller, een SDRAM-controller, ethernetondersteuning en een hele reeks andere randapparatuur, allemaal op één chip?

> Hoe noem je een 400 MHz PPC604 met een interruptcontroller, een SDRAM-controller, ethernetondersteuning en een hele reeks andere randapparatuur, allemaal op één chip? => Ik zou het een "dikke microprocessor" willen noemen. Geen ROM en RAM, dus zeker geen microcontroller.
@Wouter van Ooijen - Ik denk dat ik het had moeten noemen, ik zou dat een "systeem op een chip" noemen.
#5
+6
supercat
2011-11-29 22:22:55 UTC
view on stackexchange narkive permalink

Ik zou willen suggereren dat een microcontroller een apparaat is dat voldoende intern geheugen en schakelingen bevat om, althans in sommige varianten, een nuttige functie uit te voeren zonder extern geheugen. Volgens een dergelijke definitie zou de 8051 voldoende schakelingen hebben om op zichzelf bruikbaar te zijn en de 8031 ​​niet; de 8031 ​​is echter gewoon een 8051 waarin de inhoud van de interne ROM niet gespecificeerd is (hoewel het heel goed mogelijk is dat sommige "ROMless" 8031-chips en varianten de ROM-ruimte van de dobbelsteen laten, zou ik verwachten dat er enkele andere zijn die, voor consistentie van matrijslay-out met versies die ROM bevatten, inclusief een nutteloze lege ROM-array).

#6
+6
Abhimanyu Efy
2016-09-05 19:24:03 UTC
view on stackexchange narkive permalink

microcontrollers versus microprocessor

enter image description here

Het grootste deel van deze grafiek is volslagen onzin.
#7
+5
Jason S
2009-12-18 04:14:59 UTC
view on stackexchange narkive permalink

Vooral marketing.

Er zijn nog andere rare termen; Analog Devices heeft (of had) iets dat ze 'microconverters' noemden, die waren als ADC / DAC's met een ingebouwde microprocessor. TI noemt nu een aantal van hun DSP's (de C2000-serie) digitale signaalcontrollers.

Anders wat JohnC zei.

Waar kan ik meer vinden over deze "microconverters"? Het dichtstbijzijnde dat ik heb gevonden, is de TAS3202.
misschien noemen ze ze dat niet meer. http://www.analog.com/en/analog-microcontrollers/analog-microcontrollers/products/index.html Ik ben nog nooit zo onder de indruk geweest van de microprocessors van ADI, hun analoge spullen zijn goed en hun DSP's zouden goed moeten zijn maar ik heb geen ervaring met hen.
Maximale bemonsteringsfrequentie 8 kHz, dus niet bruikbaar voor audio. : /
Ik ben het er niet mee eens dat het vooral marketing is. Ik ben het eens met het antwoord van JohnC.
#8
+4
Swanand
2012-03-20 14:24:16 UTC
view on stackexchange narkive permalink

Om al het bovenstaande uitstekend geschreven antwoorden toe te voegen, Analogy: Microprocessor is a Brain. terwijl microcontroller het hele lichaam is.

Brain is in staat om alle instructies uit te voeren, maar we moeten ogen, handen (dwz randapparatuur) extern bevestigen.

Terwijl het lichaam hersenen en andere randapparatuur heeft, dwz Microcontroller :)

Sorry dat ik hier 8 jaar later tegen stoot, maar ik vind dat deze analogie een beetje tekort schiet.Ook een microcontroller wordt vaak alleen als Brain gebruikt, bijvoorbeeld wanneer er externe sensoren / actuatoren op moeten worden aangesloten.Vergelijkbaar met een echte processor.De manier waarop de sensoren zijn aangesloten, kan verschillen (zeg PCIe versus I2C), maar zelfs die lijn wordt vervaagd door moderne SoC's, nog steeds vaak microprocessors genoemd.Een microcontroller is IMO vrij zelden het hele lichaam.De belangrijkste onderscheidende factor is nog steeds de complexiteit van de processorkern / behoefte aan externe RAM.Toch hou ik eerder van de analogie - de software wordt de ziel :)
#9
+3
Igor Skochinsky
2011-11-29 22:25:45 UTC
view on stackexchange narkive permalink

De regel is wat wazig, maar over het algemeen gaat het als volgt:

  • microprocessors bevatten de processorkern (fetch / decode-eenheid, ALU, registers enz.) en misschien nog een paar meer basisblokken, maar meestal niet veel meer.

  • microcontrollers voegen RAM (SRAM) toe, meestal een beetje ROM (kan masker-rom of Flash / EEPROM zijn) voor codeopslag (maar kan ook ROMloos zijn), en een set randapparatuur (SPI / I2C, UART, GPIO's, misschien zelfs USB of Ethernet enzovoort). Soms wordt dit System-on-Chip (SoC) genoemd, of soms is SoC zelfs nog meer geïntegreerd. Sommige Japanse bedrijven houden ook van de term " microcomputer".

    Zoals ik al zei, wordt de lijn echter wazig. Recente Intel / AMD-processors voegen bijvoorbeeld een geheugencontroller toe aan de chip (voorheen zat deze in de chipset).

    Trouwens, ik zou 8086 eigenlijk een microprocessor noemen (de microcontrollers van Intel bevatten bijvoorbeeld 8051 of 80186) .

#10
+2
neelam singh
2012-02-16 12:46:59 UTC
view on stackexchange narkive permalink

Verschil tussen microcontroller en microprocessor

  1. Microprocessor = cpu; Microcontroller = cpu + randapparatuur + geheugen Randapparatuur = poorten + klok + timers + uarts + adc converters + lcd-stuurprogramma's + dac + andere dingen; Geheugen = eeprom + sram + eprom + flash

  2. In Microprocessor meer op-codes, een paar instructies voor het afhandelen van bits. Maar in Microcontroller: minder opcodes, meer instructies voor het afhandelen van bits.

  3. Een microprocessor is misschien niet ook geprogrammeerd om realtime taken uit te voeren, terwijl een microcontroller zoals in apparaten die dat nodig hebben om de temperatuur van het water te regelen of misschien om de temperatuur van een kamer te meten, is realtime monitoring vereist en daarom werkt de microcontroller met zijn ingebouwde set instructies op zichzelf.

Deze informatie is een beetje willekeurig en niet zo goed geformuleerd, voor een vraag met zoveel antwoorden. Neem een ​​voorbeeld: wie zegt dat een microcontroller ADC-, DAC- en LCD-stuurprogramma's moet hebben? Velen hebben ze, maar het is geen regel. Hetzelfde geldt voor bitafhandeling en real-time bediening.
@neelamSingh, Welkom op de site, uw bericht is niet goed opgemaakt en lijkt halverwege te worden afgebroken, het kan wat werk gebruiken!
Uw derde punt is niet geldig. Realtime mogelijkheden worden bepaald door het besturingssysteem, niet door het type processor. Er is geen reden waarom een ​​RTOS niet op een microprocessor zou draaien. En microcontrollers hebben ook niet per se meer instructies voor het hanteren van bits.
#11
+1
Bibek
2012-03-20 10:34:50 UTC
view on stackexchange narkive permalink

Microprocessor is een eenvoudige centrale verwerkingseenheid (CPU) op een enkele chip (onthoud het woord ‘Single Chip’). Het omvat rekenkundige logische eenheid (ALU), besturingseenheid (CU), registers, instructiedecoders, busbesturingscircuit etc. maar alles zou op een enkele chip moeten staan.

Microcontroller: een microcontroller is de associatie van een microprocessor en de perifere I / O-apparaten, ondersteunende schakelingen en geheugen (zowel gegevens als programma). Het is niet nodig om op een enkele chip te zitten (onthoud dit punt, niet op een enkele chip).

  1. Microprocessor is een onderdeel van de microcomputer.
  2. Microcontroller is een volledige computer vergelijkbaar met elke andere computer.
#12
+1
Prakash Darji
2016-03-23 10:55:14 UTC
view on stackexchange narkive permalink

Alle antwoorden zijn correct, aangezien dit verschil meer blokken heeft in mC en mP, zie onderstaande tabel,

enter image description here

#13
-1
GigaJoules
2018-02-26 17:12:26 UTC
view on stackexchange narkive permalink

Lang antwoord kort:
MicroProcessor - Is het 'denken' in feite de chip zelf die wiskunde afhandelt.
Microcontroller - Een systeem met een microprocessor inbegrepen, die gemakkelijk kan communiceren met elektronische componenten voor het ontwikkelen van een ingebed systeem.(Denk aan arduino, PI, PSOC4 etc.

Dit is een van de slechtste antwoorden op deze vraag.Een microprocessor noemen "een chip die wiskunde doet" is als een auto "een apparaat met stoelen" noemen.Beide zijn "gemakkelijk in staat tot interfacing", anders zouden ze geen praktische waarde hebben.


Deze Q&A is automatisch vertaald vanuit de Engelse taal.De originele inhoud is beschikbaar op stackexchange, waarvoor we bedanken voor de cc by-sa 2.0-licentie waaronder het wordt gedistribueerd.
Loading...