Forum: Mikrocontroller und Digitale Elektronik CAN Bus Frage - Signalpegel


von Chris (c_1)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

im Anhang habe ich einen Screenshot, auf dem ein Signal, gemessen auf 
dem Canbus, dargestellt ist. Es sind sind 60 Teilnehmer angeschlossen. 
Das Signal sieht allerdings auch schon bei deutlich weniger Teilnehmern 
so ähnlich aus.

Meine Frage wäre: Ist das "normal" bzw. in Ordnung, dass die low Pegel 
unterschiedliche Spannungen haben (rot umkreist sind die Spannungen hoch 
gezogen)? Auf mich wirkt das nicht richtig.

Kennt jemand so einen Effekt und könnte mir Denkanstöße geben, wonach 
ich suchen könnte, falls das nicht normal ist?

Danke im Voraus!

von Frank K. (fchk)


Lesenswert?

Welches Signal sehen wir hier? CAN_H? CAN_L? CAN_H-CAN_L? CAN_RX?

Eine Achsenbeschriftung wäre auch geil.

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


Lesenswert?

Chris schrieb:
> dass die low Pegel unterschiedliche Spannungen haben (rot umkreist sind
> die Spannungen hoch gezogen)? Auf mich wirkt das nicht richtig.
Weil CAN ein differentieller Bus ist, solltest du die Spannungsdifferenz 
zwischen CANH und CANL betrachten und mit der Spec vergleichen. Dabei 
nicht völlig uninteressant: welche Spannungspegel sind da zu sehen?

> Das Signal sieht allerdings auch schon bei deutlich weniger Teilnehmern
> so ähnlich aus.
Sieh dir doch den Teilnehmer, der da die Arbitrierung "gewinnt", mal 
genauer an. Der hat poffenbar einen schwächeren Treiber im Transceiver 
eingebaut.

> könnte mir Denkanstöße geben, wonach ich suchen könnte
Wieviele Terminierungswiderstände hast du im Bus?

von Sebastian W. (wangnick)


Lesenswert?

Gegen welche Masse ist das gemessen? Und sind die Massen aller Knoten 
gleich oder nicht? Denn die 3V-Tranceiver haben einen geringeren 
Spannungshub auf dem Bus als die 5V-Transceiver. Insofern sieht erst 
einmal alles recht normal aus.

LG, Sebastian

von Volker Z. (vzavza)


Lesenswert?

Chris schrieb:
> Ist das "normal" bzw. in Ordnung, dass die low Pegel
> unterschiedliche Spannungen haben

Qualitativ ist das OK. Die Pegel, an dem Receiver an dem man misst, sind 
stärker. Entfernte Knoten/Geräte schwächer.

Du misst offensichtlich an dem Gerät was auch senden wollte aber die 
Arbitrierung verloren hat. Und am Ende noch die das Acknowledg gesendet 
hat.

Für die quantitative Beurteilung fehlen die (alle) Pegel.

von Clemens L. (c_l)


Lesenswert?

Die rot unkreisten Signale sind normal.

Die stärkeren Signale entstehen, wenn mehrere Geräte gleichzeitig 
senden. Das passiert am Anfang eines Pakets, wenn noch nicht klar ist, 
wer gewinnt, und am Ende eines Pakets, wenn alle anderen Geräte das 
ACK-Bit senden.

Zur Analyse von CAN solltest du CANH - CANL berechnen, weil das die 
Größe ist, die die Empfänger auswerten, und weil damit die meisten 
Störungen verschwinden.

von M. N. (bmbl2)


Lesenswert?

Clemens L. schrieb:
> Die stärkeren Signale entstehen, wenn mehrere Geräte gleichzeitig
> senden. Das passiert am Anfang eines Pakets, wenn noch nicht klar ist,
> wer gewinnt, und am Ende eines Pakets, wenn alle anderen Geräte das
> ACK-Bit senden.

Das ist die richtige Antwort! Wir nutzen das bspw aus um am Oszi den 
Trigger etwas unter den normalen Pegel zu setzen, um explizit auf das 
ACK triggern zu können, um das frame zu isolieren, wenn das Oszi keinen 
CAN dekoder hat.

Lustige Sidenote: Dieses verhalten von CAN, dass man sehen kann wie 
viele Treiber ein Signal Treiben, hat ultimativ das Plug&Secure Crypto 
Key-Exchange Protokoll gekillt. 
https://cdn.vector.com/cms/content/events/2017/vCFD17/05_CANFDSymposium_Mutter_Bosch.pdf

von Thomas (kosmos)


Lesenswert?

noch ein paar Anmerkungen.

Wenn das Oszi Math Funktionen hat kann man die Differenz aus Kanal 1 und 
2 anzeigen lassen, man misst direkt an CAN RX des Transceivers oder man 
benutzt einen Verdrahteten CAN Transceiver den man in den Bus hängt um 
dort an CAN RX lauschen zu können.

Und zum Triggern, kann man neben dem ACK welches einen höheren Pegel 
hat, weil da alle mitwirken auch die längere Pause des "End of frame" 
nehmen die meisten Oszi können ja inzwischen auf Pulsweiten <> x 
triggern.

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.