Ta strona jest wyświetlana w języku polskim przy użyciu automatycznego translatora. Czy chcesz wyświetlić ją w języku angielskim?
Czy tłumaczenie było pomocne?
  1. Home

Oprogramowanie wbudowane

Oprogramowanie wbudowane to wyspecjalizowana aplikacja lub oprogramowanie układowe, które działa w klastrze przetwarzania osadzonym w układzie SoC lub układzie scalonym. Prawie każdy produkt elektroniczny może zawierać jeden lub kilka wbudowanych procesorów, powszechnych w dzisiejszych samochodach, automatyzację podłogową, awionikę, urządzenia medyczne i inne.

Jakie są rodzaje oprogramowania wbudowanego?

Aplikacje wbudowane to wyspecjalizowane programowanie w urządzeniach innych niż komputery PC – jako część mikroprocesora lub jako część innej aplikacji, która znajduje się na chipie – w celu kontrolowania określonych funkcji urządzenia. W przeciwieństwie do aplikacji komputerowych, które mogą być instalowane na różnych systemach komputerowych i modyfikowane w celu zapewnienia różnych poziomów funkcjonalności, oprogramowanie wbudowane ma stałe wymagania sprzętowe i możliwości. Jest tworzony wyłącznie dla konkretnego urządzenia, na którym działa, z ograniczeniami przetwarzania i pamięci związanymi bezpośrednio z jego specyfikacją. W kontekście tej dyskusji oprogramowanie wbudowane obejmuje aplikacje, oprogramowanie układowe, oprogramowanie pośredniczące i systemy operacyjne, które działają na pojedynczym mikroprocesorze lub klastrze mikroprocesorów "osadzonych" w dodatkowej logice.

embedded-software-is803905696-feature-640x360

Charakterystyka i cechy systemów wbudowanych

Mimo że istnieje wiele rodzajów systemów wbudowanych, wszystkie mają te same korzystne cechy i cechy konstrukcyjne.

Wszystkie systemy wbudowane są dostosowane do konkretnych zadań

Wykonują one tę samą zaprogramowaną funkcję przez cały okres użytkowania i nie można ich zmienić.

Wszystkie systemy wbudowane charakteryzują się wysoką wydajnością

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

Zaprojektowany z myślą o stabilności

Wszystkie systemy wbudowane są zaprojektowane tak, aby były wysoce niezawodne i stabilne. Muszą wykonywać swoje zadanie ze stałymi czasami reakcji i funkcjonować przez cały okres użytkowania urządzenia, w którym się znajdują.

Jakie rodzaje oprogramowania wbudowanego oferuje firma Siemens?

Siemens oferuje zarówno oprogramowanie wbudowane dla branży motoryzacyjnej, jak i rozwiązania inżynieryjne dla oprogramowania wbudowanego. Siemens zaprzestał oferowania samodzielnego oprogramowania wbudowanego dla układów SoC wraz z wycofaniem oferty oprogramowania Sokol, Nucleus i Multicore.

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 oprogramowanie wbudowane w motoryzację 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

Powiązane treści

Rozwiązania w zakresie inżynierii oprogramowania

Nasze produkty inżynierii oprogramowania pozwalają na zarządzanie całym cyklem tworzenia oprogramowania.

Oprogramowanie wbudowane dla branży motoryzacyjnej

Oprogramowanie wbudowane w motoryzację w coraz większym stopniu wypiera inżynierię mechaniczną jako wyróżnik w tworzeniu doświadczeń marki.