Transcript Wykład 4
Systemy wbudowane Wykład nr 4: Mikrokontrolery - wprowadzenie Piotr Bilski Definicja mikrokontrolera • Jest to specjalizowany układ cyfrowy z dedykowanym procesorem, który spełnia dwa kryteria: – Jest zdolny do autonomicznej pracy – Jest stosowany w systemach pomiarowosterujących • Podstawowe przeznaczenie: komputer jednopłytkowy • Ma zmodyfikowaną architekturę względem procesora ogólnego przeznaczenia Schemat mikrokontrolera Rezonator kwarcowy Zegar Jednostka centralna (CPU) reset Wewnętrzna szyna adresowa zasilanie sygnały wejściowe Pamięć programu Wewnętrzna szyna danych Pamięć danych Układy wejścia/wyjścia sygnały wyjściowe Architektura Harvard • Modyfikacja architektury von Neumanna • Wydzielona oddzielna pamięć na dane i na program • Eliminacja konfliktów przy dostępie do pamięci operacyjnej • Jednoczesny dostęp do danych i do rozkazów zwiększa efektywność programu • Zastosowanie: mikrokontrolery, procesory sygnałowe (DSP) Schemat architektury typu Harvard • Dane programu często są w pamięci EPROM • Dane tymczasowe przechowywane są w pamięci RAM Elementy mikrokontrolera • Jednostka centralna (synchroniczny układ sekwencyjny, sterowany zegarem) • Układy wejścia/wyjścia – Porty – Przetworniki A/C i C/A – Liczniki (timers) • Pamięć wewnętrzna i zewnętrzna (RAM, ROM, flash) Jednostka centralna mikrokontrolera Układ sterujący Szyna sygnałów sterowania Sygnały stanu Układ wykonawczy Wewnętrzna szyna adresowa Wewnętrzna szyna danych Ogólna architektura mikrokontrolera Wewnętrzna pamięć danych Wewnętrzna szyna Rejestr przejściowy Wewnętrzna pamięć programu Bufor szyny danych Rejestr wskaźników Akumulator ALU danych Rejestr rozkazów Dekoder rozkazów Układ sterowania Rejestry R0Rn Wskaźnik stosu Licznik prog. Rejestr adr. Układ we/wy Układy peryferyjne Rejestry specjalne Zegar Układ zasilania Szyna sterowania Bufor adresowy We/wy Układ wykonawczy • Elementy składowe: – Jednostka arytmetyczno-logiczna (ALU) – Akumulator – Rejestr przejściowy (tymczasowy) – Rejestr wskaźników (flagi) – Rejestr przesuwny (na wyjściu) – Jednostka zmiennoprzecinkowa (opcjonalnie) Rejestr wskaźników (8051) C • • • • • • AC V N Z C – przeniesienie AC – przeniesienie pomocnicze V – nadmiar N – znak Z – zero P – parzystość (inne mikrokontrolery) Rejestry mikrokontrolera • Rejestry robocze – Akumulator (pierwszy argument ALU i wynik) – Rejestr pomocniczy (drugi argument ALU) – Zbiór rejestrów roboczych (R0-Rn) • Rejestry związane z pracą jednostki sterującej (licznik rozkazów, rejestr rozkazów) • Rejestry specjalne (SFR) Struktura rejestrów ogólnego przeznaczenia R7H R7L R6H R6L R5H R5L R4H R4L Rejestry globalne (8 i 16 bit) R15 R14 R13 R12 R3H R3L R2H R2L R1H R1L R0H R0L Banki rejestrów 8i 16-bitowych R11 R10 R09 R08 Rejestry globalne (16 bit) Instrukcje maszynowe procesora • Postać analogiczna, jak w przypadku klasycznego komputera • Programowanie najczęściej w asemblerze • Program wykonywany sekwencyjnie (wyjątek: rozgałęzienia) • Przykład: ADD A,#3CH • Zmienna długość rozkazu w pamięci (1-3B): 1. bajt – kod operacji, 2. bajt – pierwszy argument, 3. bajt – trzeci argument Tryby adresowania • Tryby proste i niezbyt liczne: – Wewnętrzne (rejestrowe) – Natychmiastowe – Bezpośrednie – Pośrednie – Indeksowe – Względne Tryb wewnętrzny • Instrukcje jednobajtowe • Argumenty przechowywane w rejestrach • Sposób efektywny! ADD A,R1 Akumulator Rejestr R1 + Tryb natychmiastowy • Instrukcje jednobajtowe • Argumenty to liczby, nie adresy • Przydatny tylko dla operacji na stałych! ADD A,#liczba Akumulator + Tryb bezpośredni • Instrukcje wielobajtowe • Argumenty przechowywane w pamięci • Ograniczony adresowany obszar danych ADD A,adres 00 Akumulator Argument + FF Tryb indeksowy • Instrukcje wielobajtowe • Adres generowany przez sumowanie dwóch argumentów • Efektywne przy operacjach na blokach danych Rozkaz adres,R1 Rejestr indeksowy Argument + Tryb postindeksowy • Instrukcje wielobajtowe • Bardziej skomplikowany sposób generowania adresów Rozkaz adres,R1 Rejestr indeksowy Argument + Tryb pośredni • Instrukcje wielobajtowe • Argument jest przechowywany pod innym adresem w pamięci Rozkaz adres 00 Adres Argument FF Tryb względny • Adres obliczany względem licznika programu • Przesunięcie przechowywane w pamięci • Zastosowanie: programy modyfikujące własny kod, małe skoki 00 Rozkaz Przesunięcie Argument Licznik rozkazu + FF Cykl wykonania rozkazu • Pobranie kodu rozkazu z pamięci do rejestru IR – Odczytanie zawartości licznika rozkazów (adres) – Podanie adresu na linie adresowe magistrali – Wygenerowanie sygnału odczytu na liniach sterowania – Przesłanie otrzymanego rozkazu do rejestru IR – Inkrementacja IP • Wykonanie mikrooperacji składających się na rozkaz Ilustracja fazy pobrania rozkazu Dane Rejestr rozkazów Pamięć programu Dekoder rozkazów Licznik programu Układ sterowania Rejestr adresowy Zegar Szyna adresowa Szyna sterowania Adresy Ilustracja fazy wykonania rozkazu Dane Rejestr rozkazów Akumulator R0 R1 Pamięć danych Dekoder rozkazów (A) → M(R0, R1) Układ sterowania Rejestr adresowy Adresy Zegar Szyna adresowa Szyna sterowania Schemat czasowy fazy wykonania instrukcji Szyna adresowa Licznik programu ( R0, R1 ) MEMR MEMW Szyna danych Zawartość akumulatora Rozkaz tdr thr taw tar tr tdw tw thw Instrukcje wielobajtowe • Wymagany wielokrotny dostęp do pamięci • Nowsze mikrokontrolery operują na słowach – zwiększenie wydajności • Czas wykonania instrukcji – liczba cykli maszynowych potrzebnych do jej realizacji • Cykl maszynowy: – Cykl pobrania rozkazu – Cykl pobrania argumentów – Cykl zapisu wyniku Przerwania i wyjątki • Przerwania generowane przez sprzęt (ograniczenia w systemach czasu rzeczywistego) • Sytuacje wyjątkowe (exceptions - NMI) • Przerwania maskowalne (event interrupts) • Przerwania programowe (software interrupts) • Pułapki (traps) Diagram przejść między stanami mikrokontrolera Stan reset po włącz. RES=0, NMI=0 RES=0, NMI=1 Obsługa przerw. BRQ=0 BRQ=1 Zgłoszenie przerwania Zwolnienie szyny BRQ=0 Koniec obsługi przerwania Stan czuwania Stan reset RES=1, NMI=0 RES=1, NMI=1 Wymuszenie trybu stand-by Stan reset po akcji Wykonywanie programu Wymuszenie trybu sleep BRQ=1 BRQ=1 BRQ=0 Stan uśpienia Przerwanie NMI Stan obniżonego poboru mocy Hierarchia pamięci • Pamięć RAM (ulotna) – Statyczna lub dynamiczna – Wykorzystywana w układach zewnętrznych • Pamięć ROM (nieulotna) – EPROM (przechowuje programy i dane użytkownika) – OTP (jednokrotnie programowalna) – EEPROM (przechowuje programy i dane) – FLASH (używana jako wewnętrzna lub zewnętrzna) Mapy pamięci • Jest to struktua pamięci w systemie • Zależy od architektury systemu i liczby oraz rodzajów pamięci • Rozwiązania: – jednolita przestrzeń adresowa (von Neumanna) – Architektura Harvard Jednolita przestrzeń adresowa F...FH Rejestry kontrolerów i urządzeń zewnętrznych Zewnętrzna pamięć danych Przestrzeń niewykorzystana Przestrzeń adresowa pamięci zewnętrznej Zewnętrzna pamięć programu Adresy procedur obsługi przerwań Programy diagnostyczne i systemowe (monitor) Układy wejścia/wyjścia Rejestry specjalne (SFR) Pamięć danych i stos 0...0H Rejestry Przestrzeń adresowa pamięci wewnętrznej Mapa pamięci w architekturze Harvard Adresowanie pośrednie 00H FFH Zewnętrzna pamięć programu YYH Obszary nieużywane FFH Układy we/wy zewnętrzne 00H Wewnętrzna pamięć programu FFH Pamięć danych XX+1H XXH Rejestry, dane, stos Dane 00H 00H Pamięć programu Adresowanie bezpośrednie Zewnętrzna pamięć danych Wewnętrzna pamięć danych Rejestry specjalne SFR Segmentacja pamięci • Wymagana przy dużej przestrzeni adresowej • Umożliwia ochronę fragmentów pamięci przed niepowołanym dostępem (wielozadaniowość) • Segmenty definiowane przez rejestry segmentowe • Adresowanie: (RS1) + offset = EffAddr Użycie stosu • Fragment pamięci RAM obsługiwany jak kolejka LIFO • Użycie wskaźnika stosu (SP) • Wykorzystanie: – Zapamiętywanie stanu procesora przed przejściem do obsługi przerwań – Zapamiętywanie adresu powrotu z podprogramów – Chwilowe zapamiętywanie zawartości rejestrów i zmiennych Zaawansowana architektura mikrokontrolerów • Wymagana w zastosowaniach o dużej przepustowości danych • Kryterium oceny: MIPS, MFLOPS • Architektury: – Superskalarne – Potokowe – Z pamięcią podręczną – RISC Architektura superskalarna i potoki • Rozkaz dzielony jest na wiele faz, które mogą być przetwarzane równolegle • Niektóre elementy procesora są zwielokrotnione (np. ALU) • Problem: algorytm wypełniania kolejki rozkazami (przewidywanie rozgałęzień) • Drożność architektury – liczba równoległych jednostek wykonawczych Pamięć podręczna (cache) • Wymagane przy wykorzystaniu pamięci zewnętrznych • Przechowuje tymczasowo dane i kod programu w celu przyspieszenia przetwarzania • Problem: modyfikacja zawartości pamięci, gdy jest ona pełna Mikrosystemy mikrokontrolerów • Dodanie układów ASIC o funkcjonalności definiowanej przez użytkownika • Dodanie procesora DSP • Dodanie urządzeń peryferyjnych definiowalnych przez użytkownika • Przykład: TriCore (Siemens) Architektura RISC • Zgodna z architekturą Harvard • Przetwarzanie potokowe • Niewielki zbiór instrukcji ortogonalnych – Instrukcje operują na dowolnych rejestrach – Każda instrukcja wykorzystuje dowolny tryb adresowania argumentów – Wszystkie instrukcje mają identyczną długość i jednorodny format • Procesor znacznie uproszczony Parametry elektryczne i mechaniczne • Długość słowa (szerokość szyny): 8, 16, 32 bity • Zakres temperatur pracy (standardowo: 0 do 70ºC, zastosowania wojskowe: -40 do 125ºC) • Napięcie zasilające (3.3, 4.5, 5 V) • Częstotliwość oscylatora kwarcowego (1 MHz – 300 MHz) • Parametry stałoprądowe (poziom napięć w stanie niskim i wysokim) Technologia CMOS • Complementary Metal-Oxide Semiconductor • Umożliwia tworzenie układów 0.18-0.25 µm • Zaleta: niewielka moc pobierana przez układ (możliwość zasilania bateryjnego), liniowo zależna od jego częstotliwości • Możliwość modyfikacji częstotliwości układu • Odporność na zakłócenia Parametry dynamiczne • Oznaczają czasy trwania poszczególnych faz pracy mikrokontrolera • Wartości maksymalne, minimalne i typowe • Przykłady: – Okres drgań oscylatora – Okres zegara – Czas trwania wysokiego stanu impulsu zegarowego – Okres sygnału ALE – Czas trwania niskiego/wysokiego stanu READ i WRITE Obudowy mikrokontrolerów • Układy scalone wymagają obudów określonego rodzaju (plastik lub ceramika) • Zależą od rodzaju montażu (tradycyjnego, czy powierzchniowego) • Przykłady: – DIP (S-DIP, SK-DIP) – dwurzędowe płaskie – PGA – matryca prostokątna lub kwadratowa – DFP – montaż powierzchniowy, wyprowadzenia z dwóch stron obudowy – QFP/TQFP – montaż powierzchniowy, wyprowadzenia z czterech stron obudowy Obudowa DIP (DIL) • Typowa dla układów analogowych • Przykład: wzmacniacz operacyjny • S-DIP i SK-DIP – obudowy ścieśnione Obudowa PGA • Obudowa z siatką końcówek szpilkowych Obudowa DFP Obudowy QFP/TQFP