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,

mikrocontroller programmering AVR

åbn den og vælg Nyt projekt og vælg placeringen af sekskantfilen som i følgende billede

mikrocontroller programmering AVR

det næste trin er at vælge mikrocontroller-familien

mikrocontroller programmering AVR

derefter får du følgende vindue med startkode

mikrocontroller programmering AVR

og skriv nu venligst følgende kode

microcontroller programmering AVR

det næste trin er at opbygge dit program ved at trykke på F7

microcontroller programmering AVR

derefter finder du sekskantfilen på den valgte placering

microcontroller programmering AVR

det næste trin er at bruge Proteus simulatoren

og nu oprette en skematisk fra den valgte en skabelon

 microcontroller programmering AVR

og vælg Opret ikke et PCB layout

microcontroller programmering AVR

endelig er vi færdige, men vi skal tilføje sekskantfilen som i følgende billede

microcontroller programmering AVR

nu Rediger CKSEL sikringer

microcontroller programmering AVR

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

Leave a Reply

Din e-mailadresse vil ikke blive publiceret.