Mikrokontroléry Kapitola 2
Text mikrokontrolérov Kapitola 2
2. 8. 2019 Mikrokontroléry Kapitola 2

Pamäť je súčasťou mikrokontroléra, ktorého funkciou je ukladanie dát. Najlepším spôsobom, ako to vysvetliť, je opísať ju ako veľkú skriňu s mnohými zásuvkami. Ak vychádzame z toho, že zásuvky sú označené tak, aby nedošlo k ich zámene, bude potom akýkoľvek ich obsah ľahko prístupný. Stačí poznať názov zásuvky a tak jej obsah budeme pre istotu poznať.
Pamäťové komponenty sú presne aa. Pre určitý záznam dostaneme obsah pomenovaného pamäťového miesta a je to. Sú prítomné dva nové koncepty: adresovanie a umiestnenie pamäte. Pamäť sa skladá zo všetkých pamäťových miest a adresát nie je nič iné ako výber jedného z nich. To znamená, že musíme zvoliť miesto
pamäte na jednom konci a na druhom konci si musíme počkať na obsah tohto umiestnenia. Okrem rozhodovania z umiestnenia v pamäti musí pamäť umožňovať aj zápis doň. To sa deje poskytnutím ďalšieho vedenia, ktoré sa nazýva riadiace vedenie. Túto linku budeme volať R/W (čítanie/zápis). Ovládací riadok sa používa nasledovne: ak sa číta R/W = 1, idac R/W = 0, potom sa zapíše do pamäťového umiestnenia. Pamäť je prvý prvok, ale aby náš mikrokontrolér fungoval, potrebujeme ďalšie.
1.2 Centrálna procesorová jednotka
Pridajme ďalšie 3 pamäťové miesta pre konkrétny blok, ktorý bude mať zabudovanú funkciu sčítania, násobenia, delenia, odčítania. Časť, ktorú som práve pridal, sa nazýva „centrálna procesorová jednotka“ (CPU). Jeho pamäťové miesta sa nazývajú registre.
2. 8. 2019 Mikrokontroléry Kapitola 2
Registre sú teda pamäťovými miestami, ktorých úlohou je pomáhať pri vykonávaní rôznych matematických alebo iných dátových operácií, nech sa dáta kdekoľvek nájdu. Pozrime sa na súčasnú situáciu. Máme dve nezávislé entity (pamäť a CPU), ktoré sú vzájomne prepojené, a tak je akákoľvek výmena informácií skrytá, rovnako ako jej funkčnosť. Ak napríklad chceme pridať
obsah dvoch pamäťových miest a vrátime výsledok späť do pamäte, budeme potrebovať spojenie medzi pamäťou a CPU. Jednoducho povedané, musíme mať určitú „cestu“, cez ktorú kolujú údaje z jedného bloku do druhého.
Cesta sa volá „bus“ - autobus. Fyzicky predstavuje skupinu vlákien 8, 16 alebo viac. Existujú dva typy zberníc: adresná zbernica a dátová zbernica. Prvý pozostáva z toľkých riadkov, ako je adresa (v bitoch) pamäte, ktorú chceme adresovať, a druhý je rovnako široký ako dáta, v našom prípade 8 bitov alebo spojovacia linka. Prvý slúži na prenos adries z CPU do pamäte a druhý na pripojenie všetkých blokov vo vnútri mikrokontroléra.
Pokiaľ ide o funkčnosť, situácia sa zlepšila, nastal však aj nový problém: máme jednotku, ktorá je schopná pracovať sama, ale ktorá nemá kontakt s vonkajším svetom ani s nami! Na prekonanie tohto nedostatku pridajme blok, ktorý obsahuje hodnoty pamäte, ktorých jedna hlava je spojená s dátovou zbernicou a druhá má pripojenie k dátovej zbernici.
výstupné vedenia mikrokontroléra, ktoré možno vidieť voľným okom ako kolíky k elektronickému komponentu.
2. 8. 2019 Mikrokontroléry Kapitola 2
Tieto umiestnenia, ktoré sme práve pridali, sa nazývajú „porty“. Existujú rôzne typy portov: vstupné, výstupné alebo obojsmerné. Pri práci s portami je v prvom rade potrebné zvoliť, s ktorým portom pracovať, a potom posielať dáta do portu alebo z neho dáta brať.
Pri práci s ním sa port správa ako pamäťové miesto. Niečo sa z toho jednoducho napíše alebo číta, a je to ľahké spozorovať na kolíkoch mikrokontroléra.
Týmto som k už existujúcej jednotke pridal možnosť komunikácie s vonkajším svetom, avšak tento spôsob komunikácie má svoje nevýhody. Jednou zo základných nevýhod je počet riadkov, ktoré je potrebné použiť na prenos údajov. Čo keby ich bolo treba premiestniť o pár kilometrov ďalej? Počet riadkov vynásobený počtom kilometrov nie
sľubuje nákladovo efektívny projekt. Musíme len znížiť počet riadkov do takej miery, aby sme neznížili funkčnosť. Predpokladajme, že pracujeme iba s 3 linkami a jedna linka sa používa na prenos dát, druhá na príjem a tretia sa používa ako referenčná linka pre vstupnú aj výstupnú časť. Aby to fungovalo, musíme ustanoviť pravidlá výmeny údajov. Tieto pravidlá sa nazývajú protokol. Protokol je preto definovaný vopred, aby medzi nimi nedochádzalo k nedorozumeniam
príležitosti, ktoré navzájom komunikujú. Napríklad ak jedna osoba hovorí po francúzsky a druhá po anglicky, je nepravdepodobné, že by spolu vychádzali rýchlo a efektívne. Predpokladajme, že c
máme nasledujúci protokol: Na prenosovej linke je nastavená logická jednotka „1“, kým sa nezačne prenos. Raz
keď sa prenos začne, znížime na určitú dobu prenosovú linku na logickú „0“ (ktorú označíme ako T), aby prijímajúca strana vedela, že údaje sa majú prijímať, aby aktivovala prijímací mechanizmus. Vráťme sa teraz k prevodovej časti a začnime dávať nuly a jednotky
na prenosovej linke v poradí, od najmenej významného bitu po najvýznamnejší. Nechajte každý bit zostať na linke po dobu rovnú T a na konci alebo po 8. bite prineste logickú jednotku „1“ späť na riadok, ktorý bude označovať koniec prenosu údajov. - popísané sa nazýva v odbornej literatúre NRZ (Non-Return to Zero).
2. 8. 2019 Mikrokontroléry Kapitola 2
2. 8. 2019 Mikrokontroléry Kapitola 2
Keď sa to stane s počítačom, samozrejme ho jednoducho resetujeme a pokračujeme v práci. Na vyriešenie nášho problému však v prípade mikrokontroléra nie je k dispozícii žiadne resetovacie tlačidlo. Na prekonanie tejto prekážky musíme predstaviť ďalší blok s názvom watchdogs. Tento blok je v skutočnosti ďalším počítadlom s voľným chodom, kde náš program musí pri správnom vykonaní napísať nulu. V prípade, že je program „nepenetrovaný“, nula sa nezapíše a počítadlo sa vynuluje. dosiahnutie svojej maximálnej hodnoty. To spôsobí opätovné spustenie programu a celý čas sa to napraví. Toto je dôležitý prvok každého programu, ktorý musí byť spoľahlivý pre dohľad nad ľuďmi.
1.8 Analógovo-digitálny prevodník
Pretože signály z periférnych zariadení sa podstatne líšia od signálov, ktoré môže regulátor nesprávne pochopiť (nula a jedna), musia sa prevádzať takým spôsobom, aby ich nebolo možné pochopiť. Túto úlohu vykonáva blok pre analógovo-digitálny prevod alebo prevodník AD. Tento blok je zodpovedný za prevod informácií o určitej analógovej hodnote na binárne číslo a za ich prenos do bloku CPU v podobe, že
blok CPU to dokáže spracovať.
Takže mikrokontrolér je teraz hotový a zostáva len vložiť ho do elektronickej súčasti, kde bude mať prístup k vnútorným blokom cez vonkajšie kolíky. Obrázok nižšie ukazuje, ako vyzerá mikrokontrolér vo vnútri.
Fyzická konfigurácia vnútra mikrokontroléra
2. 8. 2019 Mikrokontroléry Kapitola 2
Tenké čiary, ktoré prechádzajú zvnútra do boku mikrokontroléra, predstavujú prirodzené spojenie vnútorných blokov s kolíkmi kapsuly mikrokontroléra. Nasledujúca schéma predstavuje centrálnu časť mikrokontroléra.
Pre skutočnú aplikáciu samotný mikrokontrolér nestačí. Okrem mikrokontroléra potrebujete na spustenie aj program a niekoľko ďalších prvkov, ktoré tvoria logické rozhranie k vykonávacím prvkom (o ktorých pojednáme v nasledujúcich kapitolách).
2. 8. 2019 Mikrokontroléry Kapitola 2
Programovanie je špeciálna oblasť práce pre mikrokontrolér a nazýva sa „programovanie“. Skúsme napísať malý program, ktorý si sami vytvoríme a ktorému bude ktokoľvek schopný porozumieť.
STARTREGISTER1 = MEMORY LOCATION_AREGISTER2 = MEMORY LOCATION_BPORTA = REGISTER1 + REGISTER2END
Program zhromažďuje obsah dvoch pamäťových miest a vidí ich súčet na porte A.
Prvý riadok programu je presunúť obsah pamäťového miesta „A“ do jedného z registrov centrálnej procesorovej jednotky. Pretože potrebujeme ďalšie údaje, presunieme ich tiež do druhého registra centrálnej procesorovej jednotky.
Nasledujúca inštrukcia dáva pokyn centrálnej procesorovej jednotke, aby zhromaždila obsah dvoch registrov a poslala výsledok na port A tak, aby bol viditeľný súčet tejto zostavy.
pre všetkých vonku. V prípade zložitejšieho problému bude program pracovať na jeho vyriešení dlhšie.
Programovanie je možné vykonať v niekoľkých jazykoch, ako sú Assembler, C a Basic, ktoré sú najpoužívanejšími jazykmi. Assembler patrí k nízkoúrovňovým jazykom, ktoré sa programujú pomaly, ale využívajú najmenší pamäťový priestor a poskytujú najlepšie výsledky pri zvažovaní rýchlosti vykonania programu.
Pretože je to najpoužívanejší jazyk v programovaní mikrokontrolérov, bude sa o ňom diskutovať v ďalšej kapitole. Programy v jazyku C sa ľahšie píšu, sú ľahšie pochopiteľné, ale fungujú lepšie ako programy Assembler. Základné sa dá naučiť najľahšie, jeho pokyny sú najbližšie spôsobu myslenia človeka, ale ako jazyk
Programovanie v jazyku C je tiež pomalšie ako Assembler-