Alle fag › Innebygde systemer og måleteknikk
Innebygde systemer og måleteknikk: gratis øving, teori og oppgaver
Datamaskiner og mikrokontrollere lagrer og regner med alt som binære tall (0-er og 1-ere). For å lese og skrive kode effektivt bruker ingeniører også heksadesimale tall som en kompakt stenografi for binærtall, og de må vite hvordan negative tall representeres i et fast antall biter. Digital logikk – porter som AND, OR, NOT og XOR – er byggesteinene alle disse operasjonene til slutt bygges av, både i maskinvare og i uttrykk i C-kode.
Innhold
1. Tallsystemer og digital logikk
Hva handler det om?
Datamaskiner og mikrokontrollere lagrer og regner med alt som binære tall (0-er og 1-ere). For å lese og skrive kode effektivt bruker ingeniører også heksadesimale tall som en kompakt stenografi for binærtall, og de må vite hvordan negative tall representeres i et fast antall biter. Digital logikk – porter som AND, OR, NOT og XOR – er byggesteinene alle disse operasjonene til slutt bygges av, både i maskinvare og i uttrykk i C-kode.
Begreper og formler
- Posisjonssystemer: et siffer på plass (fra 0, regnet fra høyre) har vekt , der er grunntallet ( binært, heksadesimalt, desimalt).
- Heksadesimalt: sifrene 0–9, A–F (A=10 … F=15). To heksadesimale siffer utgjør nøyaktig én byte (8 bit).
- -bits usignert heltall: verdiområde til .
- -bits signert heltall (toerkomplement): verdiområde til . Øverste bit er 1 for negative tall. Et negativt tall representeres som det usignerte tallet .
- Bitvise operatorer i C:
&(AND),|(OR),^(XOR),~(NOT/komplement),<</>>(skift). Skift til venstre med tilsvarer å gange med . - Logiske porter: AND gir 1 bare når begge innganger er 1. OR gir 1 når minst én inngang er 1. XOR gir 1 når inngangene er ulike. NOT snur en enkelt inngang. NAND/NOR er AND/OR etterfulgt av NOT.
- ADC-oppløsning: en -bits ADC med referansespenning har trinnstørrelse .
Slik løser du oppgavene
- Konvertering mellom grunntall: gang hvert siffer med grunntallets potens og summer (til desimalt), eller trekk fra størst mulig potens gjentatte ganger (fra desimalt).
- Toerkomplement, negativt tall til bitmønster: regn og skriv det som et usignert binært/heksadesimalt tall.
- Toerkomplement, bitmønster til tall: hvis øverste bit er 1, trekk fra den usignerte verdien.
- Bitvise operatorer: skriv ut hvert tall i binær og regn bit for bit.
- Logiske porter: sett opp en sannhetstabell hvis du er usikker, eller husk regelen for hver port.
Eksempel
Hva er skrevet som 8-bits toerkomplement, i heksadesimalt?
- Usignert bitmønster: .
- i heksadesimalt: .
Svar: 0xFB.
Vanlige feil
- Å glemme at det øverste bitet avgjør fortegnet i toerkomplement, og at man må trekke fra (ikke bare snu fortegnet på biten).
- Å blande bitvis AND (
&) med logisk AND (&&), eller bitvis OR (|) med logisk OR (||) – de bitvise operatorene jobber bit for bit på hele tallet. - Å tro at en 8-bits usignert verdi kan bli opptil 256 – den største verdien er .
- Å regne ADC-oppløsning med i stedet for – standard er trinnstørrelse .
Begreper i denne delen
2. Mikrokontrollere
Hva handler det om?
En mikrokontroller er en liten datamaskin på én brikke: prosessor, minne og inn/ut-pinner (GPIO) samlet, laget for å styre og lese av omgivelsene i sanntid. Den kobles til sensorer og aktuatorer via digitale og analoge grensesnitt, holder styr på tid med timere, og reagerer raskt på hendelser med avbrudd. Å forstå klokkefrekvens, kommunikasjonsprotokoller og minnetyper er nødvendig for både å skrive fungerende kode og å anslå om den rekker jobben i tide.
Begreper og formler
- GPIO-pinne: en generell inn/ut-pinne som settes opp i programvare som inngang (leser spenning) eller utgang (driver spenning høy/lav).
- Pull-up/pull-down-motstand: gir en inngang et definert nivå når ingenting annet driver den (f.eks. en åpen bryter).
- PWM: et digitalt signal som svitsjer mellom høy og lav med en bestemt duty cycle (andelen av perioden signalet er høyt). Gjennomsnittsspenning: .
- Klokkefrekvens og instruksjonstid: en instruksjon som tar klokkesykler på en klokke , tar tiden .
- Timer med prescaler og telleverdi : periode mellom overflyt .
- UART: asynkron seriell kommunikasjon (ingen felles klokke), med en baudrate og et fast antall bit per overført ord (f.eks. 1 start + 8 data + 1 stopp = 10 bit).
- SPI: synkron, med felles klokke (SCK), egen chip select (CS) per enhet, datalinjer MOSI/MISO. Ingen start-/stoppbit, så gjennomstrømning byte/s.
- I²C: synkron, to linjer (SDA, SCL) med åpen-drain-utganger og pull-up-motstander – enhetene kan bare trekke linjen lav, aldri drive den aktivt høy, derfor trengs pull-up for å få linjen høy igjen.
- Avbrudd (interrupt): CPU-en hopper til en avbruddsrutine (ISR) når en hendelse skjer, i stedet for å sjekke (polle) kontinuerlig.
- Minne: RAM er flyktig (mister innhold uten strøm, brukes til variabler), flash/EEPROM er ikke-flyktig (beholder innhold, brukes til programkode/lagrede data).
Slik løser du oppgavene
- Identifiser hva slags størrelse du skal finne: spenning/duty cycle, tidsintervall, eller byte-/bitrate.
- For PWM: bruk , eller finn fra pulslengde delt på periode.
- For timing: regn ut tid per klokkesykel () og gang med antall sykler eller instruksjoner.
- For kommunikasjon: tell bit per overført enhet (UART har start-/stoppbit, SPI og I²C har det normalt ikke) og del klokkefrekvensen på det tallet.
- Sjekk om svaret er realistisk: mikrosekunder for enkeltinstruksjoner, millisekunder for typiske timerperioder.
Eksempel
Et program med 200 instruksjoner, hver på 4 klokkesykler, kjører på en mikrokontroller med klokkefrekvens 8 MHz. Hvor lang tid tar programmet?
- Totalt antall sykler: .
- Tid per sykel: µs.
- Total tid: µs.
Svar: 100 µs.
Vanlige feil
- Å telle start- og stoppbit for SPI/I²C, som ikke har dem (bare UART har det).
- Å glemme å legge til 1 i telleverdien for en timer ( sykler, siden telleren starter på 0).
- Å blande MHz og Hz, eller µs og ms, i samme utregning.
- Å tro at en pull-up-motstand trengs på alle digitale utganger – den trengs bare der ingenting aktivt driver linjen (åpne brytere, I²C-linjer).
Begreper i denne delen
3. Måleteknikk
Hva handler det om?
Måleteknikk handler om å gå fra en fysisk størrelse (temperatur, kraft, lys, bevegelse) til et pålitelig digitalt tall en mikrokontroller kan bruke. Underveis må du velge riktig sensor, forsterke/kondisjonere signalet, sample det med riktig frekvens og filtrere mot støy og aliasing – og du må vite hvor mye du kan stole på resultatet (nøyaktighet, presisjon, oppløsning).
Begreper og formler
- Sensitivitet (følsomhet): endringen i sensorens utgang per enhet endring i målestørrelsen, f.eks. mV/°C.
- Nøyaktighet vs. presisjon: nøyaktighet er hvor nær målingene er den sanne verdien (systematisk feil), presisjon er hvor tett målingene er samlet (spredning/støy).
- Nyquist-kriteriet: samplingsfrekvensen må være mer enn to ganger den høyeste frekvenskomponenten i signalet, , ellers oppstår aliasing.
- Aliasing: et signal med frekvens ser etter sampling ut som en lavere frekvens for et helt tall (det som ligger nærmest 0).
- Anti-aliasing-filter: et lavpassfilter foran ADC-en som demper frekvenser over før sampling. Dempningen ved en frekvens for ett enkelt RC-ledd er dB.
- Wheatstone-bro: fire motstander i en brokobling gjør en liten motstandsendring (f.eks. fra en strekklapp) om til en målbar differansespenning.
- Strekklapp: , der er gauge factor og er tøyningen.
- RTD (f.eks. PT100): motstanden øker tilnærmet lineært med temperaturen, , med Ω og Ω/°C for PT100.
- Termoelement: gir en liten spenning fra Seebeck-effekten, proporsjonal med temperaturforskjellen mellom to sammenføyninger.
- Kvantiseringsfeil: for en -bits ADC med referanse er maksimal feil LSB .
Slik løser du oppgavene
- Avgjør hvilket begrep oppgaven handler om: sampling/aliasing, sensor/bro, eller ADC-oppløsning.
- Sampling: sjekk om . Hvis ikke, finn alias-frekvensen ved å folde om .
- Anti-aliasing-filter: sett og inn i dB-formelen, eller finn fra ønsket dempning.
- RTD: sett temperaturen inn i .
- Strekklapp/bro: bruk direkte, eller regn ut broens differansespenning fra .
Eksempel
En PT100-sensor har Ω og Ω/°C. Hvor stor motstand har den ved 80 °C?
- Sett inn i formelen: .
- Ω.
Svar: 130,8 Ω.
Vanlige feil
- Å bruke i stedet for (ved akkurat Nyquist-frekvensen er signalet fortsatt tvetydig).
- Å glemme anti-aliasing-filteret og tro at man kan fjerne alias-frekvenser i etterkant – det kan man ikke, informasjonen er borte etter sampling.
- Å forveksle nøyaktighet (liten systematisk feil) med presisjon (liten spredning) – en sensor kan være presis uten å være nøyaktig.
- Å bruke i stedet for i kvantiseringsformelen (standard er trinnstørrelse ).
Begreper i denne delen
Eksempeloppgaver med løsning
Her er noen av oppgavene i innebygde systemer og måleteknikk. I appen får regneoppgavene nye tall hver gang, så du kan øve til det sitter – og ta en prøveeksamen med karakter før eksamen.
Tallsystemer og digital logikk: Hva er 0x1F i titallssystemet?
Svar: 31
.
Mikrokontrollere: Et PWM-signal på 5 V har 25 % duty cycle. Hva er gjennomsnittsspenningen?
Svar: 1,25 V
V.
Måleteknikk: Nyquist-kriteriet sier at samplingsfrekvensen må være …
Svar: større enn 2 ganger den høyeste frekvensen i signalet
Ellers får du aliasing.
Tallsystemer og digital logikk: Hva er binærtallet 1010 i titallssystemet?
Svar: 10
.
Passer for disse emnene
Innholdet dekker pensum som går igjen i ingeniørutdanningene, blant annet:
- ELFT2500 (OsloMet)
- FYS103 (NMBU)