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