Hardvér (jednočipové PLC)

Z Kiwiki
Skočit na navigaci Skočit na vyhledávání

Hardvér

Popis mikrokontroléra AVR

Rodina Atmel AVR sú 8-bitové RISC mikrokontroléry s harwardskou štruktúrou (to znamená oddelenú pamäť programu a pamäť dát).

Za zrodom AVR stoja dvaja študenti z Nórskeho technického inštitútu: Alf-Egil Bogen a Vegard Wollan. Skratka AVR je zložená zo začiatočných písmen mien autorov a názvu arcitektúry (Alf Vegard RISC) ale oficiálne znamená Advanced Virtual RISC.

Jadro AVR sa podobá jadru väčšiny RISC-procesorov. AVR jadro sa skladá z 32 rovnakých 8-bitových registrov, ktoré môžu obsahovať dáta alebo adresy. Posledných 6 registrov môžeme použiť vo dvojiciach ako ukazatele adresy pre nepriame adresovanie pamäti dát (16-bitové adresy).

AVR architektúra má 5 adresovacích módov pre pamäť dát:

  • priame adresovanie
  • nepriame adresovanie s posunutím (6-bitový posun)
  • nepriame adresovanie
  • nepiame adresovanie s dekrementáciou ukazateľa adresy pred spracovaním inštrukcie
  • nepriame adresovanie s inkrementáciou ukazateľa adresy po spracovaní inštrukcie

Registre sú zobrazované priamo do pamäti dát. Preto je možné s každým registrom zaobchádzať ako s akýmkoľvek iným pamäťovým miestom. Rozdelenie pamäti dát je na obrázku \ref{obr:rozdelenie_pam_dat}.

Pamäť programu je dostupná pomocou dvojstupňovej pipeline. To znamená, že keď sa inštrukcia začína vykonávať, ďalšia je už pripravená k spracovaniu. Táto konštrukcia umožňuje spracovávať inštrukcie vždy v jednom hodinovom cykle. Pamäť programu je rozdelená na 2 časti:

  • Aplikačná časť pamäte programu – slúži na uloženie užívateľského programu.
  • Boot sekcia pamäte programu – slúži na uloženie programu, ktorý má prepisovať užívateľskú časť programu.

Prehľad základných vlastností mikrokontrolérov tejto rodiny sa nachádza v nasledujúcej tabuľke: \ref{tab:rozdelenie_avr}.

Prehľad vlastností mikrokontrolérov rady ATMega
ATMega 8 ATMega 16 ATMega 32 ATMega 128
Veľkosť pamäte programu 8kiB 16kiB 32kiB 128kiB
Veľkosť pamäte programu 8kiB 16kiB 32kiB 128kiB
Veľkosť pamäte údajov 1kiB 1kiB 2kiB 4kiB
Veľkosť pamäte EEPROM 512B 512B 1kiB 4kiB
Počet 8-bitových časovačov 2 2 2 2
Počet 16-bitových časovačov 1 1 1 2
Počet PWM kanálov 3 4 4 6
Počet kanálov A/D prevodníka 5 (10bit) 8 (10bit) 8 (10bit) 8 (10bit)
Počet sériových kanálov UART 1 1 1 2
Zbernica I2C áno áno áno áno
Rozhranie SPI áno áno áno áno
Watchdog áno áno áno áno
Analógový komparátor áno áno áno áno
 Počet vstupov externých prerušení 2 3 3 8
Maximálny výpočtový výkon 16Mips 16Mips 16Mips 16Mips
Počet digitálnych vstupno/výstupných vodičov 23 32 32 53
Púzdro DIP 32
TQFP 32
DIP 40
TQFP 44
DIP 40
TQFP 44
TQFP 64

Zapojenie vývodov