MCU versus MPU: microcontroller en microprocessor vergeleken

Een microcontroller (MCU) combineert de processor, flashgeheugen, RAM en randapparatuur zoals timers, ADC's en communicatie-interfaces op één chip, zodat een klein systeem met één chip kan werken. Een microprocessor (MPU) is vooral een snelle processor die extern DRAM en opslag nodig heeft en meestal een volwaardig besturingssysteem zoals Linux draait. Een MCU past bij eenvoudige, zuinige realtimebesturing en een MPU bij complexe apparaten met veel software.

KenmerkMCUMPU
IntegratiedichtheidCPU, flash, RAM en randapparatuur (GPIO, timers, ADC, UART, SPI, I2C) op één chipVooral een CPU-core met cache en MMU. DRAM en opslag zijn externe chips
KlokfrequentieOngeveer 1 MHz tot enkele honderden MHzEnkele honderden MHz tot enkele GHz
GeheugenEnkele KB tot enkele MB flash en enkele KB tot enkele MB SRAM op de chipExtern DRAM (honderden MB tot enkele GB) en opslag zoals eMMC of SD
SoftwareCode zonder besturingssysteem of een klein realtime-besturingssysteem (zoals FreeRTOS of Zephyr)Een volwaardig besturingssysteem zoals Linux of Android
RealtimegedragVoorspelbaar. Interruptlatency in microsecondenBij Linux zonder realtime-uitbreidingen is garantie moeilijk
VermogensverbruikZeer laag. Microampères in slaapstand. Kan jaren op een knoopcel werkenHoog. Honderden milliwatts tot enkele watts
OpstarttijdDirect (milliseconden)Seconden. Bootloader en besturingssysteem moeten opstarten
Kosten en boardGoedkope chip, eenvoudig board en weinig externe onderdelenDuurdere chip en aparte chips voor DRAM en voeding. Het board is meerlaags en complex
Belangrijkste toepassingenHuishoudelijke apparaten, motorbesturing, sensoren, wearables, ECU's in auto'sSmartphones, tablets, set-topboxen, routers, industriële touchpanels, infotainment in auto's
VoorbeeldenSTM32, ESP32, RP2040, Arduino-boardsApplicatieprocessors zoals NXP i.MX en TI Sitara, de chips van de Raspberry Pi

De getalswaarden zijn typische ordegroottes en variëren per procesgeneratie en product.

Wanneer welke variant?

MCU
Wanneer de taak besturing en sensing is, een zeer laag vermogensverbruik en een directe start nodig zijn en het programma in het geheugen op de chip past.
MPU
Wanneer een rijke gebruikersinterface, netwerk, een bestandssysteem of grote software die van een besturingssysteem afhangt nodig is.
Beide
Veel producten combineren beide. De MPU draait de gebruikersinterface en de applicaties, terwijl de MCU tijdkritische besturing en voedingsbeheer op zich neemt.

Veelgestelde vragen

Wat is het verschil tussen een microcontroller (MCU) en een microprocessor (MPU)?

Een microcontroller integreert CPU, flash, RAM en randapparatuur op één chip en laat een klein systeem met één chip werken. Een microprocessor is vooral een CPU die extern DRAM en opslag nodig heeft en meestal een besturingssysteem zoals Linux draait.

Is een Raspberry Pi een microcontroller?

Nee. De Raspberry Pi gebruikt een chip uit de klasse van microprocessors met extern geheugen en draait Linux. De Raspberry Pi Pico is een board met een microcontroller.

Welke verbruikt minder vermogen?

De microcontroller. In slaapstand verbruikt hij microampères en hij kan jaren op een knoopcel werken. Een microprocessor verbruikt honderden milliwatts tot enkele watts.

Kan Linux op een microcontroller draaien?

Meestal niet, omdat Linux een MMU en veel meer geheugen nodig heeft dan een gewone microcontroller biedt. Microcontrollers draaien code zonder besturingssysteem of een klein realtime-besturingssysteem.

Test uw begrip

Wat moet als eerste worden ingesteld wanneer een GPIO-pin (general-purpose input/output) van een microcontroller wordt gebruikt?

  1. AOf de pin als ingang of als uitgang wordt gebruikt (richting)
  2. BDe kleur van de pin
  3. CDe naam van de programmeur die het programma heeft geschreven
Antwoord en toelichting tonen

Antwoord: A. Of de pin als ingang of als uitgang wordt gebruikt (richting)

Een GPIO-pin kan met software als ingang of als uitgang worden gebruikt. Is hij met het richtingsregister als uitgang ingesteld, dan wordt de in het uitgangsregister geschreven waarde de spanning op de pin; is hij ingang, dan kan de spanning van de pin uit het ingangsregister worden gelezen. Bij veel microcontrollers worden daarnaast ook de aanwezigheid van een pull-up, het uitgangstype (push-pull of open-drain) en het gebruik als pin van een andere randschakeling ingesteld.

Welke methode wordt bij microcontrollers veel gebruikt om de helderheid van een LED of het toerental van een motor te regelen?

  1. ADe voedingsdraad dikker of dunner maken
  2. BDe uitvoering van het programma tijdelijk stoppen
  3. CMet PWM snel aan en uit schakelen en het aandeel van de aan-tijd variëren
Antwoord en toelichting tonen

Antwoord: C. Met PWM snel aan en uit schakelen en het aandeel van de aan-tijd variëren

Wordt een LED of motor met PWM snel aan- en uitgeschakeld, dan ziet het oog een helderheid die overeenkomt met het aandeel van de aan-tijd, en draait de motor door zijn traagheid met een snelheid die overeenkomt met het gemiddelde vermogen. Omdat de transistor alleen in volledig aan of volledig uit wordt gebruikt, is het warmteverlies kleiner dan bij gebruik met een tussenspanning en kan efficiënt worden geregeld. De frequentie wordt zo gekozen dat flikkering van de LED en motorgeluid niet storen.

Welke eigenschap van seriële communicatie via UART is juist?

  1. ADe zender levert een kloklijn en de ontvanger leest de gegevens met die klok
  2. BEr wordt geen kloklijn gebruikt; zender en ontvanger stellen dezelfde communicatiesnelheid (baudrate) in en het startbit markeert het begin
  3. COp één lijn worden veel apparaten aangesloten en de ontvanger wordt via een adres gekozen
Antwoord en toelichting tonen

Antwoord: B. Er wordt geen kloklijn gebruikt; zender en ontvanger stellen dezelfde communicatiesnelheid (baudrate) in en het startbit markeert het begin

UART is asynchrone seriële communicatie via twee lijnen (plus aarde), één voor zenden en één voor ontvangen. Zonder verkeer staat de lijn op 1; een startbit van 0 geeft het begin van een teken aan, gevolgd door de databits en een stopbit van 1. Omdat geen klok wordt verzonden, moeten beide zijden op dezelfde snelheid, zoals 115200 bps, zijn ingesteld. Het wordt veel gebruikt voor foutopsporingsuitvoer en voor de aansluiting van GPS- en draadloze modules.

  1. Wat is het juiste verschil tussen polling en interrupts als methoden om de toestand van een randschakeling te kennen?
  2. Wat is het voordeel van het gebruik van DMA wanneer een microcontroller een grote hoeveelheid AD-omzettingsresultaten met vaste tussenpozen inleest?

Oefenvragen over Embedded systemen en firmware

Belangrijke termen uitgelegd

Microcontroller (MCU)
Kleine computer waarin CPU, geheugen en randfuncties zoals timers en ADC op één chip zijn samengebracht. Wordt ingebouwd in apparaten zoals huishoudelijke apparaten en auto's om de besturing te verzorgen. Ook MCU genoemd.
GPIO
Aansluiting voor general purpose input/output. Kan met software als ingang of uitgang worden ingesteld en wordt gebruikt voor onder meer het uitlezen van schakelaars en het laten branden van leds.
Interrupt
CPU-mechanisme waarbij de lopende verwerking tijdelijk wordt onderbroken om op verzoek van bijvoorbeeld externe apparatuur voorrang te geven aan de bijbehorende afhandeling. Daarna keert de CPU terug naar de oorspronkelijke verwerking.

Verwante vergelijkingen