Forum: Mikrocontroller und Digitale Elektronik Oszi CAN Triggern - ohne Protokol


von Phil (Gast)


Lesenswert?

Hallo,

Mein RTB2004 kann leider kein CAN Bus auslesen(zusatz $$). Ich bräuchte 
jedoch eine Möglichkeit irgendwie einen Trigger zu setzen, sobald eine 
Nachricht auf dem Bus liegt.. Was gäbe es da für Möglichkeiten?
Der Can bus bei uns im Labor zeigte immer ein regelmäßiges Muster, 
obwohl keine Daten gesendet wurden. ?! Müsste bei inaktivität nicht ein 
konstanter Ruhepegel zu beobachten sein?

von Random .. (thorstendb) Benutzerseite


Lesenswert?

Kenne mich nicht mit CAN aus, aber gibt es da ein Time-Ereignis, auf 
dessen Länge man triggern kann?
Z.B. kann man den DMX Start sehr gut mit Trigger "Falling Edge" + 
"Timeout > 80µs" triggern.

von Volker S. (vloki)


Lesenswert?

Phil schrieb:
> Müsste bei inaktivität nicht ein
> konstanter Ruhepegel zu beobachten sein?

Versuchst du evtl. einen CAN-Bus mit nur einem Gerät zu messen?

Eine Gerät schickt eine Nachricht unter Umständen so lange immer wieder, 
bis diese von einem Anderen mit einem Ack bestätigt wird. Wenn kein 
anderer Busteilnehmer da ist ewig, wenn nicht irgendwo ein 
Abbruchkriterium festgelegt ist...

von Phil (Gast)


Lesenswert?

Random .. schrieb:
> Kenne mich nicht mit CAN aus, aber gibt es da ein Time-Ereignis,
> auf
> dessen Länge man triggern kann?
> Z.B. kann man den DMX Start sehr gut mit Trigger "Falling Edge" +
> "Timeout > 80µs" triggern.

Ich habe versucht auf die Länge zu triggern, bzw wenn diese 
unterschritten wird, wenn daten ankommen-ohne Erfolg

Volker S. schrieb:
> Phil schrieb:
>> Müsste bei inaktivität nicht ein
>> konstanter Ruhepegel zu beobachten sein?
>
> Versuchst du evtl. einen CAN-Bus mit nur einem Gerät zu messen?
>
> Eine Gerät schickt eine Nachricht unter Umständen so lange immer wieder,
> bis diese von einem Anderen mit einem Ack bestätigt wird. Wenn kein
> anderer Busteilnehmer da ist ewig, wenn nicht irgendwo ein
> Abbruchkriterium festgelegt ist...

Leider nicht, es sind mehrere Teilnehmer am Bus. Daher verstehe ich 
nicht woher dieses wiederholende Muster zu sehen ist.

von Volker S. (vloki)


Lesenswert?

Phil schrieb:
> Ich habe versucht auf die Länge zu triggern, bzw wenn diese
> unterschritten wird, wenn daten ankommen-ohne Erfolg

Hast du versucht auf Pausen zu triggern?
(erste Flanke nach Pause von >>5Bit Länge)

Phil schrieb:
> Leider nicht, es sind mehrere Teilnehmer am Bus. Daher verstehe ich
> nicht woher dieses wiederholende Muster zu sehen ist.

Wie oft kommen denn die Nachrichten so ungefähr?
(Passende Zeitablenkung einstellen und Oszi einfach anhalten)

: Bearbeitet durch User
von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Phil schrieb:
> Leider nicht, es sind mehrere Teilnehmer am Bus. Daher verstehe ich
> nicht woher dieses wiederholende Muster zu sehen ist.
Nimm doch einfach einen Teilnehmer nach dem andern vom Bus. Dann kannst 
du feststellen, welcher da immer wieder mal sendet...

von Phil (Gast)


Lesenswert?

Mir gehts darum auf die allererste Nachricht auf dem BUS zu triggern.
Die Teilnehmer abknüpfen kann/darf ich leider nicht. Zusätzlich ist an 
dem Bus eine CAN Box die auch alles aufzeichnet und die zeigt rein gar 
nichts von diesem "Ruhe Muster".

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Phil schrieb:
> Mir gehts darum auf die allererste Nachricht auf dem BUS zu triggern.
Was stören dich dann irgendwelche zyklischen Protokolle?

> eine CAN Box die auch alles aufzeichnet und die zeigt rein gar nichts
> von diesem "Ruhe Muster".
Vielleicht sendet die das ja selber. Oder sie ist so konfiguriert, dass 
sie dieses Telegramm ignoriert, usw.

Wenn da zyklisch was läuft, dann sollte es auf jeden Fall recht einfach 
sein, darauf zu triggern...

von Thomas (kosmos)


Lesenswert?

ich triggere mit einen Rigol 1054Z auf das EOF also wenn die Pause 
länger als x Bits ist

https://upload.wikimedia.org/wikipedia/commons/thumb/9/97/CAN-Frame_mit_Pegeln_mit_Stuffbits.svg/761px-CAN-Frame_mit_Pegeln_mit_Stuffbits.svg.png

https://racelogic.support/@api/deki/files/8715/6_(1).png?revision=1
ansonsten kann man auch auf ACK Bit Triggern (Induktionsspitze) die 
höher ausfällt da hier alle alle CAN-Teilnehmer mitwirken. Man stellt 
den Trigger Pegel also etwas höher ein als den CAN-Pegel.

von Matthias S. (matzes)


Lesenswert?

Soweit ich das Problem verstanden habe, soll herausgefunden werden, 
welcher CAN frame nach einer Busruhe als erstes auf dem Bus liegt.

Während der Busruhe liegen auf dem CAN nur rezessive Bits.
Ich würde einfach den Trigger auf dominantes Level setzen und dann einen 
single shot für den Trigger einstellen.
Das Oszi wartet dann auf den Trigger und hält genau Beginn ersten Frame 
fest.
Nach dem "Start of Frame" kommt der Identifier. Der sollte sich dann 
ganz gut ablesen lassen. Ggf mit einem Curser über den Frame wandern und 
dabei auf die Zeit schauen. Dabei ggf auch Bitstuffing beachten und evtl 
vorhandene Stuffbits herausstreichen.
Wenn der Identifier ermittelt ist, sollte auch der Absender bekannt 
sein.

von Bernd K. (prof7bit)


Lesenswert?

Ich würd mir nen USB-CAN-Dongle für kleines Gelod besorgen 
(Fischl/USBtin zum Beispiel) und auf dem PC mitloggen. Brauchst Du eh 
früher oder später wenn Du ernsthaft mit CAN rummachen willst.

von Wolfgang (Gast)


Lesenswert?

Phil schrieb:
> Mein RTB2004 kann leider kein CAN Bus auslesen(zusatz $$). Ich bräuchte
> jedoch eine Möglichkeit irgendwie einen Trigger zu setzen, sobald eine
> Nachricht auf dem Bus liegt..

Ein kleiner Logikanalysator, der CAN kann, kostet vielleicht 6€. Warum 
brauchst du dafür ein Oszi, dass da etwas hilflos davor steht.

von Bernd (Gast)


Lesenswert?

Wolfgang schrieb:

> Ein kleiner Logikanalysator, der CAN kann, kostet vielleicht 6€.

Kaum zu glauben und vermutlich nicht wahr. Wo gibt es den zu kaufen?

von Stefan F. (Gast)


Lesenswert?

Bernd schrieb:
> Kaum zu glauben und vermutlich nicht wahr.

Vermutlich doch wahr.
3,69€ bei Amazon: 
https://www.amazon.de/Abtastrate-Kan%C3%A4le-Logic-Analyzer-Device/dp/B07T2WQHNJ/ref=sr_1_14

Dazu das kostenlose Programm PulseView: 
https://sigrok.org/wiki/Downloads

PulseView can CAN Signale Dekodieren.

> Mir gehts darum auf die allererste Nachricht auf dem BUS zu triggern.

Welche ist denn die allererste Nachricht, wenn mindestens ein Teilnehmer 
fortlaufend etwas sendet?

von _Gast (Gast)


Lesenswert?

Hm,


was ich noch nicht verstehe, ob dein Problem gewerblich oder privat ist!

Gewerblich: Sorry kauf dir die Erweiterung bei R&S und fertig!

Privat: Warum ist das so wichtig? Wenn Müll auf dem CAN-Bus liegt, wird 
den jeder Teilnehmer ignorieren!


Ich hatte hier auch die Aufgabe wenn Taster gedrückt, wann ist das auf 
dem CAN-Bus?
Also RTM3000 mit allen Optionen ausgepackt, alle 4 Kanäle aufgeweckt und 
los geht es!

Oder wenn du die erste Nachricht auf dem Bus sehen willst, kauf dir die 
entsprechenden Tools, meine Tools arbeiten zeigen mir alles was auf dem 
Bus relevant ist, NMT/PDOs/SDOs werden entsprechend angezeigt und fertig 
ist die Laube. Wenn ich eine besondere Bedingung tracen muss gebe ich 
das den Menschen mit der weichen Ware und ich bekomme einen Monitor der 
exakt auf dieses Event auslöst...

Wo willst du hin?

Busruhe in Kfz Steuergeräten is natürlich echt fies! Aber das ist 
wirklich gewerblich, also raus mit den €€€!

mfg
Gast

von Wolfgang (Gast)


Lesenswert?

Bernd schrieb:
> Kaum zu glauben und vermutlich nicht wahr. Wo gibt es den zu kaufen?

Irgendwo hast du natürlich Recht. Für die <6€ bekommst du nur die 
Hardware, die dafür sorgt, dass die 8 Signalkanäle abgetastet werden und 
im PC landen. Das Aufzeichnen, Triggern, Dekodieren und Darstellen muss 
der PC und die darauf laufende Software leisten (und tut es auch ;-)

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.