Što je to AUTOSAR?
Autor: Igor Banović, Manager, Engineering, GlobalLogic Hrvatska
AUTOSAR je otvoreni standard za izradu softwarea u automobilskoj industriji. Istovremeno, AUTOSAR je i naziv partnerstva kojeg sačinjavaju vodeći proizvođači automobila, automobilskih dijelova, opreme i tehnologije. Skraćenica AUTOSAR dolazi od AUTomotive Open System Architecture. Naslovni moto AUTOSAR-a je „Cooperation in standardization and competition in implementation“, koji dobro opisuje filozofiju i ciljeve nastanka ovog standarda.
Glavni motivi i cilj
Glavni motivi nastanka AUTOSAR-a su:
1) Rast udjela troškova elektroničke opreme i softvera u cijeni automobila.
2) Ovisan odnos proizvođača automobila prema dobavljačima elektronike i softvera.
3) Potreba umrežavanja softverskih komponenti unutar automobila, te pojava različitih mreža.
4) Porast kompleksnosti programskih rješenja.
Osnovni cilj AUTOSAR-a je omogućavanje razmjene programskih rješenja između različitih platformi vozila, proizvođača i dobavljača (reuse).
AUTOSAR ovaj cilj postiže na sljedeći način:
Razdvajanjem aplikativnog softvera i hardvera.
Standardizacijom programskih sučelja (API-ja pojedinih modula).
Standardiziranjem postupka konfiguracije.
Definiranjem postupaka (metodologije) razvoja cjelokupne programske podrške automobila.
Slika 1. Prijelaz sa konvencionalnog načina razvoja softvera u automobilima prema AUTOSAR-u.
4 osnovna koncepta AUTOSAR-a
Slika 2. Arhitektura AUTOSAR partnerstva
AUTOSAR partnerstvo nastalo je 2003. godine udruživanjem 9 vodećih automobilskih proizvođača i dobavljača, te se sastoji od:
9 Glavnih partnera
48 Premium partnera
11 Razvojnih partnera
64 Pridružena partnera.
4 osnovna koncepta AUTOSAR-a
AUTOSAR se temelji na 4 osnovna koncepta:
1. Softverske komponente (SW-C):
SW-C je aplikacija koja se izvodi u AUTOSAR sustavu.
SW-C komuniciraju preko unaprijed definiranih portova i sučelja (interface).
Svaka SW-C je u cijelosti opisana XML datotekom naziva – Software Component Description (SWCD).
SWCD sadrži definicije portova, sučelja kao i ponašanja.
2. Virtualna funkcijska sabirnica (Virtual Functional Bus – VFB)
Apstraktni opis komunikacijskih putova između softverskih komponenti (SW-C).
Ovaj koncept (apstrakcija) osigurava neovisnost između softverskih komponenti i stvarne infrastrukture (hardvera).
3. Run Time Environment (RTE)
RTE implementira virtualni funkcijsku sabirnicu na stvarnom ECU.
RTE je komunikacijski centar za internu (unutar jednog ECU-a) i eksternu (između različitih ECU-ova) komunikaciju.
RTE koristi CAN/LIN/FlexRay/Ethernet sabirnice za ostvarenje eksterne komunikacije.
4. Basic Software (BSW)
BSW je operativni sustav u širem smislu riječi.
BSW pruža standardizirane usluge softverskom komponentama.
Sadrži standardizirane komponente:
Servise poput dijagnostičkih protokola, NVRAM, flash, upravljanje memorijom (MM);
Komunikacijsku infrastrukturu (npr. CAN, LIN, FlexRay, Ethernet).
Također sadrži i ECU specifične komponente:
Operativni sustav (u užem smislu riječi)
MCAL (Microcontroller abstraction)
Complex Device Drivers.
Slika 3. AUTOSAR – prikaz glavnih elemenata arhitekture.
Softverske komponente, portovi i sučelja
Softverske komponente (SW-C) komuniciraju preko portova i sučelja. Svaka SW-C u svom opisu (SVCD), sadrži listu precizno definiranih portova, pomoću kojih SW-C komunicira sa drugim komponentama. Sučelje (interface) definira koji podaci / servisi se razmjenjuju preko portova.
AUTOSAR razlikuje dva tipa sučelja:
Sučelje tipa klijent-poslužitelj (Client-Server), gdje se definira skup operacija koje se mogu izvršiti (Remote Procedure Call), kao i njihovi parametri.
Sučelje za slanje i primanje podataka (Sender-Receiver), gdje se precizno definira struktura podataka koja se razmjenjuje.
Arhitektura AUTOSAR-a (Layered Architecture)
AUTOSAR ima slojevitu arhitekturu koja omogućava apstrakciju hardvera, te olakšava definiranje jasnih i strukturiranih sučelja između softverskih modula.
Arhitektura se sastoji od 5 slojeva, uz dodatni sloj Kompleksnih upravljačkih programa (Complex Device Drviers), kako je prikazano na sljedećoj slici.
Slika 4. Slojevita arhitektura AUTOSAR-a
Apstrakcijski sloj mikro-kontrolera (Microcontroller Abstraction Layer - MCAL)
Apstrakcijski sloj mikro-kontrolera (MCAL) najniži je softverski sloj AUTOSAR-a. MCAL izravno pristupa hardveru C (registri, sabirnice). Njegov je zadatak učiniti više slojeve softvera hardverski neovisnima.
MCAL se dalje dijeli na 4 tipa:
I/O drivere – drivere za analogni i digitalni I/O, npr. ADC, PWM, DIO;
Komunikacijske drivere npr. SPI, I2C, Ethernet, CAN;
Memorijske drivere npr. Flash, EEPROM;
C drivere – drivere za interne periferije npr. watchdog.
ECU apstrakcijski sloj (ECU Abstraction Layer)
ECU apstrakcijski sloj osigurava jedinstven API kojim se pristupa svim uređajima jednog tipa na ECU, bez obzira jesu li oni locirani na C ili na nekoj perifernoj jedinici
Sloj usluga (Service Layer)
Sloj usluga osigurava osnovne usluge za aplikacijski softver (SW-C) kao i za druge module BSW-a, što uključuje:
Funkcionalnosti operativnog sustava;
Komunikacijske usluge i upravljanje mrežama (network management);
Memorijske usluge, npr. NVRAM;
Dijagnostičke usluge (UDS, OBD).
Runtime Environment (RTE)
RTE osigurava hardverski neovisne komunikacijske usluge za aplikacije. RTE je konkretizacija Virtualne sabirnice (VFB) na jednom ECU. RTE nudi jednak skup API-ja bez obzira je li riječ o internoj ili eksternoj komunikaciji. RTE je u cijelosti generiran softver, koji ovisi o komunikacijskim zahtjevima SW-C (portovi, sučelja), te o svojstvima ECU-u te vrsti komunikacijske mreže (CAN, FlaxRay, Ethernet).
Aplikacijski sloj (Application Layer)
Aplikacijski sloj sadrži softverske komponente (SW-C). Aplikacije komuniciraju međusobno putem usluga RTE-a. Aplikacije ne pristupaju uslugama BSW-a izravno već to čine putem RTE-a.
Kompleksni upravljački programi (Complex Device Drivers - CDD)
Kompleksni upravljački programi koriste se kod upravljanja složenih senzorskih i aktuatorskih sustava, gdje se zahtijeva izravan pristup C i/ili njegovim složenim periferijskim uređajima kao kod:
Upravljanja ubrizgavanjem goriva;
Upravljanja električnim ventilima.
Druga uloga CDD-a je implementacija nestandardiziranih uređaja – onih koji nisu obuhvaćeni AUTOSAR standardom. CDD je “okvir” u za nestandardizirane uređaje, ali koji prema okolini mora komunicirati sukladno AUTOSAR standardu (RTE, korištenjem usluga BSW-a i slično).
AUTOSAR – dvojbe i budući razvoj
Klasični AUTOSAR
Iznimno kompleksan, potrebni su skupi alati za rad, pitanje overdesigna?
Orijentiran na C male i srednje snage (jedno-jezgreni).
Adaptive AUTOSAR – AUTOSAR runtime for Adaptive Applications (ARA)
Prvo izdanje standarda u ožujku 2017,
Transformacija od distribuiranog prema centraliziranom sustavu,
Mogućnost dinamičkog ažuriranja softvera putem mobilnih mreža tijekom rada.
Podrška high-end višejezgrenim procesorima,
C++ 14.