Politechnika Warszawska - Centralny System Uwierzytelniania
Nie jesteś zalogowany | zaloguj się
katalog przedmiotów - pomoc

Systemy wbudowane i sterowniki

Informacje ogólne

Kod przedmiotu: 103A-ELSEW-MSP-SWIS Kod Erasmus / ISCED: (brak danych) / (brak danych)
Nazwa przedmiotu: Systemy wbudowane i sterowniki
Jednostka: Wydział Elektroniki i Technik Informacyjnych
Grupy: ( Przedmioty zaawansowane obowiązkowe )-Systemy elektroniczne i wbudowane-mgr.-EITI
Punkty ECTS i inne: 4.00
Język prowadzenia: polski
Jednostka decyzyjna:

103000 - Wydział Elektroniki i Technik Informacyjnych

Kod wydziałowy:

SWIS

Numer wersji:

1

Skrócony opis:

Celem przedmiotu jest dostarczenie wiedzy i umiejętności umożliwiających efektywne i bezpieczne wykorzystanie mechanizmów zapewniajacych komunikację między częscią procesorową systemu wbudowanego, a urządzeniami peryferyjnymi. Omawiane zagadnienia obejmują tworzenie sterowników działających w przestrzeni jądra oraz współpracujących z nim aplikacji. Oprócz tego studenci będą mieli możliwość zapoznania się z realizacją prostych specjalizowanych układów peryferyjnych z wykorzystaniem mikrokontrolerów i logiki programowalnej (między innymi w układach SoC). Praktyczna weryfikacja zdobytych umiejętności będzie możliwa podczas zintegrowanych zajęć projektowo-laboratoryjnych.

Pełny opis:

We współczesnych systemach wbudowanych konieczność obsługi specjalizowanego sprzętu łączy się z wykorzystaniem standardowych systemów operacyjnych, pozwalających na realizację złożonego oprogramowania sterującego i przetwarzającego dane. Dlatego projektowanie i realizacja takich systemów wymaga zrozumienia działania interfejsów używanych do komunikacji z urządzeniami peryferyjnymi oraz obsługujących je mechanizmów dostarczanych przez system operacyjny. Ukończenie kursu powinno zapewnić studentom teoretyczną wiedzę i praktyczne umiejętności, pozwalające tworzyć, uruchamiać i testować sterowniki urządzeń działające w przestrzeni jądra oraz współpracujące z nimi aplikacje. Przedmiot uwzględnia zagadnienia związane z bezpieczeństwem i wydajnością stosowanych rozwiązań. Praktyczne aspekty przedmiotu realizowane są na zintegrowanych zajęciach projektowo-laboratoryjnych, na których studenci będą mogli najpierw oswoić się z poznawaną dziedziną, analizując i testując gotowe rozwiązania, następnie rozpocząć samodzielne ich modyfikowanie, a w końcu zaprojektować i zrealizować projekt (w miarę możliwości zespołowy) obejmujący stworzenie urządzenia wraz z jego sterownikiem i obsługującą je aplikacją. Urządzenie może zostać zrealizowane jako model symulacyjny, jako system mikrokontrolerowy, lub jako blok IP realizowany w logice programowalnej systemu SoC (z wykorzystaniem języków HDL i/lub syntezy wysokopoziomowej HLS). Podstawowym systemem operacyjnym omawianym na wykładach i wykorzystywanym na zajęciach projektowo-laboratoryjnych jest Linux. Istnieje jednak możliwość realizacji projektu związanego z innym systemem (np. Windows, Android, Zephyr itp.)


WYKŁADY:

  1. Mechanizmy współczesnych systemów operacyjnych wspomagające wydajną i bezpieczną komunikację z urządzeniami peryferyjnymi.
  2. Interfejsy sprzętowe używane do komunikacji z urządzeniami peryferyjnymi.
    1. Proste interfejsy - I2C, SPI, UART
    2. Interfejsy o złożonej obsłudze (np. Bluetooth, USB).
    3. Interfejsy o dużej wydajności - AXI, PCIe itp.
  3. Metody tworzenia sterowników urządzeń
    1. Metody komunikacji sterownika z aplikacjami
    2. Funkcje związane z obsługą interfejsów komunikacyjnych (w tym obsługa przerwań)
    3. Zarządzanie pamięcią i komunikacja z pamięcią (DMA)
    4. Aspekty związane z pracą w czasie rzeczywistym
  4. Realizacja urządzeń peryferyjnych współpracujących ze sterownikami
    1. Układy specjalizowane
    2. Realizacja z wykorzystaniem mikrokontrolerów
    3. Realizacja w postaci modelu symulacyjnego na potrzeby testów
    4. Realizacja w logice programowalnej z wykorzystaniem języków opisu sprzętu (Verilog/VHDL) a także syntezy wysokopoziomowej (HLS).
      1. Techniki uruchamiania i testowania urządzeń i sterowników w systemach SoC
  5. Realizacja aplikacji współpracujących ze sprzętem
    1. Techniki właściwego wykorzystania interfejsu sterownika
    2. Możliwości bezpośredniej współpracy ze sprzętem - zalety, wady i ograniczenia
  6. Realizacja kompletnego systemu
    1. Podział funkcji między sprzęt, sterowniki działające w przestrzeni jądra i aplikacje działające w przestrzeni użytkownika
    2. Wykorzystanie możliwości przenoszenia funkcji między sprzętem, sterownikami i aplikacjami w celu zapewnienia wydajnego uruchamiania.
    3. Zagadnienia związane z niezawodnością i energooszczędnością systemu



ZINTEGROWANE ZAJĘCIA PROJEKTOWO-LABORATORYJNE:


W ramach zajęć projektowo-laboratoryjnych studenci będą mieli możliwość realizacji następujących zadań:

  1. Poznanie i testowanie gotowych sterowników urządzeń wirtualnych
  2. Poznanie i testowanie sterowników urządzeń zrealizowanych jako model w symulatorze (np. w QEMU).
  3. Poznanie i testowanie sterowników urządzeń podłączonych przez interfejsy SPI, I2C itp.
  4. Poznanie i testowanie sterowników urządzeń zrealizowanych w logice programowalnej w układzie SoC i podłączonych do magistrali procesora.

Ponadto w ramach zadań projektowo-laboratoryjnych studenci będą zobowiązani do zrealizowania kompletnego systemu (zalecana jest praca zespołowa), wykorzystującego samodzielnie zaproponowane urządzenie peryferyjne (w postaci modelu dla symulatora, w postaci urządzenia mikrokontrolerowego, lub w postaci systemu realizowanego w logice programowalnej), opracowany do niego sterownik urządzenia i współpracujące z nim aplikacje użytkownika.

Literatura:

  1. J. Madieu, Linux Device Drivers Development, Packt Publishing, Limited 2017, ISBN:9781782174752
  2. R. Giometti, Linux Device Driver Development Cookbook : Develop Custom Drivers for Your Embedded Linux Applications, Packt Publishing, Limited 2019, ISBN:9781838555863
  3. J. Kong, FreeBSD Device Drivers : A Guide for the Intrepid, No Starch Press, Incorporated 2012, ISBN: 9781593272043, 9781593274368
  4. D. Koch, F. Hannig, FPGAs for Software Programmers,Springer International Publishing AG 2016, ISBN: 9783319264066, 9783319264080
  5. Emulator QEMU
  6. Środowiska Buildroot, Yocto project, OpenWRT i Petalinux do tworzenia obrazu systemu Linux
  7. Środowiska Vitis lub Vivado oraz Quartus do tworzenia firmware’u i oprogramowania dla FPGA i systemów SoC

Zajęcia w cyklu "rok akademicki 2022/2023 - sem. zimowy" (jeszcze nie rozpoczęty)

Okres: 2022-10-01 - 2023-02-19
Wybrany podział planu:


powiększ
zobacz plan zajęć
Typ zajęć: Laboratorium, 15 godzin, 30 miejsc więcej informacji
Projekt, 15 godzin, 30 miejsc więcej informacji
Wykład, 30 godzin, 30 miejsc więcej informacji
Koordynatorzy: Wojciech Zabołotny
Prowadzący grup: Wojciech Zabołotny
Lista studentów: (nie masz dostępu)
Zaliczenie: Egzamin
Jednostka realizująca:

103300 - Instytut Systemów Elektronicznych

Opisy przedmiotów w USOS i USOSweb są chronione prawem autorskim.
Właścicielem praw autorskich jest Politechnika Warszawska.