Steg For Steg Guide Til Microcontroller Programmering
Dette er en trinnvis guide for de som ønsker å starte Med Microcontroller Programmering. Artikkelen starter med å introdusere noen grunnleggende begreper som vil bli brukt i guiden, en liste over verktøy, programmeringsspråk og på slutten, et eksempel på en nedlastbar kode med en trinnvis veiledning som du kan bruke til å øve mikrokontroller programmering.
Men før du dykker Inn I Mikrokontrollerprogrammering. La oss definere to første grunnleggende vilkår: Maskinvare Og Programvare.
Maskinvare består av de fysiske komponentene i systemet som en chips, tastatur, en mus, en skjerm, minner, i / O-enheter. Maskinvare er vanskeligere å utvikle i forhold til programvare, den må utformes for svært spesifikke applikasjoner, og det er en svært effektiv og perfekt løsning i høyhastighetssystemer.
Programvare Er de ikke-fysiske komponentene eller programmene som kjører på maskinvaren, for eksempel operativsystemer, dataspill og nettverksapplikasjoner. Programvaren er svært konfigurerbar, enkel og raskere å bli utviklet, også veldig billig i forhold til maskinvare.
Hva Er En Mikrokontroller
for å forstå hva en mikrokontroller er, må vi først forstå hva en mikroprosessor eller EN CPU er (Sentralbehandlingsenhet). EN CPU er et hjerte i ethvert datasystem, det er som den menneskelige hjernen når du utfører en oppgave. Vi kan i utgangspunktet dele det i to viktige deler:
Kontrollenhet: denne enheten brukes til å hente dataene fra minnet.
Utførelsesenhet: denne enheten brukes til å utføre eller kjøre dataene.
Typer Prosessorer
det finnes mange kategorier prosessorer som generelle prosessorer, applikasjonsspesifikke systemprosessorer og flerprosessorsystem. Prosessor til generell bruk har mange typer:
▪ Mikroprosessor
▪ Mikrokontroller
▪ Innebygd prosessor
▪ Digital signalprosessor
Mikroprosessor er en halvlederinnretning eller en datamaskin på en chip, men ikke en fullt funksjonell datamaskin. Dens sentrale prosessorenhet inneholder
▪ ALU
▪ Programteller
▪ Registre
▪ Andre kretser (klokketid, avbryt)
en mikrokontroller er en IC som inneholder en mikroprosessor og noen eksterne enheter for å være en komplett funksjonell datamaskin, eksterne enheter, FOR EKSEMPEL ADC, RAM, ROM, DAC.
Historien Om Mikrokontroller
Opprinnelig Var Intel corporation den første produksjonen av mikrokontrollere. Den første mikrokontrolleren ble produsert I 1971 I USA. Det var en 4-bits mikrokontroller med navnet i4004. Senere produserte Intel mer sofistikerte modeller på den tiden med en 8-biters mikrokontroller, og etter det ble En 12-biters mikrokontroller utviklet av Toshiba.
Applikasjoner Av Mikrokontrollere
Mikrokontrollere har mange applikasjoner i mange bransjer, for eksempel bilindustri, medisinsk, industriell automatisering, luftfart, robotteknologi.
i bilindustrien har for eksempel moderne biler i dag mer enn 100 mikroprosessorer for systemer som air condition, ABS, EBD og OGSÅ ADAS eller avanserte kjøreassistansesystemer som adaptive curies controller og lane assist, følgende er et bilde av EN ECU eller elektronisk kontrollenhet.
i det medisinske domenet er det medisinsk utstyr som inkluderer mikrokontrollere som EN MR, glukosetestsett, bærbar EKG. Følgende bilde, er en glukose test enhet.
i luftfart har de fleste flyene blitt designet med nye avionikksystemer ved hjelp av mikrokontrollere. I tillegg er det flykontrollsystem, flytrafikkontrollsystem, navigasjon og værsystemer som alle er basert på mikrokontrollere.
Populære Mikrokontrollere
det er mange mikrokontrollere typer og plattformer, men å velge en mikrokontroller avhenger av mange faktorer:
▪ Programmet
▪ Økonomiske
▪ Ytelse
▪ Nummer av GPIO pins
▪ Minne størrelse
▪ Temperatur på driftsmiljø
▪ strømforbruk
AVR Mikrokontroller
følgende bilde viser et blokkdiagram av AVE12DA, en av de mest populære mikrokontroller famlily — AVR-mikrokontroller:
AVR mikrokontrollere er produsert av Atmel corporation (i dag: Microchip), Atmel har 6 familier av AVR mikrokontrollere, 4 familier som generelle mikrokontrollere og 2 som spesifikke mikrokontrollere. Generelle mikrokontrollere er:
▪ 8 bit-mega avr
▪ 8 bit-At Tiny
▪ 8 & 16 bit-Avr xmega
▪ 32 bit – avr
Mikrokontrollere Med spesifikke formål er:
▪ Automotive Avr
▪ Batteristyring
Automotive avr, fra navnet, det har blitt utviklet for bilindustrien. Det kan fungere under svært høye temperaturer opp til 150 Celsius, og det inkluderer beskyttelsessystemer for kortslutningsproblemer.
Batteristyring mikrokontroller er utviklet for batteristyringssystemer for å sikre lading og utladning.
Eksempler På Avr-Plattformer
▪ Arduino UNO
▪ Adafruit Blå Frukt Mikro
▪ Raspduino
▪ Digispark Pro
ARM Mikroprosessor/Mikrokontroller
ARM mikroprosessor er den mest populære prosessoren i verden, spesielt I Forbrukerapplikasjoner. Du kan ha EN ARM-prosessorbasert enhet, men du vet ikke! ARM er for det meste en nøkkelkomponent i alle vellykkede 32-bits innebygde systemer. DEN første ARMEN ble utviklet i 1985.
RISC-Teknologi
ARM brukes RISC-teknologi, RISC står for redusert instruksjonssett datamaskin, DET er en designfilosofi for å levere enkle instruksjoner innen en enkelt syklus. Det er mer avhengig av programvaren. PÅ DEN annen side er CISC-teknologien avhengig av maskinvaren.
RISC-teknologien fokuserer på å redusere instruksjonssettet til prosessoren. PÅ DEN annen side har cisc-prosessoren et ikke-fast nummer av instruksjonssettet.
ARM Funksjoner
Arm har mange funksjoner for hver innebygd system designer er ute etter, f. eks lavt strømforbruk på grunn av sin kompakte størrelse, også høy kode tetthet er en annen funksjon siden vi utvikler innebygde systemer, vil vi ha begrensede ressurser i de fleste tilfeller.
Intern struktur AV ARM-basert Mikrokontroller
denne figuren viser den interne strukturen til DE FLESTE ARM – baserte enheter:
boksene representerer funksjoner, linjene representerer busser. La oss snakke mer om hver komponent i detaljer:
▪ arm-prosessoren er kjernekomponenten DET er ansvarlig for behandlingsoperasjonene
▪ – Kontrollere brukes til å koordinere systemfunksjonene som minne-og avbruddskontrollere
▪ Periferiutstyr brukes til å gi systeminngangene og utgangene
▪ en buss brukes til å utveksle data mellom de forskjellige komponentene i systemet
EKSEMPLER PÅ ARM-plattformer
det er mange enheter og innebygde plattformer SOM HAR arm mikroprosessor f. eks.
▪ Arduino Grunn
▪ Raspberry Pi
▪ STM32F103C8T6
▪ NXP LPC1768
Andre Mikrokontroller og Plattformer
som vi sa før du valgte en mikrokontroller Eller en plattform avhenger av mange faktorer (budsjett, antall pins, etc.…). Det finnes også andre mikrokontrollere og plattformer, f. eks.
▪ PIC Mikrokontrollere
▪ 8051
▪ ESP32
▪ Motorola Mikrokontrollere
Mikrokontroller Programvare Og Maskinvareverktøy
Siden etableringen av mikrokontrolleren har det vært mange typer programvare-og maskinvareutviklingsverktøy. Selvfølgelig kan noen av verktøyene brukes på tvers av ulike mikrokontrollertyper, men noen er veldig spesifikke per mikrokontroller. Før du starter med mikrokontrollerprogrammering, vil du kanskje bli kjent med mikrokontrollerprogrammeringsverktøyene og sist men ikke minst utviklingsprosessen.
ved hjelp av innebygde utviklingsverktøy kan vi trenge verktøy som følger:
Assembler
DET er et programvareverktøy som konverterer kildekoden i montering til maskinkode, for EKSEMPEL (GNU assembler).
Compiler
Det er et program som dekker kildekoden i et høyt nivå programmeringsspråk i assembly eller maskinkode. Kompilering kan være:
▪ Opprinnelig: dette betyr at du kjører kompilatoren og den genererte koden på samme maskin
▪ Kryss: Dette betyr at du kjører kompilatoren på en maskin og den genererte koden kjører på en annen maskin (prosessorarkitektur).
Linker og Locator
en linker er et program som samler og kobler sammen kompileringene og monterer operasjoner og produserer en enkelt exe.
en locator er et programverktøy som kan brukes til å endre minnekartet til linkerutgangen.
Simulator
det er et program som imiterer ekte scenario, det gir en tilnærming av sanntidssystemene. En simulator brukes:
▪ hvis den virkelige maskinvaren ikke er tilgjengelig
▪ i farlige testmiljøer og scenarier
Debugger
Det er et program og maskinvareenhet som kan kobles til PCEN min til mitt innebygde mål. En debugger brukes:
▪ å sette stoppunkter
▪ å spore utførelse
▪ å dumpe minne
maskinvarefeilsøkeren kan være
▪ feilsøking i kretsløp
▪ programvare om bord
Flash loader
det er en program-og maskinvareenhet som kan brukes til å:
▪ Program ROM/Flash
▪ Se variabler
▪ Slette ROM/Flash
Profiler
Profiler er et verktøy for å overvåke ytelsen til programvarekoden
Integrert Utviklingsmiljø
Det er et program som har de fleste verktøyene alle i en. Det kan omfatte
▪ Tekst redaktører
▪ Kompilatorer
▪ Debuggers
▪ Profilers
▪ Simulatorer
▪ Linkers
Mikrokontroller Programvare Språk
Vi kan klassifisere dem inn i to typer:
Høyt nivå
▪ C/C++
▪ Java
▪ Ada
Bruk av denne typen vil gi en abstraksjon fra maskinvarenivået
Lavt nivå
maskinkode
Det er 0 og 1 og vanskelig å bli skrevet av Mennesker, men lett for datamaskiner å forstå
Montering
Det Er En Mnemonic Kode Og Pseudo Instruksjoner For Å Forbedre Lesbarheten
Eksempler:
en instruksjon består av mnemonic (opcode) + operander
Opcode er en operasjon tatt av en maskinprosessor
Operander er det endelige målet; opcode må ta en operasjon for.
Assembly language er lesbar og forståelig mer enn maskinkode, men du må bruke den på en bestemt prosessor og ha kunnskap om arkitekturen.
C/C++ Programmeringsspråk
språk På høyt nivå har følgende funksjoner
▪ Lett å skrive
▪ Fleksibel
▪ Prosessor uavhengig
▪ Høy produktivitet
Mikrokontrollerprogrammering Eksempel Ved Bruk AV AVR ATMEGA16
atmega 16 Har Følgende Funksjoner:
▪ 16 Kb av I-systemet Selv programmerbare flash-minne
▪ 512 Byte EEPROM
▪ 1 Kbyte Interne SRAM
▪ Programmering Lås for sikkerhet
Perifere Funksjoner
▪ Real-Time Teller med Separat Oscillator
▪ Programmerbare Seriell USART
▪ Fire PWM-Tv
▪ 8-kanal 10-bits ADC
▪ On-chip Oscillator
▪ Kraft-på Resten og Brun ut Deteksjon
▪ Interne RC Oscillator og Avbryte Kilder
▪ Spenning (fra 2,7 v til 5.5v)
Led Blinkende Programeksempel ved Bruk Av ATmeg16 og Proteus
led blinkende program i innebygde systemer som «hello world» – programmet i applikasjonsutvikling. I følgende eksempel lærer du Og bruker Proteus-simulatoren til å kjøre ditt første program. For å laste ned kildefilene, vennligst gå til denne mappen.
Skriv programmet ditt Ved Hjelp Av Atmel studio
etter nedlasting AV IDE,
åpne den og velg nytt prosjekt og velg plasseringen av hex-filen som i følgende bilde
det neste trinnet er å velge mikrokontrollerfamilien
etter det får du følgende vindu med startkode
og nå kan du skrive følgende kode
neste trinn bygger programmet ditt ved å trykke F7
Etter det finner du hex-filen på det valgte stedet
det neste trinnet bruker proteus simulatoren
og nå lage en skjematisk fra den valgte en mal
og velg ikke opprett EN PCB layout
Endelig er Vi ferdige, Men vi må legge til hex-filen som i følgende bilde
rediger NÅ Cksel Sikringer
lagre og klikk på play
og du kan se at lysdioden er av for 500ms (venstre side) og på for 500ms (høyre side)
Programforklaring linje for linje
for å laste ned kildefilene, gå til denne mappen.
#definer f_CPU 100000ul / / for å lage en konstant og velg prosessorhastigheten
# inkluder < avr/io.h> // for å hente noen filer for innganger og utganger
#inkluderer <avr/delay.h> // tilbakekall denne filen for å bruke forsinkelsesfunksjoner
int main(void){ // startfunksjonen og hovedprogrammet
DDRA = 0B0000001; // for å konfigurere pin a som en utgang / retning
Mens(1){ // å sløyfe for alltid
PORTA = 0B00000001; // for å gjøre pa0 = 1 og utgang 5v (led er på)
_delay_ms(500); // forsinkelse i et halvt sekund
PORTA = 0b0000000; // FOR Å gjøre PA0 = 0 og utgang 0v (LED er av)
_delay_ms (500); //forsinkelse i et halvt sekund
}
tilbake 0;
} //slutten av programmet
Konklusjon
i Dag embedded systemer brukes i viktige produkter Og kan brukes til å sikre og spare mange mennesker, som i det medisinske domenet og andre programmer. Du bør fortsette å lære etter å ha fått oversikt og introduksjon om mikrokontrollerprogrammering. Ditt neste skritt bør være å lære innebygd programvaredesign og sanntids utløste systemer.
https://www.faa.gov/regulations_policies/handbooks_manuals/aviation/phak/
Avr Microcontroller Og Embedded Systems: Pearson Ny Internasjonal Utgave: Ved Hjelp Av Montering Og C, Muhammad Ali Mazidi, DeVry University
ARM System Developer ‘ S Guide Design Og Optimalisering Av Systemprogramvare et volum I Morgan Kaufmann-Serien I Datamaskinarkitektur og Designbok • 2004