Module also offered within study programmes:
General information:
Name:
Technika mikroprocesorowa 2
Course of study:
2019/2020
Code:
IETP-1-501-s
Faculty of:
Computer Science, Electronics and Telecommunications
Study level:
First-cycle studies
Specialty:
-
Field of study:
Electronics and Telecommunications
Semester:
5
Profile of education:
Academic (A)
Lecture language:
Polish
Form and type of study:
Full-time studies
Responsible teacher:
dr hab. inż. Russek Paweł (russek@agh.edu.pl)
Module summary

Celem kursu jest zapoznanie studentów z zaawansowanymi zagadnieniami z dziedziny techniki mikroprocesorowej. Zagadnienia są przedstawione na przykładzie mikrokontrolera 32 bitowego

Description of learning outcomes for module
MLO code Student after module completion has the knowledge/ knows how to/is able to Connections with FLO Method of learning outcomes verification (form of completion)
Social competence: is able to
M_K001 Student jest świadomy odpowiedzialności odnośnie niezawodnego sterowania procesem technologicznym, etyki zawodowej i uwarunkowań społecznych, w odniesieniu do aplikacji dotyczących aparatury medycznej czy sprzętu powszechnego użytku. ETP1A_K04, ETP1A_K01 Activity during classes,
Oral answer,
Participation in a discussion
M_K002 Student nabędzie umiejętności pracy w zespole dzięki realizacji zadanych zadań projektowych. ETP1A_K04, ETP1A_K01 Oral answer,
Activity during classes
Skills: he can
M_U001 Student umie zaprojektować układy współpracujące dla danej aplikacji mikrokontrolera, uwzględniając funkcjonalność jego interfejsów wewnętrznych. Potrafi dokonać optymalizacji wynikającej ze wzajemnej wymienialności sprzęt – oprogramowanie. Potrafi czytać dokumentację techniczną dotyczącą procesorów. ETP1A_U03, ETP1A_U04, ETP1A_U02 Completion of laboratory classes,
Execution of laboratory classes,
Project
M_U002 Student zdobędzie umiejętności pozwalające na samodzielna budowę systemu elektronicznego złożonego z procesora i układów peryferyjnych w oparciu o samodzielnie zaprojektowane i napisane oprogramowanie. ETP1A_U03, ETP1A_U08, ETP1A_U02, ETP1A_U09 Completion of laboratory classes,
Execution of laboratory classes,
Project
M_U003 Student potrafi oprogramować zaprojektowaną aplikację mikrokontrolera, posiłkując się językiem asemblerowym i/lub językiem wysokiego poziomu, uwzględniając uwarunkowania, wynikające z zasobów mikrokontrolera, jego listy instrukcji, pojemności pamięci i wymogów czasu rzeczywistego. ETP1A_U09 Completion of laboratory classes,
Execution of laboratory classes,
Project
Knowledge: he knows and understands
M_W001 Student poszerzy wiedzę w zakresie architektur mikroprocesorów. Pozna metody komunikacji jednostki centralnej z innymi elementami systemu procesorowego, techniki przetwarzania współbieżnego na poziomie instrukcji, mechanizmy sprzętowe służące wsparciu pracy systemów operacyjnych, nowoczesne układy peryferyjne. Poszerzona zostanie wiedza studenta w zakresie programowania procesorów w językach wysokiego poziomu. ETP1A_W14, ETP1A_W06 Oral answer,
Test,
Examination
M_W002 Student dysponuje wiedzą niezbędną do tworzenia dedykowanych aplikacji mikrokontrolerów, zna współzależności pomiędzy hardwarem i softwarem oraz zasady pracy w czasie rzeczywistym. ETP1A_W15, ETP1A_W14, ETP1A_W06 Oral answer,
Examination,
Test
M_W003 Student dysponuje wiedza konieczną do uruchamiania i rozbudowy systemu mikroprocesorowego. ETP1A_W14, ETP1A_W07 Oral answer,
Examination,
Test
Number of hours for each form of classes:
Sum (hours)
Lecture
Audit. classes
Lab. classes
Project classes
Conv. seminar
Seminar classes
Pract. classes
Zaj. terenowe
Zaj. warsztatowe
Prace kontr. przejść.
Lektorat
56 28 0 18 10 0 0 0 0 0 0 0
FLO matrix in relation to forms of classes
MLO code Student after module completion has the knowledge/ knows how to/is able to Form of classes
Lecture
Audit. classes
Lab. classes
Project classes
Conv. seminar
Seminar classes
Pract. classes
Zaj. terenowe
Zaj. warsztatowe
Prace kontr. przejść.
Lektorat
Social competence
M_K001 Student jest świadomy odpowiedzialności odnośnie niezawodnego sterowania procesem technologicznym, etyki zawodowej i uwarunkowań społecznych, w odniesieniu do aplikacji dotyczących aparatury medycznej czy sprzętu powszechnego użytku. - - + - - - - - - - -
M_K002 Student nabędzie umiejętności pracy w zespole dzięki realizacji zadanych zadań projektowych. - - + - - - - - - - -
Skills
M_U001 Student umie zaprojektować układy współpracujące dla danej aplikacji mikrokontrolera, uwzględniając funkcjonalność jego interfejsów wewnętrznych. Potrafi dokonać optymalizacji wynikającej ze wzajemnej wymienialności sprzęt – oprogramowanie. Potrafi czytać dokumentację techniczną dotyczącą procesorów. - - + + - - - - - - -
M_U002 Student zdobędzie umiejętności pozwalające na samodzielna budowę systemu elektronicznego złożonego z procesora i układów peryferyjnych w oparciu o samodzielnie zaprojektowane i napisane oprogramowanie. - - + + - - - - - - -
M_U003 Student potrafi oprogramować zaprojektowaną aplikację mikrokontrolera, posiłkując się językiem asemblerowym i/lub językiem wysokiego poziomu, uwzględniając uwarunkowania, wynikające z zasobów mikrokontrolera, jego listy instrukcji, pojemności pamięci i wymogów czasu rzeczywistego. - - + + - - - - - - -
Knowledge
M_W001 Student poszerzy wiedzę w zakresie architektur mikroprocesorów. Pozna metody komunikacji jednostki centralnej z innymi elementami systemu procesorowego, techniki przetwarzania współbieżnego na poziomie instrukcji, mechanizmy sprzętowe służące wsparciu pracy systemów operacyjnych, nowoczesne układy peryferyjne. Poszerzona zostanie wiedza studenta w zakresie programowania procesorów w językach wysokiego poziomu. + - - - - - - - - - -
M_W002 Student dysponuje wiedzą niezbędną do tworzenia dedykowanych aplikacji mikrokontrolerów, zna współzależności pomiędzy hardwarem i softwarem oraz zasady pracy w czasie rzeczywistym. + - - - - - - - - - -
M_W003 Student dysponuje wiedza konieczną do uruchamiania i rozbudowy systemu mikroprocesorowego. + - - - - - - - - - -
Student workload (ECTS credits balance)
Student activity form Student workload
Summary student workload 116 h
Module ECTS credits 4 ECTS
Udział w zajęciach dydaktycznych/praktyka 56 h
Preparation for classes 14 h
przygotowanie projektu, prezentacji, pracy pisemnej, sprawozdania 24 h
Realization of independently performed tasks 20 h
Contact hours 2 h
Module content
Lectures (28h):
  1. Podstawy budowy i programowania mikrokontrolerów 32-bitowych

    Wprowadzenie do mikrokontrolerów: typy, zastosowania
    Budowa mikrokontrolera ARM Corex M – moduły (rdzeń, kontroler przerwań, peryferia, magistrala), przestrzeń adresowa
    Biblioteka ARM CMSIS
    Programowanie mikrokontrolerów w oparciu o przerwania: cel i zalety

  2. Architektura (ISA) współczesnych procesorów 32-bitowych

    Architektura procesora – co to jest? Architektury: von Neumana, Harwardzka. Procesory RISC i CISC
    Architektura procesora na przykładze procesora ARM Cortex M
    Rejestry ARM Cortex-M
    Tryby pracy procesora ARM Cortex-M
    Instrukcje ARM, Thumb, Thumb 2

  3. Assembler i techniki kompilacji dla współczesnego procesora 32 bitowego

    Zestaw instrukcji procesors
    Tryby adresowania
    Techniki kompilacji kodu C do asseblera (zmienne automatyczne i statyczne, tablice pętle, rozgałęzienia)

  4. Mikroarchitektura współczesnych procesorów 32-bitowych

    Budowa jednostki centralnej – ALU, ścieżka danych, rejestry, dostęp do pamięci
    Realizacja instrukcji w jednym takcie zegara (ang. single cycled architecture)
    Potokowe wykonywanie instrukcji – architektura potokowa, skoki, cykle oczekiwania

  5. Arytmetyka stałoprzecinkowa komputerów

    Reprezentacja binarna, BCD, znak-moduł, z przesunięciem, kod uzupełnień do dwóch (U2)
    Reprezentacja liczb ze stałym przecinkiem
    Realizacja konwersji pomiedzy różnymi formatami liczb
    Realizacja operacji dodawania i mnożenia liczb

  6. Arytmetyka zmiennoprzecinkowa liczb

    Standard IEEE 754
    Arytmetyka liczb floaring-point
    Błąd względny i bezwzględny reprezentacji, ULP
    Utrata cyfr znaczących

  7. Pamięci

    Pamięć statyczna
    Pamięć dynamiczna
    Fizyczna organizacja pamięci
    Cykle dostępu do pamięci
    Pamięci synchroniczne i asynchroniczne
    Architektura współczesnych pamięci DDR

  8. Hierarchia pamięci

    Zasada lokalność danych
    Hierarchia pamięci
    Pamięć podręczna
    Hit i miss
    Czas dostępu do pamięci:
    Strategie write-through i write-back

  9. Pamięć podręczna

    Architektury pamięci podręcznej
    Architektura z adresowaniem asocjacyjnym
    Architektura z adresowaniem z adresowaniem bezpośrednim
    Architektura z adresowaniem zbiorowo asocjacyjnym
    Optymalizacja parametrów pamięci podręcznej

  10. Wirtualizacja pamięci

    Adres fizyczny i logiczny
    Organizacja pamięci wirtualnej
    Segmentacja i stronnicowanie pamięci
    Dostęp blokowy do pamięci
    Ochrona pamięci, menadżer pamięci
    Tryb pracy rzeczywisty i wirtualny procesora

  11. Magistrale procesora

    Rola magistrali
    Magistrala wewnętrzna i zewnętrzna
    Standardy i typy magistral procesora
    Przykłady standardów popularnych magistral
    Współpraca procesora z magistralą
    Bezpośredni dostęp do pamięci DMA

Laboratory classes (18h):
  1. Moduły peryferyjne wejścia-wyjście (GPIO)

    Mini wykład:
    Wprowadzenie do programowania układów peryferynych na przykładzie GPIO
    - Wprowadzenie do środowiska Keil uVision
    - Architektura GPIO – rejestry sterujące, sposób aktywowania portu
    - Multipleksacja wyprowadzeń mikrokontrolera
    - Programowanie rejestrów urządzeń peryferyjnych – wskaźniki, definiowanie adresów urządzeń, struktury, unie
    - Biblioteki programistyczne

    Ćwiczenia praktyczne:
    Wprowadzenie do środowiska Keil – obsługa GPIO
    - Stworzenie pierwszego projektu w środowisku Keil
    - Konfiguracj GPIO jako wyjścia na przykładzie migania diodą LED
    - Konfiguracja GPIO jako wejścia na przykładzie obsługi przycisku
    - Podłączenie GPIO do analizatora stanów logicznych i programowalnego generatora sygnałów

  2. Podłączenie peryferiów zewnętrznych do systemu mikroprocesorowego

    Mini wykład:
    Podłączenie peryferiów do systemu mikroprocesorowego za pomocą standartowej magistrali peryferyjnej
    - Podstawowe sposoby podłączenia modułów zewnętrznych do systemu mikroprocesorowego
    - Protokół komunikacji procesora z wyświetlaczem zewnętrznym
    - Obsługa sterownika do wyświetlacza

    Ćwiczenia praktyczne:
    Human-Machine Interface 1 – podłączenie wyświetlacza do mikrokontrolera
    - Wyświetlenie na wyświetlaczu “Hello World”
    - Wizualizacja pracy przycisku i diody LED na wyświetlaczu

    • Dodanie funkcjonalności do sterownika wyświetlacza

  3. Przerwania w mikrokontrolerach

    Mini wykład:
    Przerwania i programowanie mikrokontrolerów oparte o przerwania
    - Przerwania i wyjątki – kontroler przerwań, tablica przerwań, priorytety, maskowanie przerwań
    - Tryby pobierania energii przez procesor
    - Programowanie w oparciu o przerwania

    Ćwiczenia praktyczne:
    Human-Machine Interface 2 – podłączenie klawiatury do mikrokontrolera
    - Podłączenie i sprawdzenie sposobu działania klawiatury
    - Wykorzystanie przerwań do obsługi klawiatury
    - Budowa prostego zegarka

    • Program: kalkulator

  4. Liczniki i układy czasowe

    Mini wykład:
    Moduły liczników i ich obsługa
    - Moduł generatora sygnałów zegarowych – konfiguracja zegara mikrokontrolera
    - Prosty układ licznika peryferyjnego – sposób wykorzystania i konfiguracji
    - Zaawansowany układ czasowo-licznikowy

    Ćwiczenia praktyczne:
    Sonar – konwersja czasu na odległość
    - Generowanie impulsów z wykorzystaniem różnych modułów mikrokontrolera, a następnie ich obserwacja przy pomocy oscyloskopu
    - Generowanie impulsów z zewnętrznego generatora, a następnie ich pomiar przy pomocy mikrokontrolera
    - Podłączenie ultradźwiękowego czujnika odległości i pomiar odległości

  5. Przebiegi o modulowanej szerokość impulsu (PWM)

    Mini wykład:
    Generator sygnału TPM
    - Konfiguracja i tryby pracy generatora TPM

    Zajęcia praktyczne:
    Sterowanie serwomechanizmem – konwersja sygnału na kąt wychylenia
    - Generowanie impulsów PWM z wykorzystaniem mikrokontrolera
    - Obserwacja sygnałów PWM za pomocy oscyloskopu
    - Podłączenie serwomechanizmu do mikrokontrolera

  6. Przetworniki analogowo-cyfrowe (A/C) i cyfrowo-analogowe (C/A)

    Mini wykład:
    Wbudowane przetworniki A/C i C/A i ich obsługa
    - Podstawy konwersji sygnalu analogowego na cyfrowy, błąd kwantyzacji, kryterium Nyquista
    - Budowa podstawowych prztworników A/C i C/A
    - Budowa przetwornika A/C w mikrokontrolerze, kalibracja, programowanie
    - Budowa przetwornika C/A w mikrokontrolerze i jego programowanie

    Zajęcia praktyczne:
    - Obsługa wbudowanych przetworników A/C i C/A
    - Odczyt temperatury rdzenia procesora
    - Generowanie przebiegu SIN z wykorzystaniem mikrokontrolera, a następnie jego obserwacja przy pomocy oscyloskopu
    - Konfiguracja ADC i odczyt wartości wygenerowanej z DAC

  7. Asynchroniczna komunikacja szeregowa (UART)

    Mini wykład:
    - Podstawy komunikacji UART (ramka, bity startu/stopu, kontrolne)
    - Budowa układu nadawczo-odbiorczego UIART w mikrokontrolerze. Funkcja rejestrów
    - Programowanie aplikacji do komunikacji za pomocą UART. Wykorzystanie przerwań i buforów kołowych

    Ćwiczenia praktyczne:
    Komunikacja mikrokontrolera z komputerem za pomocą interfejsu UART
    - Moduły pośredniczące, konwersja napięć, konfiguracja komputera, program terminala
    - Konfiguracja mikrokontrolera
    - Aplikacja “Hello, world”

Project classes (10h):
Ćwiczenia projektowe 10 h

Studenci realizują projekt prostego systemu mikroprocesorowego z wykorzystaniem typowych układów peryferyjnych

Additional information
Teaching methods and techniques:
  • Lectures: Treści prezentowane na wykładzie są przekazywane w formie prezentacji multimedialnej w połączeniu z klasycznym wykładem tablicowym wzbogaconymi o pokazy odnoszące się do prezentowanych zagadnień.
  • Laboratory classes: W trakcie zajęć laboratoryjnych studenci samodzielnie rozwiązują zadany problem praktyczny, dobierając odpowiednie narzędzia. Prowadzący stymuluje grupę do refleksji nad problemem, tak by otrzymane wyniki miały wysoką wartość merytoryczną.
  • Project classes: Studenci wykonują zadany projekt samodzielnie, bez większej ingerencji prowadzącego. Ma to wykształcić poczucie odpowiedzialności za pracę w grupie oraz odpowiedzialności za podejmowane decyzje.
Warunki i sposób zaliczenia poszczególnych form zajęć, w tym zasady zaliczeń poprawkowych, a także warunki dopuszczenia do egzaminu:

Participation rules in classes:
  • Lectures:
    – Attendance is mandatory: No
    – Participation rules in classes: Studenci uczestniczą w zajęciach poznając kolejne treści nauczania zgodnie z syllabusem przedmiotu. Studenci winni na bieżąco zadawać pytania i wyjaśniać wątpliwości. Rejestracja audiowizualna wykładu wymaga zgody prowadzącego.
  • Laboratory classes:
    – Attendance is mandatory: Yes
    – Participation rules in classes: Studenci wykonują ćwiczenia laboratoryjne zgodnie z materiałami udostępnionymi przez prowadzącego. Student jest zobowiązany do przygotowania się w przedmiocie wykonywanego ćwiczenia, co może zostać zweryfikowane kolokwium w formie ustnej lub pisemnej. Zaliczenie zajęć odbywa się na podstawie zaprezentowania rozwiązania postawionego problemu. Zaliczenie modułu jest możliwe po zaliczeniu wszystkich zajęć laboratoryjnych.
  • Project classes:
    – Attendance is mandatory: Yes
    – Participation rules in classes: Studenci wykonują prace praktyczne mające na celu uzyskanie kompetencji zakładanych przez syllabus. Ocenie podlega sposób wykonania projektu oraz efekt końcowy.
Method of calculating the final grade:

Na zajęciach labratoryjnych oceniane jest przygotowanie do zajeć i aktywność.
Szczegłółowe zasady oceniania pracy na zajęciach laboratoryjnych podaje prowadzący grupę laboratoryjną.

Projekt oceniany jest na podstawie stopnia zaawansowania podjętego tematu, sposobu wykonania projektu, efektu końcowego i terminowości realizacji. Szczegłówe zasady ustala prowadzący grupę projektową.

W ocenie końcowej są uwzględniane oceny cząstkowe ze:
a) egzaminu (waga 1/3)
b) ćwiczeń laboratoryjnych (waga 1/3)
c) projektu (waga 1/3)

Sposób i tryb wyrównywania zaległości powstałych wskutek nieobecności studenta na zajęciach:

Prerequisites and additional requirements:

Znajmoość podstawowych zagadnień z techniki cyfrowej
Znajomość podstaw języka programowania C oraz zasad tworzenia algorytmów
Znajomość prostych układów analogowych współpracujących z mikrokontrolerami (np.: wzmacniacze operacyjne, komparatory, obwody z diodami LED)
Podstawy systemu operacyjnego Windows

Recommended literature and teaching resources:

WWW
1. strona firmowa www.nxp.com
2. strona firmowa www.intel.com
3. strona firmowa www.arm.com

Wykład
1. P. Metzger: Anatomia PC, Helion, Gliwice 2009
2. W. Stallings: Computer Organization and Architecture
3. D.A. Patterson, J.N. Hennessy: Computer Organization and Design. The Hardware Software Interface,
4. F. Vahid, T. Givargis: Embedded System Design. A Unified Hardware/Software Introduction
5. D.M. Harris, S.L. Harris: Digital Design and Computer Architecture

Laboratorium
1. R. Baranowski: Mikrokontrolery AVR ATmega w praktyce
2. Alexander G. Dean: Embedded Systems Fundamentals with Arm Cortex-M based Microcontrollers: A Practical Approach
3. W. Mielczarek: Szeregowe interfejsy cyfrowe, Helion, Gliwice 1994
4. Z. Hajduk: Mikrokontrolery w systemach zdalnego sterowania, BTC, Warszawa 2005

Scientific publications of module course instructors related to the topic of the module:

Russek P., et al. A custom co-processor for the discovery of low autocorrelation binary sequences. Measurement Automation Monitoring, 2016, 62.

Kowalczyk, K., Wozniak, S., Chyrowicz, T., & Rumian, R. (2016, September). Embedded system for acquisition and enhancement of audio signals. In Signal Processing: Algorithms, Architectures, Arrangements, and Applications (SPA), 2016 (pp. 68-71). IEEE.

Marszałek K., Rumian R., Układ analizy samochodowego sterownika pokładowego — [Analysis system for board computer investigation], KKE ’2003 : II Krajowa Konferencja Elektroniki : Kołobrzeg 9–12 czerwca 2003 : materiały konferencji. T. 2/2. — Koszalin : Wydział Elektroniki Politechniki Koszalińskiej, 2003 + CD-ROM. — S. 639–644. — Bibliogr. s. 644, Streszcz.

Additional information:

None