Škoda ECU - program bez větvení

jaro123

Škoda ECU - program bez větvení
« kdy: 13. 09. 2017, 10:45:18 »
Vypada to, ze Skodovky maji v ECU (Engine Control Unit - Ridici jednotka motoru) program, ktery se snazi nepouzivat vetveni. Pro realtime je to docela zajimavy napad. CPU je od Infineonu.
Mate s tim nekdo zkusenosti ?
Jaky programovaci jazyk a prekladac tohle umi ?
Jsou a je neco takoveho opensource ?
« Poslední změna: 13. 09. 2017, 11:02:46 od Petr Krčmář »


v

Re:Skoda ECU - program bez vetveni
« Odpověď #1 kdy: 13. 09. 2017, 10:54:16 »
https://en.wikipedia.org/wiki/Berkeley_Packet_Filter
jinak řízení je často ve formě (výstupy, stav) = f (vstupy, předchozí stav), tam se bez větvení (hlavně skoku na nižší adresu, viz výše) obejít dá

jm

Re:Škoda ECU - program bez větvení
« Odpověď #2 kdy: 13. 09. 2017, 12:54:16 »
Operační systém pouze na základě získaných dat (ať už z eventu nebo z periodického čtení) udělá překlad dle kalibrační tabulky na akci. Prakticky tohle je všechno co ECU dělá když motor běží.
Samotný AutosarOS + podpůrné funkce jsou napsané v C, kalibrační tabulka a pravděpodobně i lookup funkce budou generovány Matlabem na základě matematického modelu motoru v R&D dodavatele ECU.
MCU je TriCore, většinou TC17xx (Nejběžnější jsou TC1766, TC1767). Pro zajímavost v Čechách například Continental vyrábí ECU s TC1791.
Dodavatelé kompilují s kompilátory od WindRiver či Greenhouse (?? Green něco se ta firma jmenuje), nicméně lze sehnat binárky GCC TriCore od Hightec + Eclipse IDE zadarmo. Avšak Hightec nedává svůj zdroják pro GCC.

Felix Domke tu má zajímavou prezentaci o Dieselgate, kde se tématu "tvoření kalibrace" dotýká
https://www.youtube.com/watch?v=qF7E0CYn3mc


robotron

Re:Škoda ECU - program bez větvení
« Odpověď #3 kdy: 13. 09. 2017, 14:21:49 »
Ano, Hightec, to jsou ti znami smejdi, co udelali port gcc a porusili licenci; nedavali zdrojaky a prodavali to. (Mozna, ze uz neprodavaj, nevim.)

ehmmm

Re:Škoda ECU - program bez větvení
« Odpověď #4 kdy: 13. 09. 2017, 15:12:18 »
Kam na tyhle informace chodite?
To mate nekde disassemblovanou ECU?
Fakt by me to zajimalo, jak to ta ECU dela, ze z vahy vzduchu, plynoveho pedalu, lambda sondy a kdoviceho jeste vypocita delku vstriku a predstih.


jm

Re:Škoda ECU - program bez větvení
« Odpověď #5 kdy: 13. 09. 2017, 15:58:10 »
Základní informace o AutosarOS (a tím pádem o ECU) nejsou žádné tajemství. Mrkněte se na https://www.autosar.org/standards/classic-platform/ Zde máte zadarmo popsáno, jak si vytvořit vlastní implementaci Autosaru, včetně doporučených názvů funkcí, jejich popisu a účelu. Kéž by alespoň podobnou dokumentaci měly i OSS projekty.

Pokud vás to fakt zajímá, tak pro staré ECU (ME7.5 [C166] ~ MED9/EDC16[PowerPC]) najdete hodně informací http://www.nefariousmotorsports.com/forum/

Po různých fórech lze sehnat dumpy z aktuální generace (EDC17 / MED17) takže z toho lze také vycházet a použít pro RE.

Zbytek si už musíte domyslet nebo doreverzovat :)

mln

Re:Škoda ECU - program bez větvení
« Odpověď #6 kdy: 13. 09. 2017, 20:08:12 »
Kód: [Vybrat]
Fakt by me to zajimalo, jak to ta ECU dela, ze z vahy vzduchu, plynoveho pedalu, lambda sondy a kdoviceho jeste vypocita delku vstriku a predstih.
neviem ako to robia automobilky, ale ja som popri VŠ v garážovej firme navrhoval simulatory automobilovej elektroniky pre stredné a vysoké školy. Na simulaciu auta mi stačili 8 bitové procesory (viacej kusov) Atmega alebo Atxmega (32 MHz). Benzínový motor je relatívne jednoduchý, je riadený viacerymi funkciami s jednou neznamou (podla skrtiacej klapky), naftový motor je komplikovaný, riadený funkciou dvoch neznámych (tlak paliva (tlak je navyše ešte závislý otáčok motora) a dĺžka vstreku). Ostatné senzory (lambda, teplota vzduchu, prietok vzduchu) sú len na jemne doladenie motora a emisie.

Cele je to len o meraní vstupných napatí (AD prevodník) alebo dlžky pulzu (Input capture na timeri), filtrovaní rušenia, a tzv mapách (predvypočítana funkcia o 2 neznámych - atmega nema MAC ani FPU na výpočet). Dovod prečo som nepoužil riadny DSP je ten že som vtedy vedel programovať iba atmegy.

Ja som tie mapy získal na zaklade merania parametrov skutočného auta na výkonovej meracej stolici (parametre pri roznych otáčkach a záťaži motora, asi 20 kombinácii),  navrhol si pomocky na meranie signálov, pomocou interpolacie v matlabe odhadol matematický tvar funkcie (curve fitting toolbox v matlabe) a nanovo vytvoril kompletnú mapu na pc a nasledne ju nahral ako viacrozmerné pole do mikrokontroléra.

ehmmm

Re:Škoda ECU - program bez větvení
« Odpověď #7 kdy: 13. 09. 2017, 20:58:11 »
Felix Domke tu má zajímavou prezentaci o Dieselgate, kde se tématu "tvoření kalibrace" dotýká
https://www.youtube.com/watch?v=qF7E0CYn3mc

Zatim jsem se vzmohl jen na tu prednasku na youtube. Az ten agitacni konec mi to prislo zajimave.

Ostatné senzory (lambda, teplota vzduchu, prietok vzduchu) sú len na jemne doladenie motora a emisie.

No a co to je to jemne doladenie?

trr

Re:Škoda ECU - program bez větvení
« Odpověď #8 kdy: 13. 09. 2017, 21:31:55 »
Větvení se v ECU standartně používá. Záleží jakou řídicí jednotku v motoru máš na mysli. Některé osobní auta můlžou mít celkově až 70 řídících jednotek. V motoru jich může být několik komunikují spolu po sběrnicích CAN, LIN, FlexRay. Na tyhle sběrnice bývají napojené i senzory a aktuátory.
V autech se využívají realtime operační systémy postavené na standardu OSEK(Offene Systeme und deren Schnittstellen für die Elektronik in Kraftfahrzeugen), ten má několik implementací (třeba OSEK-VDX). Používají se i jiné operační systémy, podle toho co má dana ECU za úkol.
Řídicí systémy se vyvíjejí podle standartu AUTOSAR, což je spíše než operační systém, přesněji architektura a metodika.
Na nejnižší úrovni se používá ASM, ale ten je spíše v menšině. Vzhledem k tomu, že normy vylučují pro dopravní prostředky jazyky, kde není přímá kontrola paměti, tak se používá C/C++. Matematické modely se implementují často v Matlabu a kód se potom přegeneruje do C. Požadavky na to jakým způsobem implementuje a testuje závisí na bezpečnostní úrovni dané SW/HW komponenty.

A taky by mě zajímalo jak na to dotyčny přišel, to musí být starší auto.


Gumidek

Re:Škoda ECU - program bez větvení
« Odpověď #9 kdy: 13. 09. 2017, 23:16:05 »
Greenhouse (?? Green něco se ta firma jmenuje)zadarmo. Avšak Hightec nedává svůj zdroják pro GCC.

Je to Green Hills.


jaro123

Re:Škoda ECU - program bez větvení
« Odpověď #10 kdy: 14. 09. 2017, 10:28:31 »
Větvení se v ECU standartně používá. Záleží jakou řídicí jednotku v motoru máš na mysli. Některé osobní auta můlžou mít celkově až 70 řídících jednotek. V motoru jich může být několik komunikují spolu po sběrnicích CAN, LIN, FlexRay. Na tyhle sběrnice bývají napojené i senzory a aktuátory.
V autech se využívají realtime operační systémy postavené na standardu OSEK(Offene Systeme und deren Schnittstellen für die Elektronik in Kraftfahrzeugen), ten má několik implementací (třeba OSEK-VDX). Používají se i jiné operační systémy, podle toho co má dana ECU za úkol.
Řídicí systémy se vyvíjejí podle standartu AUTOSAR, což je spíše než operační systém, přesněji architektura a metodika.
Na nejnižší úrovni se používá ASM, ale ten je spíše v menšině. Vzhledem k tomu, že normy vylučují pro dopravní prostředky jazyky, kde není přímá kontrola paměti, tak se používá C/C++. Matematické modely se implementují často v Matlabu a kód se potom přegeneruje do C. Požadavky na to jakým způsobem implementuje a testuje závisí na bezpečnostní úrovni dané SW/HW komponenty.

A taky by mě zajímalo jak na to dotyčny přišel, to musí být starší auto.

OK, takhle se da mluvit fakt dlouho. Jako by bylo problem neco udelat. Vis co? Otevri si kapotu svoji nove Octavie, vyfit si ECU - ta hlinikova krabicka 20x15x5 cm. Najdi si na ulozto.cz firmware  a dokumentacku kty ECU. Nastartuj Ida Pro a mrkni se na vetveni. pak sem napis dalsi prispevek. Ostatni uvahy sou off-topic a nech si je.

asdfsaf

Re:Škoda ECU - program bez větvení
« Odpověď #11 kdy: 14. 09. 2017, 10:48:18 »
 Vzhledem k tomu, že normy vylučují pro dopravní prostředky jazyky, kde není přímá kontrola paměti, ...

můžete být konkrétní?

trr

Re:Škoda ECU - program bez větvení
« Odpověď #12 kdy: 14. 09. 2017, 11:00:38 »
OK, takhle se da mluvit fakt dlouho. Jako by bylo problem neco udelat. Vis co? Otevri si kapotu svoji nove Octavie, vyfit si ECU - ta hlinikova krabicka 20x15x5 cm. Najdi si na ulozto.cz firmware  a dokumentacku kty ECU. Nastartuj Ida Pro a mrkni se na vetveni. pak sem napis dalsi prispevek. Ostatni uvahy sou off-topic a nech si je.

Jo dalo by se o tom mluvit hodně dlouho. A v tomhle případě by to mohl byt problém, protože
1. disassembling je mimo zákon a SW v autech rozhodne není free ani opensource.
2. Tahle jednotka očividně nebyla zabezpečená proti dissasemblingu.

Dám ti dobrou radu pokud chceš auto používat k čemu je určeno, raději to nezkoušej na jiných ECU, nebo na jiných značkách aut, nebo třeba i na Škodě s aktualizovaným SW. Neautorizovaný zásah do ECU by mohl vést nejen k právním následkům, ale i technickým.

trr

Re:Škoda ECU - program bez větvení
« Odpověď #13 kdy: 14. 09. 2017, 11:05:20 »
Vzhledem k tomu, že normy vylučují pro dopravní prostředky jazyky, kde není přímá kontrola paměti, ...

můžete být konkrétní?

Norma ISO 26262 - funkční bezpečnost
https://en.wikipedia.org/wiki/ISO_26262


jm

Re:Škoda ECU - program bez větvení
« Odpověď #14 kdy: 14. 09. 2017, 11:35:00 »
Jo dalo by se o tom mluvit hodně dlouho. A v tomhle případě by to mohl byt problém, protože
1. disassembling je mimo zákon a SW v autech rozhodne není free ani opensource.

To nemáte tak zcela pravdu
https://en.wikipedia.org/wiki/Reverse_engineering#European_Union
Jinými slovy, když se na to doma podíváte a nebude zveřejňovat co jste pomocí RE zjistil, ani se snažit vytvořit konkurující produkt, je to zcela legální.
Pokud narážíte na fakt, že v podpisu smlouvy k autu je zakázáno výrobcem RE čehokoliv, tak kdo říká, že to musíte dělat na dílech z toho daného auta na které se vztahuje smlouva.

2. Tahle jednotka očividně nebyla zabezpečená proti dissasemblingu.
Žádná jednotka ani firmware není. Jenom je potřeba překonat "překážky" které brání vyčtení firmware z jednotky.