Siemens oferuje zarówno wbudowane oprogramowanie motoryzacyjne , jak i rozwiązania inżynieryjne oprogramowania wbudowanego . Siemens zaprzestał oferowania samodzielnego oprogramowania wbudowanego dla układów SoC wraz z wycofaniem w listopadzie 2023 r. produktów Nucleus, Nucleus Hypervisor, Nucleus ReadyStart, Sokol Flex Linux, Sokol Omni Linux i Sourcery CodeBench (w tym powiązanych dodatków). Istniejące umowy serwisowe dla tych produktów są nadal honorowane, prosimy o kontakt z Centrum Wsparcia Siemens, aby uzyskać więcej informacji.
Jakie są rodzaje oprogramowania wbudowanego i ich przeznaczenie?
- System operacyjny - System operacyjny (OS), w najbardziej ogólnym znaczeniu, to oprogramowanie, które umożliwia użytkownikowi uruchamianie innych aplikacji 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 oraz 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 oraz przydzielanie pamięci dla aplikacji.
- Oprogramowanie układowe - Oprogramowanie układowe to rodzaj oprogramowania, które jest pisane bezpośrednio dla sprzętu. Działa bez przechodzenia przez interfejsy API, system operacyjny lub sterowniki urządzeń, zapewniając instrukcje i wskazówki potrzebne do komunikowania się z innymi urządzeniami lub wykonywania podstawowych zadań i funkcji zgodnie z przeznaczeniem.
- Oprogramowanie pośredniczące – oprogramowanie pośredniczące to warstwa oprogramowania znajdująca się między aplikacjami a systemami operacyjnymi. Oprogramowanie pośredniczące jest często używane w systemach rozproszonych, gdzie upraszcza tworzenie oprogramowania, zapewniając:
- Ukrywanie zawiłości aplikacji rozproszonych
- Maskowanie heterogeniczności sprzętu, systemów operacyjnych i protokołów
- Zapewnienie jednolitych i wysokopoziomowych interfejsów wykorzystywanych do tworzenia interoperacyjnych, przenośnych aplikacji wielokrotnego użytku.
- Dostarczanie zestawu wspólnych usług, które minimalizują powielanie działań i usprawniają współpracę między aplikacjami
- Aplikacja — użytkownik końcowy opracowuje ostateczną aplikację, która działa w systemie operacyjnym, używa oprogramowania pośredniczącego i oprogramowania układowego lub wchodzi z nimi w interakcję 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 wbudowanym oprogramowaniem są nazywane "systemem wbudowanym". Niektóre przykłady komponentów sprzętowych stosowanych w systemach wbudowanych to obwody zasilania, jednostki centralne, urządzenia pamięci flash, timery i porty komunikacji szeregowej. We wczesnych fazach projektowania urządzenia decyduje się o sprzęcie, który będzie składał się na system wbudowany – i jego konfiguracji 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 wyspecjalizowaną dziedziną wymagającą głębokiej wiedzy na temat 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 chipami komputerowymi ma te komponenty ułożone we wbudowany system oprogramowania. W rezultacie wbudowane systemy oprogramowania są wszechobecne w życiu codziennym i można je znaleźć w technologii konsumenckiej, przemysłowej, motoryzacyjnej, lotniczej, medycznej, handlowej, telekomunikacyjnej i wojskowej.
Typowe przykłady funkcji opartych na oprogramowaniu wbudowanym obejmują:
- Systemy przetwarzania obrazu stosowane w sprzęcie do obrazowania medycznego
- Systemy sterowania fly-by-wire stosowane w samolotach
- Systemy detekcji ruchu w kamerach bezpieczeństwa
- Systemy sterowania ruchem w sygnalizacji świetlnej
- Systemy czasowe i automatyki spotykane w urządzeniach inteligentnego domu
Jakie są rodzaje systemów wbudowanych?
Opierając się na wymaganiach wydajnościowych i funkcjonalnych, wyróżnia się pięć głównych klas systemów wbudowanych:
- Systemy wbudowane działające w czasie rzeczywistym wykonują zadania w sposób deterministyczny i powtarzalny, na co ma wpływ podstawowa architektura i harmonogram systemów operacyjnych, a także wydajność wątków, rozgałęzianie i opóźnienia przerywania. Systemy wbudowane ogólnego przeznaczenia nie zawierają wymagań dotyczących czasu rzeczywistego i mogą zarządzać przerwaniami lub rozgałęzieniami bez zależności od czasu zakończenia. Wyświetlacze graficzne oraz zarządzanie klawiaturą i myszą są dobrymi przykładami systemów ogólnych.
- Autonomiczne systemy wbudowane mogą wykonywać zadania bez systemu hosta lub zewnętrznych zasobów przetwarzania. Mogą wyprowadzać lub odbierać dane z podłączonych urządzeń, ale nie są od nich zależni w celu wykonania swojego zadania.
- Autonomiczne systemy wbudowane mogą wykonywać swoje zadania bez systemu hosta lub zewnętrznych zasobów przetwarzania. Mogą wyprowadzać lub odbierać dane z podłączonych urządzeń, ale nie są od nich zależni w celu wykonania swojego zadania.
- Wbudowane systemy sieciowe są zależne od podłączonej sieci w celu wykonywania przydzielonych zadań.
- Ze względu na złożoność architektury sprzętowej systemu wyróżnia się trzy główne typy systemów wbudowanych: Wbudowane systemy sieciowe są zależne od podłączonej sieci w celu wykonywania przydzielonych zadań.
Jak rynki końcowe wpływają na systemy wbudowane
Wymagania i komponenty systemów wbudowanych będą się różnić w zależności od wymagań rynku docelowego. Do przykładów należą:
- Konsument – w zastosowaniach takich jak dobra konsumpcyjne, takie jak pralki, urządzenia ubieralne i telefony komórkowe, systemy wbudowane podkreślają zmniejszony rozmiar
- System-on-chip, niskie zużycie energii lub zasilanie bateryjne oraz interfejsy graficzne. W tych zastosowaniach cenione są konfigurowalne systemy operacyjne i możliwość wyłączania niedziałających "domen" projektu.
- Sieć — aplikacje, które umożliwiają łączność, komunikację, operacje i zarządzanie siecią przedsiębiorstwa. Zapewnia ścieżkę komunikacji i usługi pomiędzy użytkownikami, procesami, aplikacjami, usługami oraz sieciami zewnętrznymi/Internetem. Wbudowane aplikacje sieciowe koncentrują się na szybkości odpowiedzi, przetwarzaniu pakietów i ścieżkach sprzętowych urządzeń peryferyjnych.
- Przemysł – w przypadku zastosowań takich jak zarządzanie halą produkcyjną, silniki i wiatraki, nacisk kładziony jest na bezpieczną łączność z chmurą i deterministyczne działanie "w czasie rzeczywistym" i może koncentrować się głównie na oprogramowaniu pośredniczącym.
- Branża medyczna, motoryzacyjna i lotnicza – branże te potrzebują systemów o krytycznym znaczeniu dla bezpieczeństwa mieszanego, w których części projektu są odizolowane od siebie, aby zapewnić, że tylko niezbędne dane wchodzą lub wychodzą z systemu (bezpieczeństwo), gwarantując jednocześnie brak szkód dla użytkownika końcowego (bezpieczeństwo). Przykładami są systemy autonomicznej jazdy w samochodach i urządzeniach medycznych. Te systemy wbudowane mogą zawierać mieszankę systemów operacyjnych czasu rzeczywistego (Linux) typu open source (Linux) i deterministycznych systemów operacyjnych czasu rzeczywistego (RTOS) i w dużym stopniu wykorzystywać sprawdzone oprogramowanie pośredniczące.
Dlaczego wbudowane oprogramowanie motoryzacyjne jest inne?
W elektronice samochodowej złożone interakcje w czasie rzeczywistym zachodzą w wielu wbudowanych systemach, z których każdy steruje funkcjami, takimi 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 jest 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 programowymi rozmieszczonymi w wielu ECU połączonych wieloma protokołami sieciowymi. Złożone algorytmy sterowania wdrożone wraz z wbudowanym oprogramowaniem zapewniają właściwy czas funkcji, potrzebne wejścia i wyjścia oraz bezpieczeństwo danych.
Typowe przykłady funkcji opartych na aplikacjach motoryzacyjnych obejmują:
- Funkcje ADAS (Advanced Driver Assist Systems), takie jak adaptacyjny tempomat, automatyczne hamowanie awaryjne, asystent utrzymania pasa ruchu, asystent ruchu drogowego, ostrzeżenia o opuszczeniu pasa ruchu
- Zarządzanie baterią
- Kompensacja momentu obrotowego
- Regulacja 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 chipa i stosu wbudowanego oprogramowania. Jednak wśród producentów samochodów rośnie tendencja do projektowania ECU ze złożonymi układami scalonymi, które zawierają wiele rdzeni obliczeniowych na jednym chipie – co jest określane jako system na chipie (SoC). Te układy SoC mogą obsługiwać wiele abstrakcji ECU w celu konsolidacji sprzętu. Stos oprogramowania dla ECU zazwyczaj obejmuje szereg rozwiązań, od niskopoziomowego oprogramowania układowego po wysokopoziomowe aplikacje wbudowane.
Stos ECU | Opis |
Wbudowana aplikacja | Algorytmy sterowania, przetwarzanie, usługi |
Struktura aplikacji | Ramy bezpieczeństwa i ochrony |
Środowisko pracy | AUTOSAR classic, AUTOSAR Adaptive, Kanały wejść/wyjść |
Wbudowane wirtualizacje | System operacyjny w czasie rzeczywistym, abstrakcje ECU |
Oprogramowanie układowe | Boot-loadery, bezpieczna pamięć masowa, bezpieczne wątki |
Sprzęt | Urządzenia oparte na krzemie, mikrokontrolery, płytki jedno lub wielowarstwowe |