Mikrokontrolery, architektura AVR
Transkrypt
Mikrokontrolery, architektura AVR
Systemy wbudowane Mikrokontrolery Budowa i cechy mikrokontrolerów Architektura mikrokontrolerów rodziny AVR 1 Czym jest mikrokontroler? Mikrokontroler jest systemem komputerowym implementowanym w pojedynczym układzie scalonym 2 Typowa struktura mikrokontrolera Pamięć programu ROM, FLASH Procesor (CPU) Kontroler przerwań Kontroler DMA Magistrala wewnętrzna Układy czasowo -licznikowe Porty cyfrowe ogólnego przeznaczenia Interfejs analogowy Interfejsy komunikacyjne Sygnały zewnętrzne Pamięć danych SRAM Oscylator 3 Cechy charakterystyczne Integracja w pojedynczym układzie wszystkich podzespołów niezbędnych do realizacji wybranego algorytmu sterowania Niewielkie rozmiary Dobry stosunek mocy obliczeniowej do energii pobieranej ze źródła zasilania Tryby obniżonego poboru mocy (uśpienia) Sprzętowe zabezpieczenie przed „zawieszaniem się” 4 systemu Architektura mikrokontrolerów rodziny AVR 5 Architektura mikrokontrolerów rodziny AVR (8-bitowej) Wewnętrzna architektura potokowa RISC Wykonanie większości instrukcji w pojedynczym cyklu zegara 8-bitowa jednostka ALU Rozdzielona przestrzeń adresowa pamięci programu i danych Zbiór 32 8-bitowych rejestrów roboczych Rejestry robocze i rejestry układów I/O mapowane na przestrzeń adresową pamięci danych W pełni statyczna realizacja rejestrów – możliwość taktowania dowolnie małą częstotliwością 6 Schemat blokowy mikrokontrolera ATmega32 7 Podstawowe cechy mikrokontrolera ATmega32 Architektura zgodna z AVR 8-BIT RICS 32KB pamięci programu typu FLASH 2KB pamięci danych 1KB pamięci EEPROM Możliwość zaprogramowania w docelowym systemie Zabezpieczenie przed odczytaniem programu Interfejs JTAG ułatwiający uruchamianie programu Tryb programowania szeregowego przez interfejs JTAG Układ restartu po spadku napięcia zasilania 6 trybów obniżonego poboru mocy 8 Układy peryferyjne mikrokontrolera ATmega32 2 liczniki/timery 8-bitowe Licznik/timer 16-bitowy Licznik czasu rzeczywistego pozwalający na programową implementację RTC 4 kanały PWM 8-kanałowy 10-bitowy przetwornik A/C Dwuprzewodowy interfejs szeregowy (odpowiednik I2C) Programowalny port szeregowy USART Interfejs SPI Programowalny timer Watchdog Komparator analogowy 9 Inne cechy charakterystyczne mikrokontrolera ATmega32 32 programowalne linie I/O Obudowa PDIP40, TQFP4 lub QFN/MLF44 Zakres napięć zasilania: - ATmega32L: 2,7-5,5V - ATmega32: 4,5-5,5V Częstotliwość zegara: - ATmega32L: 0-8MHz - ATmega32: 0-16MHz Pobór prądu dla wersji ATmega32L w warunkach focs=1MHz, Uz=3V, T=25oC: - tryb aktywny: 1,1mA - tryb Idle: 0,35mA - tryb Power-Down: <1uA 10 Obudowy mikrokontrolera ATmega32 11 Obudowy mikrokontrolera ATmega32 12 Jednostka centralna mikrokontrolera ATmega32 13 Cechy CPU Dwucyklowa architektura potokowa – w pojedynczym cyklu wykonywana jest n-ta instrukcja, a n+1 jest pobierana ALU wykonuje operacje na argumentach z pliku rejestrów roboczych lub na rejestrze i stałej Wykonywanie operacji ALU w pojedynczym cyklu (odczyt argumentów z rejestrów roboczych, operacja i zapis do rejestru) 6 rejestrów ogólnego przeznaczenia tworzy trzy 16-bitowe rejestry będące wskaźnikami przy adresowaniu pośrednim danych 14 Koncepcja przetwarzania potokowego AVR 15 Zależności czasowe operacji ALU 16 Rejestr statusu SREG 17 Rejestr statusu SREG Bit 7 – I: globalne zezwolenie na przerwania Bit 6 – T: podręczna pamięć w operacjach na bitach Bit 5 – H: przeniesienie połówkowe Bit 4 – S: bit znaku Bit 3 – V: znacznik przekroczenia zakresu liczb U2 Bit 2 – N: znacznik wartości ujemnej w kodzie U2 Bit 1 – Z: znacznik wartości równej 0 Bit 0 – C: znacznik przekroczenia zakresu liczb NBC 18 Zbiór rejestrów roboczych ogólnego przeznaczenia 19 Pamięć programu Pamięć programu ma organizację 16-bitową ponieważ pojedyncza instrukcja jest kodowana za pomocą 16 bitów 20 Przestrzeń pamięci danych 21 Przestrzeń pamięci danych Rejestry robocze są mapowane na przestrzeń pamięci danych Dostęp do rejestrów roboczych można zrealizować za pomocą ich nazwy lub jako dostęp do pamięci danych Rejestry funkcyjne (sterujące) układów wejścia-wyjścia są mapowane na przestrzeń pamięci danych Dostęp do tych rejestrów można zrealizować za pomocą rozkazu transferu I/O lub do/z pamięci danych 22