Image of eBits Academy fundamentals illustration

Mikrocontroller

  • March 02, 2023
  • |
  • Jonas Rothausen

Introduktion

Denne mikrocontroller er som et tomt lærred, hvor du kan implementere dine idéer til gadgets eller endda skabe små sjove spil selv. Den har også masser af praktiske anvendelser, som vi bruger hver dag, måske uden at tænke over det.

En mikrocontroller (MCU) er et lille, selvstændigt computersystem på ét integreret kredsløb, designet til at styre bestemte enheder eller udføre bestemte opgaver. Det er et indlejret system med processor, hukommelse og input-/output-enheder.
Du kan betragte en mikrocontroller som en mindre kraftfuld PC, da opbygning og struktur ligner hinanden. I en PC er CPU, hukommelse og seriel grænseflade separate dele, mens de i en mikrocontroller er integreret i én chip.

Figur 1: Mikrocontroller og en PC.


Ligesom vi kan forbinde et tastatur, headset og skærme til vores PC for at indtaste og udsende data, kan vi også gøre det med vores mikrocontrollere. Med mikrocontrollere kan vi for eksempel tilslutte knapper og LED-lys.

Figur 2

Vi kunne også forbinde forskellige slags sensorer for at måle alle mulige ting, som vi finder interessante. Måske vil vi måle fugtighed, temperatur, bevægelse. Nedenfor ses en liste over nogle af disse sensorer, som vi kunne anvende med en mikrocontroller.

Alle disse LED’er, sensorer og knapper er seje. Men hvordan gør vi det egentlig? Vi kan ikke bare forvente, at mikrocontrolleren gør, hvad vi siger; den ville ikke forstå det, uanset hvor meget vi råber. Vi skal instruere den på den rigtige måde! Lad os finde ud af hvordan. 


Hvad er en mikrocontroller

Hvad er en mikrocontroller, og hvordan er den lavet? For at forstå det har vi brug for noget grundlæggende viden om nogle af de komponenter, vi finder i en mikrocontroller. Komponenter som en modstand, transistoren og dioden, se figur 3.


Figur 3: Symboler for en modstand, transistor og en diode.

Hvis du er usikker på, hvad disse komponenter er, eller hvad de bruges til, har vi en blog om dem lige her – så se den om nødvendigt! 

Men hvorfor er komponenterne så vigtige for en mikrocontroller? Med dem kan vi bygge logiske gates, som vi lærte om i denne blog om digital elektronik.
Disse logiske gates er vigtige, fordi de behandler digitale logikniveauer; måling af en kontinuerlig analog spænding kræver en ADC, ikke blot en logisk gate. Lad os illustrere det med en af de gates, vi lærte om i bloggen om digitale kredsløb: AND-gaten.

Figur 4 nedenfor viser opbygningen af en AND-gate med de tre komponenter fra figur 3.

Figure 4: Illustrerer et kredsløb for en AND-gate.
Spændingskilder: Vin, A og B
Transistorer: T1 og T2
Modstande: Ra, Rb og Rout


I bloggen om analoge kredsløb lærte vi, at hvis vi forbinder 5 V til collector for transistor T1 (Vin) i figur 4, og A og B ikke har nogen spænding, bliver udgangsspændingen nul (Vout). Hvis A ændres til 5 V, er der stadig ingen udgangsspænding. Det samme gælder B. Kun når både A og B får 5 volt, bliver udgangen 5 volt, fordi begge transistorer da er ledende.
Dette koncept for AND-gaten vises nedenfor.

Figur 5: Bemærk, at udgangen kun bliver 5 V, når både A og B har 5 V.


Hvis vi så erstatter 5 V og 0 V med 1'ere og 0'ere, får vi det, der kaldes truthtables. Husk, at digital elektronik kun handler om høj og lav.

Når udskiftningen er lavet, får vi en sandhedstabel.
Figur 6 er så et truthtable for AND-gaten. Dette koncept er begyndelsen på digital elektronik og hvordan mikrocontrollere forstår ting.



Figure 6: Truthtable for AND-gate.

I digital elektronik findes kun logikniveauerne høj og lav, 1 og 0, som i sandhedstabellen ovenfor. Tabellen kan beskrives med en ligning. Alle gates har sandhedstabeller og tilhørende ligninger, men matematikken er anderledes end almindelig matematik og kaldes boolsk algebra. Det dækkes i den nævnte blog (digitale kredsløb).  

Ved hjælp af disse logic gates kan vi derefter opstille strukturer, der er i stand til at tilføje, multiplicere eller lagre digital information - der altså er i stand til at arbejde med informationen. Den slags strukturer er dem, der findes inde i en mikrocontroller, såsom ADDER, MULTIPLIER og RAM.

For at kontrollere og bruge ADDER, MULTIPLIER og RAM benytter vi et program. Programmet er gemmes inde i mikrocontrollerens hukommelse og kan overføres gennem programmering-pins.

 Figure 7: ROM står for Read-Only Memory. 

Som illustreret på figur 7 kan programmet, der benyttes til at kommunikere med  ADDER, MULTIPLIER og RAM, betragtes som en række linjer med 0'ere og 1'ere. Disse linjer kan f.eks. være som følgende:

 

Figure 8: Udsnit fra figur 7.

Hver linje bærer sine egne oplysninger til mikrocontrollerens hukommelse, så mikrocontrolleren ved hvad der foregår så den kan forstå vores instruktioner. Men ikke mange mennesker kan aflæse gyldig information ud fra disse linjer af 0'ere og 1'ere. Det ville være svært og tidskrævende, at afkode og forstå hvad hver linje betyder, så vi har det, der kaldes et assembly language. Assembly language er for personer, der er virkelig seje og gode til at skrive kode og som besidder en bred forståelse af designet for den specifikke mikrocontroller. Så disse generøse individer skaber programmeringssprog, der er lettere at bruge, så vi andre kan programmere ved brug af metoder, der er mere intuitive. På den måde forbinder de elektronik med mennesker.

Så for at opsummere, når mikrocontrollere instrueres, sker der en oversættelse af til 0'ere og 1'ere fra et programmeringssprog. Disse programmeringssprog kunne for eksempel være C og C++, som ofte bruges i mikrocontrollere.

Ved hjælp af disse generøse personer kan vi kode vores programmer hurtigere og lettere på vores mikrocontrollere. Dette skyldes, at det antal kodelinjer, der er nødvendige for, at en assembly code kan producere et bestemt resultat, er meget større for det samme resultat i C og C ++.

Og for at gøre det endnu lettere for os kan vi bruge biblioteker til programmeringen af vores mikrocontrollere. Software biblioteker. Et softwarebibliotek til en mikrocontroller er som et sæt kommandoer, du kan importere til din mikrocontroller, for at udvide dens værktøjer, du kan programmere den med. Det får mikrocontrollerne til at forstå visse genveje der er lettere for os at programmere med. Man kan fx. importere et matematikbibliotek, så man kan benytte forskellige matematiske koncepter på en letanvendelig måde i ens programmering. Der er maaange forskellige biblioteker klar til at blive implementeret i dit næste projekt! OG der er mange vellavede lektioner til mikrocontroller-projekter over hele internettet, som dem, der findes her.

Kun fantasien sætter grænser for, hvad en mikrocontroller kan bruges til! Den kompakte størrelse, lave strømforbrug og de lave omkostninger ved mikrocontrollere gør dem til et populært valg til mange applikationer.

Forenklet logikmodel: 0V og 5V i AND-eksemplet er idealiserede logikniveauer. Et reelt BJT-kredsløb har spændingsfald og belastningsafhængige niveauer; mål udgangen og kontrollér den næste indgangs grænser. Tilslut ikke 5V til en ikke-5V-tolerant mikrocontroller.

Efterlad en kommentar

Bemærk venligst, at kommentarer skal godkendes, før de offentliggøres.