AUTOSAR alapú autóipari szoftverrendszerek

A lap korábbi változatát látod, amilyen Kanál Attila Károly (vitalap | szerkesztései) 2018. január 27., 16:04-kor történt szerkesztése után volt. (2017-es zárthelyi feladatok)

Napjaink nagy bonyolultságú beágyazott rendszerinek fejlesztése elképzelhetetlen lenne modellvezérelt szoftverfejlesztési paradigmák alkalmazása nélkül. Különösen igaz ez az autóiparra, ahol egy-egy alkalmazásban akár száznál is több vezérlőegység együttműködése valósul meg. Egy ilyen összetettségű elosztott rendszer tervezésében, fejlesztésében a szoftvermodellezés és kódgenerálás kiemelt jelentőséget kap. A járművekben helyet kapó vezérlőegységek számos különböző beszállítótól származnak mégis kompatibilisnek kell lenniük egymással, hiszen teljes funkcionalitásukat csak egymásra támaszkodva valósíthatják meg.

AUTOSAR alapú autóipari szoftverrendszerek
Tárgykód
VIMIAV15
Általános infók
Kredit
4
Tanszék
MIT
Követelmények
Jelenlét
laboralkalmakon kötelező
NagyZH
1 db
Vizsga
szóbeli
Elérhetőségek

Az AUTOSAR Konzorcium vezető autógyártók és autóipari beszállítók együttműködéseként jött létre, és fő céljául a vezérlőegységek fejlesztésének szabványosítását tűzte ki. A konzorcium szabványai a fejlesztés három fő területét célozzák meg:

  • definiálnak egy szigorúan rétegzett szoftverarchitektúrát a vezérlőegységeken futó beágyazott szoftver számára,
  • definiálnak egy modellezési nyelvet, melynek segítségével a vezérlőegységek működése magas szinten leírható,
  • definiálják azt a módszertant, melyet alkalmazva az autógyártók által leírt magas szintű modellektől eljuthatunk a vezérlőegységeken futó szoftver konfigurációjáig, majd végül a konfiguráció alapján történő végső forráskód generálásáig.


Tematika

A tárgy előadásai során megismerhetitek:

  • az AUTOSAR által leírt fejlesztési folyamatokat,
  • az AUTOSAR által biztosított modellezési lehetőségeket,
  • az AUTOSAR által definiált rétegzett szoftverarchitektúrát és az abban elhelyezkedő szoftvermodulok feladatait,
  • az autóiparban alkalmazott kommunikációs protokollokat (CAN, FlexRay),
  • az autóiparban alkalmazott diagnosztikai megoldásokat (On-board diagnostics).

A tárgy laboratóriumai során egy egész féléves összefüggő feladatot valósíthattok meg, melynek célja egy elképzelt elektromos autó meghajtását irányító vezérlőegység szoftverének elkészítése.

A laborfeladatba beletartozik:

  • a vezérlőegység szoftverkomponenseinek modellezése, implementálása (C nyelven)
  • a vezérlőegység alapvető szoftvermoduljainak konfigurálása
  • a konfiguráció alapján történő kódgenerálás és a szoftver folyamatos kipróbálása
  • a vezérlőegység kommunikációjának vizsgálata
  • a vezérlőegység diagnosztikai funkcióinak implementálása, kipróbálása, vizsgálata.

A labor során egy olyan fejlesztőpanelt használhattok, amin helyet kapott egy DC motor is mely az elektromos autó meghajtó motorját jelképezi. A feladat ennek a motornak az intelligens vezérlése köré épül.

Zárthelyik

2017

A kérdések kidolgozására 45 perc áll rendelkezésre. Összesen öt kérdést kell megválaszolni egyenként 10 (együtt 50) pontért. A kérdésekre kifejtős, de lényegre törő válaszokat várunk.

  1. Mutassa ba az AUTOSAR három pillérét! Mit a tartalma az egyes részeknek?
  2. Definiálja röviden a következő fogalmakat: szoftver komponens, port és interfész (térjen ki a felkínált (provided) és megkövetelt (required) port, illetve a sender-receiver és client-server interfész közötti különbségekre)!
  3. Szeretné AUTOSAR komponensekkel modellezni, majd megvalósítani az alább leírt egyszerű elektromotort szabályozó rendszert.
    A rendszer négy fő komponensből áll:
    • A motor szabályozó algoritmust megvalósító MotorController
    • A teljesítmény elektronika hőmérsékletét mérő Thermometer
    • Az elektromotor kivezetéseinek meghajtásáért felelős InverterDriver
    • A rendszerben fellépő hibákat naplózó és azonnali beavatkozást igénylő helyzeteket kezelő ErrorHandler

    A komponensek között az alábbi kapcsolatok állnak fenn:

    • A Thermometer másodpercenként elküldi a teljesítményelektronika hőmérsékletét a MotorControllernek.
    • A Thermometer tudja jelezni az ErrorHandlernek, ha valamiért nem sikerült a kommunikáció a hőmérő chipper (ez nem kritikus probléma, elég naplózni).
    • A MotorController egy porton fogadja az elérendő motor nyomatékot (ezt a járműbuszról kapja, a referencia jel forrásának további modellezése nem szükséges).
    • A MotorController a bejövő nyomaték kérés alapján milliszekundumonként kiszámolja a referencia áramerősségeket és elküldi az InverterDrivernek.
    • A MotorController tudja jelezni az Errorhandlernek, ha érvénytelen bementetet kapott (nem hihető hőmérséklet, vagy nominális határokon kívül eső nyomaték kérés), ezek nem kritikus problémák, elég naplózni.
    • Az InverterDriver a MotorControllertől kapott referencia áramerősségek alapján kiszámolja a kiadandó pulzusszélesség modulált jelet (ez utóbbit nem szükséges modellezni, úgy tekintjük, hogy az InverterDriver egy komplex device driver, közvetlenül írja a mikrovezérlő PWM perifériáját).
    • Az InverterDriver képes detektálni a teljesítmény elektronikában fellépő rövidzárlatokat, amelyek esetén azonnal le kell állítani a rendszert, ezt nem közvetlenül végzi, hanem az ErrorHandleren keresztül.

    Végezze el a következő statikus modellezési feladatokat:

    • Rajzolja fel a négy komponenst a fent használt nevekkel az AUOTSAR szokásos jelöléseinek megfelelően.
    • Tűntesse fel a komponensek portjait és adjon nekik nevet.
    • Döntse el, hogy a fent felsorolt kommunikációs csatornák közül melyiket célszerű sender-receiver és melyiket client-server elven megvalósítani és a portok ikonjaiban jelölje ezt.
    • Kösse össze a komponensek portjait a fent vázoltaknak megfelelően.
    • Az ábra alatt szövegesen sorolja fel, hogy az egyes portok milyen interfészeket valósítanak meg és ezen interfészek milyen adatelemeket vagy műveleteket tartalmaznak.

    Válaszoljon a következő dinamikus modellezést illető kérdésekre:

    • Milyen eseménnyel célszerű troggerelni a szabályozó algoritmust megvalósító MotorController egyetlen futtatható entitását? Mely portokon mely adatelemekhez kell írási hozzáférést adnunk ennek a futtatható entitásnak?

    Az ErrorHandler komponensnek két futtatható entitása van, az egyik a naplózandó üzenetek feldolgozását, a másik az azonnali beavatkozást igénylő hibajelzések feldolgozását végzi. Milyen eseménnyel célszerű troggerelni ezeket a futtatható entitásokat?

  4. Tegyük fel, hogy egy külső eszköz (TOOL) és egy vezérlőegység (ECU) a CAN transport Protocol használatával kommunikálnak egymással. A TOOL egy hibakódot és hozzá tartozó egyéb információkat szeretne kiolvasni a vezérlőegységből. A kérdés egyértelműen elfér egy üzenetben, míg az arra adódó válasz összesen 4 keret átvitelét igényli. Ábrázolja szekvencia diagramon a két egység közötti kommunikációt! Az ábrán jelölje a keretek típusát és lényeges paramétereit! Milyen mechanizmust alkalmaz a CAN Transport protocol a keretek felcserélődésének, kimaradásának észlelésére?
  5. Az ECU konfigurációs paraméterének (meghatározásuk időpontja szerint) milyen osztályait definiálja a szabvány? Jellemezze röviden az egyes osztályokat!

Céglátogatás

A félév során ellátogatunk a ThyssenKrupp Presta Kft. budapesti fejlesztőközpontjába, ahol bepillantást nyerhettek a valódi fejlesztési munkába is.
https://www.youtube.com/watch?v=RND9PpbOcqc&feature=youtu.be