Nazwa modułu: Technika mikroprocesorowa Rok akademicki: 2015/2016 Kod: IIN-1-404-s Punkty ECTS: 4 Wydział: Informatyki, Elektroniki i Telekomunikacji Kierunek: Informatyka Specjalność: Poziom studiów: Studia I stopnia Forma i tryb studiów: Stacjonarne Język wykładowy: Polski Profil kształcenia: Ogólnoakademicki (A) Semestr: 4 Strona www: Osoba odpowiedzialna: dr inż. Brzoza-Woch Robert (robert.brzoza@agh.edu.pl) Osoby prowadzące: dr inż. Krasowski Roman (kras@agh.edu.pl) dr inż. Zaborowski Wojciech (zab@agh.edu.pl) dr inż. Brzoza-Woch Robert (robert.brzoza@agh.edu.pl) Opis efektów kształcenia dla modułu zajęć Kod EKM Student, który zaliczył moduł zajęć wie/umie/potrafi Powiązania z EKK Sposób weryfikacji efektów kształcenia (forma zaliczeń) Wiedza M_W001 Zna i rozumie znaczenie wszystkich spraw i pojęć omówionych w ramach modułu: Technika Mikroprocesorowa IN1A_W09, IN1A_W12 Kolokwium M_W002 Zna i rozumie budowę i działanie systemu komputerowego przeznaczonego do wykonywania obliczeń: o architekturze prostej i bardzo złożonej IN1A_W09, IN1A_W12 Wykonanie ćwiczeń laboratoryjnych M_W003 Zna i rozumie budowę i działanie systemu komputerowego z mikroprocesorami aplikacyjnymi i wbudowanymi. IN1A_W12 Wykonanie ćwiczeń laboratoryjnych Umiejętności M_U001 Potrafi zaprojektować i oprogramować prosty system sterujący działający w oparciu o wybrany mikrokontroler IN1A_U16 Wykonanie projektu M_U002 Na podstawie dokumentacji jest w stanie zrozumieć mechanizmy działania oraz model programowy nowoczesnego modelu mikroprocesora lub mikrokontrolera. IN1A_U03, IN1A_U01 Wykonanie ćwiczeń laboratoryjnych 1 / 6
M_U003 Potrafi zaproponować realizację sprzętową oraz napisać niskopoziomowe oprogramowanie dla systemu mikroprocesorowego. IN1A_U16 Prezentacja Kompetencje społeczne M_K001 Potrafi działając w grupie rozwiązać średnio złożony projekt zrealizowany w oparciu o system mikroprocesorowy IN1A_K03 Zaangażowanie w pracę zespołu Matryca efektów kształcenia w odniesieniu do form zajęć Kod EKM Student, który zaliczył moduł zajęć wie/umie/potrafi Forma zajęć Wykład Ćwiczenia audytoryjne Ćwiczenia laboratoryjne Ćwiczenia projektowe Konwersatori um seminaryjne praktyczne terenowe warsztatowe Inne E-learning Wiedza M_W001 M_W002 M_W003 Umiejętności M_U001 M_U002 M_U003 Zna i rozumie znaczenie wszystkich spraw i pojęć omówionych w ramach modułu: Technika Mikroprocesorowa Zna i rozumie budowę i działanie systemu komputerowego przeznaczonego do wykonywania obliczeń: o architekturze prostej i bardzo złożonej Zna i rozumie budowę i działanie systemu komputerowego z mikroprocesorami aplikacyjnymi i wbudowanymi. Potrafi zaprojektować i oprogramować prosty system sterujący działający w oparciu o wybrany mikrokontroler Na podstawie dokumentacji jest w stanie zrozumieć mechanizmy działania oraz model programowy nowoczesnego modelu mikroprocesora lub mikrokontrolera. Potrafi zaproponować realizację sprzętową oraz napisać niskopoziomowe oprogramowanie dla systemu mikroprocesorowego. 2 / 6
Kompetencje społeczne M_K001 Potrafi działając w grupie rozwiązać średnio złożony projekt zrealizowany w oparciu o system mikroprocesorowy Treść modułu zajęć (program wykładów i pozostałych zajęć) Wykład Definicje i pojęcia podstawowe Pojęcia podstawowe: instrukcja, przestrzeń adresowa. Budowa prostego mikroprocesora. Elementy składowe systemu mikroprocesorowego: rejestry, pamięci, magistrale. Historia i ewolucja systemów komputerowych: wybrane architektury, które miały duże znaczenie dla rozwoju techniki mikroprocesorowej. Różnorodność platform sprzętowych i podejść do rozwoju oprogramowania Zdefiniowanie różnic pomiędzy systemami mikroprocesorowymi ogólnego przeznaczenia oraz wbudowanymi. Klasyfikacja współcześnie stosowanych platform sprzętowych. Omówienie wybranych platform sprzętowych, narzędzi programowych oraz różnic w podejściach do rozwoju i debugowania oprogramowania dla różnych platform. Model programowy mikroprocesora Definicja modelu programowego. Modele programowe popularnych mikroprocesorów. Zależność działania niskopoziomowego oprogramowania oraz warstwy sprzętowej. Wyjątki i przerwania w systemach mikroprocesorowych Mechanizm działania, przydatność oraz zastosowania przerwań i wyjątków w systemach mikroprocesorowych. Zagnieżdżenie i priorytety przerwań. Oprogramowanie niskopoziomowe procedur obsługi przerwań. Moduły bezpośredniego dostępu do pamięci (DMA) Budowa, działanie modułów DMA. Znaczenie DMA dla podniesienia wydajności systemu mikroprocesorowego. Tworzenie oprogramowania dla modułów DMA. Przetworniki analogowo-cyfrowe (A/C) i cyfrowo-analogowe (C/A) w systemach mikroprocesorowych Znaczenie i zastosowanie przetworników A/C i C/A w systemach wbudowanych. Zasada działania podstawowych typów przetworników. Możliwości i sposoby oprogramowania przetworników we współczesnych mikrokontrolerach. Pamięci w systemach mikroprocesorowych Rodzaje pamięci stosowanych współcześnie w systemach mikroprocesorowych. Budowa i właściwości podstawowych typów pamięci ulotnych i nieulotnych. Hierarchia pamięci w systemach komputerowych. Mechanizmy działania pamięci cache. Zestawy i kodowanie instrukcji Przykłady i kodowanie instrukcji w nowoczesnych platformach RISC i CISC. Sposoby adresowania danych. Instrukcje DSP oraz SIMD w nowoczesnych mikroprocesorach. Wykorzystanie zasobów sprzętowych mikroprocesora Współczesne podejście do efektywnego tworzenia niskopoziomowego oprogramowania. Wykorzystanie zasobów sprzętowych mikroprocesora (rejestrów, stosu) przez programistę i przez narzędzia do rozwoju oprogramowania. 3 / 6
Zarządzanie i ochrona pamięci Znaczenie jednostki zarządzania pamięcią (MMU) w systemach mikroprocesorowych. Pamięć wirtualna, stronicowanie pamięci. Ochrona obszarów pamięci. Mechanizmy stronicowania i translacji adresów we współczesnych mikroprocesorach. Przykładowe mechanizmy translacji adresów w kontekście wielozadaniowych systemów operacyjnych. Uzyskiwanie wyższych wydajności obliczeniowych w systemach mikroprocesorowych Uzyskiwanie coraz większej wydajności obliczeniowej w systemach mikroprocesorowych oraz czynniki wpływające na nią. Wprowadzenie do podstawowych oraz powszechnie stosowanych sposobów zwiększenia wydajności obliczeniowej. Ograniczenia fizyczne i architekturalne w szybkości działania mikroprocesorów. Przetwarzanie potokowe i superskalarne Sposoby przyspieszania działania współczesnych mikroprocesorów przez wprowadzenie przetwarzania potokowego i superskalarnego. Problemy pojawiające się przy przetwarzaniu potokowym i superskalarnym oraz sposoby ich rozwiązywania. Magistrale w systemach mikroprocesorowych i komputerowych Charakterystyka i podstawy działania wybranych magistral i kluczowych insterfejsów w systemach mikroprocesorowych i komputerowych. Zarządzanie energią w systemach mikroprocesorowych Zależności energetyczne w systemach mikroprocesorowych. Sprzętowe i programowe sposoby ograniczania poboru mocy w urządzeniach mikroprocesorowych. Ćwiczenia laboratoryjne Budowa prostego systemu mikroprocesorowego Poznanie ogólnej zasady funkcjonowania mikroprocesorów. Poznanie przykładowego sposobu implementacji mikroprocesora o minimalnej funkcjonalności oraz sprawdzenie jego działania na rzeczywistej platformie sprzętowej. Zapoznanie z narzędziami programowymi i sprzętowymi, podstawy tworzenia oprogramowania niskopoziomowego Zaznajomienie się z podstawowym środowiskiem programistycznym (opcja zestawienia własnego środowiska), innymi narzędziami wykorzystywanymi w dalszej części semestru, obsługą najbardziej podstawowych układów peryferyjnych w wykorzystywanych platformach sprzętowych. Praktyczne aspekty tworzenia niskopoziomowego oprogramowania Zastosowanie dostępnych modułów programowych do tworzenia własnej aplikacji dla systemu mikroprocesorowego na przykładzie obsługi wyświetlacza LCD. Zrozumienie zasady obsługi wyświetlaczy graficznych w urządzeniach wbudowanych na przykładzie wyświetlacza dostępnego na płytce testowej. Opracowanie modułów programowych przydatnych w realizacji dalszych ćwiczeń. Niskopoziomowe zarządzanie projektem. Niskopoziomowa implementacja systemu czasu rzeczywistego na przykładzie FreeRTOS Nabycie umiejętności w posługiwaniu się prostym systemem operacyjnym czasu rzeczywistego. Poznanie mechanizmów działania i sposobu implementacji podstawowych elementów systemu operacyjnego czasu rzeczywistego. Zastosowanie systemu przerwań i kanałów DMA Nabycie praktycznych umiejętności posługiwania się systemem przerwań oraz mechanizmami bezpośredniego dostępu do pamięci (DMA) w nowoczesnych platformach sprzętowych. Weryfikacja wiedzy i ilustracja zagadnień związanych z DMA 4 / 6
i systemem przerwań. Utrwalenie umiejętności związanych z korzystaniem z uprzednio opracowanych rozwiązań. Struktura mikrokomputera Celem ćwiczenia jest zapoznanie się z ogólną strukturą mikrokomputera z rozbiciem na poszczególne bloki funkcjonalne, ze szczególnym podkreśleniem znaczenia i sposobu działania mikroprocesora wraz z najbliższym otoczeniem. Istotnym elementem ćwiczenia jest poznanie zależności czasowych w trakcie wykonywania wybranych rozkazów i ich interpretacja. Użycie programu DEBUG i analizatora stanów logicznych uczy dodatkowo umiejętności posługiwania się tymi narzędziami w trakcie prac uruchomieniowych systemów mikroprocesorowych. Przetworniki A/C i C/A w systemach mikroprocesorowych Poznanie budowy i zasady działania wybranych rodzajów przetworników AC i CA. Obsługa kart pamięci masowej i systemu plików w urządzeniach mikroprocesorowych Ćwiczenie ma na celu zaznajomienie studenta z obsługą pamięci masowej oraz systemu plików w urządzeniach mikroprocesorowych na przykładzie platformy z mikrokontrolerem ARM, kart pamięci SD/SDHC oraz biblioteki obsługi systemu plików. Studenci samodzielnie zestawiają moduły sprzętowe i programowe do obsługi systemu plików, a następnie testują ich możliwości i wydajność. Aplikacje mikrokontrolerów wykorzystujące interfejs USB Realizowane z wykorzystaniem środowiska mbed. Celem ćwiczenia jest zapoznanie się z możliwościami tworzenia aplikacji mikrokontrolerów wykorzystujących interfejs USB. Programowanie aplikacji mikrokontrolerów rodziny AVR8 w środowisku AVR Studio Celem ćwiczenia jest: - zapoznanie się ze sposobem tworzenia oprogramowania wbudowanego dla mikrokontrolerów rodziny AVR8 przy wykorzystaniu pakietu AVR Studio ze zintegrowanym kompilatorem języka C AVRGCC, - stworzenie rozbudowanej aplikacji mikrokontrolera wykorzystującej elementy zewnętrzne dołączane do mikrokontrolera za pośrednictwem linii GPIO oraz dedykowanych interfejsów komunikacyjnych (na przykładzie interfejsu I2C). Transmisja szeregowa pomiędzy komputerem PC a urządzeniem wbudowanym W tym ćwiczeniu studenci oprogramowują jeden z najpopularniejszych interfejsów szeregowych stosowanych w systemach komputerowych, zarówno aplikacyjnych jak i wbudowanych. Ćwiczenie składa się z dwóch podstawowych etapów: obsługa portu szeregowego dla urządzenia wbudowanego oraz obsługa portu szeregowego w komputerach PC. Zależnie od indywidualnych zainteresowań studenci mogą wybrać, czy skorzystają z niskopoziomowych czy wysokopoziomowych mechanizmów i języków programowania. Sposób obliczania oceny końcowej A) Ocena z laboratorium 1. Aby uzyskać pozytywną ocenę końcową z laboratorium niezbędne jest uzyskanie co najmniej 50% możliwych do uzyskania punktów z każdej z poszczególnych aktywności: a) przygotowanie do zajęć laboratoryjnych b) wykonanie ćwiczeń laboratoryjnych c) napisanie sprawdzianów 2. Pod koniec semestru sumujemy uzyskane punkty ze wszystkich aktywności (A) oraz bierzemy 5 / 6
maksymalną możliwą do uzyskania liczbę punktów za wszystkie aktywności (T). 3. Liczymy: R = (A / T) 100% 4. Zależnie od obliczonego R wyznaczamy ocenę z laboratorium (L): jeśli 50% = R 60% to L = 3.0, jeśli 60% = R 70% to L = 3.5, jeśli 70% = R 80% to L = 4.0, jeśli 80% = R 90% to L = 4.5, jeśli R >= 90% to L = 5.0. 5. W szczególnych przypadkach możliwe jest dostosowanie tematów ćwiczeń adekwatnie do indywidualnych zainteresowań naukowych/inżynierskich danego studenta lub zespołu. B) Aby uzyskać pozytywną ocenę końcową, oceny z laboratorium i egzaminu muszą być nie niższe niż 3.0. Jeśli ocena z laboratorium lub z egzaminu nie została uzyskana w pierwszym terminie, ocena końcowa może być nie wyższa niż 3.0. Przy ocenach z laboratorium i egzaminu uzyskanych w pierwszych terminach, ocena końcowa wyliczana jest na podstawie średniej ocen z laboratorium i egzaminu, a następnie zaokrąglana w dół do najbliższej oceny 3.0, 3.5, 4.0, 4.5, 5.0. Wymagania wstępne i dodatkowe Znajomość zasad budowy i działania wszystkich układów cyfrowych. Biegłość w wykonywaniu działań w różnych systemach liczbowych, przede wszystkim: dwójkowym, dziesiętnym i szesnastkowym. Zalecana literatura i pomoce naukowe A.Skorupski "Podstawy budowy i działania komputerów" WKŁ 2000 P.Metzger, A.Jełowiecki, "Anatomia PC" Helion 2008 W.Stallings "Organizacja i architektura systemu komputerowego" WNT 2000 D.Patterson, J.Hennessy " Computer Organization and design" Elsevier Inc.2009 Andrew N. Sloss, Dominic Symes, Chris Wright, ARM System Developer&1. x27;s Guide Designing and Optimizing System Software Joseph Yiu, The Definitive Guide to the ARM Cortex-M3 Robert Brzoza-Woch, Mikroprocesory AT91SAM9 w przykładach Robert Brzoza-Woch, Mikrokontrolery AT91SAM7 w przykładach Publikacje naukowe osób prowadzących zajęcia związane z tematyką modułu Nie podano dodatkowych publikacji Informacje dodatkowe Brak Nakład pracy studenta (bilans punktów ECTS) Forma aktywności studenta Udział w wykładach Przygotowanie do zajęć Udział w ćwiczeniach laboratoryjnych Samodzielne studiowanie tematyki zajęć Sumaryczne obciążenie pracą studenta Punkty ECTS za moduł Obciążenie studenta 112 godz 4 ECTS 6 / 6