OBD: ISO 14229 / UDS Kommunikationsproblem mit Fiat Marelli 11 Body Computer

Gast #7343184
Lesenswert?

Hallo zusammen,

ich habe mir vor 2 Jahren einen ELM 327 OBD Bluetooth Diagnose Stecker und Adapterkabel für CAN H, für meinen Fiat Ducato 2017 gekauft und die Software AlfaObd Demo auf meinem Handy installiert.

Alles funktionierte prima, hatte Zugriff auf alle Steuergeräte auf dem CAN H und L Bus und konnte auf alle Service / Statusinformationen zugreifen. Bis auf den Body Computer, dort habe ich einmal den Status ausgelesen und habe seitem keinen Zugriff mehr.

Mittlerweile habe ich auch PC Diagnose Software verschiedener Anbieter und Versionen erprobt, immer mit dem gleichen Ergebnis, die Kommunikation wird abgebrochen. Ich habe mich mit dem Kommunikationsproblem auseinandergesetzt und den Datenaustausch zwischen dem Handy und dem ELM 327 OBD Adapter mitgeschnitten, mit folgendem Ergebnis: Cr, >, Steuerzeichen aus dem EML 327 standard.

Nach Initialisierung der ELM 327 Parameter mit den AT Befehlen, wird die "Diagnostic Session Control" SID 0x10 Subfunction 0x03 "Extendet Diagnostic Session": 1003Cr an das Steuergerät gesendet. In den meisten Fällen ist die Antwort des Diagnose Adapters: NO DATACrCr> => keine Antwort des Steuergerätes innerhalb der Wartezeit durch ATST19 = 100ms.

In wenigen Fällen Antwortet der Bodycomputer mit: 7F2278CrCr> das ich wie folgt Interpretiere: Response ID: 0x7F: Negative Response, Sub Function: 0x22 ??? Sollte doch 0x10 sein ??, Laut meinen Unterlagen gibt es einen Negative Response code 0x22: "Conditions Not Correct", jedoch keinen Code: 0x78.

Gemäß ISO 14229: 0x22: "conditionsNotCorrect" 0x78: "requestCorrectlyReceived-ResponsePending"

Kann mir jemand helfen, die Antwort richtig zu Interpretieren, als auch Möglichkeiten aufzuzeigen, das Steuergerät in einen diagnosefähigen Zustand zu versetzen.

Mit besten Dank im voraus

Gruß Klaus

Angehängte Dateien:
Gast #7343238
Lesenswert?

Anfenger schrieb:

In wenigen Fällen Antwortet der Bodycomputer mit: 7F2278CrCr> das ich wie folgt Interpretiere: Response ID: 0x7F: Negative Response, Sub Function: 0x22 ??? Sollte doch 0x10 sein ??,

0x22 ist "Read Data By Identifier", also wurde dieser Service aufgerufen. Dass als Antwort 0x78 ("Request correctly received, but response is pending") kommen kann ist durchaus üblich, dann kommt die Antwort später.

Gast #7343239
Lesenswert?

Hallo,

Anfenger schrieb:

Hallo zusammen, ich habe mir vor 2 Jahren einen ELM 327 OBD Bluetooth Diagnose Stecker und Adapterkabel für CAN H, für meinen Fiat Ducato 2017 gekauft und die Software AlfaObd Demo auf meinem Handy installiert. Alles funktionierte prima, hatte Zugriff auf alle Steuergeräte auf dem CAN H und L Bus und konnte auf alle Service / Statusinformationen zugreifen. Bis auf den Body Computer, dort habe ich einmal den Status ausgelesen und habe seitem keinen Zugriff mehr. Mittlerweile habe ich auch PC Diagnose Software verschiedener Anbieter und Versionen erprobt, immer mit dem gleichen Ergebnis, die Kommunikation wird abgebrochen. Ich habe mich mit dem Kommunikationsproblem auseinandergesetzt und den Datenaustausch zwischen dem Handy und dem ELM 327 OBD Adapter mitgeschnitten, mit folgendem Ergebnis: Cr, >, Steuerzeichen aus dem EML 327 standard. Nach Initialisierung der ELM 327 Parameter mit den AT Befehlen, wird die "Diagnostic Session Control" SID 0x10 Subfunction 0x03 "Extendet Diagnostic Session": 1003Cr an das Steuergerät gesendet. In den meisten Fällen ist die Antwort des Diagnose Adapters: NO DATACrCr> => keine Antwort des Steuergerätes innerhalb der Wartezeit durch ATST19 = 100ms. In wenigen Fällen Antwortet der Bodycomputer mit: 7F2278CrCr> das ich wie folgt Interpretiere: Response ID: 0x7F: Negative Response, Sub Function: 0x22 ??? Sollte doch 0x10 sein ??, Laut meinen Unterlagen gibt es einen Negative Response code 0x22: "Conditions Not Correct", jedoch keinen Code: 0x78. Gemäß ISO 14229: 0x22: "conditionsNotCorrect" 0x78: "requestCorrectlyReceived-ResponsePending" Kann mir jemand helfen, die Antwort richtig zu Interpretieren, als auch Möglichkeiten aufzuzeigen, das Steuergerät in einen diagnosefähigen Zustand zu versetzen. Mit besten Dank im voraus Gruß Klaus

funktioniert die Software mit welcher zuerst getestet wurde auch nicht mehr?

Was hast du seitdem geändert? Evtl. ein anderes Kabel verwendet? Hast du einen Abschlusswiderstand verwendet?

Gruß Otto

Gast #7343266
Lesenswert?

Hallo Otto,

funktioniert die Software mit welcher zuerst getestet wurde auch nicht mehr?

Antwort: Wurde durch ein Software update auf dem Handy vom Playstore überschrieben, Alte Version nicht mehr feststellbar. Die Kommunikation wird von der Android, als auch Windows software, auch anderer Hersteller,abgebrochen. (in Summe 3 verschiedene :-( )

was hast du seitdem geändert? Evtl. ein anderes Kabel verwendet? Hast du einen Abschlusswiderstand verwendet?

Antwort: Offensichtlich korrekt, kein Widerstand vorhanden, gleiche Kabel..... Info: alle anderen Steuergeräte auf dem H und L CAN Bus lassen sich einwandfrei Diagnostizieren.

Hallo Dieter,

0x22 ist "Read Data By Identifier", also wurde dieser Service aufgerufen. Dass als Antwort 0x78 ("Request correctly received, but response is pending") kommen kann ist durchaus üblich, dann kommt die Antwort später.

Die Antwort des Steuergerätes passt nicht in das UDS Schma einer Negativen Antwort:

Da die Funktion 0x10 aufgerufen wurde passt die Antwort 0x22 nicht gem. UDS Standard, auch 0x78 ist kein NRC Code.

Gruss Klaus

Gast #7343293
Lesenswert?

Hallo Matthias,

die Diagnose Funktionen haben in der Demo Version keine einschränkung. Die verwendeten Windows Voll Versionen brechen die Kommunikation an der gleichen stelle ebenfalls ab. siehe EML 327 Protokolldatei

Gruß klaus

Gast #7343314
Lesenswert?

Anfenger schrieb:

Die Antwort des Steuergerätes passt nicht in das UDS Schma einer Negativen Antwort:

Da die Funktion 0x10 aufgerufen wurde passt die Antwort 0x22 nicht gem. UDS Standard, auch 0x78 ist kein NRC Code.

Dann solltest Dir vielleicht mal die ISO 14229-1 ansehen, natürlich ist 0x78 ein möglicher Response Code. Wenn Du ein vernünftiges Log der CAN Kommunikation hättest könntest Du schauen was genau passiert. Der ELM_327_Protokolle.txt bringt nichts.

Gast #7343349
Lesenswert?

Hallo Dieter,

hab nochmal vielen Dank für deine Rückmeldung, ja du hast recht 0x78 ist sehr wohl ein Response Code gem. ISO 14229.

Die Anfrage an das Steuergerät: 1003

0x10 SID "Diagnostic Session Control" 0x03 Subfunction "Extendet Diagnostic Session"

Wenn ich dich richtig verstehe, dann ist die Antwort des Diagnose Adapters: 7F2278 wie folgt zu Interpretieren:

0x7F: Negative Response 0x22 Service SID: Read Data By Identifier 0x78 NRC requestCorrectlyReceived-ResponsePending

Auch wenn zuvor eine "Diagnostic Session Control" 0x10 angefragt wird, kann die negative Antwort sich auf eine vorhergehende Anfrage "Read Data By Identifier" 0x22 beziehen.

Dann würde der Body Computer seit Dezember 2021 in diesem Problem stecken. Das das Fahrzeug inzischen 100te mal gestartet, verschlossen, Steuergeräte schlafen gelegt, von der Spannungsversorgung getrennt..... Ich ging bisher davon aus, wenn nicht regelmäßig 0x3E "Tester Present" an das Steuergerät gesendet wird, die Diagnostic Session abgebrochen und die normale Default Session aktiviert wird.

Wie bekomme ich die Kommunikation wieder ans laufen ?

Gruß klaus

#7345067
Lesenswert?

Ist es nicht eher wahrscheinlich das das BCM zur Herstellung einer Diagnosesitzung einen Sicherheitscode erwartet und vorher alle Anfragen dieser Art ablehnt? Wie schaut es denn mit einfachen Abfragen aus, wie z.B. Modulnamen/Typennummern? Mit einem ELM Chipsatz bist Du schon relativ weit oben im OSI-Modell, evtl. wäre es erkenntnisreicher mit einem Lowlevel CAN Interface anzufangen, z.b. was SLCAN kompatibles (gibts auch für STM32 und Arduino), da hast Du mehr Kontrolle über die Frames und Antworten.

Gast #7345280
Lesenswert?

Hallo zusammen,

zuersteinmal vielen Dank für Eure Beteiligung und Antworten.

Hallo Otto,

Otto schrieb:

Ich verstehe das so, dass die Bedingungen für den Zugriff auf den BC nicht erfüllt sind. Evtl. hast du damals zufällig die richtigen Bedingungen hergestellt (z. B. ZV)?

Bei diesem Fahrzeug ist nur Vorraussetzung, das das der Zündschlüssel auf Betriebsstellung ist. Sonst sind keine Voraussetzungen zu erfüllen.

Hallo Olli,

Olli Z. schrieb:

Ist es nicht eher wahrscheinlich das das BCM zur Herstellung einer Diagnosesitzung einen Sicherheitscode erwartet und vorher alle Anfragen dieser Art ablehnt?

Das CAN Bus System des Fahrzeug verfügt noch nicht über ein SGW Security-Gateway. Ein Sicherheitscode ist nur für das Schlüssel anlernen erforderlich.

Da ich bereits einmal Zugriff hatte, als auch über Protokollierte Diagnosesitzungen von Kollegen mit dem gleichen Body Computer verfüge, weiss ich, wie der Soll Ablauf unter Idealbedingungen abläuft.

Olli Z. schrieb:

Wie schaut es denn mit einfachen Abfragen aus, wie z.B. Modulnamen/Typennummern?

Dafür muss ich ja ersteinmal eine Diagnose-Sitzung starten, die wird jedoch mit der Fehlermeldung abgelehnt.

Olli Z. schrieb:

Mit einem ELM Chipsatz bist Du schon relativ weit oben im OSI-Modell, evtl. wäre es erkenntnisreicher mit einem Lowlevel CAN Interface anzufangen,

Eigentlich bin ich ja froh darüber, das ich auf diese Schicht Zugriff habe, da ich dort mit vorhandener Soft und Harware und mit überschaubaren Programmieraufwand arbeiten kann. Ich zweifle ja den Telegramminhalt nicht an, es gibt deshalb für mich noch keinen Grund tiefer in die Protokollschicht abzutauchen. Frage: was wird dann besser ?

Ich weis nur nicht, wie ich den Bodycomputer wieder in einen Diagnostizierbaren Zustand versetzen kann, ohne die gespeicherten Inhalte zu verlieren, weil ich davon noch keine Datensicherung habe.

Gruß klaus

#7345341
Lesenswert?

Mit einem normalen ELM327 kommt man meines Wissens nicht überall dran. Kann es sein das du ein "Adapter"-Kabel benötigst um Zugriff auf das entsprechende Modul zugreifen zu können? https://electronic-fuchs.de/c/produkte/multiecuscan/adapter Ich hatte mal (Privat) was deaktivieren lassen und die dabei Verwendete Software (Multiecuscan) verlangte ein Adapter-Kabel dazwischen geschaltet um an das dazu entsprechende Steuergerät zu kommen. https://multiecuscan.de/

Gast #7345405
Lesenswert?

Hallo Nichtverzweifelter,

Nichtverzweifelter schrieb:

indem Du ihn einmal "AU machen" lässt.

kannst du mir Bitte "AU machen" etwas länger ausführen ?

AU = Abgas Untersuchung ?

Hallo Mini,

Mini C. schrieb:

Mit einem normalen ELM327 kommt man meines Wissens nicht überall dran. Kann es sein das du ein "Adapter"-Kabel benötigst

"normalen ELM327 kommt man meines Wissens nicht überall dran" :-) doch, wenn man weiss welche Services man Adressieren muß, als auch die Antwort richtig interpretieren.

"Kann es sein das du ein "Adapter"-Kabel benötigst" ja, ist im Einsatz und funktioniert

Gruß Klaus

Gast #7345659
Lesenswert?

Hallo Nichtverzweifelter,

Nichtverzweifelter schrieb:

Nachtrag: Erfahrungswert aus Fiat-Autohaus. Ich weiß, klingt erst mal nicht plausibel.

das ist schon plausibel, denn bei dem AU Vorgang wird wohl eine besondere "Diagnostic Session Control" aufgerufen, aber welche ist das ? Darüber habe ich keine Unterlagen.

Der Hinweis mit der AU ist vollkommen berechtigt:

Wilde Vermutung: möglicherweise wurde der AU Diagnose Zustand durch abziehen des OB Steckers einfach unterbrochen und im Sinne des Steuergerätes nicht korrekt beendet. Denn das Fahrzeug war im Mai 2022 bei einer HU / AU, erst danach habe ich gemerkt, das ich keinen Zugriff auf den Bodycomputer habe.

Wer kann hierzu Informationen beisteuern ?

Gruß Klaus

Gast #7345729
Lesenswert?

Hallo Olli,

Olli Z. schrieb:

Das würde aber ja bedeuten das sich das BcM den Sessionzustand im Flash/EEPROM ablegt anstelle im RAM. Ist das plausibel?

Ich habe bisher nur einmal sie Fahrzeugbatterie abgeklemmt, habe aber vorher eine Stützbatterie im Motorraum angeklemmt. Aus den mir vorliegenden Erfahrungsberichten nach abklemmen der Fahrzeugbatterie geht von Verlust von Datum / Uhrzeit bis zum verlust aller Settings, angelernten Werten und Statistik Daten. Das möchte ich ersteinmal vermeiden.

Gruß Klaus

Gast #7345787
Lesenswert?

Olli Z. schrieb:

Ja, dann kann das durchaus sein, auch wenn ich eigentlich erwarten würde das die Firmware den UDS Status "Tester Present" laufend abfragt und bei ausbleiben sämtliche Sessions beendet.

So habe ich auch schon gedacht,aber dem ist wohl nicht so. Wie kann ich die offensichtlich noch laufende Session abbrechen?

Gruß Klaus

Gast #7348718
Lesenswert?

Hallo zusammen,

habe heute nochmals diverse Tests durchgeführt:

Einstellung der ELM327 Parameter wurde die Timeout Zeit auf 1000 msec geändert, ebenso die Antwort-Anfragezeit auf 100msec

Ergebnis:

alle Anfragen an den Body Comuter:

0x1003 SID "Diagnostic Session Control" Subfunction "Extendet Diagnostic Session"

0x22F1A5 SID "Read Data By Identifier" Adresse 0xF1A5

0x3E00 SID "Tester Present" Subfunction 0x00

0x1001 SID "Diagnostic Session Control" Subfunction "Default Diagnostic Session"

0x3E00 SID "Tester Present" Subfunction 0x00

0x1092 SID "Diagnostic Session Control" Subfunction 0x92

0x3E01 SID "Tester Present" Subfunction 0x01

In den meisten Fällen ist die Antwort des Diagnose Adapters: NO DATACrCr> => keine Antwort des Steuergerätes innerhalb der Wartezeit durch ATSTFC = 1000ms. In wenigen Fällen 0x7F2278 0x7F: Negative Response 0x22 Service SID: Read Data By Identifier 0x78 NRC requestCorrectlyReceived-ResponsePending

Ich bin noch auf der Suche nach informationen, was bei der AU Untersuchung über die Diagnose Steckdose so abgeht...

Wilde Vermutung: oder eine abgebrochene Diagnosesitzung über die K-line ? Gibt es hierzu Erfahrungen oder Hinweise ?

leider hab ich dafür kein Diagnose Adapter

Gruß Klaus

#7349194
Lesenswert?

Der Tip mit der AU ist absolut ziellos. Bei der Abgasuntersuchung wird allein auf das Motorsteuergerät, bzw über das Gateway auf die Standard OBD Dienste zu gegriffen. Alle anderen Steuergeräte wie eben dein Bodycomputer werden ignoriert.

Wenn du beim Batteriewechsel mit Stützbatterie gearbeitet hast, wäre es noch ein Versuch das Steuergerät einzeln zu trennen. Dann wären halt nur die darin gespeicherten Daten weg. Wobei viele Werte eigentlich im EEPROM gespeichert sein müssten.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren