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: / /
https: / /
Periferiutrustning för att tillhandahålla systemingångar och-utgångar
https: / /
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: / /
https: / /
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,
öppna den och välj Nytt projekt och välj platsen för hex-filen som i följande bild
nästa steg är att välja microcontroller-familjen
därefter får du följande fönster med startkod
och skriv nu följande kod
nästa steg är att bygga ditt program genom att trycka på F7
därefter hittar du hex-filen på den valda platsen
nästa steg är att använda Proteus Simulator
och nu skapa en schematisk från den valda en mall
och välj inte skapa en PCB layout
slutligen är vi klara men vi måste lägga till hex-filen som i följande bild
nu redigera CKSEL säkringar
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