Siemens oferuje jedno i drugie oprogramowanie wbudowane w motoryzację a wbudowana inżynieria oprogramowania rozwiązania. Siemens zaprzestał oferowania samodzielnego oprogramowania wbudowanego dla SoC, a w listopadzie 2023 r. wycofano produkty Nucleus, Nucleus Hypervisor, Nucleus ReadyStart, Sokol Flex Linux, Sokol Omni Linux i Sourcery CodeBench (w tym powiązane dodatki). Istniejące umowy wsparcia dla tych produktów są nadal przestrzegane, prosimy o kontakt z Siemens Centrum Wsparcia aby uzyskać więcej informacji.
Jakie są różne rodzaje oprogramowania wbudowanego i ich cele?
- System operacyjny — System operacyjny (OS), w jego najbardziej ogólnym znaczeniu, to oprogramowanie, które pozwala użytkownikowi uruchamiać inne aplikacje na urządzeniu komputerowym. System operacyjny zarządza zasobami sprzętowymi procesora, w tym urządzeniami wejściowymi, takimi jak klawiatura i mysz, urządzeniami wyjściowymi, takimi jak wyświetlacze lub drukarki, połączeniami sieciowymi i urządzeniami pamięci masowej, takimi jak dyski twarde i pamięć. System operacyjny zapewnia również usługi ułatwiające wydajne wykonywanie i zarządzanie programami aplikacyjnymi oraz alokacji pamięci dla nich.
- Firmware — Firmware to rodzaj oprogramowania, które jest napisane bezpośrednio dla elementu sprzętu. Działa bez przeglądania APIs, systemu operacyjnego lub sterowników urządzeń - dostarczając niezbędnych instrukcji i wskazówek, aby komunikować się z innymi urządzeniami lub wykonywać podstawowe zadania i funkcje zgodnie z przeznaczeniem.
- Middleware - Middleware to warstwa oprogramowania położona między aplikacjami a systemami operacyjnymi. Oprogramowanie pośrednie jest często używane w systemach rozproszonych, gdzie upraszcza tworzenie oprogramowania, zapewniając następujące elementy:
- Ukrywanie zawiłości rozproszonych aplikacji
- Maskowanie heterogeniczności sprzętu, systemów operacyjnych i protokołów
- Zapewnienie jednolitych i wysokiego poziomu interfejsów służących do tworzenia interoperacyjnych, wielokrotnego użytku i przenośnych aplikacji.
- Dostarczanie zestawu wspólnych usług, które minimalizują powielanie wysiłków i usprawniają współpracę między aplikacjami
- Aplikacja — użytkownik końcowy opracowuje ostateczną aplikację oprogramowania, która działa na systemie operacyjnym, wykorzystuje lub współdziała z oprogramowaniem pośrednim i oprogramowaniem sprzętowym i jest głównym celem funkcji docelowej systemów wbudowanych. Każda aplikacja końcowa jest unikalna, a systemy operacyjne i oprogramowanie układowe mogą być identyczne w zależności od urządzenia.
Oprogramowanie wbudowane a systemy wbudowane
Komponenty sprzętowe w urządzeniu z oprogramowaniem wbudowanym nazywane są „systemem wbudowanym”. Niektóre przykłady komponentów sprzętowych stosowanych w systemach wbudowanych to obwody zasilania, centralne jednostki przetwarzania, urządzenia pamięci flash, timery i porty komunikacji szeregowej. Podczas wczesnych etapów projektowania urządzenia decyduje się o sprzęcie, który będzie składał się na system wbudowany - i jego konfigurację w urządzeniu. Następnie oprogramowanie wbudowane jest opracowywane od podstaw, aby działało wyłącznie na tym sprzęcie w tej precyzyjnej konfiguracji. To sprawia, że projektowanie oprogramowania wbudowanego jest specjalistyczną dziedziną wymagającą głębokiej znajomości możliwości sprzętowych i programowania komputerowego.
Przykłady wbudowanych funkcji opartych na oprogramowaniu
Prawie każde urządzenie z płytkami drukowanymi i układami komputerowymi ma te komponenty ułożone we wbudowany system oprogramowania. W rezultacie wbudowane systemy oprogramowania są wszechobecne w życiu codziennym i znajdują się w technologii konsumenckiej, przemysłowej, motoryzacyjnej, lotniczej, medycznej, handlowej, telekomunikacyjnej i wojskowej.
Typowe przykłady wbudowanych funkcji opartych na oprogramowaniu obejmują:
- Systemy przetwarzania obrazu znajdujące się w sprzęcie do obrazowania medycznego
- Systemy sterowania typu fly-by-wire znalezione w samolotach
- Systemy wykrywania ruchu w kamerach bezpieczeństwa
- Systemy kontroli ruchu znajdujące się na światłach
- Systemy synchronizacji i automatyzacji znajdujące się w inteligentnych urządzeniach domowych
Jakie są różne typy systemów wbudowanych?
W oparciu o wymagania wydajności i funkcjonalności, istnieje pięć głównych klas systemów wbudowanych:
- Systemy wbudowane w czasie rzeczywistym wykonują zadania w sposób deterministyczny i powtarzalny, na co wpływa podstawowa architektura i harmonogramy systemów operacyjnych, a także wydajność wątków, rozgałęzienia i opóźnienia przerywania. Systemy wbudowane ogólnego przeznaczenia nie zawierają wymagań w czasie rzeczywistym i mogą zarządzać przerwami lub rozgałęzieniami bez zależności od czasu zakończenia. Wyświetlacze graficzne oraz zarządzanie klawiaturą i myszą są dobrymi przykładami ogólnych systemów.
- Samodzielne systemy wbudowane mogą wykonywać zadania bez systemu hosta lub zewnętrznych zasobów przetwarzania. Mogą wysyłać lub odbierać dane z podłączonych urządzeń, ale nie są zależni od nich, aby wykonać swoje zadanie.
- Samodzielne systemy wbudowane mogą wykonywać swoje zadanie bez systemu hosta lub zewnętrznych zasobów przetwarzania. Mogą wysyłać lub odbierać dane z podłączonych urządzeń, ale nie są zależni od nich, aby wykonać swoje zadanie.
- Systemy wbudowane w sieć zależą od podłączonej sieci do wykonywania przypisanych zadań.
- W zależności od złożoności architektury sprzętowej systemu, istnieją trzy główne typy systemów wbudowanych: Systemy wbudowane w sieć zależą od podłączonej sieci do wykonywania przypisanych zadań.
Jak rynki końcowe wpływają na systemy wbudowane
Wymagania systemowe wbudowane i komponenty będą się różnić w zależności od wymagań rynku docelowego. Niektóre przykłady obejmują:
- Konsument - W aplikacjach takich jak towary konsumpcyjne, takie jak pralki, urządzenia do noszenia i telefony komórkowe systemy wbudowane podkreślają zmniejszony rozmiar
- System-on-chip, niskie zużycie energii lub praca na baterii i interfejsy graficzne. W tych aplikacjach cenione są konfigurowalne systemy operacyjne i możliwość wyłączania nieoperacyjnych „domen” projektu.
- Sieć — aplikacje umożliwiające łączność, komunikację, operacje i zarządzanie siecią korporacyjną. Zapewnia ścieżkę komunikacji i usługi między użytkownikami, procesami, aplikacjami, usługami i sieciami zewnętrznami/Internetem. Wbudowane aplikacje sieciowe koncentrują się na szybkości reakcji, przetwarzaniu pakietów i ścieżkach sprzętu peryferyjnego.
- Przemysłowe — w zastosowaniach takich jak zarządzanie podłogą fabryczną, silniki i wiatraki, nacisk kładzie się na bezpieczną łączność w chmurze i deterministyczną pracę w czasie rzeczywistym i może skupić się głównie na oprogramowaniu pośrednim.
- Medycyna, motoryzacyjna i lotnicza — branże te wymagają systemów o znaczeniu krytycznym dla bezpieczeństwa mieszanego, w których części projektu są odizolowane od siebie, aby zapewnić tylko niezbędne dane wprowadzane lub opuszczają system (bezpieczeństwo), jednocześnie gwarantując brak szkody dla użytkownika końcowego (bezpieczeństwo). Przykładami są autonomiczne systemy jazdy w samochodach i urządzeniach medycznych. Te wbudowane systemy mogą zawierać mieszankę open source (Linux) i deterministycznych systemów operacyjnych czasu rzeczywistego (RTOS) i silnie wykorzystują sprawdzone oprogramowanie pośrednie.
Dlaczego oprogramowanie wbudowane w motoryzację różni się?
W elektronice samochodowej złożone interakcje w czasie rzeczywistym zachodzą w wielu wbudowanych systemach, z których każdy kontroluje funkcje, takie jak hamowanie, układ kierowniczy, zawieszenie, układ napędowy itp. Fizyczna obudowa zawierająca każdy wbudowany system jest określana jako elektroniczna jednostka sterująca (ECU). Każdy ECU i jego wbudowane oprogramowanie są częścią złożonej architektury elektrycznej znanej jako system rozproszony.
Komunikując się ze sobą, ECU, które tworzą rozproszony system pojazdu, mogą wykonywać różne funkcje, takie jak automatyczne hamowanie awaryjne, adaptacyjny tempomat, kontrola stabilności, adaptacyjne reflektory i wiele innych. Pojedyncza funkcja może wymagać interakcji między 20 lub więcej wbudowanymi aplikacjami oprogramowania rozłożonymi na licznych jednostkach ECU połączonych wieloma protokołami sieciowymi. Złożone algorytmy sterowania wdrożone wraz z wbudowanym oprogramowaniem zapewniają prawidłowe czasowanie funkcji, potrzebne wejścia i wyjścia oraz bezpieczeństwo danych.
Typowe przykłady funkcji opartych na aplikacjach oprogramowania samochodowego obejmują:
- Funkcje ADAS (Advanced Driver Assist Systems) takie jak adaptacyjny tempomat, automatyczne hamowanie awaryjne, asystent utrzymania pasa ruchu, wspomaganie ruchu, ostrzeżenia o opuszczeniu pasa ruchu
- Zarządzanie baterią
- Kompensacja momentu obrotowego
- Kontrola szybkości wtrysku paliwa
Stos oprogramowania ECU
Elektroniczna jednostka sterująca lub ECU składa się z głównej jednostki obliczeniowej ze sprzętem na poziomie chipu i stosu wbudowanego oprogramowania. Jednak wśród producentów motoryzacyjnych rośnie tendencja do projektowania ECU ze złożonymi układami scalonymi, które zawierają wiele rdzeni obliczeniowych na jednym układzie - co jest określane jako System on a Chip (SoC). Te SoC mogą obsługiwać wiele abstrakcji ECU w celu skonsolidowania sprzętu. Stos oprogramowania dla ECU zazwyczaj zawiera szereg rozwiązań, od niskiego poziomu oprogramowania układowego po aplikacje wbudowane na wysokim poziomie.
Stos ECU | Opis |
Aplikacja wbudowana | Algorytmy sterowania, przetwarzanie, usługi |
Ramy aplikacji | Ramy bezpieczeństwa i bezpieczeństwa |
Środowisko operacyjne | AUTOSAR classic, AUTOSAR Adaptive, Kanały wejścia/wyjścia |
Wbudowane wirtualizacje | System operacyjny w czasie rzeczywistym, abstrakcje ECU |
Firmware | Ładowarki rozruchowe, bezpieczne przechowywanie, bezpieczne gwintowanie |
Sprzęt | Urządzenia na bazie krzemu, mikrokontrolery, płyty jedno- lub wielowarstwowe |