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


von Anfenger (Gast)


Angehängte Dateien:

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

von Dieter (Gast)


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.

von Otto (Gast)


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

von Anfenger (Gast)


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

von Matthias B. (turboholics)


Lesenswert?

Bei so ziemlich jeder "Demo"- Diagnosesoftware bestehen 
Funktionseinschränkungen, besonders gern bei Sonderfunktionen.
Beschreibung im Playstore lesen, was bei der Demoversion alles gesperrt 
ist.

VG

von Anfenger (Gast)


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

von Dieter (Gast)


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.

von Otto (Gast)


Lesenswert?

Verstehe ich das richtig, dass du nur nicht mehr auf den Body-Computer 
zugreifen kannst? Alle anderen ECU kannst du noch ansprechen?

von Anfenger (Gast)


Lesenswert?

Hallo Otto,

Otto schrieb:
> Verstehe ich das richtig, dass du nur nicht mehr auf den Body-Computer
> zugreifen kannst? Alle anderen ECU kannst du noch ansprechen?
ja das ist so richtig

Gruß Klaus

von Anfenger (Gast)


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

von Otto (Gast)


Lesenswert?

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)?

von Olli Z. (z80freak)


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.

: Bearbeitet durch User
von Anfenger (Gast)


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

von Nichtverzweifelter (Gast)


Lesenswert?

Anfenger schrieb:
> Ich weis nur nicht, wie ich den Bodycomputer wieder in einen
> Diagnostizierbaren Zustand versetzen kann,

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

von Nichtverzweifelter (Gast)


Lesenswert?

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

von Mini C. (minicomp)


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/

von Anfenger (Gast)


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

von Anfenger (Gast)


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

von Olli Z. (z80freak)


Lesenswert?

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

von Anfenger (Gast)


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

von Olli Z. (z80freak)


Lesenswert?

Anfenger schrieb:
> Ich habe bisher nur einmal sie Fahrzeugbatterie abgeklemmt, habe aber
> vorher eine Stützbatterie im Motorraum angeklemmt.

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.

von Anfenger (Gast)


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

von Anfenger (Gast)


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

von Jens R. (tmaniac)


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.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.