Title: Systemy wbudowane
1Systemy wbudowane
- Wyklad nr 5
- Bloki funkcjonalne mikrokontrolerów
- Piotr Bilski
2Budowa typowego mikrokontrolera
zegar
Potok instrukcji i dekoder
Sekwenser
Uklad sterowania
Uklad sterowania szynami
Szyna sterowania
dane
Uklad wykonawczy
adresy
sygnaly wyjsciowe
3Linie sygnalowe mikrokontrolera
- Linie adresowe
- Linie danych
- Wejscia przerwan IRQ
- Wejscia dla przetwornika A/C
- Linie portów równoleglych
- Linie transmisji szeregowej
- Porty liczników
4Jednostka centralna
- Jednostka arytmetyczno-logiczna
- Banki rejestrów
- Potoki instrukcji
- Formaty instrukcji
- Lista instrukcji
5Zestaw rejestrów
16 bitów
16 bitów
Akumulator B
Akumulator A
Rejestr mnoznej
Rejestr mnoznika
Akumulator E
Akumulator ukladu mnozacego
Rejestr indeksowy X
Akumulator ukladu mnozacego (c.d.)
Rejestr indeksowy Y
Y MASK
X MASK
Rejestr indeksowy Z
EK
XK
YK
ZK
Wskaznik stosu
SK
Licznik programu
Slowo stanu (CCR)
6Slowo wskazników (CCR) 68HC16
Bit obslugi nadmiaru
Rozszerzenie licznika programu
Rejestr stanu
Priorytet przerwan
- Przerwania maja 8 poziomów priorytetów
- S zatrzymanie zegara / operacja NOP
- MV, EV sygnalizacja nadmiaru w ukladzie
mnozacym - H przeniesienie polówkowe
7Potok instrukcji
- Mikrosekwenser steruje kolejnoscia pobierania
instrukcji - Obecnosc pobierania instrukcji z wyprzedzeniem
(pre-fetch)
Mikrosekwenser
Potok instrukcji
Szyna danych
A
C
B
Uklad wykonawczy
8Formaty instrukcji
- 8-bitowy kod rozkazu, 8-bitowy argument
- 8-bitowy kod rozkazu, 4-bitowe rozszerzenia
adresów - 8-bitowy kod rozkazu, operand
- 8-bitowy prefiks, 8-bitowy kod rozkazu
- 8-bitowy prefiks, 8-bitowy kod rozkazu, argumenty
9Lista instrukcji
- Instrukcje przeslan
- Instrukcje arytmetyczne
- Instrukcje logiczne
- Instrukcje operacji na bitach
- Instrukcje sterujace
- Instrukcje obslugi indeksów
- Instrukcje operacji na stosie
- Instrukcje manipulacji na CCR
- Instrukcje DSP
- Instrukcje specjalne
10Instrukcje przeslan
- Sluza do transmisji zawartosci miedzy rejestrami,
pamiecia i urzadzeniami wejscia-wyjscia - Grupy
- Ladowania (LDAA, LDAB, LDBA)
- Przesuwania (MOVB, MOVW)
- Zapamietywania (STAA, STD, STED)
- Transferu miedzy rejestrami (TAB, TDE, TED)
- Wymiany zawartosci rejestrów (XGAB, XGDE)
11Instrukcje arytmetyczne
- Sluza do wykonywania operacji na liczbach
calkowitych i rzeczywistych - Grupy
- Dodawania (ABA, ADDA)
- Odejmowania (SBA, SDE, SUBA)
- Porównania (CBA, CPD)
- Testowania (TST, TSTA)
- Dzielenia (EDIV, EDIVS, FDIV)
- Mnozenia (EMUL, FMULS)
- Inkrementacji i dekrementacji (DEC, INC)
- Zerowania (CLR, CLRW)
- Uzupelnienia (COM, NEG)
12Instrukcje logiczne i operacji na bitach
- Sluza do wykonywania operacji logicznych
- Przyklady ANDA, ANDD, ORAA, EORA
- Operacje moga byc dokonywane na kazdym bicie
osobno - Uzywana jest maska, zawezajaca efekt dzialania
operacji - Przyklady BITA, BITB, BCLR, BSET
13Instrukcje przesuniec bitowych
- Przesuniecia logiczne, arytmetyczne i cykliczne
(rotacje) - Przyklady LSR, ASR, ROR, ASLD, RORD
0
C
C
0
C
C
C
14Instrukcje sterujace
- Wplywaja na kolejnosc wykonywania instrukcji
programu - Instrukcje skoków i przerwan
- Skoki moga byc krótkie lub dlugie, bezwarunkowe
lub warunkowe - Skoki krótkie
- wzgledny tryb adresowania z PC (i rozszerzenia
PK), 8-bitowy argument - Przyklady skoków krótkich BRA, BRN, BHI, BGT,
BCS, BMI
15Instrukcje sterujace (c.d.)
- Skoki dlugie argument 16-bitowy, dodawany do PC
(i rozszerzenia PK) - Wiekszy zakres pamieci w zasiegu skoku
- Przyklady LBLE rel
- JMP adres
- BRCLR M, maska, rel
- Wywolywania podprogramów (przed skokiem
zapamietanie adresu na stosie) - Przyklady RTI (przerwania sprzetowe), SWI
(przerwania programowe), JSR, BSR
16Instrukcje obslugi indeksów
- Operuja na zawartosci rejestrów indeksowych
- Operacje dodawanie , porównywanie, ladowanie,
wymiane zawartosci rejestrów indeksowych - Przyklady ADX, AIX, LDX, STX, TXY, XGDX
17Instrukcje operacji na stosie
- Manipulacja szczytem stosu zawartym w rejestrach
SKSP, transfer danych do i ze stosu - Przyklady AIS, PSHA, PSHB, PULA, PULB
- Mozliwe operacje wysylania zawartosci wielu
rejestrów naraz na stos PSHM, PULM. Potrzebna
jest maska do okreslania, które rejestry kopiowac
CCR
K
IZ
IY
IX
E
D
PSHM
PULM
18Instrukcje manipulacji na CCR i specjalne
- Sluza do ustawiania i zerowania poszczególnych
bitów oraz przesylac zawartosc akumulatorów - Przyklady ANDP, ORP, TAP, TDP itp.
- Mozliwe równiez przesylanie zawartosci CCR do
innych rejestrów - Instrukcje specjalne sluza do zatrzymania
procesora (LPSTOP), oczekiwania an przerwanie
(WAI), uruchomienia debugera (BGND) oraz
wykonania pustego cyklu (NOP)
19Instrukcje DSP
- Zestaw operacji wykorzystywanych podczas
przetwarzania sygnalów (filtracja, obliczanie
transformaty Fouriera) - Wykorzystywane sa rejestry HR i IR, wyniki
przechowywane sa w akumulatorze - Powtarzanie operacji w petli umozliwia realizacje
podstawowych dzialan
20Pamieci
- Metody alokacji pamieci
- Alokacja stala (obszary adresowe okreslone przez
producenta) - Zmienne przypisania obszarów adresowych (obszary
ustalane przez programiste) - Klasyfikacja
- RAM
- ROM/OTP/EPROM
- EEPROM/Flash
21Architektury mikrokontrolerów
- Rejestrowa (rejestry sa czescia pamieci RAM,
jednolicie adresowanej) - Plik rejestrów roboczych
- Obszar rejestrów specjalnych
- Pamiec podreczna
- Akumulatorowa (rejestry sa wydzielone z pamieci
RAM)
22Mapa rejestrów wewnetrznych (68HC916Y3)
QSM 512 B ADC 64 B Sterowanie FLASH Sterowanie
FLASH Sterowanie FLASH Sterowanie FLASH TPU GPT
64B SCIM 128B Sterowanie SRAM MCCI 64B TPU 512B
FLASH 16kB
FLASH 48 kB
FLASH 32 kB
FLASH TPU 4kB
SRAM 2kB
23Mapa pamieci (68HC916Y3) wspólna przestrzen
programu i danych
000000
Sekcja 0
Sekcja 8
QSM
Sekcja 1
Sekcja 9
ADC
Sekcja 2
Sekcja 10
Ster. FLASH
Sekcja 3
Sekcja 11
GPT
Sekcja 4
Sekcja 12
SCIM
Sekcja 5
Sekcja 13
Ster. SRAM
Sekcja 6
Sekcja 14
MCCI
Sekcja 7
Sekcja 15
TPU
FFFFFF
- Wspólna przestrzen pamieci programu i danych
- Rozmiar 1 MB
- 16 sekcji
24Pamiec SRAM
- Szybka pamiec, wykonana np. w technologii CHMOS
- Mozliwosc przejscie w stan oczekiwania (podczas
zasilania bateryjnego) zasilanie napieciem
Vstby - Sluzy do realizacji stosu i przechowywania
zmiennych
25Technologia CHMOS
- Complementary High-Performance Metal-Oxide
Semiconductor - Uklady zdolne sa do pracy przy niskim napieciu
zasilajacym z zachowaniem efektywnosci pracy - Wykorzystywana w mikrokontrolerach oraz
kontrolerach dysków, interfejsach peryferyjnych
itp. - Aktualna technologia CHMOS III (litografia 1.5
mikrona)
26Obsluga pamieci SRAM
- Rejestr RAMMC sluzy do ustawienia trybu pamieci
(rozkazy i dane/rozkazy) i zarzadza praca przy
zmniejszonym poborze mocy - Rejestr RAMTST sluzy do testowania pamieci
- Rejestry RAMBAH i RAMBAL przechowuja adresy
bazowe (ustawiane tylko przy zmniejszonym
poziomie mocy!)
27Mapa pamieci (68HC916Y3) rozdzielone
przestrzenie programu i danych
Wektor adresów obslugi przerwan
Obsluga wyjatków po RESET
000000
000000
Sekcja 1
Sekcja 1
Sekcja 2
Sekcja 2
512 kB
512 kB
Nie uzywane
Nie uzywane
512 kB
Sekcja 14
Sekcja 14
512 kB
Sekcja 15
Blok rejestrów
FFFFFF
FFFFFF
28Pamieci ROM, OTP i EPROM
- Wielkosc rzedu kilkuset kB (np. 8, 32, 64 kB)
- Bloki pamieci moga byc maskowalne (MRM)
- Programowanie
- W specjalnych urzadzeniach (programatorach)
- W ukladzie (in-circut programming),
mikrokontroler musi miec wbudowany odpowiedni
uklad - Wymagane dodatkowe napiecie 12V (z zewnatrz lub z
wbudowanej przetwornicy)
29Programowanie pamieci ROM
- Konieczne dodatkowe wejscia do ukladu (np. EA)
- Tryby programowania
- Automatyczny (wyjscia PACT i PVAL) do
programowania pojedynczych kosci - Seryjny typu Slave (konfiguracja wejsc PMODE i
HSI) do projektowania seryjnego - Seryjny typu Word Dump
- Porty (np. P3 i P4) wykorzystywane sa do
podawania danych, adresów i instrukcji
programujacych
30Pamieci EEPROM i Flash
- Pojemnosc rzedu setek kB
- Wykorzystywane w kilku blokach
- Do programowania wymagane podwyzszone napiecie
(11.5-13.5V) - Tryby pracy
- Normalny (odczyt)
- Zapisu
- Praca pamieci steruje rejestr FCR
31Licznik nadzorcy
- Dodatkowy uklad w mikrokontrolerach pracujacych
autonomicznie - Odlicza czas i oczekuje sygnalów zerujacych
- Brak sygnalów zerujacych powoduje reset
mikrokontrolera - Po resecie przeprowadzana jest diagnostyka
(wykrywanie przyczyny zawieszenia)
32Schemat licznika nadzorcy
Uklad wyboru okresu zegara
Blok sterowania przerwaniami
IRQ
WDTOVF
Sterowanie sygnalem RESET
Wewn. RESET
RSTCSR
TCNT
TCSR
Szyna modulu
Interfejs szyny
Wewnetrzna szyna danych
33Rejestry licznika nadzorcy
- TCSR rejestr kontrolny i stanu bloku
- TCNT 8-bitowy licznik nadzorcy
- RSTCSR rejestr stanu i kontrolny ukladu
generowania sygnalu reset - Licznik nadzorcy zaczyna prace po ustawieniu
linii WT w stan wysoki (watchdog)