trin for trin Guide til microcontroller programmering
dette er en trin for trin guide for dem, der ønsker at starte med Microcontroller programmering. Artiklen starter med at introducere et par grundlæggende udtryk, der vil blive brugt i guiden, en liste over værktøjer, programmeringssprog og i slutningen, et eksempel på en hentbar kode med en trinvis vejledning, som du kan bruge til at øve mikrocontroller programmering.
men før dykning i mikrocontroller programmering. Lad os definere de første to grundlæggende udtryk: Udstyr og programmel.
udstyr består af de fysiske komponenter i systemet, såsom en chips, tastatur, en mus, en skærm, minder, i/O-enheder. Det skal være designet til meget specifikke applikationer, og det er en meget effektiv og perfekt løsning i højhastighedssystemer.
Programmel er de ikke-fysiske komponenter eller de applikationer, der kører på udstyret, såsom operativsystemer, computerspil og netværksapplikationer. Programmel er meget konfigurerbar, let og hurtigere at blive udviklet, også meget billigt i forhold til udstyr.
Hvad er en mikrocontroller
for at forstå, hvad en mikrocontroller er, skal vi først forstå, hvad en mikroprocessor eller en CPU er (Central behandlingsenhed). En CPU er et hjerte i ethvert computersystem, det er som den menneskelige hjerne, når du udfører en opgave. Vi kan dybest set opdele det i to væsentlige dele:
kontrolenhed: denne enhed bruges til at hente dataene fra hukommelsen.
eksekveringsenhed: denne enhed bruges til at udføre eller køre dataene.
typer af processorer
der er mange kategorier af processorer, såsom processorer til generelle formål, applikationsspecifik systemprocessor og multiprocessorsystem. General purpose processor har mange typer:
chiromikroprocessor
chiromikrocontroller
Chiromonteret processor
chiromonteret Digital signalprocessor
mikroprocessor er en halvleder enhed eller en computer på en chip, men ikke en fuldt funktionel computer. Dens centrale processorenhed indeholder
karit ALU
karit-programtællere
karit-registre
Karri andre kredsløb (klokketid, afbrydelse)
en mikrocontroller er en IC, der indeholder en mikroprocessor og nogle perifere enheder til at være en komplet funktionel computer, perifere enheder f.eks.
historie af mikrocontroller
oprindeligt var Intel corporation den første fremstilling af mikrocontrollere. Den første mikrocontroller blev produceret i 1971 i USA. Det var en 4-bit mikrocontroller med navnet i4004. Senere producerede Intel mere sofistikerede modeller på den tid med en 8-bit mikrocontroller, og derefter blev en 12-bit mikrocontroller udviklet af Toshiba.
anvendelser af mikrocontrollere
mikrocontrollere har mange anvendelser i mange brancher, f.eks.
i bilindustrien har for eksempel moderne biler i dag mere end 100 mikroprocessorer til systemer som air condition, ABS, EBD og også ADAS eller avancerede kørehjælpssystemer som adaptive curies controller og lane assist, følgende er et billede af en ECU eller elektronisk styreenhed.
i det medicinske domæne er der medicinsk udstyr, der omfatter mikrocontrollere som en MR, glukosetestsæt, bærbar EKG. Følgende billede er en glukosetestenhed.
inden for rumfart er de fleste fly designet med nye flyelektroniksystemer ved hjælp af mikrocontrollere. Derudover er der flystyringssystem, flyvekontrolsystem, navigations-og vejrsystemer, der alle er baseret på mikrocontrollere.
populære mikrocontrollere
der er mange mikrocontrollers typer og platforme, men valg af en mikrocontroller afhænger af mange faktorer:
▪ ▪ Program
▪ Budget
▪ Ydeevne
▪ Antallet af GPIO pins
▪ Hukommelse størrelse
▪ Temperaturen af driftsmiljø
▪ Strømforbrug
AVR Microcontroller
følgende billede indeholder et blokdiagram af AVE12DA, en af de mest populære microcontroller famlily — AVR-microcontroller:
AVR microcontrollere er produceret af Atmel corporation (i dag: Mikrochip), Atmel har 6 familier af AVR-mikrocontrollere, 4 familier som mikrocontrollere til generelle formål og 2 som mikrocontrollere til specifikke formål. Generelle formål mikrocontrollere er:
let 8 bit – mega AVR
let 8 bit-at Tiny
▪ 8 & 16 mikrocontrollere til specifikke formål er:
specifikke formål er:
kart Automotive AVR
Kart batteristyring
Automotive AVR, fra sit navn er det udviklet til bilanvendelser. Det kan fungere under meget høje temperaturer op til 150 Celsius, og det inkluderer beskyttelsessystemer til kortslutningsproblemer.
batteristyring microcontroller er udviklet til batteristyringssystemer for at sikre opladning og afladning.
eksempler på AVR-platforme
Lira Arduino UNO
Lira Adafruit Blue fruit Micro
Lira Raspduino
Lira Digispark Pro
ARM mikroprocessor/mikrocontroller
ARM mikroprocessor er den eneste mest populære processor i verden, især i forbrugernes applikationer. Du har muligvis en ARM-processorbaseret enhed, men du ved det ikke! ARM er for det meste en nøglekomponent i enhver vellykket 32-bit indlejrede systemer. Den første ARM blev udviklet i 1985.
RISC-teknologi
ARM bruges RISC-teknologi, RISC står for reduceret instruktionssæt computer, det er en designfilosofi at levere enkle instruktioner inden for en enkelt cyklus. Det afhænger mere af programmet. På den anden side er CISC-teknologien mere afhængig af udstyret.
RISC-teknologi fokuserer på at reducere instruktionssættet på processoren. På den anden side har CISC-processoren et ikke-fast nummer på instruktionssættet.
ARM-funktioner
Arm har mange funktioner til enhver indlejret systemdesigner, der leder efter, f.eks. lavt strømforbrug på grund af dens kompakte størrelse, også høj kodetæthed er en anden funktion, da vi udvikler indlejrede systemer, vil vi i de fleste tilfælde have begrænsede ressourcer.
intern struktur af ARM-baseret mikrocontroller
denne figur viser den interne struktur for de fleste ARM-baserede enheder:
kasserne repræsenterer funktioner, linjerne repræsenterer busser. Lad os tale mere om hver komponent i detaljer:
kart ARM-processoren er den kernekomponent, den er ansvarlig for behandlingsoperationerne
karts-controllere bruges til at koordinere systemfunktionerne som hukommelses-og afbrydelseskontrollere
Karts-periferiudstyr bruges til at levere systemindgange og-udgange
karts en bus bruges til udveksling af data mellem de forskellige komponenter i systemet
eksempler på ARM-platforme
der er mange enheder og indlejrede platforme, der har arm mikroprocessor f. eks.
Kristian Arduino Due
Kristian Raspberry Pi
Kristian STM32F103C8T6
Kristian LPC1768
andre mikrocontroller og platforme
som vi sagde før valg af en mikrocontroller eller en platform afhænger af mange faktorer (budget, antal stifter osv.…). Der er også en anden mikrocontrollere og platforme f. eks.
mikrocontrollere til lira PIC
▪ 8051
▪ ESP32
Motorola Microcontrollers
Microcontroller værktøj
siden oprettelsen af microcontroller, har der været mange typer af programmer og udstyr udviklingsværktøjer. Selvfølgelig kan nogle af værktøjerne bruges på tværs af forskellige mikrocontroller typer, men nogle er meget specifikke pr. Før du starter med microcontroller programmering, kan du få dig selv bekendt med microcontroller programmeringsværktøjer og sidst men ikke mindst udviklingsprocessen.
ved hjælp af indlejrede udviklingsværktøjer har vi muligvis brug for værktøjer som følger:
Assembler
det er et værktøj, der konverterer din kildekode i samling til maskinkode, for eksempel (GNU assembler).
Compiler
det er et program, der dækker din kildekode på et programmeringssprog på højt niveau til samlingssprog eller maskinkode. Kompilering kan være:
kur Native: dette betyder, at du kører compileren og den genererede kode på den samme maskine
kur Cross: dette betyder, at du kører compileren på en maskine, og den genererede kode kører på en anden maskine (processorarkitektur).
Linker og Locator
en linker er et program, der samler og forbinder samlingerne og samler operationer og producerer en enkelt eks.
en locator er et programværktøj, der kan bruges til at ændre hukommelseskortet for linkerudgangen.
Simulator
det er et program, der efterligner ægte scenario, det producerer en tilnærmelse af realtidssystemerne. Der anvendes en simulator:
if the real isenkram ikke tilgængelig
i farlige testmiljøer og scenarier
Debugger
det er et program og isenkram, der kan forbindes til min PC til mit indlejrede mål. En debugger bruges:
til at indstille breakpoints
til at spore henrettelse
til at dumpe hukommelse
til debugger kan være
til at indstille breakpoints
til at spore henrettelse
Flash loader
det er et program og udstyr, der kan bruges til at:
kart-program ROM/Flash
Kart-urvariabler
kart Erase ROM/Flash
Profiler
Profiler er et værktøj til at overvåge programmelkodens ydeevne
integreret udviklingsmiljø
det er et program, der har de fleste værktøjer alle i en. Det kan omfatte
▪ teksteditorer
▪ Compilere
▪ Debuggers
▪ Profilers
▪ Simulatorer
▪ Linkers
Microcontroller Software Sprog
Vi kan klassificere dem i to typer:
højt niveau
krit C/C++
Krit Java
Krit Ada
brug af denne type vil give en abstraktion fra udstyrsniveauet
lavt niveau
maskinkode
det er 0 ‘er og 1’ er og svært at blive skrevet af mennesker, men let for computere at forstå
samling
det er en mnemonisk kode og Pseudoinstruktioner for at forbedre læsbarheden
eksempler:
en instruktion består af mnemonic (opcode) + operander
Opcode er en operation taget af en maskinprocessor
operander er det endelige mål; opcode skal tage en operation for.
samlingssprog er læsbart og forståeligt mere end maskinkode, men du skal bruge det på en bestemt processor og have kendskab til dens arkitektur.
C/C++ programmeringssprog
sprog på højt niveau har følgende funktioner
let at skrive
let fleksibel
kritisk Processor uafhængig
høj produktivitet
mikrocontroller Programmeringseksempel ved hjælp af AVR ATMEGA16
ATmega 16 har følgende funktioner:
▪ 16 Kb I-system, Selv programmerbare flash-hukommelse
▪ 512 Bytes EEPROM
▪ 1 Kbyte Interne SRAM
▪ Programmering Lås for sikkerhed
Perifere Funktioner
▪ Real-Time Tæller med Separat Oscillator
▪ Programmerbare Seriel USART
▪ Fire PWM Kanaler
▪ 8-kanal, 10-bit ADC
▪ ▪ On-chip Oscillator
▪ Power-on Hvile og Brun-ud Afsløring
▪ Intern RC-Oscillator og Afbryde Kilder
▪ Spændinger (fra 2,7 v til 5.5V)
LED blinkende Programeksempel ved hjælp af ATmeg16 og Proteus
LED blinkende program i indlejrede systemer som programmet “hej verden” i applikationsudvikling. I det følgende eksempel lærer du og bruger Proteus-simulatoren til at køre dit første program. For at hente kildefilerne, skal du gå til denne mappe.
Skriv dit program ved hjælp af Atmel studio
efter at have hentet din IDE,
åbn den og vælg Nyt projekt og vælg placeringen af sekskantfilen som i følgende billede
det næste trin er at vælge mikrocontroller-familien
derefter får du følgende vindue med startkode
og skriv nu venligst følgende kode
det næste trin er at opbygge dit program ved at trykke på F7
derefter finder du sekskantfilen på den valgte placering
det næste trin er at bruge Proteus simulatoren
og nu oprette en skematisk fra den valgte en skabelon
og vælg Opret ikke et PCB layout
endelig er vi færdige, men vi skal tilføje sekskantfilen som i følgende billede
nu Rediger CKSEL sikringer
Gem og klik på play
og du kan se, at LED ‘ en er slukket for 500ms (venstre side) og tændt for 500ms (højre side)
program forklaring linje for linje
for at hente kildefilerne, skal du gå til denne mappe.
#Definer f_CPU 100000ul // for at oprette en konstant og vælge processorhastigheden
#Inkluder < avr/io.h>/ / for at huske nogle filer til indgange og udgange
#inkluderer < avr / delay.h> // husk denne fil for at bruge forsinkelsesfunktioner
int main(void){ // startfunktionen og hovedprogrammet
DDRA = 0b0000001; // for at konfigurere pin a som en output / retning
mens(1){ // til loop forever
PORTA = 0b00000001; // for at gøre PA0 = 1 og output 5V (led er tændt)
_delay_ms(500); // forsinkelse i et halvt sekund
PORTA = 0B0000000; / / for at gøre PA0 = 0 og output 0V (LED er slukket)
_delay_ms (500); //forsinkelse i et halvt sekund
}
tilbage 0;
} //slutningen af programmet
konklusion
i dag anvendes indlejrede systemer i vitale produkter og kan bruges til at sikre og spare mange mennesker, som i det medicinske domæne og andre applikationer. Du bør fortsætte med at lære efter at have fået et overblik og introduktion om mikrocontroller programmering. Dit næste skridt bør være at lære indlejret programmel design og real-time udløst systemer.
https://www.faa.gov/regulations_policies/handbooks_manuals/aviation/phak/
AVR Microcontroller og indlejrede systemer: Pearson ny International udgave: Brug af samling og C, Muhammad Ali, DeVry University
ARM System Developer ‘ s Guide Design og optimering af Systemprogrammel et volumen i Morgan Kaufmann-serien i computerarkitektur og Designbog • 2004