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