Moduł oferowany także w ramach programów studiów:
Informacje ogólne:
Nazwa:
Programowanie mikroprocesorów
Tok studiów:
2014/2015
Kod:
ITE-1-509-s
Wydział:
Informatyki, Elektroniki i Telekomunikacji
Poziom studiów:
Studia I stopnia
Specjalność:
-
Kierunek:
Teleinformatyka
Semestr:
5
Profil kształcenia:
Ogólnoakademicki (A)
Język wykładowy:
Polski
Forma i tryb studiów:
Stacjonarne
Strona www:
 
Osoba odpowiedzialna:
dr inż. Rumian Roman (rumian@agh.edu.pl)
Osoby prowadzące:
dr inż. Kołodziej Jacek (jackolo@agh.edu.pl)
dr inż. Ostrowski Jacek (ostrowsk@agh.edu.pl)
Stępień Jacek (stepien@agh.edu.pl)
Krótka charakterystyka modułu

Architektura systemów wbudowanych, model programowy procesora, organizacje budowy procesorów, budowa mikrokontrolera, programowanie procesorów i układów peryferyjnych.

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 Student ma podstawowa wiedzę w zakresie budowy i działania procesora oraz mikrokontrolera, jego bloków funkcjonalnych, kodowania rozkazów, adresowania pamięci programu oraz danych, czasu wykonywania rozkazu oraz złożonych struktur programowych. TE1A_W20, TE1A_W14 Wynik testu zaliczeniowego
M_W002 Student zna i rozumie zasady budowy programu w języku niskiego i wysokiego poziomu, potrafi wybrać właściwe rozwiązanie w zależności od założonych wymagań TE1A_W14 Wynik testu zaliczeniowego
M_W003 Student ma szczegółową wiedzę z zakresu tworzenia podstawowych i złożonych struktur programowych w języku asemblera, wykorzystywania systemu przerwań, programowania zagnieżdżonego i priorytetyzacji zadań. TE1A_W10 Wynik testu zaliczeniowego
M_W004 Student ma szczegółową wiedzę w zakresie zastosowania języka C do bezpośredniego programowania procesorów TE1A_W10 Praca wykonana w ramach praktyki
M_W005 Student ma szczegółową wiedzę na temat sposobu działania i wykorzystywania wewnętrznych układów peryferyjnych mikrokontrolera, komunikowania się ze światem zewnętrznym, sprzęgania z mikrokontrolerem układów podrzędnych i nadrzędnych (hostów). TE1A_W14, TE1A_W22 Wynik testu zaliczeniowego
Umiejętności
M_U001 Student umie posługiwać się zintegrowanym środowiskiem projektowym (IDE) do programowania zarówno w języku asemblera, jak i języka C (edytor, asembler, linker, symulator i debugger). Potrafi z jego pomocą tworzyć, uruchamiać i wykrywać błędy w przygotowywanych programach. TE1A_U13, TE1A_U15 Praca wykonana w ramach praktyki
M_U002 Student potrafi zdekomponować problem na zbiór zadań i przygotować rozwiązanie w języku asemblera, języku C, a także połączyć obie te metody, tak aby wykonać implementację zadania o średnim poziomie złożoności, wykorzystujący przy tym procedury, obsługę przerwań i pracę w czasie rzeczywistym. TE1A_U13, TE1A_U21 Praca wykonana w ramach praktyki
M_U003 Student umie wykorzystać w praktyce wewnętrzne układy peryferyjne mikrokontrolera oraz sprzęgać go z modułami zewnętrznymi, tworząc typowe systemy typu embedded. TE1A_U20, TE1A_U05 Projekt
Kompetencje społeczne
M_K001 Student potrafi współpracować w zespołu projektantów, wykonując powierzony mu fragment oprogramowania zgodnie z przyjętymi założeniami. TE1A_K04
M_K002 Student rozumie potrzebę i zna możliwości ciągłego dokształcania się oraz podnoszenia swoich kompetencji zawodowych TE1A_K01
M_K003 Student ma świadomość ważności zachowywania się w sposób profesjonalny, potrafi w sposób zrozumiały i z odpowiedzialnością za słowo zredagować raport z wykonanego zadania inżynierskiego TE1A_K04, TE1A_K06
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
Ćwicz. aud
Ćwicz. lab
Ćw. proj.
Konw.
Zaj. sem.
Zaj. prakt
Zaj. terenowe
Zaj. warsztatowe
Inne
E-learning
Wiedza
M_W001 Student ma podstawowa wiedzę w zakresie budowy i działania procesora oraz mikrokontrolera, jego bloków funkcjonalnych, kodowania rozkazów, adresowania pamięci programu oraz danych, czasu wykonywania rozkazu oraz złożonych struktur programowych. + - + - - - - - - - -
M_W002 Student zna i rozumie zasady budowy programu w języku niskiego i wysokiego poziomu, potrafi wybrać właściwe rozwiązanie w zależności od założonych wymagań + - - - - - - - - - -
M_W003 Student ma szczegółową wiedzę z zakresu tworzenia podstawowych i złożonych struktur programowych w języku asemblera, wykorzystywania systemu przerwań, programowania zagnieżdżonego i priorytetyzacji zadań. + - + - - - - - - - -
M_W004 Student ma szczegółową wiedzę w zakresie zastosowania języka C do bezpośredniego programowania procesorów + - + - - - - - - - -
M_W005 Student ma szczegółową wiedzę na temat sposobu działania i wykorzystywania wewnętrznych układów peryferyjnych mikrokontrolera, komunikowania się ze światem zewnętrznym, sprzęgania z mikrokontrolerem układów podrzędnych i nadrzędnych (hostów). + - + - - - - - - - -
Umiejętności
M_U001 Student umie posługiwać się zintegrowanym środowiskiem projektowym (IDE) do programowania zarówno w języku asemblera, jak i języka C (edytor, asembler, linker, symulator i debugger). Potrafi z jego pomocą tworzyć, uruchamiać i wykrywać błędy w przygotowywanych programach. - - + - - - - - - - -
M_U002 Student potrafi zdekomponować problem na zbiór zadań i przygotować rozwiązanie w języku asemblera, języku C, a także połączyć obie te metody, tak aby wykonać implementację zadania o średnim poziomie złożoności, wykorzystujący przy tym procedury, obsługę przerwań i pracę w czasie rzeczywistym. + - + - - - - - - - -
M_U003 Student umie wykorzystać w praktyce wewnętrzne układy peryferyjne mikrokontrolera oraz sprzęgać go z modułami zewnętrznymi, tworząc typowe systemy typu embedded. - - + - - - - - - - -
Kompetencje społeczne
M_K001 Student potrafi współpracować w zespołu projektantów, wykonując powierzony mu fragment oprogramowania zgodnie z przyjętymi założeniami. + - + - - - - - - - -
M_K002 Student rozumie potrzebę i zna możliwości ciągłego dokształcania się oraz podnoszenia swoich kompetencji zawodowych - - + - - - - - - - -
M_K003 Student ma świadomość ważności zachowywania się w sposób profesjonalny, potrafi w sposób zrozumiały i z odpowiedzialnością za słowo zredagować raport z wykonanego zadania inżynierskiego - - + - - - - - - - -
Treść modułu zajęć (program wykładów i pozostałych zajęć)
Wykład:

Architektura systemów wbudowanych – 2 godz.
- Wzrost roli systemów mikroprocesorowych we współczesnym świecie
- Wprowadzenie do problematyki programowania procesorów
- Ewolucja środowisk programistycznych do budowy aplikacji dla procesorów
- Podział zadań między sprzęt a oprogramowanie

2. Model programowy procesora – 4 godz.
- CPU i jego zasoby
- Tryby adresacji
- Modele operacji warunkowych
- Wyjątki

3. Organizacje budowy procesorów – 2 godz.
- Realizacja modelu programowego RISC, CISC
- Metody przyspieszania wykonywania rozkazów
- Budowa rozkazu

4. Budowa mikrokontrolera – 4 godz.
- Jednostka centralna
- Układ taktowania pracy mikrokontrolera
- Mapa pamięci: pamięć programu i pamięć danych, translacje
- Stany pracy aktywnej i niskiego poboru mocy
- Programowanie (JTAG, ISP, Bootloader)

5. Niskopoziomowe programowanie procesorów – 4 godz.
- Struktura programu asemblerowego, segmenty, dyrektywy preprocesora, linkowanie
- Tworzenie programu, mnemoniki
- Operacje logiczne i arytmetyczne
- Adresowanie i przesłania
- Skoki, wywołania i powroty

6. Programowanie układów peryferyjnych – 4 godz.
- Konfigurowanie portów I/O
- Układy czasowo-licznikowe, tryby IC, OC, PWM
- Układy nadajników i odbiorników transmisji szeregowych (SPI, UART, TWI)
- Przetworniki a/c i c/a

7. Programowanie procesorów w języku C– 6 godz.
- Assembler a C i C++
- Tworzenie prostego programu typu „Witaj swiecie!”
- Wykonywanie programu w C na mikrokontrolerze, standardowe wejście i wyjście
- Dostęp do zasobów mikrokontrolera z poziomu C
- Zmienne i ich alokacja w pamięci
- Obsługa przerwań
- Standardy języka C w programowaniu procesorów

8. Tryby pracy i uruchamianie programów – 4 godz.
- Praca w trybie aktywnym oraz wpływ metod taktowania układu na pobór mocy
- Praca w trybie oczekiwania i metody powracania do stanu aktywnego
- Tryb zatrzymania oraz technika rozpoznawania przyczyn wznowienia pracy
- Praca w trybie uruchamiania

Ćwiczenia laboratoryjne:

Zintegrowane środowisko programowania – 4 godz.
- Posługiwanie się programem edytora tekstu i format zapisu poleceń programu
- Asemblowanie programu i usuwanie błędów syntaktycznych
- Testowanie działania procedur w symulatorze programowym
- Programowanie mikrokontrolera w układzie docelowym
- Debugowanie przebiegu programu w układzie docelowym

2. Asembler w programowaniu procesorów – 6 godz.
- Implementacja funkcji arytmetycznych
- Implementacja pętli, skoków i rozgałęzień
- Podprogramy i wyjątki
- Alokacje pamięci

3. Obsługa wybranych układów peryferyjnych w języku asemblera – 6 godz.
- Obsługa wyświetlacza 7-segmentowego w przerwaniach w trybie z multipleksują cyfr
- Programowa obsługa klawiatury matrycowej
- Generowanie przebiegu PWM, zegar czasu rzeczywistego
- Próbkowanie i rekonstruowanie sygnału analogowego

5. Język C w programowaniu procesorów – 6 godz.
- Prosty program „ Witaj świecie ”
- Obsługa urządzeń peryferyjnych
- Struktury danych, organizacja pamięci
- Przerwania i ich obsługa

7. Realizacja zadania projektowego – 6 godz.
- Wykonanie prostego projektu na bazie opracowanej specyfikacji wymagań, w trzech tygodniowych iteracjach.

8. Podsumowanie – 2 godz.
- Test zaliczeniowy, prezentacja projektów.

Nakład pracy studenta (bilans punktów ECTS)
Forma aktywności studenta Obciążenie studenta
Sumaryczne obciążenie pracą studenta 125 godz
Punkty ECTS za moduł 5 ECTS
Udział w wykładach 28 godz
Samodzielne studiowanie tematyki zajęć 24 godz
Udział w ćwiczeniach laboratoryjnych 28 godz
Przygotowanie do zajęć 15 godz
Wykonanie projektu 30 godz
Pozostałe informacje
Sposób obliczania oceny końcowej:

1. Warunkiem uzyskania pozytywnej oceny końcowej jest uzyskanie pozytywnej oceny z laboratorium.
2. Ocena z laboratorium jest wynikiem gromadzenia punktów za każde z zadań przejściowych, testu oraz zadana projektowego.
3. Na ocenę końcową składa się: 30% zadanie laboratoryjne, 30% test, 40% zadanie projektowe.

Wymagania wstępne i dodatkowe:

- Znajomość algebry Boola
- Znajomość architektury komputerów
- Podstawa umiejętność programowania w języku C
- Podstawowa znajomość algorytmów i struktur danych

Limit przyjęć na przedmiot wynosi 25 osób.

Zalecana literatura i pomoce naukowe:

Pełka R.: Mikrokontrolery – architektura, programowanie, zastosowanie
Heath S.: Embedded systems design
Paprocki K.: Mikrokontrolery STM32 w praktyce
Galewski M.: STM32. Aplikacje i ćwiczenia w języku C
Peczarski M.: Mikrokontrolery STM32 w sieci Ethernet w przykładach
Brzoza-Woch R.: Mikrokontrolery AT91SAM7 w przykładach
Marks P.: Pamięci masowe w systemach mikroprocesorowych
Douglass P.B.: Designing Real-Time Systems With UML

Publikacje naukowe osób prowadzących zajęcia związane z tematyką modułu:

Nie podano dodatkowych publikacji

Informacje dodatkowe:

Brak