Siemens tilbyr begge deler innebygd programvare for biler og innebygd programvareteknikk løsninger. Siemens har sluttet å tilby frittstående innebygd programvare for SoC-er med pensjonering i november 2023 av Nucleus, Nucleus Hypervisor, Nucleus ReadyStart, Sokol Flex Linux, Sokol Omni Linux og Sourcery CodeBench-produktene (inkludert tilhørende tillegg). Eksisterende støttekontrakter for disse produktene blir fortsatt respektert, vennligst kontakt Siemens Støttesenter for mer informasjon.
Hva er de forskjellige typene innebygd programvare og deres formål?
- Operativsystem - Et operativsystem (OS), i sin mest generelle forstand, er programvare som lar en bruker kjøre andre applikasjoner på en databehandlingsenhet. Operativsystemet administrerer prosessorens maskinvareressurser, inkludert inngangsenheter som tastatur og mus, utgangsenheter som skjermer eller skrivere, nettverkstilkoblinger og lagringsenheter som harddisker og minne. Operativsystemet tilbyr også tjenester for å lette effektiv utførelse og styring av, og minnetildelinger for, programvareprogrammer.
- Firmware - Firmware er en type programvare som er skrevet direkte for et stykke maskinvare. Den fungerer uten å gå gjennom API-er, operativsystemet eller enhetsdrivere - og gir de nødvendige instruksjonene og veiledningen for å kommunisere med andre enheter eller utføre grunnleggende oppgaver og funksjoner som beregnet.
- Middleware - Middleware er et programvarelag som ligger mellom applikasjoner og operativsystemer. Middleware brukes ofte i distribuerte systemer der det forenkler programvareutvikling ved å gi følgende:
- Skjuler vanskelighetene med distribuerte applikasjoner
- Maskerer heterogeniteten til maskinvare, operativsystemer og protokoller
- Tilbyr ensartede grensesnitt på høyt nivå som brukes til å gjøre interoperable, gjenbrukbare og bærbare applikasjoner.
- Leverer et sett med vanlige tjenester som minimerer duplisering av innsats og forbedrer samarbeidet mellom applikasjoner
- Applikasjon - Sluttbrukeren utvikler den endelige programvaren som kjører på operativsystemet, bruker eller samhandler med mellomvaren og fastvaren, og er hovedfokuset for de innebygde systemenes målfunksjon. Hver sluttapplikasjon er unik, mens operativsystemer og firmware kan være identiske fra enhet til enhet.
Innebygd programvare vs innebygde systemer
Maskinvarekomponentene i en enhet som kjører innebygd programvare kalles et «innebygd system.» Noen eksempler på maskinvarekomponenter som brukes i innebygde systemer er strømforsyningskretser, sentrale prosesseringsenheter, flashminneenheter, tidtakere og serielle kommunikasjonsporter. I løpet av en enhets tidlige designfaser avgjøres maskinvaren som skal utgjøre det innebygde systemet - og dets konfigurasjon i enheten. Deretter utvikles innebygd programvare fra bunnen av for å kjøre utelukkende på den maskinvaren i den nøyaktige konfigurasjonen. Dette gjør innebygd programvaredesign til et spesialisert felt som krever dyp kunnskap om maskinvarefunksjoner og dataprogrammering.
Eksempler på innebygde programvarebaserte funksjoner
Nesten hver enhet med kretskort og databrikker har disse komponentene ordnet i et innebygd programvaresystem. Som et resultat er innebygde programvaresystemer allestedsnærværende i hverdagen og finnes i forbruker-, industri-, bil-, romfart-, medisinsk, kommersiell, telekom- og militærteknologi.
Vanlige eksempler på innebygde programvarebaserte funksjoner inkluderer:
- Bildebehandlingssystemer funnet i medisinsk bildeutstyr
- Fly-by-wire-kontrollsystemer funnet i fly
- Bevegelsesdeteksjonssystemer i sikkerhetskameraer
- Trafikkkontrollsystemer funnet i trafikklys
- Timing og automatiseringssystemer funnet i smarte hjemmeenheter
Hva er de forskjellige typene innebygde systemer?
Når det er basert på ytelse og funksjonskrav, er det fem hovedklasser av innebygde systemer:
- Innebygde sanntidssystemer fullfører oppgaver på en deterministisk og repeterbar måte, som påvirkes av operativsystemenes underliggende arkitektur og planlegging, samt ytelsen til tråder, forgrening og avbrytende ventetid. Generelle innebygde systemer inneholder ikke et sanntidskrav og kan håndtere avbrudd eller forgrening uten avhengighet av en fullføringstid. Grafikkskjermer og tastatur- og musadministrasjon er gode eksempler på generelle systemer.
- Frittstående innebygde systemer kan fullføre oppgaver uten et vertssystem eller eksterne behandlingsressurser. De kan sende ut eller motta data fra tilkoblede enheter, men er ikke avhengige av dem for å fullføre oppgaven.
- Frittstående innebygde systemer kan fullføre oppgaven uten et vertssystem eller eksterne behandlingsressurser. De kan sende ut eller motta data fra tilkoblede enheter, men er ikke avhengige av dem for å fullføre oppgaven.
- Nettverksbaserte innebygde systemer er avhengige av et tilkoblet nettverk for å utføre tildelte oppgaver.
- Basert på kompleksiteten i systemets maskinvarearkitektur, er det tre hovedtyper av innebygde systemer: Nettverksbaserte innebygde systemer er avhengige av et tilkoblet nettverk for å utføre tildelte oppgaver.
Hvordan sluttmarkeder påvirker innebygde systemer
Innebygde systemkrav og komponenter vil variere i henhold til målmarkedets krav. Noen eksempler inkluderer:
- Forbruker - I applikasjoner som forbruksvarer som vaskemaskiner, bærbare enheter og mobiltelefoner understreker innebygde systemer den reduserte størrelsen på
- System-on-chip, lavt strømforbruk eller batteridrift og grafikkgrensesnitt. I disse applikasjonene verdsettes konfigurerbare operativsystemer og muligheten til å slå av ikke-operative «domener» av designet.
- Nettverk — Programmer som muliggjør tilkobling, kommunikasjon, drift og administrasjon av et bedriftsnettverk. Det gir kommunikasjonsveien og tjenestene mellom brukere, prosesser, applikasjoner, tjenester og eksterne nettverk/internett. Innebygde nettverksapplikasjoner fokuserer på responshastighet, pakkebehandling og perifere maskinvareveier.
- Industriell - For applikasjoner som fabrikkgulvstyring, motorer og vindmøller, har hovedvekten en tendens til å sikre skytilkobling og deterministisk «sanntidsdrift» og kan fokusere sterkt på mellomvare.
- Medisinsk, bilindustri og romfart — Disse bransjene trenger blandede sikkerhetskritiske systemer, der deler av designet er isolert fra hverandre for å sikre at bare nødvendige data kommer inn eller forlater systemet (sikkerhet), samtidig som det ikke garanterer noen skade for sluttbrukeren (sikkerhet). Eksempler er autonome kjøresystemer i biler og medisinsk utstyr. Disse innebygde systemene kan inneholde en blanding av åpen kildekode (Linux) og deterministiske sanntidsoperativsystemer (RTOS) og bruker sterkt velprøvd mellomvare.
Hvorfor er innebygd programvare for biler annerledes?
I bilelektronikk skjer komplekse sanntidsinteraksjoner på tvers av flere innebygde systemer som hver styrer funksjoner som bremsing, styring, fjæring, drivlinje osv. Det fysiske huset som inneholder hvert innebygd system blir referert til som en elektronisk styreenhet (ECU). Hver ECU og dens innebygde programvare er en del av en kompleks elektrisk arkitektur kjent som et distribuert system.
Ved å kommunisere med hverandre kan ECU-ene som utgjør et kjøretøys distribuerte system utføre en rekke funksjoner, for eksempel automatisk nødbremsing, adaptiv cruisekontroll, stabilitetskontroll, adaptive frontlykter og mye mer. En enkelt funksjon kan trenge interaksjoner på tvers av 20 eller flere innebygde programvareapplikasjoner spredt over mange ECUer koblet til flere nettverksprotokoller. Komplekse kontrollalgoritmer distribuert med den innebygde programvaren sikrer riktig timing av funksjoner, nødvendige innganger og utganger og datasikkerhet.
Vanlige eksempler på applikasjonsbaserte funksjoner for bilprogramvare inkluderer:
- ADAS (Advanced Driver Assist Systems) funksjoner som adaptiv cruisekontroll, automatisk nødbremsing, kjørefeltassistent, trafikkassistent, advarsler om kjørefeltstart
- Batteristyring
- Momentkompensasjon
- Kontroll av drivstoffinnsprøytningshastighet
ECU programvarestabel
Den elektroniske kontrollenheten eller ECU består av en hoveddatabehandlingsenhet med maskinvare på chip-nivå og en bunke med innebygd programvare. Imidlertid er det en økende trend blant bilprodusenter å designe ECUer med komplekse integrerte kretser som inneholder flere datakjerner på en enkelt brikke - det som kalles et System on a Chip (SoC). Disse SoC-ene kan være vert for en rekke ECU-abstraksjoner for å konsolidere maskinvare. Programvarestakken for en ECU inkluderer vanligvis en rekke løsninger, fra firmware på lavt nivå til innebygde programvareapplikasjoner på høyt nivå.
ECU-stabel | Beskrivelse |
Innebygd programvare | Kontrollalgoritmer, prosessering, tjenester |
Søknadsrammeverk | Sikkerhets- og sikkerhetsrammer |
Driftsmiljø | AUTOSAR classic, AUTOSAR Adaptive, Inngangs-/utgangskanaler |
Innebygde virtualiseringer | Sanntids OS, ECU-abstraksjoner |
fastvare | Oppstartslastere, sikker lagring, sikker tråding |
Maskinvare | Silisiumbaserte enheter, mikrokontrollere, enkelt- eller flerlagskort |