krok za krokem průvodce programováním mikrokontrolérů

Toto je průvodce krok za krokem pro ty, kteří chtějí začít s programováním mikrokontrolérů. Článek začíná představením několika základních pojmů, které budou použity v příručce, seznam nástrojů, programovací jazyky a na konci příklad kódu ke stažení s průvodcem krok za krokem, který byste mohli použít k procvičování programování mikrokontrolérů.

ale předtím, než se ponoříte do programování mikrokontrolérů. Definujme první dva základní pojmy: Hardware a Software.

Hardware se skládá z fyzických komponent v systému, jako jsou čipy, klávesnice, myš, monitor, paměti, I/o zařízení. Hardware je těžší vyvíjet ve srovnání se softwarem, musí být navržen pro velmi specifické aplikace a je to velmi efektivní a dokonalé řešení ve vysokorychlostních systémech.

Software je nefyzické komponenty nebo aplikace, které běží na hardwaru, jako jsou operační systémy, Počítačové Hry a síťové aplikace. Software je vysoce konfigurovatelný, snadno a rychleji se vyvíjí, také velmi levný ve srovnání s hardwarem.

co je mikrokontrolér

abychom pochopili, co je mikrokontrolér, musíme nejprve pochopit, co je mikroprocesor nebo CPU (centrální procesorová jednotka). CPU je srdcem každého počítačového systému, je to jako lidský mozek při provádění úkolu. V zásadě ji můžeme rozdělit na dvě základní části:

řídicí jednotka: Tato jednotka se používá k načtení dat z paměti.

prováděcí jednotka: Tato jednotka se používá ke spuštění nebo spuštění dat.

typy procesorů

existuje mnoho kategorií procesorů, jako jsou univerzální procesory, aplikační systémový procesor a víceprocesorový systém. Univerzální procesor má mnoho typů:

▪ mikroprocesor

▪ mikrokontrolér

▪ vestavěný procesor

▪ procesor digitálního signálu

mikroprocesor je polovodičové zařízení nebo počítač na čipu, ale ne plně funkční počítač. Jeho centrální procesorová jednotka obsahuje

▪ ALU

▪ čítače programů

▪ Registry

Other Ostatní obvody (čas taktování, přerušení)

mikrokontrolér je IC, který obsahuje mikroprocesor a některé periferie jako kompletní funkční počítač, periferie např.

historie mikrokontroléru

společnost Intel byla původně první výrobou mikrokontrolérů. První mikrokontrolér byl vyroben v roce 1971 v USA. Byl to 4bitový mikrokontrolér s názvem i4004. Intel v té době vyráběl sofistikovanější modely s 8bitovým mikrokontrolérem a poté byl 12bitový mikrokontrolér vyvinut společností Toshiba.

aplikace mikrokontrolérů

mikrokontroléry mají mnoho aplikací v mnoha průmyslových odvětvích, např.

v automobilovém průmyslu mají například moderní automobily v dnešní době více než 100 mikroprocesorů pro systémy jako klimatizace, ABS, EBD a také ADAS nebo pokročilé asistenční systémy řízení, jako je adaptivní curies controller a lane assist, následuje obrázek ECU nebo elektronické řídicí jednotky.

v lékařské oblasti existují zdravotnické prostředky, které zahrnují mikrokontroléry, jako je MRI, glukózová testovací sada, přenosné EKG. Následující obrázek je zařízení pro testování glukózy.

v letectví byla většina letadel navržena s novými avionickými systémy pomocí mikrokontrolérů. Kromě toho existují systém řízení letu, systém řízení letového provozu, navigační a meteorologické systémy, které jsou založeny na mikrokontrolérech.

populární mikrokontroléry

existuje mnoho typů a platforem mikrokontrolérů, ale výběr mikrokontroléru závisí na mnoha faktorech:

▪ aplikace

▪ rozpočet

▪ výkon

▪ počet pinů GPIO

▪ velikost paměti

Temperature teplota pracovního prostředí

▪ spotřeba energie

AVR mikrokontrolér

následující obrázek obsahuje blokové schéma AVE12DA, jednoho z nejpopulárnějších mikrokontrolérů famlily — mikrokontrolér AVR:

mikrokontroléry AVR vyrábí společnost Atmel corporation (dnes: Microchip), Atmel má 6 rodin mikrokontrolérů AVR, 4 rodiny jako univerzální mikrokontroléry a 2 jako specifické účelové mikrokontroléry. Univerzální mikrokontroléry jsou:

▪ 8 bit-mega AVR

▪ 8 bit-AT Tiny

▪ 8 & 16 bit-AVR Xmega

32 32 bit-AVR

specifické účelové mikrokontroléry jsou:

Automotive Automotive AVR

▪ správa baterií

Automotive AVR, od svého názvu byl vyvinut pro automobilové aplikace. Může pracovat při velmi vysokých teplotách až do 150 stupňů Celsia a zahrnuje ochranné systémy pro problémy se zkratem.

mikrokontrolér pro správu baterií je vyvinut pro systémy správy baterií pro zajištění nabíjení a vybíjení.

příklady platforem AVR

▪ Arduino Uno

▪ Adafruit Blue fruit Micro

▪ Raspduino

▪ Digispark pro

ARM mikroprocesor/mikrokontrolér

arm mikroprocesor je nejoblíbenějším procesorem na světě, zejména ve spotřebitelských aplikacích. Možná máte zařízení založené na procesoru ARM, ale nevíte! ARM je většinou klíčovou součástí všech úspěšných 32bitových vestavěných systémů. První rameno bylo vyvinuto v roce 1985.

RISC technologie

ARM se používá RISC technologie, RISC je zkratka pro sníženou instrukční sadu počítače, je to filozofie designu dodávat jednoduché pokyny v rámci jednoho cyklu. Spoléhá se více na software. Na druhé straně se technologie CISC spoléhá více na hardware.

technologie RISC se zaměřuje na snížení instrukční sady procesoru. Na druhé straně má procesor CISC nefixované číslo instrukční sady.

funkce ARM

Arm má mnoho funkcí pro každého návrháře vestavěného systému, který hledá, např. nízká spotřeba energie díky své kompaktní velikosti, také vysoká hustota kódu je další funkcí, protože vyvíjíme vestavěné systémy, ve většině případů budeme mít omezené zdroje.

vnitřní struktura mikrokontroléru založeného na ARM

tento obrázek ukazuje vnitřní strukturu většiny zařízení založených na ARM:

krabice představují funkce, linky představují autobusy. Promluvme si více o každé součásti v detailech:

▪ procesor ARM je základní složkou, kterou odpovídá za operace zpracování

▪ regulátory se používají ke koordinaci funkcí systému jako řadiče paměti a přerušení

▪ periferie se používají k zajištění vstupů a výstupů systému

▪ sběrnice se používá k výměně dat mezi různými součástmi systému

příklady platforem ARM

existuje mnoho zařízení a vestavěných platforem, které mají mikroprocesor arm, např.

▪ Arduino Due

▪ Raspberry Pi

▪ STM32F103C8T6

▪ NXP LPC1768

Ostatní mikrokontroléry a platformy

jak jsme řekli před výběrem mikrokontroléru nebo platformy závisí na mnoha faktorech (rozpočet, počet pinů atd.…). Existují také další mikrokontroléry a platformy např.

▪ PIC mikrokontroléry

▪ 8051

▪ ESP32

▪ mikrokontroléry Motorola

softwarové a hardwarové nástroje mikrokontroléru

od vytvoření mikrokontroléru existuje mnoho typů nástrojů pro vývoj softwaru a hardwaru. Samozřejmě, některé nástroje mohou být použity v různých typech mikrokontrolérů, ale některé jsou velmi specifické pro mikrokontrolér. Než začnete s programováním mikrokontrolérů, možná se budete chtít seznámit s programovacími nástroji mikrokontroléru a v neposlední řadě s vývojovým procesem.

pomocí vestavěných vývojových nástrojů můžeme potřebovat následující nástroje:

Assembler

jedná se o softwarový nástroj, který převádí zdrojový kód v sestavě na strojový kód, například (GNU assembler).

kompilátor

jedná se o softwarový program, který zakrývá zdrojový kód v programovacím jazyce na vysoké úrovni do jazyka sestavení nebo strojového kódu. Kompilace může být:

▪ nativní: to znamená, že spustíte kompilátor a vygenerovaný kód na stejném počítači

▪ kříž: to znamená, že spustíte kompilátor na stroji a vygenerovaný kód běží na jiném počítači (architektura procesoru).

Linker a lokátor

linker je program, který shromažďuje a propojuje kompilace a sestavuje operace a vytváří jeden exe.

lokátor je programový nástroj, který lze použít ke změně paměťové mapy výstupu linker.

simulátor

Jedná se o program, který napodobuje reálný scénář, vytváří aproximaci systémů v reálném čase. Simulátor se používá:

▪ pokud skutečný hardware není k dispozici

▪ v nebezpečných testovacích prostředích a scénářích

Debugger

jedná se o softwarový program a hardwarové zařízení, které lze propojit s mým PC k mému vloženému cíli. Používá se debugger:

▪ nastavit zarážky

▪ sledovat provádění

▪ vypsat paměť

Hardware debugger může být

▪ in-circuit debugger

▪ debug agent software na palubě

Flash loader

Jedná se o program a hardwarové zařízení, které lze použít k:

▪ Program ROM / Flash

▪ sledovat proměnné

▪ vymazat ROM / Flash

Profiler

Profiler je nástroj pro sledování výkonu softwarového kódu

integrované vývojové prostředí

jedná se o softwarový program, který má většinu nástrojů v jednom. Může zahrnovat

▪ textové editory

▪ kompilátory

▪ debuggery

▪ profilery

▪ simulátory

▪ linkery

jazyky softwaru mikrokontrolérů

můžeme je klasifikovat do dvou typů:

High-level

▪ C/C++

Java Java

▪ Ada

použití tohoto typu poskytne abstrakci z hardwarové úrovně

Low-level

strojový kód

je 0 a 1 a je těžké být napsán lidmi, ale pro počítače je snadné pochopit

montáž

jedná se o mnemotechnický kód a pseudo instrukce ke zlepšení čitelnosti

příklady:

instrukce se skládá z mnemotechnických (opcode) + operandy

Opcode je operace pořízená strojním procesorem

operandy jsou konečným cílem; opcode musí provést operaci.

jazyk sestavení je čitelný a srozumitelný více než strojový kód, ale musíte jej použít na konkrétním procesoru a mít znalosti o jeho architektuře.

programovací jazyky C / C++

jazyky na vysoké úrovni mají následující vlastnosti

▪ snadné psaní

Flexible Flexibilní

▪ nezávislý na procesoru

▪ vysoká produktivita

příklad programování mikrokontrolérů pomocí AVR ATMEGA16

ATmega 16 má následující vlastnosti:

16 16 Kb vlastní programovatelné paměti flash v systému

▪ 512 bajtů EEPROM

▪ 1 Kbyte interní SRAM

▪ programovací zámek pro zabezpečení

periferní funkce

▪ počítadlo v reálném čase se samostatným oscilátorem

▪ programovatelný sériový USART

▪ čtyři kanály PWM

▪ 8kanálový, 10-bit ADC

▪ on-chip oscilátor

▪ power-on REST a brown-out detekce

▪ interní RC oscilátor a zdroje přerušení

▪ napětí (od 2.7 V do 5.5v)

LED blikající Program příklad použití ATmeg16 a Proteus

LED blikající program ve vestavěných systémech, jako je program „hello world“ ve vývoji aplikací. V následujícím příkladu se naučíte a použijete simulátor Proteus ke spuštění prvního programu. Chcete-li stáhnout zdrojové soubory, přejděte do této složky.

Napište svůj program pomocí Atmel studio

Po stažení IDE,

programování mikrokontrolérů AVR

otevřete jej a vyberte nový projekt a vyberte umístění souboru hex jako na následujícím obrázku

programování mikrokontrolérů AVR

dalším krokem je výběr rodiny mikrokontrolérů

programování mikrokontrolérů AVR

poté získáte následující okno se spouštěcím kódem

programování mikrokontrolérů AVR

a nyní prosím napište následující kód

programování mikrokontrolérů AVR

dalším krokem je vytvoření programu stisknutím klávesy F7

programování mikrokontrolérů AVR

poté najdete soubor hex na zvoleném místě

programování mikrokontrolérů AVR

dalším krokem je použití simulátoru Proteus

a nyní vytvořte schéma z vybrané šablony

programování mikrokontroléru AVR

a zvolte nevytvářejte rozvržení PCB

programování mikrokontrolérů AVR

nakonec jsme hotovi, ale musíme přidat soubor hex jako na následujícím obrázku

programování mikrokontrolérů AVR

nyní upravte pojistky CKSEL

programování mikrokontrolérů AVR

Uložte a klikněte na play

a můžete si vybrat, zda je vidět, že LED dioda je vypnutá pro 500ms (levá strana) a zapnutá pro 500ms (pravá strana)

vysvětlení programu řádek po řádku

Chcete-li stáhnout zdrojové soubory, přejděte do této složky.

# definujte f_CPU 100000UL / / pro vytvoření konstanty a zvolte rychlost procesoru

#include < avr/io.h> / /Chcete-li vyvolat některé soubory pro vstupy a výstupy

#zahrnout <avr / delay.h> // vyvolání tohoto souboru pro použití funkcí zpoždění

int main(void){ // počáteční funkce a hlavní program

DDRA = 0b0000001; // pro konfiguraci pin a jako výstupu / směru

zatímco(1){ // navždy smyčka

PORTA = 0b00000001; // pro vytvoření PA0 = 1 a výstupu 5v (LED svítí)

_delay_ms(500); // zpoždění na půl sekundy

PORTA = 0b0000000; / / aby PA0 = 0 a výstup 0v (LED je vypnutá)

_delay_ms (500); / / zpoždění na půl sekundy

}

návrat 0;

} //konec programu

závěr

v současné době se vestavěné systémy používají v životně důležitých produktech a mohou být použity k zabezpečení a záchraně mnoha lidí, stejně jako v lékařské oblasti a dalších aplikacích. Měli byste se dál učit po získání přehledu a úvodu o programování mikrokontrolérů. Dalším krokem by mělo být učení vestavěného návrhu softwaru a systémů spuštěných v reálném čase.

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

AVR mikrokontrolér a vestavěné systémy: Pearson New International Edition: Using Assembly and C, Muhammad Ali Mazidi, DeVry University

ARM System Developer ‚ s Guide navrhování a optimalizace systémového softwaru svazek v Morgan Kaufmann Series v počítačové architektuře a designu knihy * 2004

Leave a Reply

Vaše e-mailová adresa nebude zveřejněna.