Wykład nr 4: Mikrokontrolery - wprowadzenie Piotr Bilski

Slides:



Advertisements
Podobne prezentacje
Taktowanie mikroprocesorów Jednostka sterująca mikroprocesora jest układem sekwencyjnym synchronicznym, czyli wymagającym sygnału taktującego (zegarowego).
Advertisements

Tryby adresowania Prawie każda operacja wykonywana przez mikroprocesor wykonywana jest na pewnych argumentach (lub argumencie). Sposoby wskazywania argumentów.
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.
Wykonał : Marcin Sparniuk
Moduł 2. Struktury Systemów Komputerowych
Technika mikroprocesorowa
CPU.
Architektura szynowa systemu mikroprocesorowego szyna danych szyna sterująca szyna adresowa µP szyna danych szyna adresowa D7,..., D1, D0 A15,..., A1,
1 RISC – nasze założenia Podstawowe cechy: Wszystkie operacje są realizowane na rejestrach, Tylko operacje typu load i store wymagają dostępu do pamięci,
Wykład 9 Dedykowane procesory DSP oraz mikrokontrolery z jednostką DSP
System przechowywania danych
Podstawowe składniki funkcjonalne procesora i ich rola.
Mikrokontrolery - - podstawowe architektury
Systemy operacyjne Wykład nr 5: Wątki Piotr Bilski.
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.
Temat : Części komputera
Wieloprocesowy system operacyjny dla komputerów ATARI XL/XE
Mikroprocesory i mikrokontrolery
Procesory jednoukładowe
Układy wejścia-wyjścia
Komputer a system komputerowy
Architektura komputerów
przykładowy 8-bitowy mikroprocesor uniwersalny CISC
MCS51 - wykład 2.
Dekodery adresó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.
Architektura komputerów
Architektura systemów komputerowych (jesień 2013)
Budowa i rodzaje procesorów.
Mikroprocesory.
Mikroprocesory mgr inż. Sylwia Glińska.
Przerwanie ang. interrupt.
Koncepcja procesu Zadanie i proces. Definicja procesu Process – to program w trakcie wykonywania; wykonanie procesu musi przebiegać w sposób sekwencyjny.
Pamięć komputerowa S t r u k t u r a p a m i ę c i.
PROCESORY (C) Wiesław Sornat.
Architektura PC.
Budowa komputera ProProgramer.
Pamięć operacyjna.
Procesor – charakterystyka elementów systemu. Parametry procesora.
Złożone układy kombinacyjne
i inne urządzenia elektroniczne
BUDOWA I ZASADA DZIAŁANIA
Procesor, pamięć, przerwania, WE/WY, …
Pamięć DRAM.
Struktura wewnętrzna mikrokontrolera zamkniętego
Pamięć RAM Pamięć RAM.
Architektury procesorów rdzeniowych mikrokontrolerów.
Pamięć SRAM.
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.
Architektura systemów komputerowych (jesień 2015) Wykład 5 Budowa i działanie komputera dr inż. Wojciech Bieniecki Instytut Nauk Ekonomicznych i Informatyki.
PAMIĘCI PÓŁPRZEWODNIKOWE
Tryby adresowania i formaty rozkazów mikroprocesora
POLITECHNIKA POZNAŃSKA
Organizacja i Architektura Komputerów
Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska
Mikrokontrolery System przerwań
Format rozkazu Tryby adresowania.
Zapis prezentacji:

Wykład nr 4: Mikrokontrolery - wprowadzenie Piotr Bilski 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 autonomiczne pracy Jest stosowany w systemach pomiarowo-kontrolnych Inna nazwa: komputer jednopłytkowy Posiada zmodyfikowaną architekturę względem komputera ogólnego przeznaczenia

Schemat mikrokontrolera Rezonator kwarcowy Jednostka centralna (CPU) Zegar reset Pamięć programu Wewnętrzna szyna adresowa Wewnętrzna szyna danych zasilanie Pamięć danych sygnały wejściowe 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 Sygnały stanu Układ wykonawczy Szyna sygnałów sterowania Wewnętrzna szyna danych Wewnętrzna szyna adresowa

Ogólna architektura mikrokontrolera Wewnętrzna pamięć programu Wewnętrzna pamięć danych Bufor szyny danych Wewnętrzna szyna danych Rejestr przejściowy Rejestr wskaźników Rejestr rozkazów Rejestry R0-Rn Wskaźnik stosu Licznik prog. Rejestr adr. Układ we/wy Układy peryferyjne Rejestry specjalne Dekoder rozkazów Układ sterowania Akumulator ALU Zegar Bufor adresowy Szyna sterowania We/wy Układ zasilania

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 – przeniesienie 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 R11 R10 R09 R08 R3H R3L R2H R2L R1H R1L R0H R0L Rejestry globalne (16 bit) Banki rejestrów 8- i 16-bitowych

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 Argument Akumulator + FF

Tryb indeksowy Instrukcje wielobajtowe Adres generowany przez sumowanie dwóch argumentów Efektywne przy operacjach na blokach danych Rozkaz adres,R1 Argument Rejestr indeksowy +

Tryb postindeksowy Instrukcje wielobajtowe Bardziej skomplikowany sposób generowania adresów Rozkaz adres,R1 Argument Rejestr indeksowy +

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 FF + Licznik rozkazu

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 Pamięć programu Adresy Rejestr rozkazów Dekoder rozkazów Licznik programu Układ sterowania Rejestr adresowy Zegar Szyna adresowa Szyna sterowania

Ilustracja fazy wykonania rozkazu R0 R1 Rejestr adresowy Dane Pamięć danych Adresy Rejestr rozkazów Akumulator Dekoder rozkazów (A) → M(R0, R1) Układ sterowania Zegar Szyna adresowa Szyna sterowania

Schemat czasowy fazy wykonania instrukcji Szyna adresowa Licznik programu ( R0, R1 ) MEMR MEMW Szyna danych Rozkaz Zawartość akumulatora taw tdr thr 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 RES=0, NMI=0 Stan reset po włącz. Stan reset po akcji Stan reset RES=0, NMI=1 RES=1, NMI=0 RES=1, NMI=1 Obsługa przerw. BRQ=0 BRQ=1 Zgłoszenie przerwania Zwolnienie szyny BRQ=0 Koniec obsługi przerwania Wykonywa-nie programu BRQ=1 BRQ=1 Wymuszenie trybu stand-by BRQ=0 Wymuszenie trybu sleep Stan czuwania Stan uśpienia Stan obniżonego poboru mocy Przerwanie NMI

Hierarchia pamięci Pamięć RAM (ulotna) Pamięć ROM (nieulotna) Statyczna lub dynamiczna Wykorzystywane jako układy zewnętrzne 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ń adresowa pamięci zewnętrznej Przestrzeń niewykorzystana Zewnętrzna pamięć programu Adresy procedur obsługi przerwań Programy diagnostyczne i systemowe (monitor) Przestrzeń adresowa pamięci wewnętrznej Układy wejścia/wyjścia Rejestry specjalne (SFR) Pamięć danych i stos = Rejestry 0...0H

Mapa pamięci w architekturze Harvard Adresowanie pośrednie Adresowanie bezpośrednie 00H FFH YYH Zewnętrzna pamięć programu Obszary nieużywane Układy we/wy zewnętrzne Dane Pamięć danych Rejestry specjalne SFR FFH XX+1H 00H XXH Rejestry, dane, stos Wewnętrzna pamięć programu 00H FFH 00H Wewnętrzna pamięć danych Pamięć programu Zewnętrzna pamięć danych

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