1. Home

Oprogramowanie wbudowane

Oprogramowanie wbudowane to wyspecjalizowana aplikacja lub oprogramowanie sprzętowe, które działa w klastrze przetwarzania osadzonym w układzie typu system-on-chip (SoC) lub układzie scalonym. Niemal każdy produkt elektroniczny może zawierać jeden lub kilka wbudowanych procesorów, powszechnie stosowanych w nowoczesnych modelach samochodów, rozwiązaniach do automatyzacji produkcji, systemach awioniki, wyrobach medycznych itp.

Jakie są rodzaje oprogramowania wbudowanego?

Aplikacje oprogramowania wbudowanego to specjalistyczne programy umieszczane w urządzeniach innych niż komputery, stanowiące część mikroprocesora lub innej aplikacji w układzie scalonym, w celu kontrolowania określonych funkcji urządzeń. W przeciwieństwie do aplikacji komputerowych, które mogą być instalowane w różnych systemach komputerowych i modyfikowane w celu uzyskania różnych poziomów funkcjonalności, oprogramowanie wbudowane ma stałe wymagania sprzętowe i możliwości. Jest tworzone wyłącznie dla konkretnego urządzenia, z ograniczeniami przetwarzania i pamięci bezpośrednio powiązanymi ze specyfikacją produktu. W kontekście tego omówienia oprogramowanie wbudowane obejmuje aplikacje, oprogramowanie sprzętowe, oprogramowanie pośredniczące i systemy operacyjne, które działają na pojedynczym mikroprocesorze lub klastrze mikroprocesorów „osadzonych” w dodatkowej logice.

Powiązane produkty: Capital Embedded AR Classic | Capital Embedded Integrator AR Classic | Capital Embedded Virtualizer AR Classic

embedded-software-is803905696-feature-640x360

Charakterystyka i cechy systemów wbudowanych

Chociaż istnieje wiele rodzajów systemów wbudowanych, łączą je pewne funkcje i cechy strukturalne.

Wszystkie systemy wbudowane są specyficzne dla danego zadania

Wykonują tę samą, wstępnie zaprogramowaną funkcję przez cały okres użytkowania i nie można ich modyfikować.

Wszystkie systemy wbudowane charakteryzują się wysoką wydajnością działania

Wymagania dotyczące zasobów oprogramowania wbudowanego nigdy nie powinny przekraczać możliwości sprzętu, na którym to oprogramowanie jest zainstalowane, a specyfikacje sprzętu nigdy nie powinny przekraczać minimalnych wymagań oprogramowania wbudowanego.

Zaprojektowane z myślą o stabilnym działaniu

Wszystkie systemy wbudowane są zaprojektowane z myślą o wysokiej niezawodności i stabilności. Muszą wykonywać swoje funkcje ze stałym czasem reakcji i zachować sprawność przez cały okres eksploatacji urządzenia.

Jakie rodzaje oprogramowania wbudowanego oferuje firma Siemens?

Firma Siemens oferuje zarówno oprogramowanie wbudowane dla motoryzacji , jak i rozwiązania inżynieryjne w zakresie oprogramowania wbudowanego . Zaprzestała natomiast oferowania samodzielnego oprogramowania wbudowanego dla układów typu SoC wraz z wycofaniem w listopadzie 2023 r. produktów Nucleus, Nucleus Hypervisor, Nucleus ReadyStart, Sokol Flex Linux, Sokol Omni Linux i Sourcery CodeBench (łącznie z powiązanymi dodatkami). Obowiązujące umowy serwisowe dotyczące tych produktów są nadal honorowane; aby uzyskać więcej informacji, należy skontaktować się z centrum wsparcia firmy Siemens.

Jakie są rodzaje oprogramowania wbudowanego i do czego służą?

  • System operacyjny – szeroko pojęty system operacyjny (OS), 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 efektywne wykonywanie aplikacji, zarządzanie nimi oraz przydzielanie do nich zasobów pamięci.
  • Oprogramowanie sprzętowe – to rodzaj oprogramowania, które jest tworzone bezpośrednio dla sprzętu. Nie wymaga interfejsów API, systemu operacyjnego ani sterowników urządzenia i zapewnia instrukcje oraz wytyczne niezbędne do obsługi komunikacji z innymi urządzeniami lub wykonywania podstawowych zadań i funkcji.
  • Oprogramowanie pośredniczące – to warstwa oprogramowania znajdująca się między aplikacjami i systemami operacyjnymi. Oprogramowanie pośredniczące jest często używane w systemach rozproszonych, gdzie upraszcza rozwój oprogramowania, zapewniając następujące korzyści:

    • Ukrywanie zawiłości aplikacji rozproszonych
    • Maskowanie niejednorodności sprzętu, systemów operacyjnych i protokołów
    • Zapewnienie jednolitych interfejsów wysokiego poziomu służących do tworzenia interoperacyjnych, przenośnych aplikacji wielokrotnego użytku
    • Realizacja zestawu usług wspólnych w celu zminimalizowania powielanych działań i usprawnienia współpracy między aplikacjami
  • Aplikacja – użytkownik końcowy opracowuje aplikację końcową, która działa w systemie operacyjnym, używa oprogramowania pośredniczącego i sprzętowego lub współdziała z nimi oraz jest głównym elementem docelowej funkcji systemu wbudowanego. Każda aplikacja końcowa jest niepowtarzalna, natomiast systemy operacyjne i oprogramowanie sprzętowe na różnych urządzeniach mogą być identyczne.

Oprogramowanie wbudowane a systemy wbudowane

Komponenty sprzętowe w urządzeniu, na którym działa oprogramowanie wbudowane, są nazywane „systemem wbudowanym”. Do przykładów takich komponentów sprzętowych należą obwody zasilania, procesory, urządzenia pamięci flash, timery i porty łączności szeregowej. Decyzje dotyczące tych komponentów i ich konfiguracji podejmuje się na wczesnych fazach projektowania urządzenia. Następnie tworzy się od podstaw oprogramowanie wbudowane pod kątem działania w określonym systemie wbudowanym i danej jego konfiguracji. W związku z tym projektowanie oprogramowania wbudowanego jest specjalistyczną dziedziną wymagającą dogłębnej wiedzy na temat możliwości sprzętu i programowania komputerowego.

Przykłady funkcji opartych na oprogramowaniu wbudowanym

W niemal każdym urządzeniu zawierającym płytki drukowane i układy scalone te komponenty stanowią element systemu oprogramowania wbudowanego. W rezultacie systemy oprogramowania wbudowanego są wszechobecne w życiu codziennym i powszechnie stosowane w technologiach niewykorzystywanych przez branżę produktów konsumpcyjnych, motoryzacyjną, lotniczą i kosmiczną, wyrobów medycznych, handlową, telekomunikacyjną i wojskową.

Do typowych przykładów funkcji opartych na oprogramowaniu wbudowanym należą:

  • Systemy przetwarzania obrazu stosowane w urządzeniach do obrazowania medycznego
  • Systemy sterowania fly-by-wire stosowane w statkach powietrznych
  • Systemy detekcji ruchu w kamerach monitorowania bezpieczeństwa
  • Systemy sterowania ruchem w sygnalizacji świetlnej
  • Systemy pomiaru czasu i automatyki spotykane w urządzeniach rozwiązań inteligentnego domu

Jakie są rodzaje systemów wbudowanych?

Na podstawie wymagań dotyczących wydajności i funkcjonalności można wyróżnić pięć głównych klas systemów wbudowanych:

  • Systemy wbudowane czasu rzeczywistego wykonują zadania w sposób deterministyczny i powtarzalny, na co wpływa podstawowa architektura i harmonogram systemów operacyjnych, a także wykonywanie wątków, rozgałęzienia i opóźnienia wynikające z zakłóceń. Systemy wbudowane ogólnego przeznaczenia nie zawierają wymagań dotyczących czasu rzeczywistego i mogą zarządzać zakłóceniami lub rozgałęzieniami bez zależności od czasu ukończenia. Przykładami takich systemów są wyświetlacze graficzne oraz funkcje zarządzania klawiaturą i myszą.
  • Autonomiczne systemy wbudowane mogą wykonywać zadania bez systemu hosta ani zewnętrznych zasobów przetwarzania. Mogą wyprowadzać lub odbierać dane z podłączonych urządzeń, ale nie są od nich uzależnione pod względem wykonywania zadań.
  • 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 uzależnione pod względem wykonywania zadań.
  • Sieciowe systemy wbudowane są uzależnione od połączenia z siecią pod względem wykonywania wyznaczonych zadań.
  • Ze względu na złożoność architektury sprzętowej systemu wyróżnia się trzy główne typy systemów wbudowanych: Sieciowe systemy wbudowane są uzależnione od połączenia z siecią pod względem wykonywania wyznaczonych zadań.

Jak rynki końcowe wpływają na systemy wbudowane

Wymagania i komponenty systemu wbudowanego różnią się w zależności od wymagań rynku docelowego. Do przykładów należą:

  • Produkty konsumpcyjne – w zastosowaniach takich jak produkty konsumpcyjne, np. pralki, urządzenia noszone czy telefony komórkowe, najważniejszym kryterium jest niewielki rozmiar systemu wbudowanego.
  • Układy typu system-on-chip, niskie zużycie energii lub zasilanie bateryjne i interfejsy graficzne. W zastosowaniach tego typu istotna jest możliwość konfiguracji systemu operacyjnego i wyłączania niedziałających „domen” projektu.
  • Sieciowe – aplikacje, które umożliwiają łączność, komunikację, działania i zarządzanie siecią przedsiębiorstwa. Zapewniają ścieżkę komunikacji i usługi między użytkownikami, procesami, aplikacjami, usługami oraz sieciami zewnętrznymi / Internetem. Sieciowe aplikacje wbudowane są ukierunkowane na szybkość odpowiedzi, przetwarzanie pakietów i obsługę ścieżek urządzeń peryferyjnych.
  • Przemysłowe – w przypadku zastosowań przemysłowych, takich jak zarządzanie halą produkcyjną, silniki i wiatraki, głównym kryterium jest łączność z chmurą i deterministyczne działanie w czasie rzeczywistym, z możliwością ukierunkowania na oprogramowanie pośredniczące.
  • Medycyna, motoryzacja i lotnictwo – te branże wymagają mieszanych systemów o kluczowym znaczeniu dla bezpieczeństwa, których poszczególne części są odizolowane od siebie, aby zapewnić, że tylko niezbędne dane będą wchodzić do systemu lub opuszczać go (funkcje zabezpieczeń), gwarantując jednocześnie bezpieczeństwo użytkownika końcowego. Przykładem mogą być systemy autonomicznej jazdy w samochodach oraz wyroby medyczne. Te wbudowane systemy mogą stanowić połączenie otwartych systemów operacyjnych (Linux) i deterministycznych systemów operacyjnych czasu rzeczywistego (RTOS, ang. real-time operating system) oraz polegać w znacznym stopniu na sprawdzonym oprogramowaniu pośredniczącym.

Co wyróżnia oprogramowanie wbudowane stosowane w branży motoryzacyjnej?

W elektronice samochodowej w wielu systemach wbudowanych, z których każdy steruje funkcjami, takimi jak hamowanie, kierowanie, zawieszenie, układ napędowy itp., zachodzą złożone interakcje w czasie rzeczywistym, Fizyczna obudowa każdego systemu wbudowanego jest określana mianem elektronicznej jednostki sterującej (ECU). Każda jednostka ECU i jej oprogramowanie wbudowane stanowi część złożonej architektury elektrycznej określanej mianem systemu rozproszonego.

Komunikując się ze sobą, jednostki ECU składające się na system rozproszony w pojeździe mogą obsługiwać różne funkcje, takie jak automatyczne hamowanie awaryjne, adaptacyjny tempomat, kontrola stabilności, adaptacyjne reflektory i wiele innych. Jedna funkcja może wymagać interakcji między 20 aplikacjami oprogramowania wbudowanego, które są rozsiane między różnymi ECU i połączone różnymi protokołami sieciowymi. Złożone algorytmy sterowania wdrożone wraz z wbudowanym oprogramowaniem zapewniają prawidłową synchronizację funkcji, niezbędne wejścia i wyjścia oraz bezpieczeństwo danych.

Do typowych przykładów funkcji motoryzacyjnych opartych na oprogramowaniu wbudowanym należą:

  • Funkcje systemu ADAS (zaawansowanego systemu wspomagania kierowcy, ang. Advanced Driver Assist Systems), takie jak adaptacyjny tempomat, automatyczne hamowanie awaryjne, asystent utrzymania pasa ruchu, asystent ruchu drogowego, ostrzeżenia o niezamierzonej zmianie pasa ruchu
  • Zarządzanie akumulatorem
  • Kompensacja momentu obrotowego
  • Regulacja szybkości wtrysku paliwa

Stos oprogramowania jednostki ECU

Elektroniczna jednostka sterująca (ECU) składa się z głównej jednostki komputerowej ze sprzętem na poziomie układu scalonego i stosu wbudowanego oprogramowania. Można jednak zaobserwować nasilającą się tendencję wśród producentów samochodów do projektowania jednostek ECU ze złożonymi układami scalonymi, które zawierają wiele rdzeni obliczeniowych na jednym chipie, czyli układami typu system-on-chip (SoC). Układy SoC mogą obsługiwać wiele abstrakcji ECU, co umożliwia konsolidację sprzętu. Stos oprogramowania jednostki ECU zazwyczaj obejmuje szereg rozwiązań, od oprogramowania sprzętowego niskiego poziomu po aplikacje oprogramowania wbudowanego wysokiego poziomu.

Stos jednostki ECU

Opis

Aplikacja oprogramowania wbudowanego

Algorytmy sterowania, przetwarzanie, usługi

Ramy strukturalne aplikacji

Ramy strukturalne zabezpieczeń i bezpieczeństwa

Środowisko operacyjne

AUTOSAR classic, AUTOSAR Adaptive, kanały wejść/wyjść

Wirtualizacje wbudowane

System operacyjny czasu rzeczywistego, abstrakcje ECU

Oprogramowanie sprzętowe

Programy rozruchowe, bezpieczna pamięć masowa, bezpieczne wątki

Sprzęt

Urządzenia krzemowe, mikrokontrolery, płytki jedno lub wielowarstwowe

Zasoby związane z oprogramowaniem wbudowanym

Dowiedz się więcej

Projektowanie oprogramowania wbudowanego i sieci

Dowiedz się, jak szybko i efektywnie opracowywać innowacyjne, bezpieczne oprogramowanie obsługujące kluczowe funkcje produktu.