steg för steg Guide till Microcontroller programmering

Detta är en steg för steg guide för dem som vill börja med Microcontroller programmering. Artikeln börjar med att introducera några grundläggande termer som kommer att användas i guiden, en lista över verktyg, programmeringsspråk och i slutet, ett exempel på en nedladdningsbar kod med en stegvis guide som du kan använda för att öva mikrokontroller programmering.

men innan du dyker in i Mikrokontrollprogrammering. Låt oss definiera första två grundläggande termer: Hårdvara och mjukvara.

hårdvara består av de fysiska komponenterna i systemet, såsom ett chips, tangentbord, en mus, en bildskärm, minnen, i/O-enheter. Hårdvara är svårare att utveckla jämfört med programvara, den måste utformas för mycket specifika applikationer, och det är en mycket effektiv och perfekt lösning i höghastighetssystem.

programvara är de icke-fysiska komponenterna eller applikationerna som körs på hårdvaran, såsom operativsystem, dataspel och nätverksapplikationer. Programvaran är mycket konfigurerbar, enkel och snabbare att utvecklas, också mycket billig jämfört med hårdvara.

Vad är en mikrokontroller

för att förstå vad en mikrokontroller är måste vi först förstå vad en mikroprocessor eller en CPU är (Central processorenhet). En CPU är ett hjärta i alla datorsystem, det är som den mänskliga hjärnan när man utför en uppgift. Vi kan i princip dela upp det i två väsentliga delar:

styrenhet: den här enheten används för att hämta data från minnet.

exekveringsenhet: den här enheten används för att köra eller köra data.

typer av processorer

det finns många kategorier av processorer som processorer för allmänt ändamål, applikationsspecifik systemprocessor och multiprocessorsystem. General purpose processor har många typer:

mikroprocessor i Brasilien

mikrokontroller i Brasilien

inbäddad processor i Brasilien

digital signalprocessor i Brasilien

mikroprocessor är en halvledaranordning eller en dator på ett chip, men inte en fullt fungerande dator. Dess centrala processorenhet innehåller

acuc alu

acuc programräknare

Acuc register

Acuc andra kretsar (klock tid, avbryta)

en mikrokontroller är en IC som innehåller en mikroprocessor och vissa kringutrustning för att vara en komplett funktionell dator, kringutrustning t.ex. ADC, RAM, ROM, DAC.

historia av mikrokontroller

ursprungligen var Intel corporation den första tillverkningen av mikrokontroller. Den första mikrokontroller producerades 1971 i USA. Det var en 4-bitars mikrokontroller med namnet i4004. Senare producerade Intel mer sofistikerade modeller under den tiden med en 8-bitars mikrokontroller och därefter utvecklades en 12-bitars mikrokontroller av Toshiba.

tillämpningar av mikrokontroller

mikrokontroller har många tillämpningar inom många branscher, t.ex. automotive, medicinsk, industriell automation, flyg, robotik.

i bilindustrin har till exempel moderna bilar idag mer än 100 mikroprocessorer för system som luftkonditionering, ABS, EBD och även ADAS eller avancerade körhjälpsystem som adaptive curies controller och lane assist, följande är en bild av en ECU eller elektronisk styrenhet.

i den medicinska domänen finns det medicinska apparater som inkluderar mikrokontroller som en MR, glukosprovuppsättning, bärbar EKG. Följande bild är en glukostestanordning.

inom flygindustrin har de flesta flygplanen utformats med nya avioniksystem med hjälp av mikrokontroller. Dessutom finns flygkontrollsystem, flygledningssystem, navigations-och vädersystem som alla är baserade på mikrokontroller.

populära mikrokontroller

det finns många mikrokontroller typer och plattformar, men att välja en mikrokontroller beror på många faktorer:

▪ Ansökan

▪ Budget

▪ Performance

▪ Antal GPIO pins

▪ Minne storlek

▪ Temperatur för operativmiljön

▪ strömförbrukning

AVR Mikrokontroller

På följande bild visas ett blockschema för AVE12DA, en av de mest populära mikrokontroller famlily — AVR microcontroller:

AVR mikrokontroller är producerad av Atmel corporation (idag: Mikrochip), Atmel har 6 familjer av AVR-mikrokontroller, 4 familjer som generella mikrokontroller och 2 som specifika mikrokontroller. Mikrokontroller för allmänna ändamål är:

8 – bitars 8-mega avr

8-bitars 8-bitars

▪ 8 & 16 bit-avr Xmega

32-bit-avr 32

mikrokontroller för specifika ändamål är:

automotive avr

battery Management

Automotive AVR, från sitt namn har den utvecklats för fordonsapplikationer. Det kan fungera under mycket höga temperaturer upp till 150 Celsius, och det inkluderar skyddssystem för kortslutningsproblem.

Battery management microcontroller är utvecklad för batterihanteringssystem för att säkra laddning och urladdning.

exempel på AVR-plattformar

Arduino Arduino Arduino Uno

Adafruit blåfrukt micro

Raspduino Raspduino

Digispark Pro

ARM-mikroprocessor/mikrokontroller

ARM-mikroprocessorn är den mest populära processorn i världen, särskilt i Konsumentapplikationerna. Du kanske har en ARM-processorbaserad enhet, men du vet inte! ARM är mestadels en nyckelkomponent i alla framgångsrika 32-bitars inbyggda system. Den första armen utvecklades 1985.

RISC-teknik

ARM används RISC-teknik, RISC står för reducerad instruktionsuppsättning dator, Det är en designfilosofi att leverera enkla instruktioner inom en enda cykel. Det bygger mer på programvaran. Å andra sidan förlitar sig CISC-tekniken mer på hårdvaran.

RISC-tekniken fokuserar på att minska processorns instruktionsuppsättning. Å andra sidan har CISC-processorn ett icke-fast nummer av instruktionsuppsättningen.

ARM-funktioner

Arm har många funktioner för varje inbäddat systemdesigner letar efter, t.ex. låg strömförbrukning på grund av sin kompakta storlek, även hög koddensitet är en annan funktion eftersom vi utvecklar inbyggda system, vi kommer att ha begränsade resurser i de flesta fall.

intern struktur av ARM-baserad mikrokontroller

denna figur visar den interna strukturen hos de flesta ARM-baserade enheter:

rutorna representerar funktioner, linjerna representerar bussar. Låt oss prata mer om varje komponent i detaljer:

https: / / ARM-processorn är kärnkomponenten som den ansvarar för bearbetningsoperationerna

https: / / används för att samordna systemfunktionerna som minnes-och avbrottskontroller

Periferiutrustning för att tillhandahålla systemingångar och-utgångar

https: / / en buss används för att utbyta data mellan de olika komponenterna i systemet

exempel på ARM-plattformar

det finns många enheter och inbäddade plattformar som har ARM mikroprocessor t. ex.

Arduino Arduino på grund av

Raspberry Pi på grund av att du

stm32f103c8t6 på grund av att du

NXP LPC1768 på grund av att du

andra mikrokontroller och plattformar

som vi sa innan du valde en mikrokontroller eller en plattform beror på många faktorer (budget, antal stift etc.…). Det finns också en annan mikrokontroller och plattformar t. ex.

pic-mikrokontroller för mikrokontroller

▪ 8051

▪ ESP32

Motorola microcontrollers

Microcontroller mjukvaru-och hårdvaruverktyg

sedan skapandet av microcontroller har det funnits många typer av mjukvaru-och hårdvaruutvecklingsverktyg. Naturligtvis kan några av verktygen användas över olika mikrokontroller typer men vissa är mycket specifika per mikrokontroller. Innan du börjar med microcontroller programmering, kanske du vill bekanta dig med microcontroller programmeringsverktyg och, sist men inte minst, utvecklingsprocessen.

med hjälp av inbyggda utvecklingsverktyg kan vi behöva verktyg enligt följande:

Assembler

det är ett programverktyg som konverterar din källkod i montering till maskinkod, till exempel (GNU assembler).

kompilator

det är ett program som täcker din källkod på ett programmeringsspråk på hög nivå till monteringsspråk eller maskinkod. Sammanställning kan vara:

native för Brasilien: det betyder att du kör kompilatorn och den genererade koden på samma maskin

cross för Brasilien: Det betyder att du kör kompilatorn på en maskin och den genererade koden körs på en annan maskin (processorarkitektur).

Linker och Locator

en linker är ett program som samlar in och länkar sammanställningarna och monterar operationer och producerar en enda exe.

en locator är ett programverktyg som kan användas för att ändra minneskartan för länkutgången.

Simulator

det är ett program som imiterar verkligt scenario, det ger en approximation av realtidssystemen. En simulator används:

https: / / om den verkliga hårdvaran inte är tillgänglig

https: / / i farliga testmiljöer och scenarier

Debugger

det är ett program och hårdvaruenhet som kan kopplas till min dator till mitt inbäddade mål. En debugger används:

för att ställa in brytpunkter

för att spåra körning

för att dumpa minne

hårdvara debugger kan vara

för att ställa in in brytpunkter

för att spåra programvara ombord

Flash loader

det är ett program och hårdvaruenhet som kan användas för att:

program för att övervaka utvecklingen av programmet Rom/Flash

klocka variabler

avinstallation av programmet Rom/Flash

Profiler

Profiler är ett verktyg för att övervaka prestandan hos programvaran koden

integrerad utvecklingsmiljö

det är ett program som har de flesta verktyg i ett. Det kan omfatta

▪ textredigerare

▪ Kompilatorer

▪ Debuggers

▪ Profilers

▪ Simulatorer

▪ Linkers

Mikrokontroller Program Språk

Vi kan klassificera dem i två typer:

hög nivå

c/c++(c / c++)

Java

Ada (Ada)

användning av denna typ kommer att ge en abstraktion från hårdvarunivå

låg nivå

maskinkod

det är 0 och 1s och svårt att skrivas av människor, men lätt för datorer att förstå

Assembly

det är en mnemonic kod och pseudo instruktioner för att förbättra läsbarheten

exempel:

en instruktion består av mnemonic (opcode) + operander

Opcode är en operation som tas av en maskinprocessor

operander är det slutliga målet; opcode måste ta en operation för.

monteringsspråk är läsbart och förståeligt mer än maskinkod men du måste använda den på en specifik processor och ha kunskap om dess arkitektur.

C/C++ programmeringsspråk

högnivåspråk har följande funktioner

lätt att skriva & Lt; 8260 & gt;

atmega 16 har följande funktioner:

▪ 16 Kb I-systemet Själv programmerbara flash-minne

▪ 512 Bytes EEPROM

▪ 1 Kbyte Inre SRAM

▪ Programmering Lås för säkerhet

Perifera Funktioner

▪ realtid Motverka med Separat Oscillator

▪ Programmerbara Seriell USART

▪ Fyra PWM-Kanaler

▪ 8-kanal 10-bitars ADC

▪ On-chip Oscillator

▪ Makt-på Vila och Brown-out Detektering

▪ Intern RC-Oscillator och Avbryta Källor

▪ Spänningar (från 2,7 v till 5.5V)

LED-blinkande programexempel med ATmeg16 och Proteus

LED-blinkande program i inbyggda system som ”hello world” – programmet i applikationsutveckling. I följande exempel lär du dig och använder Proteus-simulatorn för att köra ditt första program. För att ladda ner källfilerna, gå till den här mappen.

Skriv ditt program med Atmel studio

när du har laddat ner din IDE,

microcontroller programming AVR

öppna den och välj Nytt projekt och välj platsen för hex-filen som i följande bild

microcontroller programming AVR

nästa steg är att välja microcontroller-familjen

microcontroller programming avr

därefter får du följande fönster med startkod

microcontroller programmering avr

och skriv nu följande kod

microcontroller programmering AVR

nästa steg är att bygga ditt program genom att trycka på F7

microcontroller programmering AVR

därefter hittar du hex-filen på den valda platsen

microcontroller programmering avr

nästa steg är att använda Proteus Simulator

och nu skapa en schematisk från den valda en mall

microcontroller programmering AVR

och välj inte skapa en PCB layout

microcontroller programmering AVR

slutligen är vi klara men vi måste lägga till hex-filen som i följande bild

microcontroller programmering AVR

nu redigera CKSEL säkringar

microcontroller programmering avr

spara och klicka på play

och du kan se att lysdioden är avstängd för 500ms (vänster sida) och på för 500ms (höger sida)

programförklaring rad för rad

för att ladda ner källfilerna, gå till den här mappen.

# definiera f_CPU 100000ul/ / för att skapa en konstant och välj processorhastighet

#inkludera <avr / Io.h> / / för att återkalla vissa filer för in-och utgångar

#inkluderar <avr / delay.h> // minns den här filen för att använda fördröjningsfunktioner

int main(void){ // startfunktionen och huvudprogrammet

DDRA = 0b0000001; // för att konfigurera stiftet a som en utgång / riktning

medan(1){ // till loop för evigt

PORTA = 0b00000001; // för att göra PA0 = 1 och utgång 5V (LED är på)

_delay_ms(500); // fördröjning för en halv sekund

PORTA = 0b0000000; / / för att göra PA0 = 0 och utgång 0v (LED är avstängd)

_delay_ms (500); / / fördröjning för en halv sekund

}

tillbaka 0;

} //slutet av programmet

slutsats

numera inbyggda system används i viktiga produkter och kan användas för att säkra och spara en massa människor, som i den medicinska domänen och andra tillämpningar. Du bör fortsätta lära dig efter att ha fått en översikt och introduktion om mikrokontrollerprogrammering. Ditt nästa steg bör lära sig inbäddad mjukvarudesign och realtidsutlöst system.

https://www.faa.gov/regulations_policies/handbooks_manuals/aviation/phak/

AVR mikrokontroller och inbyggda system: Pearson New International Edition: använda montering och C, Muhammad Ali Mazidi, DeVry University

ARM system Developer ’ s Guide designa och optimera systemprogramvara en volym i Morgan Kaufmann-serien i datorarkitektur och Designbok * 2004

Leave a Reply

Din e-postadress kommer inte publiceras.