PSM
Podstawy systemów mikroprocesorowych
dr Piotr Fronczak
http://www.if.pw.edu.pl/~agatka/psm.html fronczak@if.pw.edu.pl
Pokój 6GF
Na jednym końcu skali…
Procesor: Intel Pentium 4 Częstotliwość: 3.8GHz
Moc: 103 W max
Na drugim końcu skali
Systemy wbudowane (Embedded Devices)
Moc: ~ mW
Czym są systemy wbudowane?
°Urządzenia osobistego uŜytku: telefon
komórkowy, pager, zegarek, dyktafon, kalkulator
°Komponenty komputerowe: myszka, klawiatura,
modem, fax, karta dźwiękowa, ładowarka baterii
°Urządzenia domowe: zamek do drzwi, budzik,
termostat, klimatyzator, pilot, sprzęt fitness, pralka, zmywarka, kuchenka mikrofalowa
°Zabawki: gry wideo, samochody, lalki, itp.
Przykłady Technologie komputerowe
dramatyczne zmiany°Procesor
•
2X szybość co kaŜde 1.5 roku;
100
X
w ostatniej dekadzie°Pamięć
•
2X pojemność co kaŜde 2 lata;
• 64X
w ostatniej dekadze•
Koszt jednego bitu: maleje o 25% na rok
°Dysk
•
pojemność > 2X kaŜdego roku
• 250X
w ostatniej dekadzie•
Koszt jednego bitu: maleje o 50% na rok
°Komputer, który kupicie z okazji obrony pracy
magisterskiej:
•
Szybkość procesora: 10000
MegaHertzów(10.0 GigaHertzów)
•
Pojemność pamięci: 64000
MegaBajtów(64.0 GigaBajtów)
•
Pojemność dysku: 8000 GigaBajtów (8.0
TeraBajtów)•
Nowe jednostki!
Mega=> Giga, Giga => Tera
(Kilo, Mega, Giga, Tera, Peta, Exa, Zetta, Yotta = 10
24) Technologie komputerowe
dramatyczne zmiany“ Gdyby rozwój samochodów odzwierciedlał rozwój komputerów, Rolls Royce kosztowałby dziś 100 dolarów, pokonywałby milion kilometrów na jednym litrze paliwa i eksplodował raz do roku zabijając wszystkich wewnątrz. ”
Triumph of the Nerds– Robert X. Cringely Zmierzch ery PC?
Po co mam się uczyć PSM?
°Bo to jest fajne! I będzie coraz fajniejsze!
°Komputery PC odpowiadają za sprzedaŜ mniej niŜ 1%
wszystkich procesorów. Systemy wbudowane za ponad 99%.
Bionika:
Czujniki w lateksowych palcach nieprzerwanie rejestrują temperaturę, electroniczny interfejs w sztucznej kończynie stymuluje zakończenia nerwów w ramieniu, które przekazują tę informację do mózgu.
Wart 3,000$ system pozwala czuć ciśnienie i cięŜar. Po raz pierwszy od wypadku w 1986 roku ten straŜak moŜe podnieść szklankę bez zgniecenia jej i nie pozwalając jej się wyślizgnąć.
One Digital Day
Nie musisz mieć dyplomu lekarza, by pomagać ludziom.
Po co mam się uczyć PSM?
Plan wykładu
°Wprowadzenie.
°Mikrokontrolery
•Architektura wewnętrzna
•Zasada działania
°Programowanie mikrokontrolerów
°Komunikacja zewnętrzna i standardy komunikacyjne
•Interfejsy szeregowe
•Interfejsy równolegle
°Zastosowania z przykładami
°Mikrokontrolery w zaawansowanych systemach.
°Inne układy cyfrowe o złoŜonej strukturze: CPLD, FPGA
Literatura
°Ryszard Pełka, Mikrokontrolery. Architektura, programowanie , zastosowania, WKŁ
°Jarosław Doliński, Mikrokontrolery AVR w praktyce, BTC
°Piotr Gałka, Paweł Gałka, Podstawy programowania mikrokontrolera 8051, Mikom
°Robert Brzoza-Woch, Mikrokontrolery AT91SAM7 w przykładach, BTC
°Rafał Baranowski, Mikrokontrolery AVR ATmega w praktyce, BTC
°James M. Sibigtroth, Zrozumieć małe mikrokontrolery, BTC
°A. Pawluczuk, Sztuka programowania mikrokontrolerów AVR, podstawy, BTC
°Tomasz Jabłoński, Mikrokontrolery PIC16F8x w praktyce, BTC
°Jacek Bogusz, Lokalne interfejsy szeregowe w systemach mikroprocesorowych, BTC
°www.google.com
°Mirosław Kardaś, Mikrokontrolery AVR, Język C, Atnel (2011)
Regulamin
Średnia waŜona ocen z lab. i wykładu z wagami odpowiednio:
2/3 i 1/3 (przy czym obydwie pozytywne)
•2 kolokwia
•Ocena z wykładu = średnia arytmetyczna ocen z kol. (przy czym obydwie pozytywne)
•1 poprawa kol. przy końcu zajęć w semestrze letnim.
•wykonanie wszystkich przewidzianych ćwiczeń (ok. 12) – ocena 3.0
•wykonanie projektu końcowego – ocena max. 4.0
•sprawozdanie w postaci dokumentacji technicznej wykonanego projektu – ocena > 4.0
Zaliczenie lab:
Zaliczenie wykładu:
Mikrokontroler i mikroprocesor
°Mikroprocesor to cyfrowy układ scalony, którego działanie jest sterowane pobieranymi z zewnątrz rozkazami. Ciąg rozkazów sterujących pracą mikroprocesora stanowi jego program.
°Mikrokontroler to układ scalony, w którego strukturze zawarto mikroprocesor oraz pewien zestaw elementów zewnętrznych (peryferyjnych)
µP µC
ALU 16/32/ or 64 bitowa, Dual-
Core 4/8 bitowa
Peryferia zewn. RAM, ROM, porty I/O,
liczniki, wiele innych Pamięć (opcjonalnie) Applikacje PC, laptopy, tablety Systemy wbudowane,
sterowniki, motoryzacja, kalkulatory, …
Szybkość zegara 4M-4G 32K-20M
Przestrzeń
adresowa Gbajty, Tbajty (wirtualna) 2-8K wewn.
64K – 128K zewn.
ZuŜycie prądu 5 - 65 W 100µW – 2 W
Koszt 30-500 USD 1-10 USD
Przykład Motorola 68000, Intel x86 Intel 8051, Atmel AVR
Architektura mikrokontrolera
Od dziś umiemy się posługiwać systemami binarnymi, szesnastkowymi (i oczywiście dziesiątkowymi).
najbardziej znaczący bit MSB
najmniej znaczący bit LSB Bit – cyfra w układzie
binarnym (podstawowa jednostka informacji) Bajt – słowo, liczba złoŜona z 8 bitów
Zapis liczby w ukł. HEX
$10AF 0x10AF 10AFh
Zapis liczby w ukł. BIN
%10010101 0b10010101
O liczbach - dla przypomnienia…
Rejestr – komórka pamięci, układ elektroniczny, który potrafi zapamiętać stan jednego bajta.
Rejestr specjalny (Special Function Register – SFR) Oprócz rejestrów, które nie mają określonej z góry funkcji, kaŜdy mikrokontroler posiada pewną liczbę rejestrów, których funkcja została zaprojektowana odgórnie przez producenta. Poszczególne bity tych rejestrów są dosłownie połączone z wewnętrznymi obwodami mikrokontrolera.
Porty wejścia/wyjścia
Rejestry podłączone do pinów (nóŜek) mikrokontrolera.
Funkcja pinów (wejście albo wyjście) jest równieŜ kontrolowana przez odpowiedni rejestr.
Maksymalna wydajność prądowa portów w dokumentacji jest dzielona na wszystkie porty.
Mogą posiadać rezystory podciągające (czasem równieŜ kontrolowane przez odpowiedni rejestr).
Pamięć – część mikrokontrolera umoŜliwiająca przechowywanie danych i kodu programu.
°Pamięci nieulotne (zawartość pamięci nie ulega skasowaniu w momencie wyłączenia zasilania)
• ROM – Read Only Memory - Pamięć tylko do odczytu
• EPROM – Erasable Programmable Read Only Memory
• EEPROM – Electrically Erasable Programmable Read Only Memory
• Flash
°Pamięci ulotne (zawartość pamięci ulega skasowaniu w momencie wyłączenia zasilania): SRAM, DRAM itp..
Dekoder instrukcji - na podstawie zawartości rejestru instrukcji, generuje odpowiednie sygnały sterujące dla automatu realizującego funkcje procesora. Zbiór instrukcji jest odmienny dla kaŜdej rodziny mikrokontrolerów.
Jednostka arytmetyczno-logiczna (Arithmetical Logical Unit ALU) wykonuje wszystkie matematyczne i logiczne operacje na danych.
Wynik operacji jest umieszczany w dowolnym rejestrze, którym nie zawsze musi być akumulator (w niektórych rodzinach
mikrokontrolerów).
Rejestr SREG – jest rejestrem statusowym zawierającym informacje o rezultacie ostatnio wykonanej przez ALU operacji arytmetycznej (znak, przeniesienie, przepełnienie do dwóch, itd..)
Centralna jednostka obliczeniowa (Central Processing Unit CPU) Serce mikrokontrolera, monitoruje i kontroluje wszystkie procesy wewnątrz mikrokontrolera.
Stos (stack) rodzaj pamięci danych (logiczny).
Pobieranie danych ze stosu musi być wykonywane w kolejności odwrotnej niŜ ich umieszczanie na stosie - element przesłany na stos jako ostatni musi być zeń zdjęty jako pierwszy. Tak więc w danej chwili moŜliwy jest dostęp do jednego tylko – ostatniego elementu stosu.
Podstawowym zastosowaniem stosu jest zapamiętywanie adresów powrotu podczas wywoływania procedur. Stos wykorzystywany jest teŜ jako rodzaj podręcznej pamięci do chwilowego przechowywania danych.
Przy małych pojemnościach pamięci SRAM naleŜy zwracać baczną uwagę, by odkładanie danych na stos (np. przy wykonywaniu wielokrotnie zagnieŜdzonych skoków) nie powodowało jego rozszerzenia na obszar zmiennych programowych.
Przerwanie (Interrupt)
Idea przerwań w mikrokontrolerach polega na tym, Ŝe w odpowiedzi na określ sygnał (sygnał przerwania) mikrokontroler zawiesza chwilowo wykonywanie programu głównego i wykonuje specjalną procedurę określaną mianem procedury obsługi przerwania. Po zakończeniu tej procedury mikrokontroler wraca do wykonywania programu głównego, począwszy od miejsca, w którym zostało ono zawieszone.
• Podstawową funkcją przerwań jest umoŜliwienie szybkiego reagowania na zdarzenie zewnętrzne.
• Przerwania nie zawsze mają postać sygnałów zewnętrznych - mogą być one generowane takŜe przez układy wewnętrzne, np.
liczniki, łącza szeregowe.
• Stosowanie przerwań umoŜliwia maksymalne wykorzystanie moŜliwości przetwarzania danych, jakie daje mikrokontroler.
Zegar
Serce procesora wyznaczające rytm jego działania.
KaŜdy takt zegara – cykl zegarowy.
Do niedawna procesory wymagały kilku cykli zegarowych do wykonania jednej instrukcji.
Obecnie procesor moŜe wykonać więcej niŜ jedną instrukcję na cykl (pipelining).
Linie danych (data bus) są ścieŜkami słuŜącymi do przenoszenia danych między modułami systemu. Szyna danych składa się typowo z 8, 16 lub 32 oddzielnych linii, przy czym liczba linii określa szerokość tej szyny. PoniewaŜ w danym momencie kaŜda linia moŜe przenosić tylko 1 bit, z liczby linii wnika, ile bitów moŜna jednocześnie przenosić. Szerokość szyny danych jest kluczowym czynnikiem określającym wydajność całego systemu. Jeśli na przykład szyna danych ma szerokość 8 bitów, a kaŜdy rozkaz ma długość 16 bitów, to procesor musi łączyć się z modułem pamięci dwukrotnie w czasie kaŜdego cyklu rozkazu.
Linie adresowe są wykorzystywane do określania źródła lub miejsca przeznaczenia danych przesyłanych magistralą. Jeśli na przykład procesor ma zamiar odczytać słowo (8, 16 lub 32 bity) danych z pamięci, umieszcza adres potrzebnego słowa na linii adresowej. Szerokość szyny adresowej determinuje maksymalną moŜliwą pojemność pamięci systemu. Ponadto linie adresowe są równieŜ uŜywane do adresowania portów wejścia-wyjścia.
Magistrala (bus) – szyna komunikacyjna (zbiór linii, drucików)
Zawarte w magistralach linie moŜna podzielić na trzy grupy funkcjonalne:
linie danych, adresów i sterowania.
......
CPU
CPU PAMIĘPAMIĘCC UK UKŁŁADYADY
WE/WY WE/WY SZYNA DANYCH SZYNA DANYCH SZYNA ADRESOWA SZYNA ADRESOWA
SZYNA STEROWANIA SZYNA STEROWANIA
DANE DANE PROGRAMY PROGRAMY WYNIK I WYNIK I
Liczba linii wyznacza mo Liczba linii wyznacza moŜŜliwoliwośści ci adresowania
adresowania npnp. liczba linii 20 to . liczba linii 20 to mo
moŜŜna zaadresowana zaadresowaćć222020 kom
komóórekrek
Liczba linii okre Liczba linii okreśśla dla dłługougośćść s
słłowa procesora (8, 16, 32, owa procesora (8, 16, 32, ........
Kilkana
Kilkanaśście (kilkadziesicie (kilkadziesiąąt) liniit) linii
Linii sterowania uŜywa się do sterowania dostępem do linii danych i linii adresowych, a takŜe do sterowania ich wykorzystaniem. PoniewaŜ linie danych i adresowe słuŜą wszystkim zespołom, musi istnieć sposób sterowania ich uŜywaniem. Sygnały sterujące przekazywane między modułami systemu zawierają zarówno rozkazy, jak i informacje regulujące czas (taktujące). Sygnały czasowe określają waŜność danych i adresów. Sygnały rozkazów precyzują operacje, które mają być przeprowadzone.
Gdy procesor chce odczytać dane z pamięci lub z urządzenia wejścia, to postępuje następująco:
1) Umieszcza na magistrali adresowej adres komórki pamięci lub numer urządzenia we/wy.
2) Na magistrali sterującej umieszcza informację, Ŝe chce odczytać dane z pamięci lub z urządzenia we/wy.
3) Pamięć lub urządzenie wejścia umieszcza dane na magistrali danych.
4) Pamięć lub urządzenie wejścia umieszcza na magistrali sterującej informację, Ŝe dane są gotowe do odczytu z magistrali danych.
5) Procesor odczytuje dane z magistrali danych.
Podobnie wygląda zapis do pamięci lub do urządzenia wyjścia:
1) Procesor umieszcza dane na magistrali danych.
2) Procesor umieszcza adres komórki pamięci lub numer urządzenia wyjścia na magistrali adresowej.
3) Procesor umieszcza na magistrali sterującej informację, Ŝe chce zapisać dane do pamięci lub urządzenia we/wy.
4) Pamięć lub urządzenie wyjścia odczytują dane z magistrali danych. Pamięć umieszcza dane pod adresem odczytanym z magistrali adresowej. Dla urządzeń wyjścia adres określa numer urządzenia, dla którego są przeznaczone dane.
5) Pamięć lub urządzenie wyjścia umieszczają na magistrali sterującej potwierdzenie odebrania danych.
Porównanie architektur mikroprocesora
Architektura von Neumanna Architektura Harvard
vNeumann: jeden blok pamięci przechowujący jednocześnie dane oraz instrukcje programu; jedna 8-bitowa szyna danych.
MoŜliwość wykonywania kodu z RAM, samomodyfikujący sie kod. Brak osobnych instrukcji dostępu do róŜnych obszarów pamięci i I/O.
Harvard: dwie szyny danych. PoniewaŜ dane programu mają 1 bajt szerokości (8 bitów), a szyna danych programu ma więcej (12, 14 lub 16) linii, jednocześnie moŜna odczytać instrukcję i dane instrukcje wykonywane w jednym cyklu.
PoniewaŜ kod programu (ROM) i dane (RAM) są rodzielone, CPU moŜe wykonać dwie instrukcje jednocześnie.
Architektura instrukcji
CISC (Complex Instruction Set Computer):
- duŜa liczba rozkazów (instrukcji) (ponad 200)
- niektóre rozkazy potrzebują duŜej liczby cykli procesora do wykonania - występowanie złoŜonych, specjalistycznych rozkazów
- duŜa liczba trybów adresowania - powolne działanie dekodera rozkazów
83 A6 0C 01 00 00 FE and dword ptr [esi+0x10C],0xFE 8D 4E EC lea ecx,[esi-0x14]
6A FF push 0xFF
6A 01 push 0x1 FF 50 24 call [eax+0x24]
8B 86 80 00 00 00 mov eax,[esi+0x80]
3B C7 cmp eax,edi
80 E6 ldi R24, 0x60 90 E0 ldi R25, 0x00 9C 8B std Y+20, R25 8B 8B std Y+19, R24 98 E0 ldi R25, 0x08 9D 8B std Y+21, R25 EB 89 ldd R30, Y+19 FC 89 ldd R31, Y+20 00 80 ld R0, Z 4B 89 ldd R20, Y+19 5C 89 ldd R21, Y+20 4F 5F subi R20, 0xFF RISC (Reduced Instruction Set Computer):
- zredukowana liczba rozkazów (instrukcji) – nawet poniŜej 30!
- większość rozkazów wykonywana w jednym cyklu procesora
- rozkazy proste lub bardzo proste (+, -, kopiowanie) - bardzo mała liczba trybów adresowania - ograniczony dostęp do pamięci - szybkie działanie dekodera rozkazów