Step by Step Guide to Microcontroller Programming
tämä on askel askeleelta opas niille, jotka haluavat aloittaa Mikrocontroller Programming. Artikkeli alkaa esittelemällä muutamia oppaassa käytettäviä perustermejä, luettelon työkaluista, ohjelmointikielistä ja lopussa esimerkin ladattavasta koodista, jossa on askel askeleelta opas, jonka avulla voit harjoitella mikrokontrolleriohjelmointia.
mutta ennen sukellusta Mikrokontrolleriohjelmointiin. Määritellään ensin kaksi perustermiä: Laitteisto ja ohjelmisto.
laitteisto koostuu järjestelmän fyysisistä komponenteista, kuten siruista, näppäimistöstä, hiirestä, monitorista, muisteista, I/O-laitteista. Laitteistoa on vaikeampi kehittää ohjelmistoon verrattuna, se on suunniteltava hyvin tiettyihin sovelluksiin, ja se on erittäin tehokas ja täydellinen ratkaisu nopeisiin järjestelmiin.
ohjelmisto on laitteistolla toimivia ei-fyysisiä komponentteja tai sovelluksia, kuten käyttöjärjestelmiä, tietokonepelejä ja verkkosovelluksia. Ohjelmisto on erittäin konfiguroitavissa, helppo ja nopeampi kehittää, myös erittäin halpa verrattuna laitteistoon.
mikä on mikrokontrolleri
ymmärtääksemme, mikä mikrokontrolleri on, meidän on ensin ymmärrettävä, mikä mikroprosessori tai suoritin on (keskusyksikkö). Suoritin on minkä tahansa tietokonejärjestelmän sydän, se on kuin ihmisen aivot suorittaessaan tehtävää. Voimme periaatteessa jakaa sen kahteen oleelliseen osaan:
Ohjausyksikkö: tätä yksikköä käytetään datan hakemiseen muistista.
Suoritusyksikkö: tätä yksikköä käytetään tietojen suorittamiseen tai suorittamiseen.
Prosessorityyppejä
prosessorityyppejä on monia, kuten Yleiskäyttöiset prosessorit, sovelluskohtaiset järjestelmäprosessorit ja moniprosessorijärjestelmä. Yleiskäyttöisiä suorittimia on monenlaisia:
mikroprosessori
Mikrokontrolleri
sulautettu signaaliprosessori
digitaalinen signaaliprosessori
mikroprosessori on puolijohdekomponentti tai sirulla oleva tietokone, mutta ei täysin toimiva tietokone. Sen keskusyksikkö sisältää
ALU
Ohjelmalaskurit
rekisterit
muut piirit( kellotusaika, keskeytys)

mikrokontrolleri on IC, joka sisältää mikroprosessorin ja joitakin oheislaitteita olla täydellinen toimiva tietokone, oheislaitteet, kuten ADC, RAM, ROM, DAC.

mikrokontrollerin historia
alun perin Intel corporation oli ensimmäinen mikrokontrollereiden valmistaja. Ensimmäinen Mikrokontrolleri valmistettiin vuonna 1971 Yhdysvalloissa. Se oli 4-bittinen Mikrokontrolleri, jonka nimi oli i4004. Viimeksi Intel valmisti tuolloin kehittyneempiä malleja 8-bittisellä mikrokontrollerilla, jonka jälkeen Toshiba kehitti 12-bittisen mikrokontrollerin.
mikrokontrollereiden Sovellukset
Mikrokontrollereilla on monia sovelluksia monilla toimialoilla, esim. auto -, lääke -, teollisuusautomaatio -, ilmailu-ja robotiikkateollisuudessa.
esimerkiksi autoteollisuudessa nykyautoissa on yli 100 mikroprosessoria esimerkiksi ilmastointijärjestelmille, ABS-järjestelmille, EBD-järjestelmille ja myös ADAS-järjestelmille tai kehittyneille ajoavustinjärjestelmille, kuten adaptiiviselle curies-ohjaimelle ja kaista-avustimelle.
lääketieteen alalla on lääketieteellisiä laitteita, jotka sisältävät mikrokontrollereita, kuten magneettikuvaus, glukoositestisarja, kannettava EKG. Seuraavassa kuvassa on glukoositestilaite.
ilmailu-ja avaruusteollisuudessa suurin osa lentokoneista on suunniteltu uusilla mikrokontrollereita käyttävillä avioniikkajärjestelmillä. Lisäksi on lennonjohtojärjestelmä, lennonjohtojärjestelmä, navigointi-ja sääjärjestelmät, jotka kaikki perustuvat mikrokontrollereihin.
Suositut Mikrokontrollerit
mikrokontrollereiden tyyppejä ja alustoja on monia, mutta mikrokontrollerin valinta riippuu monista tekijöistä:
käyttö
budjetti
suorituskyky
GPIO — pinnien lukumäärä
muistikoko
Käyttöympäristön lämpötila
virrankulutus
AVR Mikrokontrolleri
seuraavassa kuvassa on lohkokaavio Ave12da: sta, joka on yksi suosituimmista Mikrokontrollereista-AVR-Mikrokontrolleri:

AVR mikrokontrollereita valmistaa Atmel corporation (nykyään: Microchip), Atmel on 6 perheet AVR Mikrokontrollerit, 4 perheet yleiskäyttöinen mikrokontrollerit ja 2 erityistä tarkoitusta mikrokontrollerit. Yleiskäyttöiset mikrokontrollerit ovat:
8 bit-mega AVR
8 bit-at Tiny
8 & 16 bit-AVR Xmega
32 bit – AVR
spesifiset mikrokontrollerit ovat:
Automotive AVR
Battery Management
Automotive AVR, nimensä mukaisesti se on kehitetty autosovelluksiin. Se voi toimia erittäin korkeissa lämpötiloissa jopa 150 Celsius, ja se sisältää suojausjärjestelmät oikosulku ongelmia.
akunhallinta mikrokontrolleri on kehitetty akkujen hallintajärjestelmiin lataamisen ja purkamisen turvaamiseksi.
Examples of AVR Platforms
Arduino UNO
Adafruit Blue fruit Micro
Raspduino
Digispark Pro
ARM-mikroprosessori/Mikrokontrolleri
ARM-mikroprosessori on suosituin prosessori maailmassa, erityisesti kuluttajasovelluksissa. Sinulla voi olla arm-prosessoripohjainen laite, mutta et tiedä! ARM on useimmiten avainkomponentti kaikissa onnistuneissa 32-bittisissä sulautetuissa järjestelmissä. Ensimmäinen ARM kehitettiin vuonna 1985.
RISC-tekniikkaa
ARM on käytetty RISC-tekniikkaa, RISC on lyhenne sanoista reduced instruction set computer, se on suunnittelufilosofia antaa yksinkertaisia ohjeita yhden syklin aikana. Se nojaa enemmän ohjelmistoon. Toisaalta CISC-tekniikka nojaa enemmän laitteistoon.

RISC-tekniikka keskittyy pelkistämään suorittimen ohjesarjaa. Toisaalta CISC-suorittimessa on käskyjoukon ei-kiinteä numero.
ARM ominaisuudet
Arm on monia ominaisuuksia jokaiselle sulautetun järjestelmän suunnittelija etsii, esim.pieni virrankulutus johtuen sen kompakti koko, myös korkea koodin tiheys on toinen ominaisuus, koska kehitämme sulautettuja järjestelmiä, meillä on rajalliset resurssit useimmissa tapauksissa.
KÄSIVARSIPOHJAISEN mikrokontrollerin sisäinen rakenne
tämä luku osoittaa useimpien KÄSIVARSIPOHJAISTEN laitteiden sisäisen rakenteen:
laatikot edustavat toimintoja, linjat busseja. Puhutaan enemmän jokaisesta osasta yksityiskohtia:
ARM-suoritin on keskeinen komponentti, joka vastaa käsittelytoiminnoista
ohjaimia käytetään koordinoimaan järjestelmän toimintoja muistina ja keskeytysohjaimina
oheislaitteita käytetään tuottamaan järjestelmän tulot ja lähdöt
väylää käytetään tiedonvaihtoon järjestelmän eri osien välillä
esimerkkejä ARM-alustoista
on monia laitteita ja sulautettuja alustoja, joissa on ARM-mikroprosessori esim.
Arduino Due
Raspberry Pi
STM32F103C8T6
NXP LPC1768
muut Mikrokontrollerit ja alustat
kuten sanoimme ennen mikrokontrollerin tai Alustan valintaa riippuu monista tekijöistä (budjetti, nastojen lukumäärä jne.…). Mukana on myös muita mikrokontrollereita ja alustoja esim.
mikrokontrollerit
8051
ESP32
Motorolan Mikrokontrollerit
mikrokontrollerin ohjelmistot ja Laitteistotyökalut
mikrokontrollerin luomisen jälkeen on ollut olemassa monenlaisia ohjelmisto-ja laitteistokehitystyökaluja. Tietenkin joitakin työkaluja voidaan käyttää eri mikrokontrollerityyppeihin, mutta jotkut ovat hyvin spesifisiä mikrokontrolleria kohti. Ennen mikrokontrolleriohjelmoinnin aloittamista kannattaa tutustua mikrokontrollerin ohjelmointityökaluihin ja viimeisenä muttei vähäisimpänä kehitysprosessiin.
sulautettujen kehitystyökalujen avulla saatamme tarvita työkaluja seuraavasti:
Assembler
se on ohjelmistotyökalu, joka muuntaa assemblyssa lähdekoodisi konekoodiksi, esimerkiksi (GNU assembler).
Kääntäjä
se on ohjelma, joka peittää lähdekoodin korkean tason ohjelmointikielellä assembly-kieleksi tai konekoodiksi. Kokoelma voi olla:
alkuperäinen: tämä tarkoittaa, että suoritat kääntäjän ja luodun koodin samalla koneella
Cross: tämä tarkoittaa, että suoritat kääntäjän koneella ja luotu koodi toimii eri koneella (prosessoriarkkitehtuuri).
Linker and Locator
linker on ohjelma, joka kerää ja yhdistää kokoelmat ja kokoaa operaatiot ja tuottaa yhden Eksen.
paikannin on ohjelmatyökalu, jolla voidaan muuttaa linker-lähdön muistikarttaa.
simulaattori
se on ohjelma, joka jäljittelee todellista skenaariota, se tuottaa likiarvon reaaliaikajärjestelmistä. Simulaattoria käytetään:
jos todellinen laitteisto ei ole käytettävissä
vaarallisissa testiympäristöissä ja skenaarioissa
Debugger
se on ohjelma ja laite, joka voidaan liittää tietokoneeseen ja sulautettuun kohteeseen. Käytetään vianetsintätyökalua:
asettaa raja-arvot
jäljittää suoritusta
dumpata muistia
laitteiston vianetsintä voi olla
piirien sisäinen vianetsintä
vianetsintäohjelmisto aluksella
Flash loader
se on ohjelma ja laite, jota voidaan käyttää:
Program ROM/Flash
Watch variables
Erase ROM/Flash
Profiler
Profiler on työkalu ohjelmakoodin suorituskyvyn seuraamiseen
integroitu kehitysympäristö
se on ohjelma, jolla on eniten työkaluja kaikissa yksi. Se voi sisältää
Tekstieditorit
kääntäjät
debuggerit
Profiloijat
Simulaattorit
Linkerit
Mikrokontrollerohjelmistokielet
voimme luokitella niitä kahteen tyyppiin:
korkean tason
C/C++
Java
Ada
tämän tyypin avulla saadaan abstraktio laitteistotasolta
matalan tason
konekoodi
se on 0: s ja 1s ja vaikea ihmisten kirjoittama, mutta tietokoneiden helppo ymmärtää
Assembly
se on Muistikoodi ja pseudo-ohjeet luettavuuden parantamiseksi
esimerkkejä:
ohje koostuu muistisäännöistä (opcode) + operandeista
Opcode on koneprosessorin suorittama operaatio
operandit on lopullinen kohde; opcode joutuu suorittamaan operaation.
Assembly-kieli on luettavissa ja ymmärrettävissä enemmän kuin konekoodi, mutta sitä pitää käyttää tietyllä prosessorilla ja sen arkkitehtuurin tuntemuksella.
C/C++-ohjelmointikielillä
korkean tason kielillä on seuraavat ominaisuudet
helppo kirjoittaa
joustava
prosessorista riippumaton
korkea tuottavuus
Mikrocontroller-ohjelmointi esimerkki käyttäen AVR ATMEGA16
atmega 16: ssa on seuraavat ominaisuudet:
16 Kb järjestelmän sisäistä itse ohjelmoitavaa flash-muistia
512 tavua EEPROM
1 Kbyte sisäinen SRAM
ohjelmointilukko tietoturvaa varten
Oheisominaisuudet
Reaaliaikalaskuri erillisellä oskillaattorilla
Reaaliaikalaskuri erillisellä oskillaattorilla
ohjelmoitava sarjamonistuslaite
neljä PWM-kanavaa
8-kanavainen, 10-bittinen ADC
siruoskillaattori
virransyöttö-ja häiriötunnistus
sisäinen RC-oskillaattori ja Keskeytyslähteet
jännitteet (2,7 V-5.5v)
LED Blinking Program esimerkki käyttäen ATmeg16 ja Proteus
LED blinking program sulautetuissa järjestelmissä, kuten ”hello world” – ohjelma sovelluskehityksessä. Seuraavassa esimerkissä opit ja käytät Proteus simulaattoria ensimmäisen ohjelmasi ajamiseen. Voit ladata lähdetiedostot, siirry tähän kansioon.
Kirjoita ohjelma Atmel studiolla
sen jälkeen, kun olet ladannut ideasi,
avaa se ja valitse uusi projekti ja valitse hex-tiedoston sijainti kuten seuraavassa kuvassa
seuraava askel on valita Mikrocontroller-perhe
tämän jälkeen saat seuraavan ikkunan aloituskoodilla
ja kirjoita nyt koodin
seuraava askel on rakentaa ohjelma painamalla F7
tämän jälkeen löydät hex-tiedoston valitusta sijainnista
seuraava vaihe on Proteus-simulaattorin käyttö
and now create a schematic from the selected a template
And choose Do not create a PCB layout
Finally, we are done but we need to add the hex file as in the following image
Now edit Cksel Fuses
Tallenna ja klikkaa play
ja näet, että LED on pois päältä 500ms (vasen puoli) ja päälle 500ms (oikea puoli))

ohjelman selitys rivi riviltä
jos haluat ladata lähdetiedostot, siirry tähän kansioon.
#määrittele f_cpu 100000ul/ / luodaksesi vakion ja valitaksesi suorittimen nopeuden
#include <avr / io.h>/ / joidenkin tiedostojen takaisinkutsuun tuloille ja lähdöille
#sisältävät <avr / delay.h> // recall this file to use delay functions
int main(void){ // the starting function and the main program
DDRA = 0b0000001; // to configure the pin a as an output / direction
While(1){ // to loop forever
PORTA = 0b00000001; // jotta PA0 = 1 ja lähtö 5V (LED on päällä)
_delay_ms(500); // viive puoli sekuntia
PORTA = 0b0000000; // tehdä PA0 = 0 ja Lähtö 0V (LED on pois päältä)
_delay_ms (500); / / viive puoli sekuntia
}
paluu 0;
} //ohjelman loppu
johtopäätös
nykyään sulautettuja järjestelmiä käytetään elintärkeissä tuotteissa ja niitä voidaan käyttää turvaamaan ja pelastamaan paljon ihmisiä, kuten lääketieteen alalla ja muissa sovelluksissa. Sinun pitäisi jatkaa oppimista saatuaan yleiskuvan ja johdannon mikrokontrolleriohjelmoinnista. Seuraava askel on opetella sulautettujen ohjelmistojen suunnittelua ja reaaliaikaisia käynnistettyjä järjestelmiä.
https://www.faa.gov/regulations_policies/handbooks_manuals/aviation/phak/
AVR Mikrocontroller and Embedded Systems: Pearson New International Edition: Using Assembly and C, Muhammad Ali Mazidi, DeVry University
Arm System Developer ’ s Guide Designing and Optimizing System Software a volume in the Morgan Kaufmann Series in Computer Architecture and Design Book • 2004