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

Mikrokontrolery i układy programowalne

Informacje ogólne

Kod przedmiotu: 103A-IRxxx-ISP-MUP Kod Erasmus / ISCED: (brak danych) / (brak danych)
Nazwa przedmiotu: Mikrokontrolery i układy programowalne
Jednostka: Wydział Elektroniki i Technik Informacyjnych
Grupy: ( Informatyka techniczna )-Inżynieria internetu rzeczy-inż.-EITI
( Przedmioty techniczne )---EITI
Punkty ECTS i inne: 5.00
Język prowadzenia: polski
Jednostka decyzyjna:

103000 - Wydział Elektroniki i Technik Informacyjnych

Kod wydziałowy:

MUP

Numer wersji:

1

Skrócony opis:

Przedmiot wprowadza w zagadnienie zaawansowanych aspektów programowania mikrokontrolerów oraz układów typu FPGA na potrzeby zarządzania modułami wejścia-wyjścia w ramach Internetu Rzeczy. Omówione są tu zaawansowane zagadnienia organizacji i architektury systemów cyfrowych w systemach wykorzystujących rdzenie ARM Cortex oraz układy typu Altera. Wykład poświęcony będzie strukturze sprzętu, klasyfikacji poszczególnych układów oraz ich funkcjonalności (specjalizowane zestawy instrukcji maszynowych). Przedstawione zostaną również układy i moduły wejścia-wyjścia stosowane w zaawansowanych systemach cyfrowych. W przypadku układów FPGA omówione zostaną podstawowe parametry systemów oraz metody tworzenia rdzeni obliczeniowych na matrycach bramek logicznych. Przedstawione zostaną cechy charakterystyczne systemów operacyjnych czasu rzeczywistego. Część laboratoryjna poświęcona będzie tworzeniu projektów dla Internetu Rzeczy z wykorzystaniem zaawansowanych (wbudowanych) modułów wejścia-wyjścia.

Pełny opis:


<Treść wykładu:

  1. Wprowadzenie (4 godz.) – klasyfikacja systemów cyfrowych wykorzystywanych jako platforma dla Internetu Rzeczy (mikrokontrolery, procesory wbudowane, układy System on a Chip, macierze CPLD i FPGA, układy ASIC). Cechy charakterystyczne zaawansowanych systemów wbudowanych. Pobór mocy przez mikrokontroler oraz jego optymalizacja. Tryby pracy systemu cyfrowego i metody zasilania. Zastosowania energooszczędne oraz o wysokiej wydajności obliczeniowej.
  2. Zaawansowane aspekty sprzętu komputerowego (4 godz.) – organizacje i architektury typu RISC, superskalarne, potokowe i równoległe. Przykłady rozwiązań sprzętowych (8-bitowe typu AVR ATTiny vs 32-bitowe - STM32 Cortex z rdzeniami M0+ oraz M3).
  3. Charakterystyka rdzeni Cortex (2 godz.) – rejestry, przestrzeń adresowa, sterownik przerwań, lista rozkazów. Różnice pomiędzy poszczególnymi wersjami. Specjalizowane jednostki wykonawcze (Floating Point Unit).
  4. Macierze bramek logicznych (4 godz.) – cechy charakterystyczne układów, parametry istotne z punktu widzenia projektowania. Specjalizowane bloki funkcjonalne na przykładzie układów Spartan. Układy CPLD. Typowe zastosowania układów FPGA (prototypowanie, implementacja rdzenia logicznego, projektowanie modułów wejścia-wyjścia). Narzędzia i metody projektowania.
  5. Systemy operacyjne czasu rzeczywistego (4 godz.) – zarządzanie mikrokontrolerem z punktu widzenia RTOS. Cechy charakterystyczne RTOS i wymagania niezbędne do zapewnienia pracy w trybie czasu rzeczywistego na przykładzie systemu operacyjnego ISIXRTOSA dla mikrokontrolerów rodziny Cortex M0/M3/M4/M7.
  6. Techniki programowania mikrokontrolerów (2 godz.) – nisko- i wysokopoziomowe języki programowania (asembler, C, microPython), środowiska programistyczne (MPLAB, Keil, CubeMX itp.). Metody debugowania oraz śledzenia wykonywania kodu. Biblioteki programistyczne oraz zestawy ewaluacyjne.
  7. Zasady projektowania wydajnych programów dla systemów Internetu Rzeczy (2 godz) - Związek pomiędzy kodem maszynowym oraz asemblerem i językami wyższego poziomu (C). Czynniki wpływające na wydajność (rozmiar wynikowego kodu maszynowego, czas wykonania).
  8. Moduły sterujące (4 godz.) – liczniki, układy zegarowe, kontrolery przerwań i DMA, układy nadzorujące (Watchdog), interfejsy do debugowania: magistrale UPDI oraz JTAG/SWD. Zdarzenia i ich obsługa (przerwania, wektory przerwań, priorytety). Konfiguracja układów peryferyjnych (bezpośrednio, przez bibliotekę oraz za pomocą Hardware Abstraction Layer).
  9. Wewnętrzne układy analogowe (2 godz.) - komparatory, przetworniki ADC (z poszczególnymi trybami pracy), źródła napięcia referencyjnego. Zaawansowane tryby pracy oraz zastosowania.
  10. Współpraca mikrokontrolera z układami zewnętrznymi (2 godz.) – m.in. moduły bezprzewodowe, typu WiFi, Bluetooth, NFC, ZigBee, sieci komórkowe.


Zakres laboratorium


Moduł laboratoryjny podzielony będzie na dwie części. Pierwsza obejmować będzie naukę konkretnych zastosowań języka C (z uwzględnieniem asemblera) do programowania mikrokontrolera w jednym z wybranych środowisk programistycznych. Poszczególne ćwiczenia dotyczyć będą wykorzystania konkretnych elementów mikrokontrolerów w Internecie Rzeczy z uwzględnieniem oszczędności energii oraz pracy w czasie rzeczywistym. W szczególności omówione zostaną przetworniki A/C i C/A, czujniki itp. Implementacja odbywać się będzie za pomocą płytki do prototypowania i odpowiednich układów zewnętrznych. Tematyka ćwiczeń dotyczyć będzie w szczególności: zapoznania się z listą rozkazów mikrokontrolera oraz funkcjonalności podstawowej biblioteki C, organizacji pamięci, operacji arytmetyczno-logicznych, przerwań, liczników itp. Druga część obejmować będzie projektowanie elementów systemu wbudowanego na matrycy FPGA w języku VHDL. W szczególności pokazane zostaną etapy projektowania rdzenia obliczeniowego na przykładzie ARM Cortex.

Literatura:

Literatura:

  • R. Pełka, „Mikrokontrolery. Architektura, programowanie, zastosowania,” WKŁ, Warszawa, 1999.
  • T. Francuz, „Język C dla mikrokontrolerów AVR. Od podstaw do zaawansowanych aplikacji,” helion, Gliwice, 2011.
  • P. Borkowski, „Mikrokontrolery PIC w praktycznych zastosowaniach,” Helion, Gliwice, 2012.
  • M. Tahir, K. Javed, ARM Microprocessor Systems – Cortex-M Architecture, Programming and Interfacing, CRC Press, Taylor&Francis Group, 2017.
  • M. Fisher, ARM Cortex M4 Cookbook, PACKT Publishing, 2016.
  • K. Paprocki, Mikrokontrolery STM32 w praktyce, Wydawnictwo BTC, 2009.

Oprogramowanie:

  • Kompilator C KEIL.

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

Okres: 2022-02-21 - 2022-09-30
Wybrany podział planu:


powiększ
zobacz plan zajęć
Typ zajęć: Laboratorium, 30 godzin, 30 miejsc więcej informacji
Wykład, 30 godzin, 30 miejsc więcej informacji
Koordynatorzy: (brak danych)
Prowadzący grup: (brak danych)
Lista studentów: (nie masz dostępu)
Zaliczenie: Ocena łączna
Jednostka realizująca:

103400 - Instytut Radioelektroniki i Technik Multimedialnych

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