Přidání poznámek z POT k mikrokontrolérům
This commit is contained in:
parent
5c4cfc644b
commit
e253e8ff68
1 changed files with 143 additions and 0 deletions
143
KIV POT/17. Mikrokontroléry.md
Normal file
143
KIV POT/17. Mikrokontroléry.md
Normal file
|
@ -0,0 +1,143 @@
|
|||
# Mikrokontroléry
|
||||
|
||||
**Mikroprocesor** x **mikrokontrolér**
|
||||
- mikroprocesor (MPU) = procesor vyrobený na jednom čipu
|
||||
- používá vnější paměti a další pomocné obvody
|
||||
- mikrokontrolér (MCU) = procesorové jádro + paměti + periferie + pomocné obvody na společném čipu
|
||||
- periferní obvody obvykle specializované pro různé řídící aplikace
|
||||
|
||||
**Charakteristiky MCU**
|
||||
- MCU se vyrábí ve velkém rozpětí výkonosti (podle předpokládané aplikace)
|
||||
+ délka slova CPU: **4**, **8**, **16** a **32 bitů**
|
||||
+ frekvence CLK: cca **1 MHz** až **1 GHz**
|
||||
+ kapacita ROM (Flash): cca **512 B** až **512 kB**
|
||||
+ kapacita RAM: cca **32 B** až **128 kB**
|
||||
+ pouzdro: **SOIC8 - BGA256**
|
||||
|
||||
**Vývody pouzder MCU**
|
||||
- většina vývodů má podle konfigurace některou z více funkcí
|
||||
- základní konfigurace je obcykle binární obousměrný IO pin
|
||||
- piny obvykle sdruženy do 8bitových nebo 16bitových portů
|
||||
- další možné funkce
|
||||
- adresní/datová sběrnice
|
||||
- vývody séeiových portů, časovačů a čítačů
|
||||
- ...
|
||||
|
||||
**Adresní prostory MCU**
|
||||
- fyzická paměť nemusí pokrývat celý a.p.
|
||||
- zbývající rozsah pokryt vnější pamětí
|
||||
- někdy mapovány i SFR (Special Function Registers) a někdy EEPROM
|
||||
+ Hardwardská architektura
|
||||
- kódová a datová paměť mají oddělené adresní prostory
|
||||
- délka slova může být pro obě paměti různá
|
||||
- v principu možný přístup do obou pamětí současně
|
||||
- pro každý adresní prostor lze použít jen některé operace
|
||||
- kódový: výběr instrukce, čtení dat
|
||||
- datový: čtení dat, zápis dat
|
||||
- Lineární (Von Neumannova) architektura
|
||||
- všechny typy pamětí a SFR v jednom adresním prostoru
|
||||
- lze zapisovat i do kódové paměti
|
||||
- lze provádět program uložený v datové paměti
|
||||
- u výkonných MCU lze někdy volit různé mapování pamětí do adresního prostoru
|
||||
|
||||
**Konfigurace s vnější a vnitřní pamětí**
|
||||
- některé MCU umožňují připojení vnější datové nebo kódové paměti
|
||||
- pro vyvedení portu adresní a datové sběrnice běžně část binárních IO portů
|
||||
- přístup do vnitřní paměti obvykle rychlejší (v 1 taktech CLK) než do vnější (ve 3 taktech CLK)
|
||||
|
||||
**Programování vnitřních pamětí MCU**
|
||||
- paralelní programování
|
||||
- používá externí programátor
|
||||
- vyžaduje velký počet vývodů MCU
|
||||
- rychlé programování (vhodné pro sériovou výrobu)
|
||||
- obtížné programování přímo v zařízení (ISP - In System Programming)
|
||||
- rozhraní JTAG (Joint Test Action Group)
|
||||
- sériové rozhraní pro diagnostiku
|
||||
- pro programování i ladění programů
|
||||
- boot loader
|
||||
- CPU čte kód programu přes standardní rozhraní a zapisuje do Flash
|
||||
- předpoklady
|
||||
- CPU může zapisovat do kódového i adresního prostoru
|
||||
- Boot program lze vykonávat i při zápisu do Flash
|
||||
- výkonné MCU: možnost volby rozhraní pro boot po resetu
|
||||
- program se ukládá do RAM místo Flash - boot je nutný vždy při startu
|
||||
- boot lze provést z různých rozhraní (SPI, Flash, přes Ethernet, ...)
|
||||
|
||||
**Ladící prostředky**
|
||||
- monitor
|
||||
- uložen v kódové paměti MCU
|
||||
- spolupracuje s ladicím programem na počítači
|
||||
- program se zavádí do Flash i s monitorem
|
||||
- nevýhody: monitor potřebuje nějaké prostředky MCU
|
||||
- JTAG
|
||||
- některé MCU mají rozšířený soubor instrukcí JTAG pro ladění
|
||||
- výpočet běží v laděné aplikaci v reálném čase
|
||||
- aplikační program může bez omezení využívat prostředky MCU
|
||||
|
||||
**Nízkopříkonové režimy Idle a Power**
|
||||
- zapínají se programově
|
||||
- Idle (IDL)
|
||||
- CPU má odpojený hodinový signál - pracují jen periferní řadiče
|
||||
- Power Down (PD)
|
||||
- vypne se generátor hodinového signálu, nepracuje CPU ani periferní obvody
|
||||
|
||||
### Mikrokontroléry na bázi ARM
|
||||
|
||||
- architektura vyvíjena od roku 1990 (Advanced Risc Machine)
|
||||
- postupně několik verzí procesorových jader
|
||||
- ARMv4, ARMv4T (THUMB ISA)
|
||||
- ARMv5, ARMv5E (Enhanced - rozšířeno o DSP)
|
||||
- ARMv6, ARMv6M (Cortex-M0)
|
||||
- ARMv7M, ARMv7R, ARMv7A (Cortex-M, R, A)
|
||||
- mikrokontroléry n bázi ARM vyrábí několik (cca 40) výrobců (TI, ST, NXP, Toshiba, ...)
|
||||
- též jako syntetizovatelná jídra pro SoC
|
||||
|
||||
**Charakteristika ARM**
|
||||
- 32bitová architektura RISC
|
||||
- 16 ks. 32bitových registrů
|
||||
- až 3 různé soubory instrukci
|
||||
- v různých verzích různá standardní rozšíření základní architektury
|
||||
- další periferie MCU podle různých výrobců
|
||||
|
||||
**Řady procesorů**
|
||||
- klasická řada: 3 rodiny
|
||||
+ **ARM7** - procesorové jádro ARMv4, ARMv4T
|
||||
+ **ARM9** - procesorové jádro ARMv4T, ARMv5, ARMv5E
|
||||
+ **ARM11** - procesorové jádro ARMv6
|
||||
- další číslice a písmena specifikují vybavení procesoru
|
||||
- např. ARM7TDMI, ARM946E-S
|
||||
+ řada Cortex: 3 rodiny
|
||||
+ **Cortex-M** - procesorové jádro ARMv6M resp. ARMv7M
|
||||
+ 4 typy procesorů
|
||||
+ Cortex-M0, Cortex-M1, Cortex-M3, Cortex-M4, Cortex-M7
|
||||
- nejmenší řada, nástupce 8 a 16bitových MCU
|
||||
- Cortex-M1 pro implementaci v FPGA
|
||||
- CLK max. 100 MHz
|
||||
+ **Cortex-R** - procesorové jádro ARMv7R
|
||||
- 3 typy procesorů
|
||||
- Cortex-R4, Cortex-R5, Cortex-R7, Cortex-R8
|
||||
- vysoký výkon pro vestavěné systémy reálného času
|
||||
- optimalizované pro běh RTOS
|
||||
- CLK max. 1 GHz
|
||||
+ **Cortex-A** - procesorové jádro ARMv7A
|
||||
+ 4 typy procesorů
|
||||
+ Cortex-A5, Cortex-A8, Cortex-A9, Cortex-A15, Cortex-A17
|
||||
- vysoký výkon pro mobilní aplikace, multimédia (smartphone, digitální TV, ...)
|
||||
- vícejádrové typy
|
||||
- optimalizované pro běh OS (Linux, Symbian, Windows CE)
|
||||
- CLK max. 2 GHz
|
||||
|
||||
**Instrukční sady ARM**
|
||||
- **ARM 32-bit**
|
||||
- původní sada
|
||||
- 32bitové instrukce (kódované na 32 bitech)
|
||||
- nevýhodné v menších systémech
|
||||
- **Thumb**
|
||||
- 16bitové instrukce
|
||||
- méně výkonné než ARM 32-bit
|
||||
- ARM 32-bit a Thumb je nutné přepínat (lze i za chodu)
|
||||
- **Thumb-2**
|
||||
- nadmnožina Thumb
|
||||
- kombinace 16bitových a 32bitových instrukcí
|
||||
- nemusí se přepínat
|
||||
- od ARMv7
|
Loading…
Reference in a new issue