Laboratorium Techniki Mikroprocesorowej i Systemów Wbudowanych

Technika mikroprocesorowa stanowi podstawę działania znakomitej większości urządzeń elektronicznych zarówno na rynku konsumenckim jak i w przemyśle. Mikroprocesor jest obecnie jednym z najpowszechniej wykorzystywanych sprzętowych bloków funkcjonalnych współczesnych urządzeń. Przedmiot Technika Mikroprocesorowa ma za zadanie przybliżyć studentom mechanizmy działania mikroprocesorów oraz ich współczesne zastosowania. Studenci poznają na nim następujące zagadnienia: 

  • zagadnienia podstawowe, elementy składowe systemu mikroprocesorowego: rejestry, pamięci, magistrale, platformy sprzętowe i podejścia do rozwoju oprogramowania,
  • różnice pomiędzy systemami mikroprocesorowymi ogólnego przeznaczenia oraz wbudowanymi, mikroprocesory i oprogramowanie aplikacyjne i wbudowane, wybrane platformy sprzętowe, narzędzia programowe, różne podejścia do rozwoju i debugowania oprogramowania wbudowanego,
  • sposoby oceny oraz porównywania wydajności obliczeniowej oraz sposoby zwiększania wydajności obliczeniowej w systemach mikroprocesorowych.
  • wyjątki i przerwania w systemach mikroprocesorowych, mechanizmy działania oraz zastosowania przerwań i wyjątków w systemach mikroprocesorowych, oprogramowanie procedur obsługi przerwań
  • moduły bezpośredniego dostępu do pamięci (DMA),
  • przetworniki analogowo-cyfrowe (A/C) i cyfrowo-analogowe (C/A) w systemach mikroprocesorowych,
  • wykorzystanie zasobów sprzętowych mikroprocesora: współczesne podejście do efektywnego tworzenia niskopoziomowego oprogramowania, wykorzystanie zasobów sprzętowych mikroprocesora (rejestrów, stosu) przez programistę, narzędzia do rozwoju oprogramowania,
  • instrukcje DSP oraz SIMD w nowoczesnych mikroprocesorach,
  • rodzaje pamięci stosowanych współcześnie w systemach mikroprocesorowych, budowa i właściwości podstawowych typów pamięci ulotnych i nieulotnych, hierarchia pamięci w systemach komputerowych, mechanizmy działania pamięci cache,
  • jednostki zarządzania pamięcią (MMU) w systemach mikroprocesorowych, pamięć wirtualna, stronicowanie pamięci, ochrona obszarów pamięci, mechanizmy stronicowania i translacji adresów we współczesnych mikroprocesorach, przykładowe mechanizmy translacji adresów w kontekście wielozadaniowych systemów operacyjnych,
  • przetwarzanie potokowe, problemy pojawiające się przy przetwarzaniu potokowym i sposoby ich rozwiązywania,
  • równoległość na poziomie instrukcji, przetwarzanie superskalarne, problemy pojawiające się przy przetwarzaniu superskalarnym oraz sposoby ich rozwiązywania,
  • zależności energetyczne w systemach mikroprocesorowych, sprzętowe i programowe sposoby ograniczania poboru mocy w urządzeniach mikroprocesorowych, w tym wbudowanych.

Systemy wbudowane są to urządzenia najczęściej mikroprocesorowe, przeznaczone i dostosowane na wielu płaszczyznach do realizacji specyficznej funkcjonalności. Systemy wbudowane zyskują obecnie na znaczeniu ze względu na dynamiczny rozwój Internetu Rzeczy (IoT) i programowalnego Internetu. Z jednej strony mamy do czynienia z ogromnym postępem elektroniki, a z drugiej pojawiają się kolejne obszary zastosowań dla rozmaitych urządzeń elektronicznych. Przykłady zastosowań systemów wbudowanych obejmują zróżnicowane klasy urządzeń mikroprocesorowych, począwszy od współczesnego sprzętu gospodarstwa domowego, przez komputerowe układy peryferyjne, elektroniczne moduły w pojazdach, sprzęt sieciowy i telekomunikacyjny, radiowe sieci sensorowe, systemy akwizycji danych, sprzęt medyczny, aż po sterowniki maszyn i robotów.

Przedmiot Systemy Wbudowane zapewnia studentom możliwość poznania zagadnień związanych projektowaniem sprzętu oraz oprogramowania do urządzeń wbudowanych na różnych poziomach. Poczynając od najniższego poziomu, studenci mają możliwość poznać:

  • Sposoby interakcji systemów mikroprocesorowych z różnymi urządzeniami peryferyjnymi: czujnikami i układami wykonawczymi oraz sposoby podłączania i oprogramowania interfejsów komunikacyjnych powszechnie wykorzystywanych w dziedzinie systemów wbudowanych,
  • Zarówno klasyczne jak i nowoczesne podejścia do tworzenia oprogramowania dla urządzeń wbudowanych z mikrokontrolerami i mikroprocesorami aplikacyjnymi, w tym zastosowanie środowisk do wysokopoziomowego generowania konfiguracji sprzętowej oraz kodu źródłowego,
  • Obecnie bardzo istotne w urządzeniach wbudowanych zagadnienia związane z zarządzaniem energią oraz pozyskiwaniem energii z otoczenia (energy harvesting) zarówno na poziomie projektowania sprzętu jak i oprogramowania,
  • Niskopoziomowe podstawy konstrukcji urządzeń pracujących jako węzły radiowych sieci sensorowych, urządzeń akwizycji danych z możliwością ich lokalnego przetwarzania oraz urządzeń dla Internetu rzeczy (Internet of Things).

Laboratorium

Laboratorium Techniki Mikroprocesorowej i Systemów Wbudowanych zlokalizowane jest w sali 3.24 w budynku D-17.
Jest to laboratorium o charakterze dydaktyczno-projektowym, z możliwością prowadzenia w nim również prac badawczych.

Wyposażenie laboratorium umożliwia:

  • zapoznanie się w ramach zajęć dydaktycznych z zagadnieniami dotyczącymi budowy i zasady działania systemów mikroprocesorowych oraz wbudowanych,
  • realizację projektów studenckich, inżynierskich oraz magisterskich prac dyplomowych i prac badawczych z zakresu konstrukcji i oprogramowania systemów wbudowanych.

Bazę sprzętową laboratorium stanowią zestawy rozwojowe oparte na mikrokontrolerach i mikroprocesorach o różnych architekturach: x86, x86-64, AVR oraz wielu wersjach ARM, w tym najnowszych Cortex A53 i A9, Cortex M0+, M3, M4, M7. Laboratorium dysponuje także zestawami uruchomieniowymi z układami typu System on Chip.

Dostępne są również sprzętowe narzędzia rozwojowe (programatory, debugery) oraz nowoczesny sprzęt pomiarowy (oscyloskopy, analizatory stanów logicznych).

Laboratorium dysponuje oprogramowaniem narzędziowym umożliwiającym tworzenie aplikacji dla dostępnych w laboratorium architektur sprzętowych z wykorzystaniem różnych języków, poczynając od niskopoziomowych (asembler, C i C++) aż po wysokopoziomowe języki Java, Python, Lua. Do projektowania układów SoC wykorzystywane jest zintegrowane środowisko Xilinx Vivado.

Szczegóły wyposażenia

W laboratorium Techniki Mikroprocesorowej i Systemów wbudowanych znajdują się:

  • Zestawy uruchomieniowe z 32-bitowymi mikrokontrolerami z rdzeniami ARM Cortex M4 i M7:
    • STM32F429I-DISC1
    • STM Nucleo F411RE
    • STM Nucleo F746ZG



  • Zestawy uruchomieniowe z energooszczędnymi mikrokontrolerami 32-bitowymi z rdzeniami ARM Cortex M0+
    • STM Nucleo L053R8
    • STM32L053 –DISCO
    • STM32L–Discovery



  • Miniaturowe komputery jednopłytowe Raspberry Pi 3 model B



    Raspberry Pi to popularna rodzina jednopłytkowych komputerów edukacyjnych mogących stanowić bazę dla różnych projektów, w tym również do konstruowania urządzeń wbudowanych. W laboratorium dostępna jest wersja 3B z 64-bitowym, 4-rdzeniowym procesorem ARM Cortex A59. Komputery te mogą pracować pod kontrolą różnych wersji systemu operacyjnego Linux, maja także możliwość uruchomienia wersji Windows 10 IoT przeznaczonej dla urządzeń Internetu rzeczy.

  • Zestawy uruchomieniowe ZYBO z układami SoC Xilinx Zynq

    Układy typu System on Chip (SoC) stanowią nowoczesną platformę służącą do konstruowania urządzeń wbudowanych.



    Układ taki jest połączeniem nowoczesnego procesora z logiką programowalną. Laboratorium dysponuje zestawami uruchomieniowymi ZYBO z układami Xilinx Zynq Z-7010, zawierającymi w sobie dwurdzeniowy procesor ARM Cortex A9 oraz układ FPGA rodziny Artix.

  • Arduino



    Jest to bardzo popularna, otwarta platforma sprzętowo-programowa, wykorzystywana jako podstawa do konstruowania różnorodnych urządzeń opartych na mikrokontrolerach jednoukładowych. Ze względu na swoje walory, jest powszechnie wykorzystywana jako pomoc edukacyjna dla osób stawiających pierwsze kroki w programowaniu mikrokontrolerów. W połączeniu z bogactwem różnorodnych modułów rozszerzających, może również służyć do tworzenia złożonych urządzeń i systemów. W laboratorium dostępne jest 10 zestawów kompatybilnych z wersją UNO R3.

  • NodeMCU



    Ciekawą platformą rozwojową, przeznaczona do budowania urządzeń wykorzystujących bezprzewodową komunikację w standardzie Wi-Fi jest NodeMCU. Wyposażony w układ ESP8266 może służyć jako moduł komunikacji bezprzewodowej dla innych urządzeń, ale może także działać jako samodzielne urządzenie programowalne w języku Lua.

Ponad to w ramach współpracy z Laboratorium Internetu Rzeczy (ang. Internet of Things) istnieje możliwość realizacji wspólnych projektów związanych z IoT, wykorzystujących zasoby sprzętowe obu tych laboratoriów (Laboratorium Internetu Rzeczy dysponuje m. in. komputerami Intel Galileo, Curie i Edison oraz zestawem czujników Simplelink SensorTag firmy Texas Instruments wraz z profesjonalnym zestawem narzędzi do rozwoju oprogramowania dla nich).