Wykład 1:
Systemy wbudowane

Mariusz Chilmon
m.chilmon@amw.gdynia.pl
uc.vmario.org

System oceniania

Wykład

  • 1 pkt za uczestnictwo w wykładzie
  • dodatkowe punkty za aktywność
  • sumarycznie 5 pkt. + punkty dodatkowe

Laboratorium

  • 1 pkt za implementację zadania podstawowego
  • 1 pkt za uzupełnienie podstawowego arkusza zadań
  • 1 pkt za implementację zadania rozszerzonego
  • 1 pkt za uzupełnienie rozszerzonego arkusza zadań
  • dodatkowe punkty za aktywność
  • sumarycznie 40 pkt. + punkty dodatkowe

Nieobecności

  • nieobecność usprawiedliwiona zmienia proporcjonalnie skalę ocen
  • jeżeli pozwalają na to warunki, nieobecność można odrobić w innej lub w swojej podgrupie
  • w czasie jednych zajęć można wykonać maksymalnie jedno ćwiczenie zaległe

Ocena końcowa

PrógPunktyOcena
0%02,0
30%143,0
45%213,5
60%274,0
75%344,5
90%415,0

Co to jest system wbudowany?

Definicja

System mikroprocesorowy (urządzenie elektroniczne z procesorem, pamięcią i peryferiałami I/O),
niebędący komputerem ogólnego przeznaczenia.

Cechy charakterystyczne

  • zaprojektowany do realizacji określonego zadania
  • wysoka niezawodność
  • ograniczone zasoby (pamięć, moc obliczeniowa, zasilanie)
  • praca w czasie rzeczywistym
  • specyficzne sensory i efektory
  • nieprzerwana praca przez długi czas
  • brak systemu operacyjnego (bare-metal) lub RTOS
  • uproszczony interfejs użytkownika

Przykłady systemów wbudowanych

Apollo Guidance Computer

Kalkulator Unicom 141P (Procesor Intel 4004)

MAN B&W 6S70MC

Karta płatnicza i terminal

Simex SPI-94

Amazfit T-Rex 2

SAMSUNG WW8NK52E0VX

Ford Mustang Mach-E

Oprogramowanie systemów wbudowanych
(firmware)

Cechy oprogramowania

  • poprawność
  • przewidywalność
  • odporność na awarie
  • brak przerw w pracy
  • reżim czasu rzeczywistego

Źródła awarii

  • błędy oprogramowania
  • problemy z zasilaniem
  • wadliwe styki
  • procesor uszkodzony przez meteoryt
  • udary mechaniczne
  • zalanie
  • zakłócenia elektromagnetyczne
  • promieniowanie jonizujące

Co robić? Jak żyć?

  • zapobieganie wyciekom zasobów
  • redundancja
  • autotesty
  • modularna budowa
  • zabezpieczenia sprzętowe
  • pamięć ECC
  • watchdog
  • lockstep

Języki programowania

  • asembler
  • C
  • C++ (lub podzbiór C++)
  • ¯\_(ツ)_/¯
  • Java
  • Python (lub MicroPython)
  • Rust
  • Ada
  • HTML5 + CSS + JavaScript

Rynek pracy

Budowa systemów embedded

Schemat blokowy

Zasilanie

  • sieciowe, bateryjne
  • PoE (Power over Ethernet), energy harvesting
  • kontrolery zasilania
  • pomiar prądu własnego
  • oszczędzanie energii

PCB
(Printed Circuit Board)

  • łączy elektrycznie elementy systemu
  • odprowadza ciepło
  • jest kluczowa dla poprawnej propagacji sygnałów

Obudowa

  • ochrona przed warunkami środowiskowymi
  • ochrona EMC
  • izolacja kryptograficzna
  • odprowadzanie ciepła
  • czujniki otwarcia

Interfejsy użytkownika
(HMI)

  • LED
  • buzzer
  • przycisk
  • pole dotykowe
  • dedykowany wyświetlacz LED, LCD, VFD
  • haptic feedback
  • interfejsy samochodowe

Sensory

  • termometr
  • akcelerometr
  • żyroskop
  • magnetometr
  • czujnik natężenia oświetlenia, koloru
  • czujnik dymu, gazu
  • czujnik odległości
  • czujniki biomedyczne
  • mikrofon
  • MEMS (Microelectromechanical System)

Efektory

  • silnik
  • LED
  • wyświetlacz
  • laser
  • głośnik
  • grzałka
  • kompresor
  • zapalnik
  • przekaźnik
  • SSR (Solid State Relay)

µC

  • mikrokontrolery 8-bitowe
  • mikrokontrolery 32-bitowe
  • DSP (Digital Signal Processor)
  • mikrokontrolery heterogeniczne
  • NDP (Neural Decision Processor)

Układy pomocnicze

  • multipleksery
  • kondycjonery sygnałów
  • sterowniki zasilania
  • zegary
  • pamięci
  • kontrolery interfejsów komunikacyjnych
  • FPGA (Field-Programmable Gate Array)
  • ASIC (Application Specific Integrated Circuit)
    (koparki 🤑)

Trendy

  • automotive
  • Arduino
  • IoT
  • wearable
  • tinyML