Uloga Embedded softver inženjera u automobilskoj industriji

Continental
Evgenije Adžić
17.10.2023

Prethodne nedelje predstavili smo uređaje koje razvijamo u Continental-u i poslovnoj jedinici Smart Mobility, kako se ti uređaji uklapaju u arhitekturu modernih komercijalnih vozila i koje su to timske uloge koje su neophodne kako bi zaokružili razvoj proizvoda. U ovom članku približićemo okvire rada i odgovornosti jednog embedded softver inženjera, odnosno programera koji razvija tzv. osnovni softver uređaja (Basic Software - BSW).


Kada govorimo o okvirima razvoja softvera u SMY, naša metoda izbora je moderna Agile metodologija. Da budemo precizni, koristimo iterativni i inkremenatlni pristup koji nam omogućava da postepeno razvijamo softver u kraćim etapama. Zašto? U jednu ruku, ovo u potpunosti odgovara prirodi razvoja softvera, jer programske funkcije čine druge manje funkcije i tako rekurzivno do osnovnih instrukcija programskog jezika. Takođe odgovara i modernom načinu testiranja u toku razvoja softvera, što treba da bude odgovornost svakog profesionalnog programera (TDD – Test Driven Development). Drugi važan razlog je da bismo bili u mogućnosti da pružimo mušterijama novu i potpunu funkcionalnost koja je spremna za upotrebu što je pre moguće. Mnogobrojni su i drugi razlozi, a jedan od njih je i mogućnost da se lakše uoče moguća poboljšanja, da se pravovremeno reaguje na izmenu, kao i da se omogući ponovljivost dobro pokazanih procesa i rešenja i na druge projekte (Reusability / Lessons Learned).

Ono što je zanimljivo jeste da naš poslovni model stavlja naglasak na saradnju i integraciju sa aplikativnim softverskim komponentama krajnjeg proizvođača vozila. Uređaj se isporučuje sa osnovnim softverom koji direktno upravlja hardverskim komponentama i slojem koji mogućava jednostavnu spregu na nivou signala, podataka i servisa prema aplikacijama koje ostvaruju konačnu logiku zahtevanu od strane mušterije. Ovo je danas najčešće traženi poslovni model, gde softver dobija svoju konačnu funkcionalnost kroz međusobnu saradnju. Ideja je da mušterija ima mogućnost da paralelno radi na razvoju, testiranju i unapređivanju svojih aplikacija (njihov zaštićeni “know-how”), dok mi inkrementalno i u kraćim koracima razvijamo i isporučujemo sve ostale niže slojeve softvera. Pored toga, i dalje je prisutan poslovni model gde mušterija zahteva kompletno rešenje, uključujući i razvoj krajnjih aplikacija.


Kako bismo to postigli efikasno, timovi na projektima su organizovani oko većih podsistema ili tema, poznatih kao “Feature”-i, i pokrivaju sve slojeve softvera po vertikali, od najnižeg nivoa koji je odgovoran za direktnu interakciju sa hardverom (HAL – Hardware Abstraction Layer), preko apstrakcije hardvera i servisa (ECU Abstraction Layer and Services), pa sve do najvišeg nivoa aplikativnog softvera (APP / SW-Cs).

Ova vertikalna organizacija se pokazala kao ključna za brzu implementaciju, nadogradnju i ispravku grešaka u softveru. S obrzirom na različite nivoe detalja, alate i okruženja koje koriste članovi tima za razvoj različitih slojeva softvera, važno je da se grupišu u jedinstvenu celinu. Na primer, programeri aplikativnog softvera često koriste Model-Based razvojna okruženja, poput Matlab/Simulink-a ili logi.CAD-a, gde koriste grafički pristup za programiranje i definisanje logike između ulaznih i izlaznih signala. Ovo je standard (IEC 61131-3) i koncept programabilnih logičkih kontrolera (PLC) preuzet iz klasične industrije, koji se pokazao kao siguran i pouzdan tokom više decenija, te primenjen i na automobilsku industriju. Sa druge strane, programeri nižih slojeva softvera i komponenti (BSW) koriste programski jezik C, koji je optimalan za rad sa procesorskim resursima i memorijom, kao i specijalizovano razvojno okruženje za integraciju i konfigurisanje BSW modula definisanih AUTOSAR (AUTomotive Open System Architecture) standardom. Nivo i vrsta detalja koje ove dve vrste programera moraju poznavati se razlikuje: jedni su više fokusirani na funkcionalnost

hardvera, optimalno iskorišćenje procesorskih mogućnosti i obezbeđivanje potrebnog interfejsa u vidu signala i srevisa prema aplikacijama (BSW programeri), dok su drugi više orijentisani na implementaciju logike krajnjih korisničkih zahteva (APP programeri).

Da bismo uspešno primenili agilne metode razvoja softvera, koristimo čitav niz alata koji su široko prihvaćeni u tradicionalnom IT svetu. Tu spadaju alati za kontrolu verzija softvera kao što su Git, GitHub i MKS/IMS, alati za praćenje projekata i grešaka poput Jira-e, zatim alati za automatizaciju projekata (CI/CD – Continuous Integration / Continuous Deployment) poput Jenkins-a, alati za automatsko testiranje softverskih modula kao što su Klockwork i GoogleTest, te mnogobrojni interni alati. Sve ovo omogućava efikasno upravljanje projektima, oraganizovanje, dokumentovanje i praćenje zahteva i specifikacija kroz alate kao što su Confluence i DOORS.


Kao što vidite, naša metodologija i alati su sve što vam treba da biste izgradili sofisticirane softverske sisteme koji se koriste u modernim vozilima. Agilnost je naše tajno oružje.

Raznovrsni uređaji koje smo ranije pomenuli imaju različite svrhe, ali svi dele nešto zajedničko – to su ugradbeni sistemi sa jednim ili više procesora, odnosno mikrokontrolera (Single-/Multi-Processors Embedded Systems). Pored toga, u Continental Automotive SMY svaki od ovih uređaja pripada jednoj od tri kategorije prema složenosti: Low-Line, Mid-Line i High-Line. Svaka naredna linija dodaje više funkcionalnosti u odnosu na prethodnu. Tipično, Low-Line uređaji su jednoprocesorski, dok su Mid-Line i High-Line uvek višeprocesorski sistemi.

Ovi uređaji obavljaju vremenski kritične funkcije koje zahtevaju brzu reakciju u stvarnom, realnom vremenu (Real-Time Systems) i minimalnu upotrebu procesorskih resursa. Za ove aplikacije, struktura i objekti sistema se kreiraju statički tokom kompajliranja i generisanja koda, a ne dinamički tokom izvršavanja. Te vremenski kritične aplikacije se izvršavaju na Real-Time procesoru (RC – Real-Time Controller), dok su servisi i aplikacije koje dozvoljavaju sporiji odgovor i duže vreme izvršavanja, često povezanim za obradu veće količine podataka, alocirani na Application procesoru (AC – Application Controller).


Na primer, kod Mid-Line i High-Line instrument panela, RC kontroler je odgovoran za obradu brzih digitalnih ulaza (npr. Wakeup signala koji treba da “probude“ odnosno startuju uređaj) i dijagnostičkih poruka na CAN mreži. Sa druge strane, AC kontroler upravlja displejom i grafičkim elementima što ne zahteva toliko brzo osvežavanje. RC i AC kontroleri razmenjuju podatke putem zaštićenog međuprocesorskog komunikacionog protokola (IPC – Inter-Processor Communication) putem fizičkih medijuma kao što su SPI (Serial Peripheral Interface) i USART (Universal Synchronous Asynchornous Receiver Transmiter) ili deljene memorije (Shared Memory) ukoliko su procesori u okviru istog čipa (SoC – System-on-Chip).


Recimo, kod High-Line telemetrijskih uređaja, može postojati više RC i više AC kontrolera integrisanih u jednom istom čipu (SoC). Svaki od RC kontrolera može imati svoju specifičnu ulogu, kao što su kontrola pristupa periferijama sistema, sigurnost i kriptovanje podataka, ili upravljanje glavnim vremenski kritičnim interfejsima kao što su CAN mreža, LIN mreža, tahograf, merna jedinica za inerciono kretanje (Accelerometer/Gyroscope), merna jedinica za stvarno vreme (Real Time Clock – RTC), temperaturni senzor i drugi. AC kontroleri obezbeđuju povezivanje vozila sa Cloud-om, infrastrukturom i drugim vozilima (V2X – Vehicle-to-Everything) i obezbeđuju pristup svim mrežnim interfejsima (Ethernet, Wifi, Bluetooth, GPS/GLONASS, GSM/LTE). Softver na AC kontrolerima koristi internu Linux

distribuciju (LEAP) prilagođenu primeni u automobilskoj industriji, zbog čega ih često nazivamo i Linux kontrolerima (LC).


Međutim, važno je napomenuti da potpuna funkcionalnost i sigurnost ovih uređaja dolazi do izražaja samo kroz integraciju sa RC kontrolerima i odgovarajućim softverom koji i dalje pripada “embedded” svetu. Ovo je i dalje ključ za ispravan, pouzdan i bezbedan rad uređaja, i to će verovatno tako ostati dugi niz godina.


Ali šta je to što čini naš RC softver tako sigurnim i stabilnim? To je arhitektura koja je bazirana na AUTOSAR Classic platformi. Ova organizacija omogućava stvaranje optimalnog softvera za upravljačke jedinice vozila i odgovarajuće Real-Time mikrokontrolere. AUTOSAR standard je prihvaćen (i napravljen) od strane svih vodećih kompanija u automobilskoj industriji (uključujući i Continental Automotive), što garantuje interoperabilnost i kvalitet softvera. AUTOSAR specificira programske module osnovnog softvera, njihovu funkcionalnost, ponašanje, atribute i servise, kako bi se omogućio pouzdan ali istovremeno brz razvoj uređaja uz ograničene resurse. To treba da omogući konkurentnost proizvođača vozila u aplikativnom sloju, a posledično, njihovo takmičenje da krajnjem korisniku vozila obezbede više pouzdanijih, bezbednijih i bogatijih funkcionalnosti uređaja.


Softver u RC kontrolerima je složen i po AUTOSAR-u organizovan u tri sloja:


1. Aplikacije (APP SW-Cs): Ovaj sloj obuhvata aplikacije ili aplikativne softverske komponente, koje mogu da kombinuju signale iz različitih podsistema ili sa različitih sistema i ostvaruju potrebnu zahtevanu logiku. Za neke namene, aplikacije nisu potrebne, kao što je slučaj kada RC funkcioniše kao “Gateway“ između različitih mrežnih interfejsa (npr. Ethernet-to-CAN).

2. Radno/izvršno okruženje (Runtime Environment – RTE): Ovaj sloj predstavlja okvir za izvršavanje koda i spregu između APP SW-Cs i BSW-a. On se koristi za mapiranje podataka, signala, događaja i izvršnih entiteta (glavnih funkcija/servisa) između aplikacija i BSW-a. RTE postavlja glavne funkcije, interfejse i servise u kontekst Real-Time operativnog sistema.

3. Osnovni softver (Basic Software – BSW): Ovo je srce RC softvera i može se podeliti u različite funkcionalne grupe i slojeve. Ove grupe uključuju sistemske servise (operativni sistem), komunikacione servise, dijagnostičke servise, servise za kriptovanje i zaštitu podataka, servise za upravljanje memorijom, servise za upravljanje ulazima/izlazima i kompleksne drajvere. Kompleksni drajveri su moduli kojim se obuhvataju specifični korisnički zahtevi koji nisu definisani standardom ili ih nije moguće implementirati jednostavno pomoću standardnih BSW modula. Tada se javlja potreba da BSW programeri dizajniraju i implementiraju posebne programske module, tzv. plugin-ove za AUTOSAR razvojno okruženje.

BSW programeri su pravi stručnjaci u svetu “embedded“ softvera. Moraju da savladaju različite proizvode, prateće sistemske koncepte i funkcionalnosti, standarde, mikrokontrolere, hardverske interfejse i periferije, komunikacione mreže i protokole, operativne sisteme za rad u stvarnom vremenu, kao i različite softverske alate (editori, kompajleri, debug okruženja, build okruženja, skripting programske jezike, okruženja za razvojni tok po AUTOSAR-u kao što su EB Tresos Studio i Autosar Builder i mnoga druga). Ovaj posao zahteva obimno znanje i veštine, ali omogućava stvaranje sofisticiranog softver inženjera koji je ključ nastanka savremenih upravljačkih jedinica u vozilima.


Ako ste tehnički nastrojeni entuzijasta i strastveni ste prema novim tehnologijama, Continental i poslovna jedinica Smart Mobility su mesto gde će vaša strast za automobilskom industrijom, vozilima i tehnologijom oživeti. U našem timu, vaša kreativnost i inovacije mogu napraviti razliku.

Zajedno gradimo sigurniju, pametniju i održivu budućnost na putevima širom sveta.

Ostali blog tekstovi poslodavca

Međunarodni dan žena i devojaka u nauci

Međunarodni dan žena i devojaka u nauci

Kako izgleda rad na poziciji lidera projekta u serijskoj proizvodnji?

Kako izgleda rad na poziciji lidera projekta u serijskoj proizvodnji?

Upoznaj lokalnog eksperta za tehnologije osvetljenja

Upoznaj lokalnog eksperta za tehnologije osvetljenja

Continental na vezi: Havijer Inohosa iz Meksika

Continental na vezi: Havijer Inohosa iz Meksika

Continental na vezi: Ksajrin Kimora sa Filipina

Continental na vezi: Ksajrin Kimora sa Filipina

Kako izgleda rad na poziciji tehničara održavanja?

Kako izgleda rad na poziciji tehničara održavanja?

Početkom oktobra osnovana je R&D zajednica posvećena AI tehnologijama

Početkom oktobra osnovana je R&D zajednica posvećena AI tehnologijama

Ko je zadužen za kontrolu kvaliteta displeja?

Ko je zadužen za kontrolu kvaliteta displeja?

Komunikacija u hibridnom režimu rada

Komunikacija u hibridnom režimu rada

Mehanizmi razvijeni u svrhu pomoći prilikom nezgoda i hitnih slučajeva

Mehanizmi razvijeni u svrhu pomoći prilikom nezgoda i hitnih slučajeva

Tri godine rada u fabrici

Tri godine rada u fabrici

Priča sa terena: Continental košarkaški tim

Priča sa terena: Continental košarkaški tim

Da li tvoja produktivnost zavisi od lokacije rada?

Da li tvoja produktivnost zavisi od lokacije rada?

Kreativnost posle radnog vremena: Digitalni satovi na domaći način

Kreativnost posle radnog vremena: Digitalni satovi na domaći način

Svestranost u pokretu: Aikido, kiropraktika i posao u R&D-u

Svestranost u pokretu: Aikido, kiropraktika i posao u R&D-u

Koji model fleksibilne organizacije radnog vremena je najatraktivniji za naše koleginice i kolege?

Koji model fleksibilne organizacije radnog vremena je najatraktivniji za naše koleginice i kolege?

Koji model fleksibilne organizacije radnog vremena je najatraktivniji za tebe?

Koji model fleksibilne organizacije radnog vremena je najatraktivniji za tebe?

Po kojem modelu trenutno radiš, a koji je najatraktivniji za tebe?

Po kojem modelu trenutno radiš, a koji je najatraktivniji za tebe?

Rezultati istraživanja: Fleksibilnost = Produktivnost

Rezultati istraživanja: Fleksibilnost = Produktivnost

Kako službena putovanja doprinose karijernom cilju?

Kako službena putovanja doprinose karijernom cilju?

Koliko hobi može da doprinese istrajnosti na poslu?

Koliko hobi može da doprinese istrajnosti na poslu?

Ekspert za proces industrijskog farbanja plastike

Ekspert za proces industrijskog farbanja plastike

Branko Nađ: Karijera u IT sektoru Continental-a

Branko Nađ: Karijera u IT sektoru Continental-a

Tri godine rada u fabrici Continental Novi Sad

Tri godine rada u fabrici Continental Novi Sad

Koja je sličnost između fudbalskog suđenja i upravljanja projektima?

Koja je sličnost između fudbalskog suđenja i upravljanja projektima?

Moj Continental razvojni put

Moj Continental razvojni put

Zašto je fabrika #Continental_NoviSad odlično mesto za početak karijere?

Zašto je fabrika #Continental_NoviSad odlično mesto za početak karijere?

Ugostili smo srednjoškolce u sklopu projekta "Otvorena vrata Novog Sada"

Ugostili smo srednjoškolce u sklopu projekta "Otvorena vrata Novog Sada"

Mogućnosti koje omogućavaju kreiranje karijernog puta

Mogućnosti koje omogućavaju kreiranje karijernog puta

Da li je neophodno prethodno iskustvo za poziciju test tehničara?

Da li je neophodno prethodno iskustvo za poziciju test tehničara?

Kako uklopiti posao, fakultet i sport?

Kako uklopiti posao, fakultet i sport?

Koleginica Katarina Boberić u izboru za "Inženjerku godine"

Koleginica Katarina Boberić u izboru za "Inženjerku godine"

Koliko je dinamičan rad u sektoru logistike fabrike Novi Sad?

Koliko je dinamičan rad u sektoru logistike fabrike Novi Sad?

Brat i sestra - kolege u fabrici Continental Novi Sad

Brat i sestra - kolege u fabrici Continental Novi Sad

Kako izgleda karijerni put dug 10 godina u fabrici Continental Subotica?

Kako izgleda karijerni put dug 10 godina u fabrici Continental Subotica?

Iskustvo sa ContiMotion programa prakse

Iskustvo sa ContiMotion programa prakse

Koje veštine su potrebne procesnom tehničaru?

Koje veštine su potrebne procesnom tehničaru?

Trčanje kao timski hobi

Trčanje kao timski hobi

Razvoj funkcija za bezbednost vozila

Razvoj funkcija za bezbednost vozila

Otvorena vrata Continental fabrike u Kaću

Otvorena vrata Continental fabrike u Kaću

Intervju sa direktorom fabrike u Novom Sadu

Intervju sa direktorom fabrike u Novom Sadu

Planinarenje kao hobi

Planinarenje kao hobi

Otvorena vrata fabrike #Continental_NoviSad za operatere i tehničare

Otvorena vrata fabrike #Continental_NoviSad za operatere i tehničare

Moje tri godine u fabrici

Moje tri godine u fabrici

Jednom Continental, uvek Continental

Jednom Continental, uvek Continental

Kako izgleda radni dan procesnog tehničara?

Kako izgleda radni dan procesnog tehničara?

Inovacije u R&D centru

Inovacije u R&D centru

Podržavam članove tima na njihovom karijernom putu

Podržavam članove tima na njihovom karijernom putu

Kako izgleda put od studenta do test inženjera?

Kako izgleda put od studenta do test inženjera?

Mogućnost stalnog unapređenja sebe i tima je najbolji deo liderske pozicije

Mogućnost stalnog unapređenja sebe i tima je najbolji deo liderske pozicije

Direktna i otvorena komunikacija je osnova za izgradnju tima

Direktna i otvorena komunikacija je osnova za izgradnju tima

Kako izgleda rad sa najboljom drugaricom?

Kako izgleda rad sa najboljom drugaricom?

Kako postaviti i ostvariti zacrtane ciljeve?

Kako postaviti i ostvariti zacrtane ciljeve?

(Ne)mogu da radim posao koji ni(je) za ženu

(Ne)mogu da radim posao koji ni(je) za ženu

Prvi radni dan u Continentalu iz perspektive HR-a

Prvi radni dan u Continentalu iz perspektive HR-a

Lider kao pokretač celog tima

Lider kao pokretač celog tima

Poverenje kao osnova za izgradnju dobrog tima

Poverenje kao osnova za izgradnju dobrog tima

Kako povećati rezilijentnost?

Kako povećati rezilijentnost?

Na kojim proizvodima radimo u razvojnom centru u odeljenju za Pametnu Mobilnost (SMY)?

Na kojim proizvodima radimo u razvojnom centru u odeljenju za Pametnu Mobilnost (SMY)?

Iskustvo sa ContiMotion plaćene stručne prakse

Iskustvo sa ContiMotion plaćene stručne prakse

Dan znakovnog jezika - Majina priča

Dan znakovnog jezika - Majina priča

Liderska pozicija kao izazov, obaveza i privilegija

Liderska pozicija kao izazov, obaveza i privilegija

Kako se pripremiti za intervju?

Kako se pripremiti za intervju?

Motivacija kao ključ uspeha u svemu

Motivacija kao ključ uspeha u svemu

Putovanje iz Beograda do Novog Sada u R&D Centar kompanije Continental

Putovanje iz Beograda do Novog Sada u R&D Centar kompanije Continental

Kako unaprediti svoj CV

Kako unaprediti svoj CV

Dan mladih: Put od prakse do zaposlenja u kompaniji Continental

Dan mladih: Put od prakse do zaposlenja u kompaniji Continental

Granice postoje, ali samo one koje sami sebi postavite

Granice postoje, ali samo one koje sami sebi postavite

4.0 Industrijalizacija - Motor kao hobi

4.0 Industrijalizacija - Motor kao hobi

Kako je izgledao put naše koleginice iz profesionalnog sporta u automobilsku industriju?

Kako je izgledao put naše koleginice iz profesionalnog sporta u automobilsku industriju?

Upoznaj tim test inženjera!

Upoznaj tim test inženjera!

Sasha Cioringa: Dve decenije u Continental-u!

Sasha Cioringa: Dve decenije u Continental-u!

Ka Zakonu o AI etici

Ka Zakonu o AI etici

Od ideje do patenta u R&D centru

Od ideje do patenta u R&D centru

Korisničko iskustvo je budućnost automobilske industrije

Korisničko iskustvo je budućnost automobilske industrije

Edwin van der Kaa

Edwin van der Kaa

Strast za pobedom na poslu i na terenu

Strast za pobedom na poslu i na terenu

R&D praksa - Sara Vuković

R&D praksa - Sara Vuković

Žene u automobilskoj industriji - Stefani Oparnica

Žene u automobilskoj industriji - Stefani Oparnica

Žene u automobilskoj industriji - Jelica Travica

Žene u automobilskoj industriji - Jelica Travica

Žene u automobilskoj industriji - Svetlana Kiralj

Žene u automobilskoj industriji - Svetlana Kiralj

Moje iskustvo o životu i radu u Meksiku

Moje iskustvo o životu i radu u Meksiku

Važno je delovati u skladu sa onim što govoriš

Važno je delovati u skladu sa onim što govoriš

Slavimo 10. godišnjicu naše fabrike u Subotici

Slavimo 10. godišnjicu naše fabrike u Subotici

Porodica kao podrška na poslu

Porodica kao podrška na poslu

Strast za pobedom

Strast za pobedom

Fotografija, hobi koji spaja ljude

Fotografija, hobi koji spaja ljude

Moj život u Subotici

Moj život u Subotici

Moj život u Subotici

Moj život u Subotici

Prvi (virtuelni) radni dan na novom radnom mestu

Prvi (virtuelni) radni dan na novom radnom mestu

Prvi radni dan u Continental-u je dan koji nikada neću zaboraviti

Prvi radni dan u Continental-u je dan koji nikada neću zaboraviti

Moj život u Subotici

Moj život u Subotici

Prednosti rada u agilnom radnom okruženju

Prednosti rada u agilnom radnom okruženju

Moj karijerni put

Moj karijerni put

Intervju sa pobedničkim timom FTN Challenge-a

Intervju sa pobedničkim timom FTN Challenge-a

Sve što treba da znate o zaposlenju u Continental-u

Sve što treba da znate o zaposlenju u Continental-u

Internacionalno radno iskustvo

Internacionalno radno iskustvo

Fleksibilno radno vreme

Fleksibilno radno vreme