Module also offered within study programmes:
General information:
Name:
Microprocessor Techniques
Course of study:
2018/2019
Code:
JFT-2-047-s
Faculty of:
Physics and Applied Computer Science
Study level:
Second-cycle studies
Specialty:
-
Field of study:
Technical Physics
Semester:
0
Profile of education:
Academic (A)
Lecture language:
Polish
Form and type of study:
Full-time studies
Course homepage:
 
Responsible teacher:
dr inż. Świentek Krzysztof (swientek@agh.edu.pl)
Academic teachers:
dr inż. Skoczeń Andrzej (skoczen@fis.agh.edu.pl)
dr inż. Świentek Krzysztof (swientek@agh.edu.pl)
dr inż. Moroń Jakub (jmoron@agh.edu.pl)
Module summary

Moduł pozwala na zapoznanie się z ommiennym od klasycznego (ogólnie pojęte komputery) wykorzystaniem mikroprocesorów od implementowania ich w układach FPGA do użycia w mikrokontrolerach.

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
M_K001 Student potrafi pracować w zespole projektowym. Potrafi samodzielnie zdobyć odpowiednią wiedzę i umiejętności niezbędne do realizacji powierzonej mu części zadania zespołowego. FT2A_K01, FT2A_K02 Execution of a project
Skills
M_U001 Student umie przedstawić wykonany projekt w formie prezentacji. Potrafi także wskazać obszary zastosowań tworzonych aplikacji i ekonomiczne aspekty zastosowanych rozwiązań. FT2A_U01, FT2A_U07 Execution of laboratory classes,
Execution of a project
M_U002 Student potrafi napisać program dla zadanego mikroprocesora/mikrokontrolera wykorzystując wiedzę o jego budowie wewnętrznej i assemblerze, korzystając co najmniej z jednego interfejsu komunikacyjnego. FT2A_U05 Execution of laboratory classes,
Execution of a project,
Activity during classes
M_U003 Student potrafi użyć odpowiednich narzędzi do skompilowania napisanego programu i załadowania go do mikrokontrolera/mikroprocesora pracującego w systemie wbudowanym. FT2A_U05 Execution of laboratory classes,
Execution of a project,
Activity during classes
Knowledge
M_W001 Student potrafi wyjaśnić proces „cross”-kompilacji i wskazać narzędzia niezbędne do pracy z mikroprocesorem/mikrokontrolerem pracującym w systemie wbudowanym. FT2A_W02 Execution of laboratory classes,
Execution of a project,
Activity during classes
M_W002 Student zna i potrafi scharakteryzować wybrane interfejsy komunikacyjne używane w systemach mikroprocesorowych. FT2A_W02 Execution of laboratory classes,
Execution of a project,
Activity during classes
M_W003 Student zna budowę wewnętrzną wybranego mikroprocesora/mikrokontrolera oraz jego assemblera. Potrafi również wyjaśnić działanie i wskazać zastosowanie poszczególnych rozkazów. FT2A_W02 Execution of laboratory classes,
Execution of a project,
Activity during classes
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
Others
E-learning
Social competence
M_K001 Student potrafi pracować w zespole projektowym. Potrafi samodzielnie zdobyć odpowiednią wiedzę i umiejętności niezbędne do realizacji powierzonej mu części zadania zespołowego. - - - + - - - - - - -
Skills
M_U001 Student umie przedstawić wykonany projekt w formie prezentacji. Potrafi także wskazać obszary zastosowań tworzonych aplikacji i ekonomiczne aspekty zastosowanych rozwiązań. - - + + - - - - - - -
M_U002 Student potrafi napisać program dla zadanego mikroprocesora/mikrokontrolera wykorzystując wiedzę o jego budowie wewnętrznej i assemblerze, korzystając co najmniej z jednego interfejsu komunikacyjnego. + - + + - - - - - - -
M_U003 Student potrafi użyć odpowiednich narzędzi do skompilowania napisanego programu i załadowania go do mikrokontrolera/mikroprocesora pracującego w systemie wbudowanym. + - + + - - - - - - -
Knowledge
M_W001 Student potrafi wyjaśnić proces „cross”-kompilacji i wskazać narzędzia niezbędne do pracy z mikroprocesorem/mikrokontrolerem pracującym w systemie wbudowanym. + - + - - - - - - - -
M_W002 Student zna i potrafi scharakteryzować wybrane interfejsy komunikacyjne używane w systemach mikroprocesorowych. + - + - - - - - - - -
M_W003 Student zna budowę wewnętrzną wybranego mikroprocesora/mikrokontrolera oraz jego assemblera. Potrafi również wyjaśnić działanie i wskazać zastosowanie poszczególnych rozkazów. + - + - - - - - - - -
Module content
Lectures:
Tematy wykładów

1. Wprowadzenie: podstawowe pojęcia tj. mikrokontroler, a mikroprocesor, architektury, ,,softcore’’ itp.
2. Mikroprocesory typu ,,softcore’’ w układzie programowalnym FPGA
3. Mikroprocesor PIcoBlaze: architektura, rozkazy, programowanie w asemblerze
4. Szeregowe interfejsy przewodowe : RS232, SPI, I2C, PS/2
5. Mikrokontrolery na przykładzie LPC1786 z rdzeniem ARM CortexM3: architektura, budowa, programowanie, układy peryferyjne
6. Interfejs USB
7. Nowoczesne architektury mikroprocesorów: lista rozkazów CISC a RISC, tryby adresowania, potokowe i superskalarne przetwarzania rozkazów, zarządzanie pamięcią, mechanizmy wspomagania systemu operacyjnego itp.

Laboratory classes:
Pracownia Komputerowo-Elektroniczna

1. Środowisko programistyczne i metodologia pracy z mikrokontrolerem PicoBlaze i układem FPGA
Efekty kształcenia:
- student potrafi wyjaśnić działanie poszczególnych rozkazów mikrokontrolera, zna jego budowe wewnętrzną i potrafi napisać program w asemblerze
- student potrafi dokonać „cross” kompilacji i użyć odpowiednich narzędzi do załadowania swojego programu do układu FPGA i tym samym do pamięci mikrokontrolera

2. Wykorzystanie układów i urządzeń zewnętrznych względem FPGA
Efekty kształcenia:
- student potrafi skomuikować się z zewnętrznym układem zewnętrznym (np. przetwornik A/C lub C/a) wykorzystując szeregowy protokół komunikacyjny
- student potrafi sterować i/lub odbierać dane z urządzenia zewnętrznego (np. klawiatura PS/2) wykorzystując jeden szeregowy protokół komunikacyjny

3. Środowisko programistyczne i metodologia pracy z typowym mikrokontrolerem (LPC1768)
Efekty kształcenia:
- student potrafi zapisać prosty program dla wybranego mikrokontrolera
- student potrafi dokonać „cross” kompilacji i użyć odpowiednich narzędzi do załadowania swojego programu do pamięci mikrokontrolera

4. Wykorzystanie wbudowanych układów peryferyjnych układu LPC1768
Efekty kształcenia:
- student potrafi skonfigurować wewnętrzne układy peryferyjne typu: licznik, ,,watchdog’’, zegar czasu rzeczywistego, przetworniki A/C i C/A itp.
- student potrafi skonfigurować i wykorzystać wewnętrzne przerwania pochodzące od układów peryferyjnych

Project classes:
Projekt zespołowy

Studenci w dwuosobowych zespołach realizują projekty opierające się o wybrany przez nich mikrokontroler. Każdy zespół otrzymuje do wykonania inny, przydzielony losowo lub uzgodniony z prowadzącym projekt. Punktem wyjścia dla studentów są dostarczone założenia i wskazówki projektowe. W ramach projektu należy w oparciu o zasoby sprzętowe dostępne na module ćwiczeniowym stworzyć działające urządzenie oraz dokumentację wykonania projektu.
Efekty kształcenia:
- student potrafi zinterpretować specyfikację urządzenia w celu zbudowania go za pomocą dostępnych narzędzi programowych
- student potrafi efektywnie wykorzystać odpowiednie narzędzia projektowe do stworzenia prostej aplikacji na module ćwiczeniowym
- student potrafi współpracować w grupie realizując swoją część zadania
- student potrafi zademonstrować funkcjonalność zbudowanego urządzenia zgodną z zadaną specyfikacją i przygotować dokumentację

Student workload (ECTS credits balance)
Student activity form Student workload
Summary student workload 139 h
Module ECTS credits 5 ECTS
Participation in lectures 20 h
Realization of independently performed tasks 15 h
Participation in laboratory classes 22 h
Preparation for classes 22 h
Participation in project classes 15 h
Completion of a project 35 h
Preparation of a report, presentation, written work, etc. 10 h
Additional information
Method of calculating the final grade:

Ocena końcowa OK z modułu obliczana jest jako średnia ważona oceny z laboratoriów OL i projektów OP:

OK = 0.6 x OP + 0.4 x OL

Prerequisites and additional requirements:

Znajomość podstaw programowania
Znajomość podstaw elektroniki cyfrowej
Podstawowa wiedza o strukturze języków programowania

Recommended literature and teaching resources:

1. Marcin Nowakowski, PicoBlaze mikroprocesor w FPGA, Wydawnictwo BTC, Legionowo 2010.
2. Jacek Bogusz, Lokale interfejsy szeregowe w systemach cyfrowych. BTC, Warszawa 2004.
3. A. Sloss, D. Symes, Ch. Wright, ARM System Developer's Guide: Designing and Optimizing System Software, Morgan Kaufmann, 2004.
4. Joseph Yiu, The Definitive Guide to the ARM Cortex – M3, Newnes, 2009.
5. Tomasz Francuz, Mikrokontrolery AVR i ARM : sterowanie wyświetlaczami LCD, Helion 2017.
6. K. Qian, D. den Haring, L. Cao, Embedded Software Development with C, Springer, 2009.
7. Kucjan Brynza, Mikrokontroler ARM9 w przykładach, BTC, Legionowo 2009.
8. Krzysztof Paprocki, Mikrokontrolery STM32 w praktyce, BTC, Legionowo 2011.
9. J. Hennessy, D. Patterson, Computer architecture: a quantitative approach, Elsevier 2012.

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

K. Swientek, M. Banachowicz,
Design of Memory Subsystem for Wide Input Data Range in the SALT ASIC,
Proceedings of the 24th International Conference “Mixed Design of Integrated Circuits and Systems”, June 22-24, 2017, Bydgoszcz, Poland.

S. Bugiel, R. Dasgupta, M. Firlej, T. Fiutowski, M. Idzik, M. Kopec, J. Moron, K. Swientek,
Ultra-Low Power Fast Multi-Channel 10-Bit ADC ASIC for Readout of Particle Physics Detectors
IEEE Trans. Nucl. Sci. vol. 63, 2016, pp. 2622-2631.

M. Idzik, K. Swientek, T. Fiutowski, S. Kulis, D. Przyborowski,
A 10-Bit Multichannel Digitizer ASIC for Detectors in Particle Physics Experiments,
IEEE Trans. Nucl. Sci. vol. 59, 2012, pp. 294-302.

S. Kulis, A. Matoga, M. Idzik, K. Swientek, T. Fiutowski, D. Przyborowski,
A general purpose multichannel readout system for radiation detectors,
JINST 7 T01004 2012, pp. 294-302.

Additional information:

Sposób i tryb wyrównania zaległości powstałych wskutek nieobecności studenta na zajęciach:
Nieobecność na zajęciach wymaga od studenta samodzielnego opanowania przerabianego w tym czasie materiału.
Pod koniec semestru przewidziany jest dodatkowy termin laboratorium (ogłaszany 2 tygodnie wcześniej na stronie internetowej przedmiotu i przez prowadzących), w którym można wykonać pomiary/ćwiczenia, których student z przyczyn losowych nie mógł wykonać w pierwotnym terminie.

Zasady zaliczania zajęć
W ramach laboratorium komputerowo-elektronicznego studenci pracując w dwuosobowych zespołach wykonują szereg ćwiczeń, które traktowane są jako niezbędne przygotowanie do wykonania projektu. Każde spotkanie w laboratorium rozpoczyna się od kartkówki.
Oceny z tej kartkówki uzupełnione o aktywność na zajęciach i/lub sprawność wykonywania ćwiczeń są podstawą do wystawienia oceny za część laboratoryjną.

Projekt oceniany jest w oparciu o procent zrealizowanych założeń projektowych i/lub ocenę niezawodności działania stworzonego urządzenia. Dodatkowo oceniany jest sposób zaprezentowania informacji technicznych zawartych w opracowanej dokumentacji.
Wszystkie projekty muszą zostać zaliczone.
Warunkiem uzyskania zaliczenia z pojedynczego projektu jest:
- pomyślna prezentacja działania układu,
- poprawnie wykonane pomiary,
- zaliczone sprawozdanie – dokumentacja projektu.