Detail předmětu
Vestavné systémy a mikroprocesory
FEKT-BPC-MICAk. rok: 2022/2023
Předmět je zaměřen na základní principy mikroprocesorových a embedded systémů. Studenti se seznámí s principem činnosti mikroprocesorů, periferiemi integrovanými na čipech mikroprocesorů, použitím periferních sybsystémů mikrokontrolérů, paměťovými systémy a správou paměti. Ve cvičeních studenti získají praktické zkušenosti s programováním embedded systémů v assembleru a jazyce C.
Jazyk výuky
Počet kreditů
Garant předmětu
Zajišťuje ústav
Výsledky učení předmětu
- vysvětlit rozdíl mezi mikroprocesorem, mikrokontrolérem, signálovým procesorem a signálovým kontrolérem,
- vyjmenovat a popsat způsoby obsluhy V/V periferií,
- vytvořit softwarové vybavení pro jednoduchý embedded systém v assembleru a jazyce C,
- vysvětlit principy a popsat vlastnosti pamětí SRAM, DRAM, SDRAM, DDR RAM, ROM, EPROM, EEPROM, FLASH (NOR, NAND FLASH), FeRAM, MRAM,
- popsat hierarchii paměti a vysvětlit použití pamětí cache,
- vysvětlit mechanismus segmentace, stránkování, swapování a virtualizace paměti,
- navrhnot připojení externích pamětí k mirokontroléru.
Prerekvizity
Student by měl být schopen vytvořit jednoduchý program v jazyce C a vysvětlit funkci základních elektronických součástek.
Plánované vzdělávací činnosti a výukové metody
Způsob a kritéria hodnocení
Až 60 bodů za závěrečnou zkoušku, která má pouze ústní část. Minimální počet bodů z ústní části je 25.
Osnovy výuky
1. Úvodní informace o předmětu. Vestavný systém, požadavky na hardware a software. Von Neumannova architektura, popis jednotlivých bloků. Základní cyklus počítače. Harvardská architektura a modifikovaná Harvardská architektura. Organizace paměti.
2. Program, strojová instrukce, instrukční soubor. Instrukce skoků. Podmíněné skoky a podmíněné provádění instrukcí. Počet adres v instrukci. Adresovací módy.
3. Zásobník. Podprogramy, předávání parametrů podprogramům, návratová hodnota. Rozdíl mezi podprogramem a makrem. Inline funkce.
4. Registry periferií. Paměťově mapované, izolované a hybridní periferie. Obsluha periferií: aktivní čekání, přerušení, DMA. Přerušení: řadič přerušení, MSI, činnost procesoru při obsluze přerušení. Obslužné rutiny přerušení. Asynchronní a synchronní přerušení. Maskovatelné, nemaskovatelné a pseudomaskovatelné přerušení. Vnořená přerušení. Reset.
5. Software pro obsluhu periferií. Použití jazyka C pro programování obsluhy periferií ve vestavných systémech: modifikátor volatile, psaní obslužných rutin přerušení v jazyce C, manipulace s bity registrů periferií.
6. Základní součástky pro konstrukci vestavných systémů: mikroprocesor, mikrokontrolér, signálový procesor (DSP), signálový kontrolér (DSC), System on a Chip (SoC), ASIC. Periferní subsystémy mikrokontrolérů: binární V/V (porty).
7. Periferní subsystémy mikrokontrolérů: řadič přerušení, obvody pro RESET, watchdog, hodiny reálného času, jednotky generování hodinového signálu, A/D převodníky, čítače a časovače, funkce Input Capture a Output Compare, měření časového intervalu. Subsystém pro PWM.
8. Periferní subsystémy mikrokontrolérů: PWM, sériová komunikační rozhraní SCI (UART), SPI, IIC.
9. Organizace polovodičových pamětí. Princip a vlastnosti pamětí SRAM, DRAM, SDRAM, DDR RAM.
10. Princip a vlastnosti pamětí ROM, EPROM, EEPROM, FLASH (NOR, NAND FLASH), FeRAM, MRAM. Připojování pamětí k mikroprocesoru/mikrokontroléru. Paměťový subsystém vestavných systémů. Sériové a paralelní připojení pamětí. Adresový dekodér. Zrcadlení paměti.
11. Řetězené zpracování instrukcí (pipelining), skokový a datový konflikt. Procesory CISC, RISC a Post-RISC.
12. Hierarchie paměti. Paměti cache. Mapování adres v operační paměti na bloky v pamětí cache. Specializované paměti cache. Víceúrovňové paměti cache (L1, L2, L3 cache).
13. Uniprogramming, multiprogramming, time sharing, proces, vlákno. Systémy reálného času. Uživatelský mód a mód supervizor. Správa paměti: adresový prostor. Logická a fyzická adresa, jednotka MMU. Stránkování. TLB. Odkládání celých procesů (swapping). Virtuální paměť.
Učební cíle
Vymezení kontrolované výuky a způsob jejího provádění a formy nahrazování zameškané výuky
Prerekvizity a korekvizity
- povinná prerekvizita
Úvod do programování
Základní literatura
Doporučená literatura
PINKER, J., POUPA, M.: Číslicové systémy a jazyk VHDL. Praha: BEN, 2006. 349 s. ISBN 80-7300-198-5. (CS)
Elearning
Zařazení předmětu ve studijních plánech
- Program BPC-AMT bakalářský 2 ročník, letní semestr, povinný
Typ (způsob) výuky
Přednáška
Vyučující / Lektor
Osnova
2. Instrukční soubor, typy instrukcí. Adresovací módy. Strojový kód.
3. Assembler: instrukce, pseudoinstrukce, návěští. Instrukční soubor mikrokontrolérů používaných ve cvičeních.
4. Podprogramy, předávání parametrů podprogramům, práce se zásobníkem. Rozdíl mezi podprogramem a makrem.
5. Obsluha periferií: aktivní čekání, přerušení, DMA. Paměťově mapované, izolované a hybridní periferie. Činnost procesoru při obsluze přerušení. Maskovatelné, nemaskovatelné a pseudomaskovatelné přerušení. Vnořená přerušení. Reset procesoru, zahájení činnosti po resetu.
6. Použití jazyka C pro programování vestavných systémů a V/V operací. Periferní subsystémy mikrokontrolérů: porty, jednotky generování hodinového signálu, hodiny reálného času, watchdog.
7. Periferní subsystémy mikrokontrolérů: čítače a časovače, funkce Input Capture a Output Compare, měření časového intervalu. Subsystém pro PWM.
8. Periferní subsystémy mikrokontrolérů: A/D, D/A převodníky, SCI (UART), SPI, IIC.
9. Princip a vlastnosti pamětí SRAM, DRAM, SDRAM, DDR RAM.
10. Princip a vlastnosti pamětí ROM, EPROM, EEPROM, FLASH (NOR, NAND FLASH), FeRAM, MRAM.
11. Paměťový systém vestavných systémů. Sériové a paralelní rozhraní pamětí. Adresový dekodér. Neúplné dekódování adresy - zrcadlení. Hierarchie paměti. Paměti cache.
12. Řetězené zpracování instrukcí (pipelining). Superskalární architektura. Multiprocesorové systémy. Procesory CISC, RISC, Post RISC.
13. Správa paměti: Adresový prostor. Logická a fyzická adresa, jednotka MMU. Spojitá alokace, segmentace, stránkování. TLB. Swapování. Virtuální paměť.
Cvičení na počítači
Vyučující / Lektor
Osnova
2. Seznámení s vývojovým prostředím, příklad na zápis programu ve strojovém kódu (sčítání 2 celých čísel).
3. Přechod ze strojového kódu do assembleru – přepsání příkladu ze cvičení 2 do assembleru. Použití různých adresovacích módů. Příklad v assembleru na testování podmínek a použití podmíněných instrukcí větvení.
4. Příklad na programování cyklů a práci s poli čísel v assembleru.
5. Příklad v assembleru na použití podprogramů a předávání parametrů podprogramům.
6. Příklad na práci s binárními vstupy a výstupy v assembleru. Příklad na zápis obslužné rutiny přerušení, povolení přerušení a definování vektoru přerušení a reset vektoru v assembleru.
7. 1. test.
8. Příklady na programování vestavných systémů v jazyce C - přepsání příkladů ze cvičení 6 do jazyka C.
9. Příklad na použití hodin reálného času (program v jazyce C).
10. Příklad na použití funkce output compare pro generování časového intervalu. (Program v jazyce C).
11. Příklad na použití funkce input capture pro měření časového intervalu. (Program v jazyce C).
12. Příklad na použití modulu PWM. (Program v jazyce C).
13. 2. test.
Elearning