Siemens erbjuder båda inbäddad programvara för fordon och inbyggd mjukvaruteknik lösningar. Siemens har slutat erbjuda fristående inbäddad programvara för SoCs med avvecklingen i november 2023 av Nucleus, Nucleus Hypervisor, Nucleus ReadyStart, Sokol Flex Linux, Sokol Omni Linux och Sourcery CodeBench-produkterna (inklusive tillhörande tillägg). Befintliga supportavtal för dessa produkter håller fortfarande på att respekteras, vänligen kontakta Siemens Supportcenter för mer information.
Vilka är de olika typerna av inbäddad programvara och deras syften?
- Operativsystem - Ett operativsystem (OS), i sin mest allmänna mening, är programvara som tillåter en användare att köra andra applikationer på en datorenhet. Operativsystemet hanterar processorns hårdvaruresurser, inklusive inmatningsenheter som tangentbord och mus, utmatningsenheter som skärmar eller skrivare, nätverksanslutningar och lagringsenheter som hårddiskar och minne. OS tillhandahåller också tjänster för att underlätta effektiv exekvering och hantering av, och minnesallokeringar för, programvaruprogram.
- Firmware - Firmware är en typ av programvara som skrivs direkt för en hårdvara. Den fungerar utan att gå igenom API:er, operativsystemet eller enhetsdrivrutiner - ger nödvändiga instruktioner och vägledning för att kommunicera med andra enheter eller utföra grundläggande uppgifter och funktioner som avsett.
- Middleware - Middleware är ett mjukvarulager som ligger mellan applikationer och operativsystem. Middleware används ofta i distribuerade system där det förenklar mjukvaruutveckling genom att tillhandahålla följande:
- Dölja invecklingarna i distribuerade applikationer
- Maskerar heterogeniteten hos hårdvara, operativsystem och protokoll
- Tillhandahålla enhetliga gränssnitt på hög nivå som används för att göra applikationer driftskompatibla, återanvändbara och bärbara.
- Leverera en uppsättning gemensamma tjänster som minimerar dubbelarbete och förbättrar samarbetet mellan applikationer
- Applikation - Slutanvändaren utvecklar den slutliga programvaran som körs på operativsystemet, använder eller interagerar med mellanvaran och firmware, och är det primära fokuset för de inbyggda systemens målfunktion. Varje slutapplikation är unik, medan operativsystem och firmware kan vara identiska från enhet till enhet.
Inbäddad programvara vs inbyggda system
Maskinvarukomponenterna i en enhet som kör inbäddad programvara kallas ett ”inbäddat system”. Några exempel på hårdvarukomponenter som används i inbyggda system är strömförsörjningskretsar, centrala processorenheter, flashminnesenheter, timers och seriella kommunikationsportar. Under en enhets tidiga designfaser bestäms hårdvaran som kommer att utgöra det inbyggda systemet - och dess konfiguration inom enheten. Sedan utvecklas inbäddad programvara från grunden för att köras uteslutande på den hårdvaran i den exakta konfigurationen. Detta gör inbäddad mjukvarudesign till ett specialiserat område som kräver djup kunskap om hårdvarufunktioner och datorprogrammering.
Exempel på inbyggda programvarubaserade funktioner
Nästan varje enhet med kretskort och datorchips har dessa komponenter arrangerade i ett inbäddat mjukvarusystem. Som ett resultat är inbyggda mjukvarusystem allestädes närvarande i vardagen och finns i konsument-, industri-, fordons-, flyg-, medicinsk, kommersiell, telekom- och militärteknik.
Vanliga exempel på inbäddade programvarubaserade funktioner inkluderar:
- Bildbehandlingssystem som finns i medicinsk bildutrustning
- Fly-by-wire-styrsystem som finns i flygplan
- Rörelsedetekteringssystem i säkerhetskameror
- Trafikkontrollsystem som finns i trafikljus
- Timing- och automationssystem som finns i smarta hemenheter
Vilka är de olika typerna av inbyggda system?
Baserat på prestanda och funktionskrav finns det fem huvudklasser av inbyggda system:
- Inbyggda system i realtid utför uppgifter på ett deterministiskt och repeterbart sätt, vilket påverkas av operativsystemens underliggande arkitektur och schemaläggning, liksom prestanda för trådar, förgrening och avbrottsfördröjning. Inbyggda system för allmänna ändamål innehåller inga realtidskrav och kan hantera avbrott eller förgrening utan beroende av en slutförandetid. Grafikskärmar och hantering av tangentbord och mus är bra exempel på allmänna system.
- Fristående inbyggda system kan utföra uppgifter utan värdsystem eller externa bearbetningsresurser. De kan mata ut eller ta emot data från anslutna enheter men är inte beroende av dem för att slutföra sin uppgift.
- Fristående inbyggda system kan slutföra sin uppgift utan värdsystem eller externa bearbetningsresurser. De kan mata ut eller ta emot data från anslutna enheter men är inte beroende av dem för att slutföra sin uppgift.
- Nätverksanslutna inbyggda system är beroende av ett anslutet nätverk för att utföra tilldelade uppgifter.
- Baserat på komplexiteten i systemets hårdvaruarkitektur finns det tre huvudtyper av inbyggda system: Nätverksanslutna inbyggda system är beroende av ett anslutet nätverk för att utföra tilldelade uppgifter.
Hur slutmarknader påverkar inbyggda system
Inbyggda systemkrav och komponenter kommer att variera beroende på målmarknadens krav. Några exempel är:
- Konsument - I applikationer som konsumtionsvaror som tvättmaskiner, bärbara enheter och mobiltelefoner betonar inbyggda system den minskade storleken på
- System-on-chip, låg strömförbrukning eller batteridrift och grafikgränssnitt. I dessa applikationer värderas konfigurerbara operativsystem och möjligheten att stänga av icke-operativa ”domäner” av designen.
- Nätverk — Program som möjliggör anslutning, kommunikation, drift och hantering av ett företagsnätverk. Det tillhandahåller kommunikationsvägen och tjänsterna mellan användare, processer, applikationer, tjänster och externa nätverk/internet. Inbäddade nätverksapplikationer fokuserar på svarshastighet, paketbearbetning och perifera hårdvaruvägar.
- Industriell — För tillämpningar som fabrikshantering, motorer och väderkvarnar tenderar tonvikten att säkra molnanslutning och deterministisk ”realtidsdrift” och kan fokusera starkt på mellanprogramvara.
- Medicin, fordon och flyg - Dessa industrier behöver blandade säkerhetskritiska system, där delar av konstruktionen är isolerade från varandra för att säkerställa att endast nödvändiga data kommer in eller lämnar systemet (säkerhet) samtidigt som ingen skada för slutanvändaren (säkerhet) garanteras. Exempel är autonoma körsystem i bilar och medicintekniska produkter. Dessa inbyggda system kan innehålla en blandning av öppen källkod (Linux) och deterministiska realtidsoperativsystem (RTOS) och använder starkt beprövad mellanprogramvara.
Varför är inbäddad programvara för fordon annorlunda?
Inom fordonselektronik sker komplexa realtidsinteraktioner över flera inbyggda system som var och en styr funktioner som bromsning, styrning, fjädring, drivlina etc. Det fysiska höljet som innehåller varje inbyggt system kallas en elektronisk styrenhet (ECU). Varje ECU och dess inbäddade programvara är en del av en komplex elektrisk arkitektur som kallas ett distribuerat system.
Genom att kommunicera med varandra kan ECU: erna som utgör ett fordons distribuerade system utföra en mängd olika funktioner, såsom automatisk nödbromsning, adaptiv farthållare, stabilitetskontroll, adaptiva strålkastare och mycket mer. En enda funktion kan behöva interaktioner över 20 eller fler inbäddade programvaruapplikationer spridda över många ECU anslutna med flera nätverksprotokoll. Komplexa kontrollalgoritmer som används med den inbäddade programvaran säkerställer korrekt timing av funktioner, nödvändiga ingångar och utgångar och datasäkerhet.
Vanliga exempel på applikationsbaserade funktioner för fordonsprogramvara inkluderar:
- ADAS (Advanced Driver Assist Systems) funktioner som adaptiv farthållare, automatisk nödbromsning, körfältsassistans, trafikassistans, varningar vid körfält
- Batterihantering
- Momentkompensation
- Kontroll av bränsleinsprutningshastighet
ECU-programvarustack
Den elektroniska styrenheten eller ECU består av en huvuddatorenhet med hårdvara på chip-nivå och en bunt inbäddad programvara. Det finns dock en ökande trend bland fordonstillverkare att designa ECU med komplexa integrerade kretsar som innehåller flera datorkärnor på ett enda chip - vad som kallas System on a Chip (SoC). Dessa SoC kan vara värd för en mängd ECU-abstraktioner för att konsolidera hårdvara. Programvarustacken för en ECU innehåller vanligtvis en rad lösningar, från firmware på låg nivå till inbäddade programvaruapplikationer på hög nivå.
ECU-stack | Beskrivning |
Inbäddad mjukvaruapplikation | Kontrollalgoritmer, bearbetning, tjänster |
Ansökningsram | Säkerhets- och säkerhetsramar |
Driftsmiljö | AUTOSAR classic, AUTOSAR Adaptive, Ingångs-/utgångskanaler |
Inbäddade virtualiseringar | OS i realtid, ECU-abstraktioner |
Firmware | Startlastare, säker lagring, säker gängning |
Hårdvara | Kiselbaserade enheter, mikrostyrenheter, kort med en eller flera lager |