Hardvér (jednočipové PLC): Rozdiel medzi revíziami
Riadok 4: | Riadok 4: | ||
= = | = = | ||
==Popis mikrokontroléra AVR== | ==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: | ||
+ | <ul> | ||
+ | <li>priame adresovanie</li> | ||
+ | <li>nepriame adresovanie s posunutím (6-bitový posun)</li> | ||
+ | <li>nepriame adresovanie</li> | ||
+ | <li>nepiame adresovanie s dekrementáciou ukazateľa adresy pred spracovaním inštrukcie</li> | ||
+ | <li>nepriame adresovanie s inkrementáciou ukazateľa adresy po spracovaní inštrukcie</li> | ||
+ | </ul> | ||
+ | |||
+ | 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: | ||
+ | <ul> | ||
+ | <li>Aplikačná časť pamäte programu – slúži na uloženie užívateľského programu.</li> | ||
+ | <li>Boot sekcia pamäte programu – slúži na uloženie programu, ktorý má prepisovať užívateľskú časť programu.</li> | ||
+ | </ul> | ||
+ | |||
+ | \begin{figure}[ht] | ||
+ | \centering | ||
+ | \includegraphics{obrazky/avr_ram-eps-converted-to.pdf} | ||
+ | \caption{Rozdelenie pamäti dát \cite{lit:arch_avr}} | ||
+ | \label{obr:rozdelenie_pam_dat} | ||
+ | \end{figure} | ||
+ | |||
+ | Prehľad základných vlastností mikrokontrolérov tejto rodiny sa nachádza v nasledujúcej tabuľke: \ref{tab:rozdelenie_avr}. | ||
+ | |||
+ | {| class=wikitable border=1 cellpadding=5 | ||
+ | |+ 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 I<sup>2</sup>C | ||
+ | | á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 <br/> TQFP 32 | ||
+ | | DIP 40 <br/> TQFP 44 | ||
+ | | DIP 40 <br/> TQFP 44 | ||
+ | | TQFP 64 | ||
+ | |} | ||
+ | |||
==Zapojenie vývodov== | ==Zapojenie vývodov== |
Verzia zo dňa a času 15:22, 28. január 2010
1. | Programovateľné logické automaty |
2. | Hardvér |
3. | Softvér 1PLC |
4. | Funkčné bloky programu pre 1PLC |
5. | Prepojenie 1PLC s počítačom
|
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.
\begin{figure}[ht] \centering \includegraphics{obrazky/avr_ram-eps-converted-to.pdf} \caption{Rozdelenie pamäti dát \cite{lit:arch_avr}} \label{obr:rozdelenie_pam_dat} \end{figure}
Prehľad základných vlastností mikrokontrolérov tejto rodiny sa nachádza v nasledujúcej tabuľke: \ref{tab:rozdelenie_avr}.
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 |