Uniwersytet Mikołaja Kopernika w Toruniu - Centralny punkt logowania
Strona główna

Programowanie systemów wbudowanych

Informacje ogólne

Kod przedmiotu: 0800-PROSWBUD
Kod Erasmus / ISCED: (brak danych) / (0613) Tworzenie i analiza oprogramowania i aplikacji Kod ISCED - Międzynarodowa Standardowa Klasyfikacja Kształcenia (International Standard Classification of Education) została opracowana przez UNESCO.
Nazwa przedmiotu: Programowanie systemów wbudowanych
Jednostka: Wydział Fizyki, Astronomii i Informatyki Stosowanej
Grupy: Informatyka Stosowana s2. Przedmioty do wyboru specjalistyczne (wszystkie)
Punkty ECTS i inne: (brak) Podstawowe informacje o zasadach przyporządkowania punktów ECTS:
  • roczny wymiar godzinowy nakładu pracy studenta konieczny do osiągnięcia zakładanych efektów uczenia się dla danego etapu studiów wynosi 1500-1800 h, co odpowiada 60 ECTS;
  • tygodniowy wymiar godzinowy nakładu pracy studenta wynosi 45 h;
  • 1 punkt ECTS odpowiada 25-30 godzinom pracy studenta potrzebnej do osiągnięcia zakładanych efektów uczenia się;
  • tygodniowy nakład pracy studenta konieczny do osiągnięcia zakładanych efektów uczenia się pozwala uzyskać 1,5 ECTS;
  • nakład pracy potrzebny do zaliczenia przedmiotu, któremu przypisano 3 ECTS, stanowi 10% semestralnego obciążenia studenta.

zobacz reguły punktacji
Język prowadzenia: polski
Wymagania wstępne:

W celu przyswojenia treści zajęć wymagane jest podstawowa wiedza dotycząca mikroprocesorów i techniki mikroprocesorowej, podstaw programowania (ANSI C).

Rodzaj przedmiotu:

przedmiot obowiązkowy

Całkowity nakład pracy studenta:

Godziny realizowane z udziałem nauczycieli ( 70 godz.):

- udział w wykładach - 15

- udział w laboratoriach – 45

- konsultacje z nauczycielem akademickim- 10


Czas poświęcony na pracę indywidualną studenta ( 80 godz.):

- przygotowanie do wykładu - 10

- przygotowanie do laboratoriów – 30

- czytanie literatury - 10

- przygotowanie do egzaminu - 10

- czas poświęcony na projekt zaliczeniowy laboratorium - 20


Razem: 150 h (5 ECTS)

Efekty uczenia się - wiedza:

W1: Ma wiedzę z programowania systemów wbudowanych (zna metody, techniki, narzędzia, biblioteki i bazę elementową do rozwiązywania zadań inżynierskich). Zna specyfikę programowania w języku C dla mikrokontrolerów. Posiada rozszerzoną wiedzę w zakresie zaawansowanej konstrukcji i analizy algorytmów, metod optymalizacji dla systemów wbudowanych – K_W02, K_W04, K_W05


W2: Zna podstawowe klasy sprzętu stosowanego w systemach wbudowanych - K_W09


W3: Umie programować systemy wbudowane z uwzględnieniem pozatechnicznych uwarunkowań działalności inżynierskiej (aspekty społeczne, ekonomiczne i prawne) – K_W08

Efekty uczenia się - umiejętności:

U1: Wykorzystuje dokumentację systemów wbudowanych do uzyskania wiedzy niezbędnej do samodzielnej realizacji postawionych zadań (używając języka ojczystego oraz języka angielskiego) – K_U01, K_U02


U2: Programuje układy wbudowane z wykorzystaniem specjalistycznego oprogramowania. Umie wykorzystać opracowany algorytm działania systemu wbudowanego i przetwarzać je na kod programu wykonawczego, który umie optymalizować - K_U04, K_U09, K_U10,


U3: Potrafi sporządzić dokumentację opracowanego systemu wbudowanego - K_U06,


U4: Potrafi przy realizacji projektów systemów wbudowanych: dostrzegać aspekty systemowe i pozatechniczne, dokonać wstępnej analizy ekonomicznej, umie komunikować się na tematy specjalistyczne ze zróżnicowanymi kręgami odbiorców, współdziałać z innymi osobami w ramach prac zespołowych, umie samodzielnie planować i realizować własne uczenie się przez całe życie i ukierunkowywać innych w tym zakresie - K_U11, K_U08, K_U05.

Efekty uczenia się - kompetencje społeczne:

K1: Pozsiada umiejętność rozwiązywania problemów, których rozwiązanie prowadzi do realizacji postawionego zadania. Zna ograniczenia własnej wiedzy i umiejętności z zakresu wiedzy dotyczącej układów programowania – wie jak ją rozszerzyć (np. zasięgnąć opinii ekspertów w przypadku trudności z samodzielnym rozwiązaniem problemu programowania systemów wbudowanych.) - K_K01.


K2: Posiada kompetencje w zakresie twórczego udziału w projektach zespołowych (w tym roli lidera) oraz ma świadomość odpowiedzialności za wspólnie realizowane zadania dotyczących zagadnień programowania systemów wbudowanych - K_K02, K_K03.

Metody dydaktyczne eksponujące:

- pokaz

Metody dydaktyczne podające:

- opis
- wykład informacyjny (konwencjonalny)

Metody dydaktyczne poszukujące:

- laboratoryjna
- projektu

Skrócony opis:

Wykład i pracownia poświęcone systemom wbudowanym i systemom czasu rzeczywistego przeznaczonych dla systemów wbudowanych.

Pełny opis:

Celem zajęć jest zaznajomienie uczestników z systemami wbudowanymi (ang. embedded systems). Omówione zostaną standardowe peryferia wykorzystywane w systemach wbudowanych (mikrokontrolerach) oraz zastosowania systemu czasu rzeczywistego na przykładzie FreeRTOS. Ćwiczenia będą realizowane z wykorzystaniem zestawów NUCLEO board firm ST. Studenci podczas zajęć zaznajomią się z zagadnieniami sterowania ruchem (ang. motion control), obsługi wyświetlacza LCD TFT, obsługą czujników środowiskowych (czujnik temperatury, ciśnienia, wilgotności względnej), czujników ruchu (akcelerometry i żyroskopy), komunikacją Bluetooth, NFC, Wi-Fi oraz sterowania innymi urządzeniami przemysłowymi zgodnie z koncepcją Przemysłu 4.0.

Plan wykładu (15 godzin):

1) Wprowadzenie do systemów wbudowanych, przykłady zastosowań systemów wbudowanych, klasyfikacja.

2) Rodziny mikrokontrolerów. Omówienie rodziny mikroprocesorów ARM – Cortex M.

3) Organizacja oprogramowania.

4) Omówienie zestawu STM NUCLEO-F767ZI wraz z obsługą API standardowych peryferii mikrokontrolera (GPIO, UART, ADC, I2C, SPI).

5) Omówienie zasobów płytek elektronicznych NUCLEO firmy STM oraz :

a) SparkFun Wi-Fi Shield - ESP8266 (sterownik interfejsu Wi-Fi),

b) X-NUCLEO-IKS01A3 (czujniki ruchu i parametrów otoczenia),

c) X-NUCLEO-IDB05A1(sterownik interfejsu Bluetooth),

d) X-NUCLEO-IHM02A1(sterownik silnika skokowego),

e) X-NUCLEO-NFC06A1(sterownik interfejsu NFC),

f) X-NUCLEO-PLC01A1(sterownik cyfrowych wejść i wyjść).

6) Systemy czasu rzeczywistego (RTOS) w systemach wbudowanych: wymagania, model budowy systemu, stany, zadania, synchronizacja i komunikacja zadań, przegląd systemów.

- System FreeRTOS:

a) Wprowadzenie do systemu FreeRTOS

b) „Zadanie” (Task):

- Tworzenie „Zadania”

- Priorytet „Zadań”

- „Stany” (State) „Zadań”

- usuwanie „Zadań”

- „Dyspozytor” (Scheduler) „Zadań”

c) Pojęcie „Kolejki” (Queue):

- Tworzenie „Kolejki”

- Praktyczne wykorzystanie „Kolejki”

d) „Obsługa przerwań” (Interrupt Management):

- Pojęcie „Semafora” (Semaphor)

- „Zliczanie semaforów” (CountingSemaphores)

- „Kolejkowanie” wraz z „układem zarządzania przerwań”(Interrupt Service Routine)

- „Przerwania zagnieżdżone” (InterruptNesting)

e) Zarządzanie zasobami mikrokontrolera w systemie FreeRTOS:

- „Sekcje krytyczne” (Critical Sections) programu

- Pojęcie „Wzajemnego Wykluczania” (Mutexes)

f) Zarządzanie pamięcią w systemie FreeRTOS:

- „Stos programowy” (Stack) w systemie FreeRTOS

g) Częste problemy w programach z wykorzystaniem systemu FreeRTOS

h) Debugowanie programów z wykorzystaniem systemu FreeRTOS

7) Omówienie zagadnień związanych z obsługą zewnętrznej pamięci SDRAM oraz wyświetlacza LCD TFT.

8) Omówienie zasobów płytki ewaluacyjnej firmy MASTERS z wyświetlaczem 4.3”TFT+RTP Powertip.

Laboratorium (45 godzin):

1) Środowisko programistyczne:

a) Konfiguracja zestawu deweloperskiego STM NUCLEO-F767ZI.

b) Prezentacja obsługi aplikacji STM32CubeMX firmy STM.

c) Prezentacja obsługi środowiska programistycznego STM32CubeIDE firmy STM.

d) Omówienie pozostałych narzędzi programistycznych firmy STM.

2) Przykłady obsługi podstawowych peryferii mikrokontrolera STM32F7 z wykorzystaniem API HAL:

a) GPIO (obsługa przycisku monostabilnego, diody LED),

b) ADC (pomiar temperatury układu STM32),

c) UART (Virtual COM),

3) Przykłady obsługi elementów elektronicznych z płytki SparkFun Wi-Fi Shield - ESP8266 - sterownik interfejsu Wi-Fi z wykorzystaniem magistrali UART:

a) ESP8266 (UART) - moduł komunikacyjny Wi-Fi.

4) Przykłady obsługi elementów elektronicznych z płytki NUCLEO X-NUCLEO-IKS01A3 – czujniki ruchu i parametrów otoczenia z wykorzystaniem magistrali I2C:

a) LSM6DSO MEMS 3D - akcelerometr (±2/±4/±8/±16 g) i 3D żyroskop (±125/±245/±500/±1000/±2000 dps),

b) LIS2MDL MEMS - wykrywacz metali (±50 gauss),

c) LPS22HH MEMS – czujnik ciśnienia, 260-1260 hPa,

d) HTS221 - czujnik wilgotności względnej i temperatury.

5) Przykłady obsługi elementów elektronicznych z płytki NUCLEO X-NUCLEO-IHM02A1– sterownik silnika skokowego z wykorzystaniem magistrali SPI:

a) L6470s (SPI) – sterownik silnika skokowego.

6) Przykłady obsługi elementów elektronicznych z płytki NUCLEO X-NUCLEO-IDB05A1– sterownik interfejsu Bluetooth z wykorzystaniem magistrali SPI:

a) SPBTLE-RF (SPI) – moduł komunikacyjny Bluetooth v.4.1.

7) Przykłady obsługi elementów elektronicznych z płytki NUCLEO X-NUCLEO-NFC06A1– sterownik interfejsu NFC:

a) ST25R3916 – moduł komunikacyjny NFC.

8) Przykłady obsługi elementów elektronicznych z płytki X-NUCLEO-PLC01A1– sterownik cyfrowych wejść i wyjść:

a) CLT01-38SQ7 – sterownik 8 cyfrowych wejść,

b) VNI8200XP – sterownik 8 cyfrowych wyjść.

9) Konfiguracja systemy czasu rzeczywistego FreeRTOS z poziomu aplikacji STM32CubeMX.

10) Przykłady użycia struktur systemu FreeRTOS:

a) „Zadania” (Task):

- Tworzenie „Zadania”

- Priorytet „Zadań”

- „Stany” (State) „Zadań”

- usuwanie „Zadań”

- „Dyspozytor” (Scheduler) „Zadań”

b) „Kolejki” (Queue):

- Tworzenie „Kolejki”

- Praktyczne wykorzystanie „Kolejki”

c) „Obsługa przerwań” (Interrupt Management):

- Pojęcie „Semafora” (Semaphor)

- „Zliczanie semaforów” (CountingSemaphores)

- „Kolejkowanie” wraz z „układem zarządzania przerwań”(Interrupt Service Routine)

- „Przerwania zagnieżdżone” (InterruptNesting)

d) Zarządzanie zasobami mikrokontrolera w systemie FreeRTOS:

- „Sekcje krytyczne” (Critical Sections) programu

- Pojęcie „Wzajemnego Wykluczania” (Mutexes)

e) Zarządzanie pamięcią w systemie FreeRTOS:

- „Stos programowy” (Stack) w systemie FreeRTOS

f) Częste problemy w programach z wykorzystaniem systemu FreeRTOS

g) Debugowanie programów z wykorzystaniem systemu FreeRTOS

11) Przykłady obsługi elementów elektronicznych płytki ewaluacyjnej firmy MASTERS z wyświetlaczem 4.3”TFT+RTP Powertip:

a) SDRAM,

b) Wyświetlacz LCD TFT,

12) Omówienie środowiska programistycznego TouchGFX wraz z przykładami realizowanymi na płytce ewaluacyjnej firmy MASTERS z wyświetlaczem 4.3”TFT+RTP Powertip.

Literatura:

1. "Mikrokontrolery STM32 dla początkujących", Aleksander Kurczyk, 2019, ISBN: 978-83-64702-16-7, Wydawnictwo BTC, Legionowo,

2. "STM32: aplikacje i ćwiczenia w języku C z biblioteką HAL", Marek Galewski, 2019, ISBN: 978-83-64702-17-4, Wydawnictwo BTC, Legionowo,

3. "Using the FreeRTOS Real Time Kernel - a Practical Guide - Cortex M3 Edition (FreeRTOS Tutorial Books)", Richard Barry, 2010, ISBN-10: 1446170306, ISBN-13: 978-1446170304

4. "STM32. Aplikacje i ćwiczenia w języku C", Marek Galewski, 2011, Wydawnictwo BTC Legionowo, ISBN 978-83-60233-82-5

5. "Mikrokontrolery STM32 w praktyce", Krzysztof Paprocki, 2009, Legionowo, ISBN: 978-83-60233-52-8

6. "Mikrokontrolery STM32 w sieci Ethernet w przykładach", Marcin Peczarski, 2011, Legionowo, ISBN: 978-83-60233-68-9

Metody i kryteria oceniania:

Metody oceniania:

Egzamin – W1, W2, W3

Projekt zaliczeniowy z laboratorium – U1, U2, U3, U4, K1, K2

Kryteria oceniania:

Wykład: Zaliczenie na ocenę na podstawie pisemnego testu zaliczeniowego obejmującego wiedzę przekazaną na wykładzie. Pytania w formie otwartej (omówienie danego zagadnienia), zamkniętej (wielokrotnego wyboru).

Ocena w zależności od procentowej ilości uzyskanych punktów z testu:

ndst – poniżej 50%

dst – 50%

dst plus – 60%

db – 70%

db plus – 80%

bdb – 90%

Laboratorium:

Zaliczenie na ocenę na podstawie projektu opracowania i oprogramowania systemu wbudowanego. Projekt realizowany w grupach wieloosobowych. Ocena pracy zespołu uzależniona jest od sprawności w realizacji zadania, efektu końcowego zrealizowanego projektu.

Praktyki zawodowe:

„nie dotyczy”

Przedmiot nie jest oferowany w żadnym z aktualnych cykli dydaktycznych.
Opisy przedmiotów w USOS i USOSweb są chronione prawem autorskim.
Właścicielem praw autorskich jest Uniwersytet Mikołaja Kopernika w Toruniu.
ul. Jurija Gagarina 11, 87-100 Toruń tel: +48 56 611-40-10 https://usosweb.umk.pl/ kontakt deklaracja dostępności USOSweb 7.0.3.0-1 (2024-04-02)