Wykład nr 5: Bloki funkcjonalne mikrokontrolerów Piotr Bilski

Slides:



Advertisements
Podobne prezentacje
Strona tytułowa Prezentacja pracy Sterowanie centralnym zamkiem w samochodzie za pomocą telefonu komórkowego i bezprzewodowej komunikacji Bluetooth 1/8.
Advertisements

Zerowanie mikroprocesorów Cel: wprowadzenie mikroprocesora w określony stan początkowy Zwykle realizowany poprzez: inicjalizację licznika rozkazów (PC)
Architektura jednostki centralnej RD MBR MAR IRPC +1 WR jednostka sterująca ALU A F Adres Dane Rejestry: MAR – (Memory Address Register) rejestr adresowy.
Co to jest BIOS ? Piotr Pierzchalski kl. III B.
Wykonał : Marcin Sparniuk
Moduł 2. Struktury Systemów Komputerowych
Technika mikroprocesorowa
CPU.
Lista rozkazów Działanie mikroprocesora jest kontrolowane poprzez rozkazy (instrukcje). Dla każdego typu mikroprocesora istnieje specyficzny zbiór rozkazów,
Architektura szynowa systemu mikroprocesorowego szyna danych szyna sterująca szyna adresowa µP szyna danych szyna adresowa D7,..., D1, D0 A15,..., A1,
Wykład 9 Dedykowane procesory DSP oraz mikrokontrolery z jednostką DSP
Wykład 5 Przerwania w systemie SAB80C537 dr inż. Andrzej Przybył
System przechowywania danych
Podstawowe składniki funkcjonalne procesora i ich rola.
Alokacja pamięci struct Test {char c; int n; double x; } st1; st1 cnxcnx
Mikrokontrolery - - podstawowe architektury
Wykład 5: Program Sequencer i struktura pamięci
Systemy operacyjne Wykład nr 4: Procesy Piotr Bilski.
Wykład nr 2: Struktura systemu komputerowego a system operacyjny
Magistrala & mostki PN/PD
Komputer, procesor, rozkaz.
Temat nr 10: System przerwań
Procesory RISC.
Płyty główne BIOS.
Mikroprocesory i mikrokontrolery
Procesory jednoukładowe
Układy wejścia-wyjścia
Elektronika cyfrowa i mikroprocesory
Komputer a system komputerowy
Architektura komputerów
przykładowy 8-bitowy mikroprocesor uniwersalny CISC
Układy kombinacyjne cz.2
MCS51 - wykład 2.
Mikroprocesor Z80 przerwania.
Programowalny układ we/wy równoległego.. Wyprowadzenia układu.
Architektura komputerów
MCS51 - wykład 6.
Architektura komputerów
Opracowanie: Maria W ą sik. Pierwsze komputery budowano w celu rozwi ą zywania konkretnych problemów. Gdy pojawiało si ę nowe zadanie, nale ż ało przebudowa.
Mikrokontrolery PIC.
Architektura komputerów
ARCHTEKTURA KOMPUTERA
Zasada działania komputera
Budowa komputera.
Etapy pracy biosu.
Architektura systemów komputerowych (jesień 2013)
Budowa i rodzaje procesorów.
Mikroprocesory.
Mikroprocesory mgr inż. Sylwia Glińska.
Podsystem graficzny i audio
Budowa i działanie komputera - jednostka
Przerwanie ang. interrupt.
Pamięć komputerowa S t r u k t u r a p a m i ę c i.
Architektura PC.
Budowa komputera ProProgramer.
Elementy zestawu komputerowego
Wykład nr 4: Mikrokontrolery - wprowadzenie Piotr Bilski
Procesor – charakterystyka elementów systemu. Parametry procesora.
BUDOWA I ZASADA DZIAŁANIA
Procesor, pamięć, przerwania, WE/WY, …
Struktura wewnętrzna mikrokontrolera zamkniętego
Architektury procesorów rdzeniowych mikrokontrolerów.
Pamięć SRAM.
Procesy, wątki Program a proces Proces: Przestrzeń adresowa, kod, dane, stos (część pamięci do przechowania zmiennych lokalnych i niektórych adresów) Otwarte.
Układy i systemy mikroprocesorowe
I T P W ZPT Konwerter BIN2BCD 1 LK „8” DEC LK = 0 LOAD1 R3R2R1  K S3 S2S1 A B „5” K  5 MUX 1 0 A R4 LOAD2 Y = LD B LB „3” US Układ wykonawczy Układ sterujący.
Tryby adresowania i formaty rozkazów mikroprocesora
POLITECHNIKA POZNAŃSKA
Technika Mikroprocesorowa 1
Mikrokontrolery System przerwań
Zapis prezentacji:

Wykład nr 5: Bloki funkcjonalne mikrokontrolerów Piotr Bilski Systemy wbudowane Wykład nr 5: Bloki funkcjonalne mikrokontrolerów Piotr Bilski

Budowa typowego mikrokontrolera zegar Potok instrukcji i dekoder Sekwenser Układ sterowania Układ sterowania szynami dane Szyna sterowania Układ wykonawczy adresy sygnały wyjściowe

Linie sygnałowe mikrokontrolera Linie adresowe Linie danych Wejścia przerwań IRQ Wejścia dla przetwornika A/C Linie portów równoległych Linie transmisji szeregowej Porty liczników

Jednostka centralna Jednostka arytmetyczno-logiczna Banki rejestrów Potoki instrukcji Formaty instrukcji Lista instrukcji

Zestaw rejestrów 16 bitów 16 bitów Akumulator A Akumulator B Rejestr mnożnej Rejestr mnożnika Akumulator E Akumulator układu mnożącego Rejestr indeksowy X Akumulator układu mnożącego (c.d.) Rejestr indeksowy Y X MASK Y MASK Rejestr indeksowy Z EK XK YK ZK Wskaźnik stosu SK Licznik programu Słowo stanu (CCR)

Słowo wskaźników (CCR) – 68HC16 Bit obsługi nadmiaru S MH H EV N Z V C IP (3b) PK (4b) Rozszerzenie licznika programu Rejestr stanu Priorytet przerwań Przerwania mają 8 poziomów priorytetów S – zatrzymanie zegara / operacja NOP MV, EV – sygnalizacja nadmiaru w układzie mnożącym H – przeniesienie połówkowe

Potok instrukcji Mikrosekwenser steruje kolejnością pobierania instrukcji Obecność pobierania instrukcji z wyprzedzeniem (pre-fetch) Mikrosekwenser Potok instrukcji Szyna danych A B C Układ wykonawczy

Formaty 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

Lista instrukcji Instrukcje przesłań Instrukcje arytmetyczne Instrukcje logiczne Instrukcje operacji na bitach Instrukcje sterujące Instrukcje obsługi indeksów Instrukcje operacji na stosie Instrukcje manipulacji na CCR Instrukcje DSP Instrukcje specjalne

Instrukcje przesłań Służą do transmisji zawartości między rejestrami, pamięcią i urządzeniami wejścia-wyjścia Grupy: Ładowania (LDAA, LDAB, LDBA) Przesuwania (MOVB, MOVW) Zapamietywania (STAA, STD, STED) Transferu między rejestrami (TAB, TDE, TED) Wymiany zawartości rejestrów (XGAB, XGDE)

Instrukcje arytmetyczne Służą do wykonywania operacji na liczbach całkowitych i rzeczywistych Grupy: Dodawania (ABA, ADDA) Odejmowania (SBA, SDE, SUBA) Porównania (CBA, CPD) Testowania (TST, TSTA) Dzielenia (EDIV, EDIVS, FDIV) Mnożenia (EMUL, FMULS) Inkrementacji i dekrementacji (DEC, INC) Zerowania (CLR, CLRW) Uzupełnienia (COM, NEG)

Instrukcje logiczne i operacji na bitach Służą do wykonywania operacji logicznych Przykłady: ANDA, ANDD, ORAA, EORA Operacje mogą być dokonywane na każdym bicie osobno Używana jest maska, zawężająca efekt działania operacji Przykłady: BITA, BITB, BCLR, BSET

Instrukcje przesunięć bitowych Przesunięcia logiczne, arytmetyczne i cykliczne (rotacje) Przykłady: LSR, ASR, ROR, ASLD, RORD b7 b0 C C b7 b0 C C C

Instrukcje sterujące Wpływają na kolejność wykonywania instrukcji programu Instrukcje skoków i przerwań Skoki mogą być krótkie lub długie, bezwarunkowe lub warunkowe Skoki krótkie: względny tryb adresowania z PC (i rozszerzenia PK), 8-bitowy argument Przykłady skoków krótkich: BRA, BRN, BHI, BGT, BCS, BMI

Instrukcje sterujące (c.d.) Skoki długie – argument 16-bitowy, dodawany do PC (i rozszerzenia PK) Większy zakres pamięci w zasięgu skoku Przykłady: LBLE rel JMP adres BRCLR M, #maska, rel Wywoływania podprogramów (przed skokiem zapamiętanie adresu na stosie) Przykłady: RTI (przerwania sprzętowe), SWI (przerwania programowe), JSR, BSR

Instrukcje obsługi indeksów Operują na zawartości rejestrów indeksowych Operacje: dodawanie , porównywanie, ładowanie, wymianę zawartości rejestrów indeksowych Przykłady: ADX, AIX, LDX, STX, TXY, XGDX

Instrukcje operacji na stosie Manipulacja szczytem stosu zawartym w rejestrach SK:SP, transfer danych do i ze stosu Przykłady: AIS, PSHA, PSHB, PULA, PULB Możliwe operacje wysyłania zawartości wielu rejestrów naraz na stos: PSHM, PULM. Potrzebna jest maska do określania, które rejestry kopiować: CCR K IZ IY IX E D PSHM D E IX IY IZ K CCR PULM

Instrukcje manipulacji na CCR i specjalne Służą do ustawiania i zerowania poszczególnych bitów oraz przesyłać zawartość akumulatorów Przykłady: ANDP, ORP, TAP, TDP itp. Możliwe również przesyłanie zawartości CCR do innych rejestrów Instrukcje specjalne służą do zatrzymania procesora (LPSTOP), oczekiwania an przerwanie (WAI), uruchomienia debugera (BGND) oraz wykonania pustego cyklu (NOP)

Instrukcje DSP Zestaw operacji wykorzystywanych podczas przetwarzania sygnałów (filtracja, obliczanie transformaty Fouriera) Wykorzystywane są rejestry HR i IR, wyniki przechowywane są w akumulatorze Powtarzanie operacji w pętli umożliwia realizację podstawowych działań

Pamięci Metody alokacji pamięci: Klasyfikacja: Alokacja stała (obszary adresowe określone przez producenta) Zmienne przypisania obszarów adresowych (obszary ustalane przez programistę) Klasyfikacja: RAM ROM/OTP/EPROM EEPROM/Flash

Architektury mikrokontrolerów Rejestrowa (rejestry są częścią pamięci RAM, jednolicie adresowanej) Plik rejestrów roboczych Obszar rejestrów specjalnych Pamięć podręczna Akumulatorowa (rejestry są wydzielone z pamięci RAM)

Mapa rejestrów wewnętrznych (68HC916Y3) QSM 512 B ADC 64 B 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

Mapa pamięci (68HC916Y3) – wspólna przestrzeń 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 przestrzeń pamięci programu i danych Rozmiar: 1 MB 16 sekcji

Pamięć SRAM Szybka pamięć, wykonana np. w technologii CHMOS Możliwość przejście w stan oczekiwania (podczas zasilania bateryjnego) – zasilanie napięciem Vstby Służy do realizacji stosu i przechowywania zmiennych

Technologia CHMOS Complementary High-Performance Metal-Oxide Semiconductor Układy zdolne są do pracy przy niskim napięciu zasilającym z zachowaniem efektywności pracy Wykorzystywana w mikrokontrolerach oraz kontrolerach dysków, interfejsach peryferyjnych itp. Aktualna technologia: CHMOS III (litografia 1.5 mikrona)

Obsługa pamięci SRAM Rejestr RAMMC służy do ustawienia trybu pamięci (rozkazy i dane/rozkazy) i zarządza pracą przy zmniejszonym poborze mocy Rejestr RAMTST służy do testowania pamięci Rejestry RAMBAH i RAMBAL przechowują adresy bazowe (ustawiane tylko przy zmniejszonym poziomie mocy!)

Mapa pamięci (68HC916Y3) – rozdzielone przestrzenie programu i danych Wektor adresów obsługi przerwań Obsługa wyjątków po RESET 000000 000000 Sekcja 1 Sekcja 1 Sekcja 2 Sekcja 2 512 kB 512 kB Nie używane Nie używane 512 kB 512 kB Sekcja 14 Sekcja 14 Sekcja 15 Blok rejestrów FFFFFF FFFFFF

Pamięci ROM, OTP i EPROM Wielkość rzędu kilkuset kB (np. 8, 32, 64 kB) Bloki pamięci mogą być maskowalne (MRM) Programowanie: W specjalnych urządzeniach (programatorach) W układzie (in-circut programming), mikrokontroler musi mieć wbudowany odpowiedni układ Wymagane dodatkowe napięcie 12V (z zewnątrz lub z wbudowanej przetwornicy)

Programowanie pamięci ROM Konieczne dodatkowe wejścia do układu (np. EA) Tryby programowania: Automatyczny (wyjścia PACT i PVAL) – do programowania pojedynczych kości Seryjny typu Slave (konfiguracja wejść PMODE i HSI) – do projektowania seryjnego Seryjny typu Word Dump Porty (np. P3 i P4) wykorzystywane są do podawania danych, adresów i instrukcji programujących

Pamięci EEPROM i Flash Pojemność rzędu setek kB Wykorzystywane w kilku blokach Do programowania wymagane podwyższone napięcie (11.5-13.5V) Tryby pracy: Normalny (odczyt) Zapisu Pracą pamięci steruje rejestr FCR

Licznik nadzorcy Dodatkowy układ w mikrokontrolerach pracujących autonomicznie Odlicza czas i oczekuje sygnałów zerujących Brak sygnałów zerujących powoduje reset mikrokontrolera Po resecie przeprowadzana jest diagnostyka (wykrywanie przyczyny zawieszenia)

Schemat licznika nadzorcy Układ wyboru okresu zegara Blok sterowania przerwaniami IRQ WDTOVF Sterowanie sygnałem RESET Wewn. RESET RSTCSR TCNT TCSR Szyna modułu Interfejs szyny Wewnętrzna szyna danych

Rejestry licznika nadzorcy TCSR – rejestr kontrolny i stanu bloku TCNT – 8-bitowy licznik nadzorcy RSTCSR – rejestr stanu i kontrolny układu generowania sygnału reset Licznik nadzorcy zaczyna pracę po ustawieniu linii WT w stan wysoki (watchdog)