Detail předmětu
Vestavné systémy a mikroprocesory
FEKT-BPC-MICAk. rok: 2019/2020
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ž 40 bodů za laboratorní cvičení (2 testy 30 bodů, zadané úlohy 10 bodů). Pro udělení zápočtu je třeba získat minimálně 15 bodů.
Až 60 bodů za závěrečnou zkoušku, která má pouze ústní část. Minimální požadovaný počet bodů z ústní části je 25.
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)
Zařazení předmětu ve studijních plánech
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.