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,

Mikrocontroller programming AVR

avaa se ja valitse uusi projekti ja valitse hex-tiedoston sijainti kuten seuraavassa kuvassa

Mikrocontroller programming AVR

seuraava askel on valita Mikrocontroller-perhe

Mikrocontroller programming AVR

tämän jälkeen saat seuraavan ikkunan aloituskoodilla

Mikrocontroller programming AVR

ja kirjoita nyt koodin

Mikrocontroller programming AVR

seuraava askel on rakentaa ohjelma painamalla F7

Mikrocontroller programming AVR

tämän jälkeen löydät hex-tiedoston valitusta sijainnista

Mikrocontroller-ohjelmointi AVR

seuraava vaihe on Proteus-simulaattorin käyttö

and now create a schematic from the selected a template

 microcontroller programming AVR

And choose Do not create a PCB layout

Mikrocontroller programming AVR

Finally, we are done but we need to add the hex file as in the following image

Mikrocontroller programming AVR

Now edit Cksel Fuses

Mikrocontroller programming AVR

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

Leave a Reply

Sähköpostiosoitettasi ei julkaista.