Počítačové systémy Jednočipové mikropočítače (mikrokontroléry) Miroslav Flídr Počítačové systémy LS 2006-1/17- Západočeská univerzita v Plzni
Co je mikrokontrolér integrovaný obvod, který je často součástí vestavného systému určen k vykonávání specifické činnosti menší a jednodušší, tak aby se vše vešlo na jeden čip navržen jako soběstačný a nezávislý důležitým kriteriem návrhu je nízká cena a spotřeba je možné je nalézt v domácích spotřebičích, automobilech, měřicích a řídicích systémech Obecné schéma mikrokontroléru Memory (program code) CPU Input port Output port Memory (data) Miroslav Flídr Počítačové systémy LS 2006-2/17- Západočeská univerzita v Plzni
Charakteristika mikrokontrolérů obsahují procesor, paměti RAM a ROM, V/V porty a čítače/časovače jednoduché (stále převážně osmibitové) počítače v jediném pouzdře vyžadují minimum vnějších součástek (nebo dokonce žádné) "programovatelná" funkce jednotlivých vývodů (vstup, výstup, vstupy čítače, přerušení, komparátoru, A/D převodníku... ) zpravidla navrženy podle harwardské architektury Základní typy mikrokontolérů velmi se rozšířil typ 8048 firmy Intel z roku 1976, který obsahuje CPU, 1 KB ROM pro program, 64 B RAM pro data dnešním "standardem" je typ 8051, který v různých modifikacích vyrábí řada výrobců (Atmel, Philips, Dallas, Siemens... ) rozšířené jednočipy s RISC architekturou: PIC (Microchip) - velmi jednoduchý, 30-40 instrukcí MC68Hxx (Motorola) AVR (Atmel) Miroslav Flídr Počítačové systémy LS 2006-3/17- Západočeská univerzita v Plzni
Charakteristika mikrokontroléru MCS-48 pamět programu o velikosti 1 4kB (ROM nebo EPROM) datová pamět o velikosti 64, 128 nebo 256 B 27 linek seskupené do tří 8mi bitových V/V portů + 3 testovací vstupy porty 1, 2 kvazi obousměrné plně kompatibilní s TTL třístavový výstup výstupní data uchována do dalšího zápisu (statický výstupní port) vstupní data musí být podržena až po zavolání obslužné instrukce sběrnice plně obousměrný port řízený signály /RD,/WR může pracovat stejným způsobem jako porty 1, 2 vstupy T0, T1, /INT - umožňují větvení programů 12ti bitový PC implementovaný párem bytů paměti programu Miroslav Flídr Počítačové systémy LS 2006-4/17- Západočeská univerzita v Plzni
Obecná charakteristika mikrokontrolérů 1024 MCS-48 (Intel 8048) MCS-51 (Intel 8051) Microchip PIC PIC16F84 Atmel AVR Shrnutí 1023 ON CHIP 8050AH Mapy pamětí mikrokontroléru MCS-48 ON CHIP 8049AH ON CHIP 8048AH ON CHIP 8050AH 8 7 6 5 4 3 2 ON CHIP 8049AH ON CHIP 8048AH 4095 2048 2047 1 1024 1023 0 7 6 5 4 3 2 1 0 ADDRESS 8 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 ADDRESS LOCATION 7 TIMER INTERRUPT VECTORS PROGRAM HERE LOCATION 3 SEL MB1 EXTERNAL INTERRUPT SEL MB0 VECTORS PROGRAM HERE RESET VECTORS PROGRAM HERE LOCATION 7 TIMER INTERRUPT VECTORS PROGRAM HERE LOCATION 3 EXTERNAL INTERRUPT VECTORS PROGRAM HERE RESET VECTORS PROGRAM HERE 63 (127) ((255)) 24 23 USER RAM 32 8 (96 8) ((224 8)) BANK 1 WORKING REGISTERS 8 8 R1 R0 8 LEVEL STACK OR USER RAM 16 8 DIRECTLY ADDRESSABLE WHEN BANK 1 IS SELECTED 8 LEVEL STACK ADDRESSED OR INDIRECTLY USER RAM THROUGH 16 8 R1 OR R0 (R0 OR R1 ) 63 (127) ((255)) 8 7 BANK USER 0 RAM WORKING 32 8 DIRECTLY REGISTERS (96 8) ADDRESSABLE 8 ((224 8 8)) WHEN BANK 0 R1 IS SELECTED R0 BANK 1 0 WORKING DIRECTLY REGISTERS ADDRESSABLE 8 8 IN ADDITION R0 OR R1 (R0 OR R1 ) WHEN BANK 1 MAY BE USED TO ADDRESS R1 256 IS SELECTED ( ) 8049AH, 8749AH WORDS OF 24EXTERNAL RAM. R0 (( )) 8050AH 23 ADDRESSED INDIRECTLY THROUGH R1 OR R0 (R0 OR R1 ) Miroslav Flídr Počítačové systémy LS 2006-5/17- Západočeská univerzita v Plzni
Stavový register (PSW) Saved in stack Stack pointer CY AC F0 BS 1 S S S 2 1 0 CY - carry bit (nastavený při přetečení v akumulátoru) AC - pomocný carry bit (nastavený instrukcí ADD) F0 - uživatelem nastavitelný bit BS - přepínání banky registrů Práce s datovou pamětí vše nepřímo adresovatelné přes registry R0 a R1 (reps. R0 a R1 ) dvě banky po osmi přímo adresovatelných registrů (přepínány nastavením příznaku ve stavovém slovu) adr. prostor 008h 023h používán bud jako zásobník nebo uživatelská pamět (ukládá se na něj 12 bitů PC a 4 bity PSW CY,AC,F0,BS) buňka zásobníku dána ukazatelem ve stavovém slovu o velikosti 3 bity Miroslav Flídr Počítačové systémy LS 2006-6/17- Západočeská univerzita v Plzni
Obecné schéma MCS-51 RD WR EA RST ALE PSEN XTAL1 XTAL2 Control and timing Clock I/O Port 0 I/O Port 1 I/O Port 2 I/O Port 3 CPU Interupt Controller Timer/Counter 0 Timer/Counter 1 Serial channel Program Memory Data Memory + SFR INT0 INT1 T1 T0 TxD RxD Miroslav Flídr Počítačové systémy LS 2006-7/17- Západočeská univerzita v Plzni
Charakteristiky rodiny mikrokontrolérů MCS-51 datová pamět o velikosti 64, 128 nebo 256 B RAM pamět programu o velikosti 1-64 KB (ROM, EPROM, Flash) - různé kombinace vnější a vnitřní paměti (dáno signály /EA, /PSEN) 4 banky po 8 registrech 8mi bitová datová a 16ti bitová adresní sběrnice instrukční sada optimalizovaná pro jednobitové operace 2 a více 16-bitových programovatelných čítačů/časovačů mnoho vstupů/výstupů full-duplexní sériový port 5-8 zdrojů přerušení (od vstupů INT0,INT1, čítače, sériového kanálu,... ) s definovanou prioritou ve dvou úrovních další možné vybavení A/D, D/A převodníky, komparátor, watchdog, pulse-width modulátor (PWM), sběrnice USB, I 2 C, CAN Miroslav Flídr Počítačové systémy LS 2006-8/17- Západočeská univerzita v Plzni
Práce s pamětí Organizace paměti mikrokontroléru MCS-51 MCS 51 Internal RAM SFR Internal program memory Pamět programu External RAM External program memory FFFFH 0000H External memory (64kB) EA=0 OR FFFFH 1000H 0FFFH 0000H External memory (60kB) Internal memory (4kB) EA=1 pamět programu maximálně 64KB a to v různých kombinacích interních a externích pamětí (interní 0kB, 4kB, 8kB nebo 16kB) externí programová pamět (realizována pomocí EPROM) použita velmi často z cenových důvodů k přenosu dat mezi MCU a vnější pamětí použity porty 0 a 2 (multiplexovaný port 0 pro data nebo dolní byte PC) Miroslav Flídr Počítačové systémy LS 2006-9/17- Západočeská univerzita v Plzni
Práce s pamětí Organizace paměti mikrokontroléru MCS-51 MCS 51 7FH FFH Internal RAM External RAM 30H General user memory & stack space (80 bytes) Region of bit memory Extended user memory & stack space (80 bytes) SFR 20H OR Register Bank 3 Special Function registers 18H Internal program memory External program memory 10H 08H Register Bank 2 Register Bank 1 Register Bank 0 00H 80H Vnitřní datová pamět čtyři banky po osmi bytových registrů (R0 R7) registry z neaktivní banky dostupné přímým adresováním výběr banky dle nastavení bitů RS0, RS1 ve stavovém slově oblast paměti přístupné po jednotlivých bitech (speciální instrukce) zbylá vnitřní datová pamět využita jako zásobník nebo volná některé registry speciálních funkcí též bitově adresovatelné Miroslav Flídr Počítačové systémy LS 2006-9/17- Západočeská univerzita v Plzni
Práce s pamětí Registry speciálních funkcí - Určité pamět ové místo, kde se soustřed ují důležité informace o stavu mikroprocesoru a jeho periferních obvodů, ale zároveň i informace ovlivňující jeho další činnost. Vybrané registry speciálních funkcí bitově adresovatelné registry (adresa dělitelná osmi) akumulátor ACC (E0H), registr B (F0H), C AC F0 RS1 RS0 OV P Program Status Word PSW (D0H) vstupně/výstupní porty P0 P3 (80H, 90H, A0H, B0H) řízení priority přerušení IP (B8H) řízení povolení přerušení IE (A8H) nižších 7 bitů povoluje jednotlivá přerušení, nejvyšší bit povolí všechna registr módu a řízení sériového kanálu SCON (98H) registr řízení časovače/čítače TCON (88H) ukazatel zásobníku SP (81H) registry DPL (82H), DPH (83H) nepřímé adresování vnější paměti registr sériového kanálu SBUF Serial Data Buffer (99H) Miroslav Flídr Počítačové systémy LS 2006-10/17- Západočeská univerzita v Plzni
Práce s pamětí Čtení instrukcí z externí programové paměti MCS 51 EPROM P1 P0 Instruction EA ALE Address latch Address P3 P2 PSEN OE Přístup do externí datové paměti P1 MCS 51 P0 Data External RAM EA Vcc ALE Address latch Address RD WR P3 P2 I/O Page bits WE OE Miroslav Flídr Počítačové systémy LS 2006-11/17- Západočeská univerzita v Plzni
Vstupně výstupní porty Použití portů Port 0 - používá se zejména pří styku s vnější pamětí Port 1 - nemá žádnou alternativní funkci, tj. lze jej používat libovolně Port 2 - zejména slouží spolu s P0 ke komunikaci s vnější pamětí Port 3 - všechny piny portu 3 jsou vícefunkční (poskytuje své piny pro potřeby jiným vnitřním obvodům mikroprocesoru) Pin Alternativní funkce P3.0 RXD (serial input) P3.1 TXD (serial output) P3.2 /INT0 (external interrupt) P3.3 /INT1 (external interrupt) P3.4 T0 (Timer/Counter 0 external input) P3.5 T1 (Timer/Counter 1 external input) P3.6 /WR (external Data Memory write strobe) P3.7 /RD (external Data Memory read strobe) Každý pin kteréhokoliv portu může být nezávisle používán jako vstupní nebo jako výstupní. Miroslav Flídr Počítačové systémy LS 2006-12/17- Západočeská univerzita v Plzni
Charakteristika MCU PIC PIC16F84 8-bit MCU s RISC architekturou pamět programu realizována Flash pamětí (1024 slov po 14bitech) 2 paměti dat typu RAM pro data vykonávaného programu ve dvou bankách (rozsah 0CH 4FH resp. 8CH CFH) 64B EEPROM uchovávající důležitá data (nepřímé adresování) Special Function Registers (rozsah 00H 0BH resp. 80H 8BH ) komunikace s okolím přes PORTA (5 bitů) a PORTB (8 bitů) 8mi bitový časovač (inkrementován v každém 4 cyklu) stavový register IRP RP1 RP0 T0 PD Z DC C čtyři zdroje přerušení ukončení zápisu dat do EEPROM přerušení TMR0 vyvolané přetečením čítače přerušení při změně pinů RB4, RB5, RB6 a RB7 na PORTB vnější přerušení na pinech MCU RB0/INT Miroslav Flídr Počítačové systémy LS 2006-13/17- Západočeská univerzita v Plzni
Organizace paměti Miroslav Flídr Počítačové systémy LS 2006-14/17- Západočeská univerzita v Plzni
Základní charakteristika RISC architektura (cca. 60 instrukcí,optimalizováno pro vyšší programovací jazyky (AVR-GCC) 32 8-bitových registrů přímo spojených s ALU (adresní prostor 00h-1fh); žádný akumulátor zásobník umístěn v datové paměti a není omezena jeho velikost 1-3 čítače/časovače (8/16-ti bitové) 2 úsporné režimy sleep - CPU stojí, čítače a přerušení funguje; spotřeba <0,5 ma power-down - zastaví CPU až do dalšího resetu, ale zachová obsah registrů; spotřeba <1 µa 2-12 zdrojů přerušení (z toho 1-2 vnější, až 4 zdroje od časovače/čítače, 3 zdroje sériového rozhraní,jeden od komparátoru) ochranný mechanizmus proti vykrádání softwaru Miroslav Flídr Počítačové systémy LS 2006-15/17- Západočeská univerzita v Plzni
Podporovaná rozhraní 4 osmi bitové obousměrné porty většinou obsahuje sériové rozhraní bytově orientovaná dvouvodičová sériová linka některé typy obsahují 6- či 8-kanálový 10-bitový A/D převodník, PWM analogový komparátor watchdog Miroslav Flídr Počítačové systémy LS 2006-16/17- Západočeská univerzita v Plzni
Vlastnosti podporující nasazení mikrokontrolérů umožňují redukovat složitost návrhu zařízení nízká spotřeba možnost uspání a opětovného rychlého náběhu integrace složitých periférií vlastnosti zaručující spolehlivost úspory nákladů Miroslav Flídr Počítačové systémy LS 2006-17/17- Západočeská univerzita v Plzni