Hallo zusammen, ich habe aktuell ein Problem mit meinem CAN Bus. Kontext: Es ist ein modulares Master-Slave System auf CANOpen Basis. Dabei hängen an einem Master bis zu 70 Slaves. Der CAN Bus wird vom Master (Anfang) durch alle Slaves durchgeschleift. Daher hat jeder Slave einen Eingang und einen Ausgang an dem der nächste Slave hängt. Am Ende der Kette wird mit 120 Ohm terminiert, beim Master am Anfang auch. Innerhalb der Slave Geräte sind die CAN Leitungen nicht geschirmt aber miteinander verdrillt. Die Stichleitung im Gerät beträgt nur wenige mm. Jetzt hat der Kunde ein System aus 60 Slaves zusammengebaut. Es kommt nun vermehrt zu Bus Light und Bus Heavy Bedingungen auf dem Bus und das ganze Läuft nicht einwandfrei (Bus-Off scheint kein Teilnehmer zu gehen). Ich habe aus der Ferne bisher nur Trace Files gesehen aus denen man nicht recht schlau wird. Nur die Bus Heavy und Light Warnungen sind auffällig. Meine Vermutung ist nun, dass der Kunden zwischen den Slaves nicht verdrillte Leitungen für CAN L und H benutzt. Es handelt sich um ca. 60m Bus Leitung bei 500kBit. Von den 60m sind ca. 10-15m in den Geräten und verdrillt, der Rest (35-40m) außerhalb der Geräte und nicht verdrillt. Wäre das aus eurer Sicht plausible, dass dieses nicht verdrillen eine so veränderte Leitungsimpdedanz hervorruft das es trotz Terminierung zu Reflektionen und Fehlerhaften Nachrichten kommt? Alle anderen Möglichkeiten die zu CAN Fehler führen sind nicht vorhanden (verschiedene Bitraten, Einstrahlung von Störungen). Habe kein Gefühl und habe bisher auch nichts gefunden wie sich von der Impdedanz zwei nicht verdrillte Leiter gegenüber verdrillten Leitern verhalten.
Unverdrillte Leitungen sind nicht grundsätzlich problematisch. Die Signalqualität misst man besser, anstatt zu vermuten. Stichworte: Oszilloskop, Augendiagramm
Aus dem Wiki: . Mit gängigen Bausteinen sind 32, 64 oder bis zu 110 (mit Einschränkungen bis zu 128) Teilnehmer pro Leitung möglich (Erweiterungsmöglichkeit über Repeater oder Bridge). Wenn die Devices inicht besonders ausgesuchte Transceiver haben, ist der Buss alleine durch die Anzahl der Teilnehmer schon grenzwertig Ausserdem sind 60 Meter und 500 kBps auch sportlich. Einmal hin und zurueck sind dann auch schon 600 Nanosekunden.
Benjamin S. schrieb: > bei 500kBit hast Du mal probiert testweise mit dem Takt runterzugehen? > Wäre das aus eurer Sicht plausible, dass dieses nicht verdrillen eine so > veränderte Leitungsimpdedanz hervorruft das es trotz Terminierung zu > Reflektionen und Fehlerhaften Nachrichten kommt? Es ist nicht nur die Impedanz die bei nicht-verdrillen nicht mehr definiert ist, sondern auch die Empfindlichkeit für Störungen. Bei verdrillten Leitungen erwischt eine Störung beide Leitungen gleichmäßig. Da das Signal differentiell ist, macht das nicht viel aus. Bei nicht verdrillten Leitungen spannen die Leitungen eine Schleife auf die viel einfangen kann. > Alle anderen Möglichkeiten die zu CAN Fehler führen sind nicht vorhanden > (verschiedene Bitraten, Einstrahlung von Störungen). Hast Du Dir mal die Massesituation angeschaut? Es könnten evtl. Ausgleichsströme zwischen den Geräten über Deine CAN-Leitung fließen. Führst Du mit dem CAN ein GND mit? Wie ist das mit der Masse der Geräte verbunden? Galvanisch getrennt oder nicht? Was für eine Schutzklasse haben die Geräte? Ist die CAN-Leitung geschirmt? Wo und wie ist der Schirm aufgelegt? Einseitig oder beidseitig? Hart oder mit C || R?
Benjamin S. schrieb: > Daher hat jeder Slave > einen Eingang und einen Ausgang an dem der nächste Slave hängt. Am Ende > der Kette wird mit 120 Ohm terminiert, beim Master am Anfang auch. Wenn ich das so richtig verstehe, kann es nicht funktionieren. CAN ist ein an beiden Enden terminierter Bus, bei dem die Devices mit (ganz kurzen, je nach Bitrate) Stichleitungen angeschlossen werden. Dabei CANH und CANL nicht verwechseln. Masse ist nicht verkehrt, aber nicht direkt vorgeschrieben. Nix mit Slave rein, Slave raus... Ansonsten erstmal auf dem 2-Kanal-Oszi schauen wie die beiden Signale aussehen.
Uwe B. schrieb: > Wenn die Devices inicht besonders ausgesuchte Transceiver haben, ist der > Buss alleine durch die Anzahl der Teilnehmer schon grenzwertig > > Ausserdem sind 60 Meter und 500 kBps auch sportlich. Einmal hin und > zurueck sind dann auch schon 600 Nanosekunden. die 60m sind schon ok, mit 500k gehen über 100m wenn man weiß was man tut - und wenn man keine isolierten Transceiver verwendet
wenn Masse mitgeführt wird kann man sich mit einem 2 Kanal-Oszi jeden Kanal einzeln gegen Masse ansehen, wenn keine Masse mitgeführt kann man gleich differentiel gegeneinander messen. Ich denke aber bei solchen Bitraten und Kabellängen sind das schon sehr viele Teilnehmer. Ein Bild aus dem Oszi würde vieles erklären.
Die Leitungsimpedanz hat nichts mit der Verdrillung zu tun, sondern hängt bei Zweidrahtleitung vom Durchmesser der Adern und dem Abstand der Adern zueinander ab (unter Anderem) (siehe https://de.wikipedia.org/wiki/Wellenwiderstand#Leitungs-_und_Feldwellenwiderst%C3%A4nde_ausgew%C3%A4hlter_Leitungsformen) Kenne die Begriffe "bus heavy" und "bus light" in Zusammenhang mit CAN nicht. Was bedeutet das? Hohe Buslast? Das hat ja dann eigentlich keine elektrischen Gründe. Bei 60m Gesamtlänge und 15m in den 60 Slaves sind das ca. 25cm Stichleitung zu jedem Slave von der Hauptleitung. Finde das noch unkritisch. Das aber gerade auch die lange Strecke zwischen den Slaves (Hauptstrang) nicht verdrillt und somit vor elektromagnetischer Störung geschützt ist, finde ich kritischer. Wird GND mitgeführt? Welcher Transceiver-IC wird eingesetzt bzw. Isolierung und wenn ja welche Art?
:
Bearbeitet durch User
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.