Kódgenerálás és konfigurációgenerálás autóipari szoftverekben

A feladatok kidolgozása során be lehet kapcsolódni autóipari szoftverek fejlesztésébe a következő, lentebb részletezett témákban (ennek megfelelően több hallgató jelentkezése lehetséges):

Automatikus kódgenerálás autóipari modellek alapján

Egy modern gépjármű biztonsági és komfort funkcióit számos beágyazott vezérlőegység (ECU) támogatja.  Az ezen számítógépeken futó szoftver komplexitása gyakran összemérhető a desktop alkalmazásokéval, pl. egy elektronikus kormányrendszer kb. 150 szoftverkomponensből, több ezer kapcsolatból és félmillió kódsorból áll.  A szoftver modellezésére az AUTOSAR szabvány grafikus modellező nyelvét használják (ez az UML beágyazott, autóipari megfelelőjének tekinthető).  Az AUTOSAR modell egyúttal számos automatikus helyességellenőrző és kódgeneráló eszköz inputja.

Automatikus kódgenerátorokat használunk olyan esetekben, ahol valamilyen vizuális leírásmódból szisztematikusan elő lehet állítani az azt megvalósító forráskódot, ezzel jelentős mennyiségű mechanikus munkától óvva meg a fejlesztőket.  Így jön létre például az ECU memóriamanagement moduljának jelentős része, kommunikációs szoftverek konstans adatszerkezetei és a fedélzeti diagnosztikai funkciókat leíró adatstruktúrák.  Az így generált C forrásrészletek a build folyamat során összefordulnak a kézzel írt részekkel, hogy végül megkapjuk az ECU-n futó teljes alkalmazást.  A kódgenerátorokat egy Eclipse-alapú modellező eszköz plug-injaiként valósítjuk meg, tipikusan Javaban vagy egyszerűbb estekben egy template nyelven.  A kódgenerátorok egy XML-alapú leírásmódot (az adott modul konfigurációját) feldolgozva C forráskódot írnak ki (tipikusan inicializált konstans adatszerkezeteket).

A hallgató feladata, hogy fejlesszen egy kódgenerátort az általa választott modulhoz (memóriakezelés, kommunikáció, fedélzeti diagnosztika, stb.).  A munka keretében (i) megismeri a tesztelt modul specifikációját és konfigurációjának leírásmódját, (ii) feltérképezi a megvalósítás vagy teszt által használt C-nyelvű konfigurációs adatszerkezetet, valamint (iii) egy Eclipse-alapú autóipari modellező eszköz szolgáltatásaira építve megvalósítja a kódgenerátort Java nyelven.

A feladat megoldása során a hallgató betekintést nyer az autóipari szoftvermodulok fejlesztésének és tesztelésének folyamatába, megismeri az általa választott modul alapvető működését és konfigurációs lehetőségeit, illetve elsajátítja a modellfeldolgozás alapjait.  A feladat megoldásához az alapképzés során elsajátított alapvető C és Java programozási ismeretek szükségesek, amelyeket a hallgató a munka során tovább mélyíthet.  A hallgató folyamatosan segítséget kap a ThyssenKrupp Presta Hungary Kft. munkatársaitól, akik a beágyazott szoftvermodulokat, illetve a konfiguráció generáláshoz is használt modellező eszközt fejlesztik.  A feladatra többen is jelentkezhetnek.

A feladat megoldása során olyan keresett és piacképes tudás szerezhető, amely közvetlenül kamatoztatható Eclipse alapú fejlesztéseket végző cégeknél és természetesen a hazánkban dinamikusan bővülő autóipari szoftverfejlesztésben.

További információ: Pintér Gergely (gergely.pinter@thyssenkrupp.com)

Valós idejű, beágyazott operációs rendszer konfigurációja

Egy modern gépjármű biztonsági és komfort funkcióit számos beágyazott vezérlőegység (ECU) támogatja.  Az ezen számítógépeken futó szoftver komplexitása gyakran összemérhető a desktop alkalmazásokéval, pl. egy elektronikus kormányrendszer kb. 150 szoftverkomponensből, több ezer kapcsolatból és félmillió kódsorból áll.  Ekkora szoftvert több párhuzamosan futó alkalmazásba és taszkba kell szervezni, amelyek futását egy beágyazott valós idejű operációs rendszer felügyeli.  Az operációs rendszer API-ja megfelel az OSEK és AUTOSAR szabványoknak.  Biztonsági okokból az operációs rendszer konfigurációja (taszkok struktúrája, prioritások, kölcsönös kizárási viszonyok, stb.) fejlesztési időben dől el és az ettől függő funkciók forráskódját automatikus kódgenerátor állítja elő.  A konfiguráció megadására az OSEK egy programozási nyelvek szintaktikájára emlékeztető szöveges leírásmódot (OIL), az AUTOSAR egy XML sémát definiál.  Az operációs rendszernek támogatnia kell mindkét konfiguráció megadási módot.  Mivel az XML bemenet használata gyakoribb, célszerű a kódgenerátorokat erre alapozni; annak érdekében viszont, hogy szükség esetén OIL bemenetet is fel tudjunk dolgozni szükség van egy konverziós eszközre a két formátum között.

A hallgató feladata készíteni egy nyelvi elemzőt (parser) az OIL nyelvtanhoz és megírni a konverziós programot.  A nyelvi elemzőt az Eclipse XText technológiára célszerű alapozni, amelynek segítségével kényelmesen lehet készíteni content assist, syntax highlighting stb. funkciót nyújtó szövegszerkesztőt.  A feladat megoldása során a hallgató először megismeri a kapcsolódó technológiákat, megérti az operációs rendszer konfigurációs adatainak struktúráját, megfogalmazza a nyelvtan levezetési szabályait az XText formátumában, majd megírja a konverziós programot Java nyelven.  A feladat elkezdéséhez az említett technológiák ismerete nem követelmény, de előnyt jelenthet.  A munka során a hallgató folyamatosan segítséget kap a ThyssenKrupp Presta Hungary Kft. munkatársaitól, akik az operációs rendszert és a kódgenerátorokat fejlesztik.  A feladat egyéni érdeklődésnek megfelelően testre szabható és a jövőben további innovatív fejlesztések alapja is lehet (pl. operációs rendszer portolása új mikrovezérlőkre).

A feladat megoldása során olyan keresett és piacképes tudás szerezhető, amely közvetlenül kamatoztatható Eclipse alapú fejlesztéseket végző cégeknél és természetesen a hazánkban dinamikusan bővülő autóipari szoftverfejlesztésben.  A feladatot a formális nyelvek és kódgenerálás iránt érdeklődő kollégáknak ajánljuk.

További információ: Pintér Gergely (gergely.pinter@thyssenkrupp.com)

FlexRay kommunikáció automatikus konfigurálása

A korszerű járművek összetett funkcióit egymással kommunikációs kapcsolatban álló vezérlőegységek (ECU) valósítják meg.  A kommunikáció különböző szabványos autóipari protokollokon (pl. CAN, FlexRay, LIN) zalik.  A biztonságkritikus alkalmazások egyik elterjedt protokollja a FlexRay, melynek legfontosabb jellemzője az idővezérelt működés.  A vezérlőegység szoftvere és a protokoll közeghozzáférési rétege közötti aszinkronitás kezelése (vagyis az, hogy az ECU szoftvere és a hálózat különböző óráról jár) összetett feladat.  Az üzenetekhez kötődő különböző műveletek elvégzése (továbbítandó üzenetek előállítása, beérkező üzenetek feldolgozása, stb.) a FlexRay hálózat időzítéseihez igazodva kell történjen. Az autóiparban széleskörűen alkalmazott AUTOSAR szabvány által definiált szoftver architektúrában ezt a feladatot a FlexRay Interface szoftver modul látja el.

A modul konfigurálását az AUTOSAR által definiált XML alapú leírásmódban végezzük.  A járműgyártók az autók hálózatát egy magasabb absztrakciós szinten írják le (nem az egyes ECU-k FlexRay Interface moduljainak konfigurációjaként), így a modul szintű konfiguráció általában manuális munka.  A hallgató feladata egy Eclipse alapú modellező eszköz kiegészítése egy olyan, Java nyelven írt plug-innal, mely lehetővé teszi ezen konfiguráció automatizált előállítását a járműgyártótól származó inputok alapján.  A megoldást célszerűen Eclipse alapú technológiákra építve (Eclipse Modeling Framework, Eclipse Standard Widget Toolkit, JFace) célszerű megvalósítani.

A feladat megoldása során a hallgató először megismeri az említett technológiákat, elsajátítja az AUTOSAR-ban történő modellezés alapjait, megtervezi a megoldást, majd megvalósítja Java nyelven.  A feladat elkezdéséhez az említett technológiák ismerete nem követelmény, de előnyt jelenthet. A munka során a hallgató folyamatosan segítséget kap a ThyssenKrupp Presta Hungary Kft. munkatársaitól, akik a kommunikációs stack moduljait, illetve a konfiguráció során használt modellező eszközt fejlesztik.

A feladat megoldása során olyan keresett és piacképes tudás szerezhető, amely közvetlenül kamatoztatható Eclipse alapú fejlesztéseket végző cégeknél és természetesen a hazánkban dinamikusan bővülő autóipari szoftverfejlesztésben.

További információ: Pintér Gergely (gergely.pinter@thyssenkrupp.com)

Témacsoport: 
Kiberfizikai rendszerek
Jelleg: 
Elméleti és gyakorlati
Konzulens: 
Pintér Gergely
Konzulens: 
Majzik István
TDK lehetőség: 
TDK lehetőség
Megismerhető technológiák: 
Lásd a részletes témakiírásban.
Állapot: 
Folyamatban