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

čeština

Počet kreditů

6

Garant předmětu

Výsledky učení předmětu

Absolvent předmětu by měl být schopen:
- 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

Povinnou prerekvizitou je předmět BPC-UDP.
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

Metody vyučování zahrnují přednášky a laboratorní cvičení. Student musí ve cvičeních odladit zadané úlohy.

Způsob a kritéria hodnocení

Až 40 bodů za laboratorní cvičení (2 testy 30 bodů, zadané úlohy 10 bodů).  Minimální počet bodů pro udělení zápočtu je 15.
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

Cílem předmětu je seznámit studenty s principy činnosti mikroprocesorových systémů, subsystémy mikrokontrolérů a základy tvorby softwarového vybavení pro embedded systémy.

Vymezení kontrolované výuky a způsob jejího provádění a formy nahrazování zameškané výuky

Laboratorní cvičení jsou povinná, řádně omluvené zmeškané počítačové cvičení lze po domluvě s vyučujícím nahradit.

Prerekvizity a korekvizity

Základní literatura

MACHO, T.: Vestavné systémy a mikroprocesory. Učební text FEKT VUT v Brně. 2021. Dostupné v el. podobě. (CS)

Doporučená literatura

LIČEV, L., MORKES D.: Procesory - architektura, funkce, použití. Brno: Computer press, 1999. 260 s. ISBN 80-7226-172-X. (CS)
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

26 hod., nepovinná

Vyučující / Lektor

Osnova

1. Úvod do předmětu. Von Neumannova architektura, základní bloky počítače. Základní cyklus počítače. Harvardská architektura, modifikovaná Harvardská architektura. Mikroprocesor, mikrokontrolér, signálový procesor, signálový kontrolér.
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

39 hod., povinná

Vyučující / Lektor

Osnova

1. Úvodní informace. Opakování vyjádření čísel ve dvojkové a šestnáctkové soustavě, druhý doplněk.
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