Forum: Mikrocontroller und Digitale Elektronik CAN-Bus Diagnosesystem


von Hans-Uwe F. (ramrod4004)


Lesenswert?

Es gibt immer wieder Berichte in den KFZ-Foren und aus eigener 
Erfahrung, dass viele unplausible Fehler (DTCs) in den ECUs abgelegt 
werden.
Meiner Einschätzung nach werden die Fehler aber nicht an der CAN-Bus 
Hardware selber untersucht, bzw. vermutet. Es wird selten der CAN-Bus 
als mögliche  Fehlerquelle mit einbezogen.
Für solche Fälle suche ich nach einem einfachen CAN-Bus Analyzer, um 
wenigstens bei der Fehlersuche den CAN-Bus auszuschließen. Ggf. auch mit 
OBDII-Stecker, USB-Anschluss, PC-App, Tablet usw..

Grüße
Uwe

von Christian M. (likeme)


Lesenswert?

Das Wesentliche ist das die Level passen! Dazu genügt ein simples 
2-Kanal Scope mit 100MHz. Wenn du die Error Frames aufspüren möchtest 
dann brauchst teures Equipment vom Vector. Man muss auch damit leben das 
unplausible Fehler irgendwo immer auftauchen. Schlaue Steuergeräte geben 
nur relevante Fehler preis, dumme einfach alles und es passiert viel im 
Auto wenn der Tag lang ist

: Bearbeitet durch User
von Olaf (Gast)


Lesenswert?

Im einfachsten Falle reicht sogar ein Multimeter.

Wenn das Auto aus ist und man 60R zwischen den beiden Leitungen
misst dann weiss man das man die beiden Busabschlusswiderstaende
sieht. Dann kann eigentlich mehr soviel physikalisch falsch sein,
ausser vielleicht ein Wackelkontakt der erst auftritt wenn der
Motor brummt. Aber dann wirklich Oszi...

Olaf

von Hans-Uwe F. (ramrod4004)


Lesenswert?

Genau so ist es. Bei meinem Land Rover leuchtet das gesamte Dasboard wie 
ein Christbaum, wenn beim Starten die Bordspannung unter einen 
bestimmten level sinkt. Da habe ich aber bereits Vorkehrungen getroffen. 
Das CAN-Bus System ist so schwach, dass ein Verlängerungskabel zum 
OBD-Tester die Signale dermaßen "verwürgt" hat, dass Getriebefehler-DTCs 
hochkamen und das VTG ein paar Wochen später getauscht werden musste 
(Dieser Folgeschaden ist aber nicht gesichert).
Falls es keinen Tester <500€ gibt, werde ich wohl leider nur die Pegel 
und Flanken beobachten können. Das bringt aber nicht allzuviel.

von Christian M. (likeme)


Lesenswert?

Wenn die Batterie schwächelt fällt die Bordspannung kurz unter Vmin und 
es schalten sich nach und nach die Geräte verspätet wieder aufs CAN Bus 
Netz -> Weihnachtsbeleuchtung. Starte mit gutem Akku oder 
Starthilfekabel vom Nachbarauto das läuft! Dann guggen wie die 
Masseleitung zur Karo kontaktiert ist. Spannung mit dem Scope zwischen 
GND Akku und Karosse mal messen. GND Wackler sind grausam, sie töten 
Steuergeräte wie ne Fliegenklatsche!

: Bearbeitet durch User
von Alexander (alecxs)


Lesenswert?

Ich stimme dir insofern zu dass Aussetzer in der Kommunikation zwischen 
den Steuergeräten zu Fehler führen können, wenn die ihre Daten nicht 
kriegen (als Folgefehler der unterbrochenen Kommunikation). Dass ein CAN 
Bus durch Signalstörungen irgendwelche Frames zufällig selbst erzeugt 
kann man ausschließen.

Komfort CAN ist zudem fault tolerant funktioniert zur Not auch single 
wire.

Fehler im CAN Bus werden im Fehlerspeicher als solche abgelegt.

von Paul (Gast)


Lesenswert?

Hans-Uwe F. schrieb:
> Es wird selten der CAN-Bus
> als mögliche  Fehlerquelle mit einbezogen.

Es ist auch sehr selten die Hardware selbst. Die kriegt einen EMV Test 
nach Norm und die Standardschaltungen haben sich auch kaum verändert. 
Die SW wird nur bei "Sicherheits-Baugruppen" hinreichend getestet. Meist 
treten solche undefinierten Zustände in der SW auf. Wenn dann noch die 
Systemintegration der Steuergeräte schlecht ist, dann kommt es zu den 
DTCs

Hans-Uwe F. schrieb:
> einfachen CAN-Bus Analyzer

PEAK PCAN

Christian M. schrieb:
> Wenn du die Error Frames aufspüren möchtest
> dann brauchst teures Equipment vom Vector

Ich glaube aber der PEAK kann das auch, hab damit vor 6 Jahren nur mal 
kurz zu tun gehabt, danach gab es Vector Hardware + Software.

Hans-Uwe F. schrieb:
> Das CAN-Bus System ist so schwach,

Die Massanbindung ist da wohl das größere Problem. Die elektrischen 
Abteilungen der Hersteller gehen immer noch wie 1980 davon aus, dass die 
Karosse durchgeschweißt ist und die Masse damit überall ausreichend 
gegeben ist. Dem ist aber nicht so, teilweise werden ganze Karossen nur 
noch geklebt. Wenn ich dann in einen Kotflügel einen Massepunkt setzt, 
ist es mehr oder weniger Glück ob da auch vernüftig Masse anliegt. So 
eine Art Schutzleitermessung wie man es aus der Hausinstallation kennt 
gibt es nicht. Wenn dann noch die Boardspannung schlecht niedrig ist 
kommt es zum Brown Out und deine ECUs antworten nicht mehr korrekt.

Olaf schrieb:
> Aber dann wirklich Oszi...

Und einen Wechselrichter, und einen Trenntrafo, falls der WR das nicht 
schon erledigt. Oder ein Batterie Oszi.

VG Paul

von Alexander (alecxs)


Lesenswert?

Peak PCAN Hardware ist maßlos überteuert, ist auch nur ein CAN Sniffer. 
Zudem nutzlos wenn man über OBD ran geht.

von Paul (Gast)


Lesenswert?

Alexander schrieb:
> Peak PCAN Hardware ist maßlos überteuert, ist auch nur ein CAN Sniffer.
> Zudem nutzlos wenn man über OBD ran geht.

Dann stell doch mal einen Link zu der preiswerten, OBD tauglichen 
Alternative ein.

VG Paul

von Andras H. (kyrk)


Lesenswert?

Nimm doch Vector boxen und CANoe.

von Alexander (alecxs)


Lesenswert?

Über OBD erreichst du nicht den CAN Bus sondern nur das Gateway, welches 
Dir maximal den Diagnose CAN freischaltet (wenn du die KWP2000 ServiceID 
dafür kennst)

Mit einem Mikrocontroller und einem CAN Shield kommst Du direkt an den 
CAN Bus und kannst sniffen.

https://github.com/rnd-ash/W203-canbus#hardware-setup

Für den Low Speed CAN hab ich mir mein eigenen Transceiver gebastelt, da 
es die am Markt nur überteuert gibt.

Beitrag "Re: Meine erste Platine mit TARGET 3001!"

von Alexander (alecxs)


Angehängte Dateien:

Lesenswert?

Christian M. schrieb:
> Das Wesentliche ist das die Level passen! Dazu genügt ein simples
> 2-Kanal Scope mit 100MHz.

Den reinen CAN-Bus betreffend ist es das einzig Sinnvolle. alles andere 
ist nur Softwarespielerei und hat mit dem Thema eigentlich nix mehr zu 
tun.

---

Trotzdem, über OBD ist halt teurer, Tactrix OpenPort 2.0 (China Clone) 
ist erst ab 30,- € zu haben. Im Prinzip geht jedes SAE J2534 pass-thru 
Interface.

Macchina M2 ist ein Arduino Due wenn's nicht so teuer wäre würde ich den 
reversen und selbst clonen.

Hier noch mal die CAN Freischaltung (Wakeup) über OBD genauer 
beschrieben (Chapter 3) - ist natürlich fahrzeugspezifisch und KWP2000 
nur ein Beispiel, gibt noch andere Protolle.

https://github.com/rnd-ash/mercedes-hacking-docs/blob/master/Chapter%201%20Vehicle%20Bus%20Protocols%20and%20Diagnostics.md

---

Aber dann lieber direkt an den CAN-Bus gehen, dann spart man sich den 
ganzen OBD Quatsch, und fertige Libraries gibt's für Arduino oder Teensy 
auch.

Hab noch zwei TJA1055 Transceiver Platinen übrig, bei Interesse zum 
Materialkostenpreis.

: Bearbeitet durch User
von Sebastian (Gast)


Lesenswert?

Alexander schrieb:
> Aber dann lieber direkt an den CAN-Bus gehen, dann spart man sich den
> ganzen OBD Quatsch

Genau. Transceiver an CAN und dann Logikanalysator an RXD vom 
Transceiver.

LG, Sebastian

von Anja (Gast)


Lesenswert?

Hans-Uwe F. schrieb:
> Es wird selten der CAN-Bus
> als mögliche  Fehlerquelle mit einbezogen.

Aus gutem Grund: der CAN Bus gilt als eigensicher.
(fehlerhafte Botschaften werden automatisch erneut gesendet).
Ein Fehlerspeichereintrag erfolgt erst wenn die Botschaft längere Zeit 
nicht durchkommt.

Hans-Uwe F. schrieb:
> wenn beim Starten die Bordspannung unter einen
> bestimmten level sinkt.
Normalerweise wird im Empfänger der Fehler bei niedriger 
Batteriespannung ausgeblendet. GGF hat nicht jedes Steuergerät eine 
Batteriespannungsüberwachung.

Ich würde eher in eine neue Starterbatterie investieren.

Gruß Anja

von Alexander (alecxs)


Lesenswert?

Alexander schrieb:
> Macchina M2 ist ein Arduino Due wenn's nicht so teuer wäre würde ich den
> reversen und selbst clonen.

gerade gefunden, Gerber files für die Platine

https://github.com/macchina/m2-hardware

Software

https://www.electronics-lab.com/hack-car-macchina-m2

: Bearbeitet durch User
von mh (Gast)


Lesenswert?

Hans-Uwe F. schrieb:
> Es wird selten der CAN-Bus
> als mögliche  Fehlerquelle mit einbezogen.

"Unplausible" Fehler soll heißen, dass die Fehler nichts mit dem CAN-Bus 
zu tun haben? Dann den CAN Bus als Fehlerquelle zu vermuten ist aber 
ebenfalls sehr unplausibel.
Fehlerspeicher auslesen befolgt ein Protokoll (üblicherweise UDS). Wenn 
auf dem CAN-Bus Störungen sein sollten, sollte das zuallererst dem CAN 
Bus selbst auffallen (Prüfsumme). Ja, durch das bit Stuffing hat die 
Prüfsumme Schwächen, wenn ganz bestimmte bits Kippen, aber dass das 
passiert ist ebenfalls unplausibel.
Dass irgendwelche Bits kippen sollten, ohne dass es dem CAN Controller 
auffällt und ohne dass das Diagnoseprotokoll "in die Hose geht" ist 
nochmal unwahrscheinlicher.

Wenn der CAN Bus eine Fehlerquelle wäre, würden nicht irgendwelche 
"unplausiblen" DTCs ausgegeben, sondern es würde heißen "DTCs konnten 
nicht ausgelesen werden".

Zusammenfassend lässt sich sagen, den CAN-Bus als Fehlerquelle 
auszuklammern ist durchaus legitim, da für dieses Fehlerbild er mit 
Sicherheit keine ist.

von Alexander (alecxs)


Lesenswert?

Da hab ich aktuell ein Gegenbeispiel, durch Wassereintritt verliert die 
Niveauregulierung manchmal Kontakt und geht auf Störung. Es sind 
Fehlercodes abgelegt wie keine Kommunikation, CAN Bus im 
Eindrahtbetrieb, usw.

Lösche ich den Fehlerspeicher funktioniert alles wieder. Um den Fehler 
zu finden muss ich den CAN Bus elektrisch prüfen. Leider habe ich nur 
ein 20 € Digitaloszilloskop. So ein Canalyzer hilft mir da auch nicht 
weiter.

: Bearbeitet durch User
von Niklas G. (erlkoenig) Benutzerseite


Lesenswert?

mh schrieb:
> Wenn der CAN Bus eine Fehlerquelle wäre, würden nicht irgendwelche
> "unplausiblen" DTCs ausgegeben, sondern es würde heißen "DTCs konnten
> nicht ausgelesen werden".

Dem kann ich nur zustimmen. Der CAN "erzeugt" nicht sporadisch 
Fehlercodes. Höchstens erzeugt eine ECU die Codes wenn Nachrichten 
anderer ECUs fehlen, oder wenn im Code etwas der Art steht "Nimm den 
aktuellen Wert vom CAN, falls nicht vorhanden nehme 0" und später dann 
"Wenn Wert kleiner 123, melde Fehler".

Den CAN mit dem Oszilloskop zu untersuchen ist auch nicht unbedingt 
zielführend; problematische Signale durch "hinschauen" zu identifizieren 
kann schwierig sein. Gerade bei EMV-, Terminierungs- oder Masseproblemen 
kann das Signal ganz leicht verzerrt sein, oder gern auch nur das 
ACK-Bit "komisch" aussehen, was schwer zu erkennen ist. Im Zweifelsfall 
stört man das Signal durch das Oszilloskop selbst, oder durch die 
Masseklemme behebt man das Problem...

Alexander schrieb:
> Um den Fehler
> zu finden muss ich den CAN Bus elektrisch prüfen.

Wie soll das helfen, wenn die Niveau-Regelung sich vom CAN abgemeldet 
hat ("error passive") oder einfach ganz tot ist und die sonstige 
Kommunikation normal läuft? Wenn also die Kommunikation zu dieser ECU 
als gestört gemeldet ist, musst du eben diese ECU untersuchen, wobei der 
Wasserschaden auffallen sollte.

: Bearbeitet durch User
von Alexander (alecxs)


Lesenswert?

Das Steuergerät funktioniert einwandfrei. Ich vermute Korrosion an einem 
der CAN Verteiler. Fehler tritt nur sporadisch auf und nie wenn ich das 
Auto mal in die Finger kriege.

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.