Mikrokontroller (MCU)

En mikrokontroller är en kompakt integrerad krets som är utformad för att styra en specifik operation i ett inbäddat system. En typisk mikrokontroller innehåller en processor, ett minne och periferiutrustning för in- och utmatning (I/O) på ett enda chip.

Omnämns ibland som en inbäddad styrenhet eller mikrokontrollerenhet (MCU) och mikrokontroller finns bland annat i fordon, robotar, kontorsmaskiner, medicintekniska apparater, mobila radiotransceivrar, varuautomater och hushållsapparater. De är i huvudsak enkla minidatorer som är utformade för att styra små funktioner i en större komponent, utan ett komplext operativsystem.

Hur fungerar mikrokontroller?

En mikrokontroller är inbäddad i ett system för att styra en enskild funktion i en enhet. Den gör detta genom att tolka data som den tar emot från sina I/O-periferier med hjälp av sin centrala processor. Den tillfälliga information som mikrokontrollern tar emot lagras i dess dataminne, där processorn får tillgång till den och använder instruktioner som lagras i dess programminne för att dechiffrera och tillämpa de inkommande uppgifterna. Den använder sedan sina I/O-periferier för att kommunicera och genomföra lämpliga åtgärder.

Mikrokontroller används i ett stort antal system och enheter. Enheter använder ofta flera mikrokontroller som arbetar tillsammans inom enheten för att hantera sina respektive uppgifter.

En bil kan till exempel ha många mikrokontroller som styr olika individuella system inom den, som t.ex. antiblockeringssystemet, dragkraftsreglering, bränsleinsprutning eller fjädringskontroll. Alla mikrokontroller kommunicerar med varandra för att informera om rätt åtgärder. Vissa kan kommunicera med en mer komplex central dator i bilen, medan andra bara kommunicerar med andra mikrokontroller. De skickar och tar emot data med hjälp av sina I/O-periferier och bearbetar dessa data för att utföra sina avsedda uppgifter.

Vad är elementen i en mikrokontroller?

Kärnelementen i en mikrokontroller är:

  • Processorn (CPU) — En processor kan ses som hjärnan i enheten. Den bearbetar och svarar på olika instruktioner som styr mikrokontrollerns funktion. Detta innebär att utföra grundläggande aritmetiska, logiska och I/O-operationer. Den utför också dataöverföringsoperationer, som kommunicerar kommandon till andra komponenter i det större inbyggda systemet.
  • Minne — En mikrokontrollers minne används för att lagra de data som processorn tar emot och använder för att svara på instruktioner som den har programmerats att utföra. En mikrokontroller har två huvudsakliga minnestyper:
    1. Programminne, som lagrar långtidsinformation om de instruktioner som processorn utför. Programminnet är ett icke-flyktigt minne, vilket innebär att det håller information över tid utan att behöva en strömkälla.
    2. Dataminne, som behövs för tillfällig datalagring medan instruktionerna utförs. Dataminnet är flyktigt, vilket innebär att de data det innehåller är tillfälliga och upprätthålls endast om enheten är ansluten till en strömkälla.
  • I/O periferiutrustning — Ingångs- och utgångsenheterna är processorns gränssnitt mot omvärlden. Ingångsportarna tar emot information och skickar den till processorn i form av binära data. Processorn tar emot dessa data och skickar de nödvändiga instruktionerna till utdataenheter som utför uppgifter utanför mikrokontrollern.

Men även om processorn, minnet och I/O-periferin är de definierande elementen i mikroprocessorn finns det andra element som ofta ingår. Själva termen I/O-periferier hänvisar helt enkelt till stödkomponenter som har ett gränssnitt mot minnet och processorn. Det finns många stödkomponenter som kan klassificeras som kringutrustning. Att ha någon form av I/O-periferier är grundläggande för en mikroprocessor, eftersom de är den mekanism genom vilken processorn tillämpas.

Andra stödjande element i en mikrokontroller inkluderar:

  • Analog-till-digitalomvandlare (ADC) — En ADC är en krets som omvandlar analoga signaler till digitala signaler. Den gör det möjligt för processorn i mitten av mikrokontrollern att koppla ihop sig med externa analoga enheter, t.ex. sensorer.
  • Digital till analog omvandlare (DAC) — En DAC utför den omvända funktionen av en ADC och gör det möjligt för processorn i mitten av mikrokontrollern att kommunicera sina utgående signaler till externa analoga komponenter.
  • Systembuss — Systembussen är den kopplingstråd som förbinder alla komponenter i mikrokontrollern med varandra.
  • Seriell port — Den seriella porten är ett exempel på en I/O-port som gör det möjligt för mikrokontrollern att ansluta till externa komponenter. Den har en liknande funktion som en USB- eller en parallellport men skiljer sig åt i det sätt på vilket den utbyter bitar.

Mikrocontrollerfunktioner

En mikrocontrollers processor kommer att variera beroende på tillämpning. Alternativen sträcker sig från enkla 4-bitars, 8-bitars eller 16-bitars processorer till mer komplexa 32-bitars eller 64-bitars processorer. Mikrokontroller kan använda flyktiga minnestyper som RAM (Random Access Memory) och icke-flyktiga minnestyper — detta inkluderar flashminne, EPROM (EPROM, Easable Programmerable Read-Only Memory) och EEPROM (EEPROM, Electrically Erasable Programmerable Read-Only Memory).

Mikrokontroller är i allmänhet utformade för att kunna användas utan ytterligare datorkomponenter, eftersom de är utformade med tillräckligt med inbyggt minne och har stift för allmänna I/O-operationer, så att de kan ha ett direkt gränssnitt mot sensorer och andra komponenter.

Mikrokontrollerararkitekturen kan baseras på Harvard-arkitekturen eller von Neumann-arkitekturen, som båda erbjuder olika metoder för att utbyta data mellan processorn och minnet. Med en Harvard-arkitektur är databussen och instruktionen separerade, vilket möjliggör samtidiga överföringar. Med en von Neumann-arkitektur används en buss för både data och instruktioner.

Mikrokontrollers processorer kan vara baserade på komplexa instruktionsuppsättningar (CISC) eller reducerade instruktionsuppsättningar (RISC). CISC har i allmänhet cirka 80 instruktioner medan RISC har cirka 30, samt fler adresseringslägen, 12-24 jämfört med RISC:s 3-5. CISC kan vara lättare att genomföra och har en effektivare minnesanvändning, men det kan leda till försämrad prestanda på grund av det högre antalet klockcykler som krävs för att utföra instruktionerna. RISC, som lägger större vikt vid mjukvara, ger ofta bättre prestanda än CISC-processorer, som lägger större vikt vid hårdvara, på grund av dess förenklade instruktionsuppsättning och därmed ökad enkelhet i konstruktionen, men på grund av den vikt som läggs vid mjukvara kan mjukvaran vara mer komplex. Vilken CISC som används varierar beroende på tillämpning.

När de först blev tillgängliga använde mikrokontroller enbart assemblerspråk. Idag är programmeringsspråket C ett populärt alternativ. Andra vanliga mikroprocessorspråk är Python och JavaScript.

MCU:er har ingångs- och utgångspinnar för att implementera perifera funktioner. Sådana funktioner är bl.a. analog-till-digitalomvandlare, styrenheter för LCD-skärmar (LCD), realtidsklocka (RTC), universell synkron/asynkron mottagarsändare (USART), timers, universell asynkron mottagarsändare (UART) och universell seriell buss (USB). Sensorer som samlar in data om bland annat luftfuktighet och temperatur ansluts också ofta till mikrokontroller.

Typer av mikrokontroller

De vanligaste MCU:erna är bland annat Intel MCS-51, ofta kallad 8051-mikrokontroller, som utvecklades för första gången 1985, AVR-mikrokontrollern, som utvecklades av Atmel 1996, den programmerbara gränssnittsstyrningen PIC (Programmable Interface Controller) från Microchip Technology och olika licensierade ARM-mikrokontroller (Advanced RISC Machines).

Ett antal företag tillverkar och säljer mikrokontroller, däribland NXP Semiconductors, Renesas Electronics, Silicon Labs och Texas Instruments.

Mikrostyrningstillämpningar

Mikrostyrningar används i flera olika branscher och tillämpningar, bland annat i hemmet och företaget, fastighetsautomation, tillverkning, robotteknik, fordon, belysning, smart energi, industriell automation, kommunikation och IoT-installationer (Internet of Things).

En mycket specifik tillämpning av en mikrostyrning är dess användning som digital signalprocessor. Inkommande analoga signaler är ofta behäftade med en viss nivå av brus. Med brus menas i detta sammanhang tvetydiga värden som inte enkelt kan översättas till digitala standardvärden. En mikrokontroller kan använda sin ADC och DAC för att omvandla den inkommande bullriga analoga signalen till en jämnare utgående digital signal.

De enklaste mikrokontrollerna underlättar driften av elektromekaniska system som finns i vardagliga bruksföremål, t.ex. ugnar, kylskåp, brödrostar, mobilapparater, nyckelknippor, videospelsystem, TV-apparater och system för gräsklippning. De är också vanliga i kontorsmaskiner som kopieringsmaskiner, skannrar, faxapparater och skrivare samt i smarta mätare, bankomater och säkerhetssystem.

Mer sofistikerade mikrokontroller utför kritiska funktioner i flygplan, rymdfarkoster, havsfarkoster, fordon, medicinska och livsuppehållande system samt i robotar. I medicinska scenarier kan mikrokontroller reglera driften av ett konstgjort hjärta, en konstgjord njure eller andra organ. De kan också vara avgörande för hur proteser fungerar.

Mikrokontroller vs. mikroprocessorer

Skillnaden mellan mikrokontroller och mikroprocessorer har blivit mindre tydlig i takt med att chipens täthet och komplexitet har blivit relativt billigt att tillverka och mikrokontroller har därför integrerat mer funktionalitet av typen ”allmän dator”. På det hela taget kan mikrokontroller dock sägas fungera bra på egen hand, med en direkt anslutning till sensorer och manöverdon, medan mikroprocessorer är utformade för att maximera beräkningskraften på chippet, med interna bussanslutningar (snarare än direkta I/O) till stödjande hårdvara som RAM-minne och seriella portar. Enkelt uttryckt använder kaffebryggare mikrokontroller och stationära datorer mikroprocessorer.

Microchip Technology ATtiny817-mikrokontroller.

Mikrokontroller är billigare och använder mindre ström än mikroprocessorer. Mikroprocessorer har inte inbyggt RAM, ROM (read-only memory) eller andra kringutrustning på chipet, utan ansluter till dessa med sina stift. En mikroprocessor kan betraktas som hjärtat i ett datorsystem, medan en mikrokontroller kan betraktas som hjärtat i ett inbyggt system.

Välja rätt mikrokontroller

Det finns ett antal tekniska och affärsmässiga överväganden som man bör ha i åtanke när man väljer en mikrokontroller för ett projekt.

Bortsett från kostnaden är det viktigt att ta hänsyn till maxhastighet, mängden RAM eller ROM, antalet eller typerna av I/O-stiften på en MCU, samt strömförbrukning och begränsningar och utvecklingsstöd. Se till att ställa frågor som: