Forum: Mikrocontroller und Digitale Elektronik Bitte um Hilfe bei CAN-Bussignal


von Manfred S. (mandinice)


Angehängte Dateien:

Lesenswert?

Hallöchen

Ich habe eine CAN-Bus mit mehreren Geräten.

Eines der Geräte empfängt nach einiger Zeit keine Messages mehr und muss 
reseted werden.

Bei der Fehlersuche bin ich auf das beiliegende Signal gestossen.
Dieses Signal tritt in fixen Interval auf.
Ich konnte den Teilnehmer der es verusacht wahrscheinlich auch ausfindig 
machen. Er funktioniert aber einwandfrei.

Mich würde nun nur interessieren :
Wie kann ich so ein Signal deuten ? Worauf deutet es hin ?


Danke Euch.

mfG
Mandi

von Alex B. (Firma: Ucore Fotografie www.ucore.de) (alex22) Benutzerseite


Lesenswert?

Hast du Zugang zum Quellcode des Geräts?

Was mir spontan einfällt:

-Die meisten CAN-Knoten besitzen Fehlerzähler. Wenn die Anzahl der 
fehlerhaft empfangenen Botschaften einen Grenzwert übersteigt "trennen" 
sich die Geräte vom Bus (Bus-Off-Mode). Das kann erklären, warum du dein 
Gerät neu starten musst und warum es dann eine gewisse Zeit wieder 
läuft.

-Das Signal im Anhang kann von eben diesem Gerät hervorgerufen werden, 
wenn es "denkt" eine fehlerhafte Botschaft auf dem CAN "gesehen" zu 
haben (jeder Knoten bestätigt jede Botschaft (auf Hardware-Ebene) auf 
Fehlerfreiheit, unabhängig davon, ob das jeweilige Gerät diese Botschaft 
überhaupt auf Software-Ebene berücksichtigt).

-Mögliche Gründe, warum das Gerät "denkt" eine Botschaft sei fehlerhaft:
--Die Taktrate eines Senders im Bus ist zu ungenau.
--Der Abtastzeitpunkt des Geräts ist ungünstig gewählt (i.d.R. sollte er 
m.W.n. bei ca. 87,5 % liegen).
--Der Bus ist ungünstig verkabelt (lange Stichleitungen, fehlerhafte 
Abschlüsse, Leiterschleifen anstatt verdrillter Leitungen etc.).
--Das Gerät tastet (bei hohen Bitraten) 3x anstatt 1x ab.

Alle diese Dinge verursachen Fehler, die eventuell nicht auftreten, wenn 
man das vermeintlich fehlerhafte Gerät einzeln an einen PC anschließt, 
da sie eine Wechselwirkung aller Teilnehmer in einem Bus bedingen.

Kannst du vielleicht noch nähere Informationen darüber geben:
-Wie viele Knoten befinden sich im Bus?
-Was ist das vermeintlich fehlerhafte Gerät?
-Wie ist der Bus verkabelt (Länge, Stichleitungen, Terminierung etc.)?
-Bitrate? Buslast?

Was du versuchen kannst: Es kann sein, dass das von dir beschriebene 
Gerät nur Botschaften eines anderen Knotens als fehlerhaft ansieht. Du 
könntest also sequentiell jeweils einen anderen Knoten entfernen und 
untersuchen, ob der Fehler weiterhin besteht.

Hoffe dir damit geholfen zu haben.

Gruß,
Alex

von Manfred S. (mandinice)


Lesenswert?

Hallo Axel

Und Danke für die mehr als umfangreiche Antwort.

Ich habe den Fehler gefunden ( habe zum Glück auch den Sourcecode und 
auch einen Programmer )

Es waren bei einem Gerät die Ausgänge für den CAN falsch configuriert.
Diese Gerät hat die Signale erzeugt und das andere Gerät hat das wohl 
als Fehler erkannt und dann mit dem Zähler abgeschaltet.

Muss nun feststellen wie ich den Zähler oder das Abschalten auslesen 
kann um den CAN neu zu initialisieren.

Danke.

mfG
Mandi

von Alex B. (Firma: Ucore Fotografie www.ucore.de) (alex22) Benutzerseite


Lesenswert?

Manfred Schön schrieb:
> Hallo Axel

Alex (!) ;-)

> Und Danke für die mehr als umfangreiche Antwort.

Gerne.

> Ich habe den Fehler gefunden ( habe zum Glück auch den Sourcecode und
> auch einen Programmer )

Super!

> Es waren bei einem Gerät die Ausgänge für den CAN falsch configuriert.
> Diese Gerät hat die Signale erzeugt und das andere Gerät hat das wohl
> als Fehler erkannt und dann mit dem Zähler abgeschaltet.

Hatte ich ja auch als mögliche Ursache vermutet.

> Muss nun feststellen wie ich den Zähler oder das Abschalten auslesen
> kann um den CAN neu zu initialisieren.

Besser wäre es aus meiner Sicht den Ursprung des Fehlers zu korrigieren 
und nicht die Folgen, sprich: Das Gerät so konfigurieren, dass der CAN 
fehlerfrei läuft.

Gruß,
Alex

von Manfred S. (mandinice)


Lesenswert?

Hallo Alex

>> Besser wäre es aus meiner Sicht den Ursprung des Fehlers zu korrigieren

Natürlich. Das System lief vor dem Problem auch bereits mehere Wochen 
ohne Probleme.

Ich möchte nur als Sicherheit auch den Zähler abfragen.
Es reicht ja ein kleines can_init und er läuft wieder.

mfG
Mandi

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.