Detail předmětu
Vestavné systémy a mikroprocesory
FEKT-BPC-MICAk. rok: 2020/2021
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.
V případě distanční výuky se hodnocení mění následovně:
Až 25 bodů za domácí úlohy.
Až 75 bodů za závěrečnou zkoušku, která má pouze ústní část. Minimální počet bodů z ústní části je 35.
Zkouška z předmětu bude probíhat distanční formou.
Osnovy výuky
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. . Maskovatelné, nemaskovatelné a pseudomaskovatelné přerušení. Vnořená přerušení. Reset.
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ěť.
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