Mikroprocesor: Nemá vlastní integrovanou paměť pro programy a data – ty se ukládají na externí úložiště – a jsou k němu připojovány další pomocné vstupní/výstupní (I/O) obvody.
Mikrokontrolér: Má RAM, paměť, I/O obvody intealugrované v jednom pouzdře.
ALU: Aritmetická logická jednotka – vykonává aritmetické a logické operace.
STATUS registr ALU: Uchovává informace o provedených operacích. Obsahuje příznakové bity:
Carry (C): Přenos do vyššího řádu nad rozsah registru.
Zero (Z): Výsledek operace je nula.
Negative (N): Indikuje, že výsledek je záporný.
Digit Carry (DC): Přenos spodní číslice (spodní 4 bity) do vyššího řádu.
Overflow (OV): U operace se znaménky indikuje přetečení do znaménkového (7.) bitu.
Programový čítač (PC): Registr, který obsahuje adresu následující instrukce. Většinou se sám inkrementuje.
Zásobník: Obsahuje návratové adresy. Při volání podprogramu (funkce) nebo při přerušení se do něj ukládá aktuální hodnota PC před skokem.
Nastavení:
Vstupní/výstupní
Analog/digitál
Pull-up
Rychlost pinu
Push-pull/open-drain
Detailně pro PIC:
ANSEL registr: Log. 0 = digitální funkce pinu / Log. 1 = analogová funkce.
TRIS registr: Log. 0 = výstup (output) / Log. 1 = vstup (input).
LAT registr: Zápis logických úrovní na výstupní piny.
PORT registr: Čtení logických úrovní na vstupech.
SLRCON registr: Výběr rychlosti změny stavu na výstupních pinech.
WPU registr: Připojení "weak pull-up" rezistorů.
INLVL registr: Výběr vstupní rozhodovací úrovně Schmitt Trigger/CMOS/TTL.
ODCON registr: Typ výstupu push-pull nebo open-drain.
Operace: Sekvence, kterou mikrokontroléry PIC provádějí při změně dat na portech:
Mikrokontrolér přečte stav pinů do dočasného registru.
Provede požadované úpravy.
Zapíše zpět na port.
Komplikace:
Pokud je i přes požadovanou log. 1 na pinu nižší napětí, vyčtený stav v dočasném registru je 0 – ta se zapíše zpět na port.
Při paralelní operaci více vláken může se stat, ze jedno vlakno zapise hodnotu drive a tím dojde ke ztrátě spravne hodnoty.
Hardwarově: RC filtr, který nepropustí rychlé zákmity.
Softwarově: Časové okno po stisku, kdy mikrokontrolér "nevnímá".
Zjištění pozice: Skenováním řad a/nebo sloupců.
Výhody: Nízký počet GPIO pinů (nejsou na kazde tlacitko)
Nevýhody: Složitější vyčítání v softwaru.
Multiplexing: Střídání číslovek rychleji, než je oko schopno zachytit.
Výhody: Nižší počet GPIO pinů (přepínání pomocí tranzistorů na zem ovládaných mikrokontrolérem).
Přerušení: Odklon od normálního běhu programu na základě vnitřní nebo vnější události.
Slouží k obsluze důležitějších událostí, např. zmáčknutí tlačítka.
Procesor nemusí neustále hlídat vstupy, pouze reaguje na přerušení.
PORT: Změna stavu pinu.
ADC: např. při dokončení konverze.
TIMER: např. při přetečení.
Zjednodušeně:
Adresa aktuální instrukce + data v paměti se odloží stranou (zásobník/stínové registry).
Do PC se načte adresa první instrukce přerušení.
Vykoná se celá obsluha přerušení.
Na konci se vrátí odložená data zpátky na svoje místo a program pokračuje dál.
Složitěji:
Hodnota PC je uložena do zásobníku.
Hodnoty z registrů BSR, WREG a STATUS jsou uloženy do stínových registrů (volitelné).
Do PC je uložena adresa vektoru přerušení.
Je vykonána obsluha přerušení.
Instrukcí retfie (return from interrupt) se do PC uloží adresa z aktuální pozice v zásobníku, čímž se provede návrat k normálnímu běhu programu.
Pouze přerušení s vyšší prioritou může přerušit obsluhu přerušení s nižší prioritou.
Obsluha přerušení vyšší priority nemůže být přerušena přerušením nižší ani vyšší priority.
Pomocí konfiguračních bitů daného zdroje.
Povolení přerušení pro zdroj (enable bit).
Globální povolení přerušení (priority bit).
Zdroj přerušení vyčteme z flag bitů.
Unikátní Flag bit zdroje, který přerušení vyvolal, bude 1.
Během obsluhy přerušení se tento bit zkontroluje a vykoná se příslušná obsluha.
Po dokončení obsluhy se flag bit vynuluje.
PPS (Peripheral Pin Select) slouží k připojení periferií na vstupy a výstupy mikrokontroléru.
Je to integrovaný konfigurovatelný přepínač, který propojuje interní periferie mikrokontroléru s vnějšími piny.
Pomocí modulu PPS (Peripheral Pin Select).
Samostatný blok mikrokontroléru, který běží nezávisle na procesoru.
S každým svým instrukčním cyklem se inkrementuje hodnota.
Má možnost vyvolat přerušení při přetečení.
Synchronní mód.
Asynchronní mód.
RTC (Real Time Clock) a RTCC (Real Time Clock and Calendar):
Specializované obvody pro uchování informace o čase, případně datumu.
Čtyřvodičový:
Struktura:
Dvě vrstvy potažené rezistivní vrstvou, elektrody na protilehlých stranách.
Výhody:
Nízká cena.
Snadné vyhodnocení.
Vysoké rozlišení.
Lze ovládat čímkoliv (prst, tužka...).
Nevýhody:
Nižší průzračnost panelu (cca 80 %).
Měkká povrchová vrstva, náchylná k poškrábání.
Pětivodičový:
Struktura:
Obdobna jako u 4-vodicoveho panelu, ale ma jine usporadani elektrod. Čtyři elektrody (Y, H, L, X) na jedné vrstvě, jedna Sense elektroda na horní vrstvě.
Čtyřvodičový:
Struktura: dvě vrstvy s rezistivními vrstvami
Vrstva A: Elektrody na levé a pravé straně.
Vrstva B: na horní a spodní straně.
Měření:
Pro osu X - Mezi pravou a levou elektrodu vrstvy A připojí napájecí napětí. Spodní elektroda vrstvy B se připojí na A/D převodník, který změří polohu po stisku (spojeni dvou vrstev).
Pro Y - skoro stejny postup, ale jinex vrstvy s jinymi elektrodami.
Pětivodičový:
Klidový stav:
Elektrody Y, H, L a X mají napětí 5 V.
Elektroda Sense je připojena na zem přes velky rezistor.
Při dotyku:
Na Sense se objeví napětí a proběhne měření ve 2 krocích:
Krok 1 (osa X): Elektrody H a X jsou napajeny 5 V, Y a L uzemněny. Napětí na Sense určí polohu na ose X.
Krok 2 (osa Y): Elektrody Y a H jsou napajeny 5 V, X a L uzemněny. Napětí na Sense určí polohu na ose Y.
Konstrukce: Dotykovou plochu vyhodnocuje elektronika, která v pravidelných vzorkovacích intervalech měří změnu kapacity jednotlivých miniaturních snímacích plošek řádkové X a sloupcové Y vrstvy.
Výhody:
Vysoká odolnost.
Vysoké rozlišení.
Vysoká průzračnost panelu.
Nevýhody:
Ovládací prvek musí být z vodivého materiálu (kovový stylus, prst).
Vyšší cena.
Složitější vyhodnocovací obvody.
Konstrukce: Čtyři piezoměniče - dva vysílají, dva přijímají.
Princip činnosti:
Signál se šíří polem reflektorů, které část signálu odrazí a část propustí na další reflektory.
Při dotyku je část signálu absorbována a nedostane se k přijímači.
Porovnáním přijatého signálu se zjistí souřadnice dotyku.
Připojením rezistoru se z tlačítka s rezistorem stane RC článek. Dotykem se změní kapacita a tím i doba nabíjení/vybíjení.
Plocha.
Tloušťka dielektrika.
Permitivita dielektrika.
Výstup DAC je porovnáván se vstupním signálem.
Postupně se přidává od nejvýznamnější bitu (MSB) a dokola porovnává.
Vydělím výstupní hodnotu rozsahem a vynásobím referenčním napětím.
Citlivost: Minimální změna vstupního napětí, kterou dokáže převodník rozlišit.
Rozsah: Maximální rozsah vstupního napětí, které je převodník schopný převádět.
Von Neumannova:
Společná paměť pro data a instrukce.
Během programu je možné měnit data i instrukce, čímž se ovlivňuje chování programu.
Harvardská:
Oddělený paměťový prostor pro data a pro program.
CISC (Complex Instruction Set Computer):
Soubor instrukcí většinou pres 200.
Málo registrů.
Mikroprogramový řadič (každá nová instrukce vyžaduje nový mikroprogram nebo jejich sled).
Složitější struktura.
Řídicí obvody zabírají na čipu přibližně 60 % místa.
Příklad: architektura x86.
RISC (Reduced Instruction Set Computer):
V procesoru realizujeme pouze nezbytné funkce.
Instrukce mají pevnou délku a formát.
Složitost je částečně přenesena na kompilátor.
Jednodušší struktura → vyšší rychlost.
Řídicí obvody zabírají na čipu pouze 6–10 % místa.
Příklad: architektura ARM.
Accumulator:
Využívá jeden speciální registr nazývaný akumulátor (Accumulator).
Slouží k provádění všech aritmetických a logických operací.
Akumulátor je jedním z operandů.
Load-store:
Odděluje přístup do paměti (načítání a ukládání dat) od aritmetických a logických operací.
Data musí být před zpracováním nejprve načtena do registrů.
Instrukční sada: Soubor instrukcí, které procesor podporuje.
Typy instrukcí:
„Byte-oriented“ operace.
„Bit-oriented“ oprerace.
Operace s čísly.
Kontrolní operace.
Programový čítač:
21bitový registr.
Uchovává adresu instrukce, která bude provedena v následujícím instrukčním cyklu.
Zásobník:
Uchovává návratové adresy z volání podprogramů nebo přerušení.
Konfigurační bity:
Slouží k nastavení základních parametrů mikrokontroléru.
Například:
Výběr obvodu oscilátoru.
Ochranu proti vyčtení paměti.
Povolení různých periferií.
Účel: Časování všech procesů v mikrokontroléru (možnosti závisí na konkrétním mikrokontroléru)
Možnosti:
Interní nebo externí oscilátor.
Vysoká nebo nízká frekvence.
PLL (Phase-Locked Loop) pro zvýšení frekvence.
Účel: Časovač, který provede restart mikrokontroléru po nastavené době.
Využití:
Pokud program běží normálně, je watchdog timer průběžně nulován.
Pokud program zasekne, watchdog doběhne do konce a resetuje mikrokontrolér.
Power-on Reset (POR): Reset při zapnutí napájení pro známý startovací stav.
Brown-out Reset (BOR): Aktivace při poklesu napětí pod určitou úroveň.
Watchdog Timer Reset: Reset při zamrznutí programu nebo nekonečné smyčce.
Externí Reset: Manuální reset pomocí tlačítka nebo obvodu.
Software Reset: Spuštění restartu mikrokontroléru programově.
Aplikace: Mikrokontroléry, chytré senzory, mixed signal aplikace, automobilová elektronika, a další.
Účel: Adresování jednotlivých bitů v RAM.
Výhoda: Umožňuje měnit hodnotu bitů bez sekvence RMW (Read Modify Write).
R0 – R12: Všeobecné registry pro výpočty a uchovávání dat.
R13 (SP): Stack Pointer – ukazuje na vrchol zásobníku.
R14 (LR): Link Register – ukládá návratovou adresu z funkce.
R15 (PC): Program Counter – ukazuje na aktuální instrukci.
CMSIS (Cortex Microcontroller Software Interface Standard): Poskytuje HW abstrakci pro přenositelnost kódu mezi mikrokontroléry.
Desítková (decimální): Základ 10, přirozená pro člověka.
Dvojková (binární): Základ 2, snadná implementace v počítačích.
Osmičková (oktalová): Základ 8, kompaktní zápis, snadný převod mezi binární a osmičkovou.
Šestnáctková (hexadecimální): Základ 16, kompaktní zápis pro binární data, využívá se v informatice (adresy paměti).
Konstrukce: Obsahuje pevný referenční bod pro každou pozici.
Výstupní signál: Přímo určuje aktuální pozici.
Konstrukce: Obsahuje dva signály posunuté o 90°.
Výstupní signál: Kódování pohybu v obou směrech, umožňuje detekci směru.
Měření: Rychlost a zrychlení.
Bootloader: Program v mikrokontroléru, který umožňuje přenos dat mezi programovou pamětí a jiným zařízením, např. PC.
Hlavní piny (3): SCK (clock), SDI (data in), SDO (data out), CS (chip select).
Singlemaster
Počet zařízení: Omezen počtem CS pinů, ktery muzeme ovladat.
Rychlost: clock signál až 50 MHz.
Multimaster
Hlavní piny (2): SDA (data), SCL (clock).
Výběr zařízení: Pomocí 7bit adresy, max 128 zařízení.
Start/stop podmínky: Signály pro zahájení a ukončení komunikace (SCL - H, SDA - meni se).
Rychlost komunikace:
100 kHz, 400 kHz (speciálně 1 - 3,4 MHz, jednosměrně až 5 MHz)
Detekce kolize: Pokud je na SDA vysílána úroveň high a vysílací stanice zjistí low, musí přerušit vysílání.
SPI: Vysoká rychlost, složitější implementace, až 1 slave, singlemaster, 3+1 vodiče.
I2C: Nižší rychlost, jednodušší, více zařízení, multimaster, 2 vodiče.
Charakteristika: Sériová obousměrná half-duplex sběrnice, single master, multi slave.
Jeden datový a jeden zemnící vodič (GND)
Komunikace: Prochází časovými sloty, každý slot představuje 1 bit (log. 1 nebo 0).
Napájení: Napájení přes datový vodič (log. 0 napájí kondenzátor 800-2000 pF).
UART:
Asynchronní sériová komunikace.
Rychlost 300-1200 kbit/s (závisí na zařízení).
Full nebo half duplex.
USB:
Single master.
Rychlost 1,5 - 80000 Mbit/s (záleží na standardu (generace) 1.0-4.2).
Komunikace pomocí paketů.
Převodníky UART <-> USB: Umožňuje připojení mikrokontrolérů k PC bez větších znalostí USB rozhraní.
Charakteristika: 2 pary Twisted pair, point-to-point
Přenosová rychlost a vzdálenost: Až 2,5 MB/s na 1200 m.
Linky přenášejí pouze data a nepoužívají žádné řídicí signály.
RS422 vs RS232:
RS422: Více příjímačů, větší vzdálenost, rychlejší, využívá diferenciální signály
RS232: Pouze 1 příjímač, kratší vzdálenost, pomalejší.
do 32 prijimacu half duplex
Charakteristika: Diferenciální přenos, multipoint komunikace, architektura Master/Slave (každý Slave má svou unikátní adresu).
Přenosová rychlost a vzdálenost: Až 2,5 Mbit/s na 1200 m (až 10 Mbit/s na kratší vzdálenosti).
Pouziva jeden nebo dva TP páry
RS485 vs RS232:
RS232: Jeden přístroj, jen na 20 m, pomalejší, více datových vodičů (9)
Řízení:
Lineárně: Menší výkon, menší řušení, větší ztráty.
Pulzně (PWM): Vyšší výkon, větší řušení, menší ztráty.
Směr: Řízení změnou polarity napájení pomocí H můstku (čtyři spínací prvky).
Konstrukce: elektromotor, potenciometr, řídicí elektronika, převodovka
PWM - pulzně šířková modulace
s periodou 20 ms, log. 1 trvá 0,9 - 2,1 ms.
Účel: Přesná kontrola pozice a rychlosti.
Konfigurace cívek:
Unipolární: Jeden směr proudu jednou civkou.
Bipolární: Dvě cívky současně, mg pole proti sobe.
Módy řízení:
Plný krok, poloviční krok - velikost kroku
Jednofázové, dvoufázové řízení - pocet buzených vinutí
DC motor: Integrovaný komutátor, řízení rychlosti změnou napětí.
BLDC motor: Bez komutátoru, elektronická komutace pomocí regulátoru otáček.
→Motor = rotorem z permanentních magnetů, stator = cívky navinute na pólových nástavcích
Řízení BLDC:
Six-step komutace
Sinusové proudy (FOC)
Bezsenzorové adaptivní řízení
Využití AI pro řízení.
Capture: HW jednotka v mikrokontroléru pro měření času mezi událostmi (např. měření délky pulzů).
Compare: HW jednotka, která porovnává časové registry s uloženou hodnotou a na základě toho generuje např. přerušení.
PWM (Pulse Width Modulation): Generace šířkově modulovaného signálu, což je užitečné pro řízení výkonu motorů
Výhody: Všechny tyto jednotky jsou odděleny od procesoru, což šetří výpočetní výkon mikrokontroléru a umožňuje jejich samostatnou činnost.