GND-Unterschied zwischen CAN-Knoten?

7

Ich verwende einen kurzen (2 m) CAN-Bus mit ca. 20 Knoten. 1 Mbit / s Geschwindigkeit, PIC 18F2580s und 18F4580s mit MCP2551- Transceivern, 10 MHz (mit PLL bis 40 MHz) Quarzoszillatoren. Beide Enden sind mit 120 Ohm abgeschlossen. Der Abtastpunkt liegt bei 70%.

Die Knoten sind in drei Gruppen unterteilt, die jeweils von einer separaten, isolierten Stromversorgung gespeist werden. Die Erdung ist jedoch alle entlang des Busses gemeinsam.

Ich bekomme eine ganze Reihe von Nachrichtenfehlern, Framing, Bit Stuffing. Wenn man CANH und CANL auf einem Oszilloskop betrachtet, sieht alles wunderschön aus. Kein Klingeln, keine Reflexionen und das richtige Timing. Die Messung der Oszillatoren mit einem genauen Frequenzmesser zeigt nur eine geringe Abweichung.

Bisher konnte ich die Anzahl der Nachrichtenfehler nur reduzieren, indem ich das Erdungskabel entlang des Busses verstärkte, bis die GND-Differenz unter etwa 150 mV lag. Je weiter ich darüber hinaus gehe, desto mehr Fehler bekomme ich.

Warum? Laut Datenblatt MCP2551 sollten sie in der Lage sein, GND-Unterschiede bis zu 7 V zu bewältigen!

Verstehe ich etwas falsch?

Raketenmagnet
quelle
2
Erhalten Sie bei aktiviertem Gültigkeitsbereich immer noch Fehler? Tatsächlich wird dies CAN 0v durch Ihren
Zielfernrohr-Erdungsclip erden
Das Einstecken des Zielfernrohrs in den Boden kann helfen. Die Korrelation bleibt jedoch bestehen. Wenn ich die GND-Spannungsdifferenz reduziere, verringert sich die Fehlerrate.
Raketenmagnet
1
Sie sagen, Sie haben isolierte Vorräte. Sie sagen auch, dass Sie große Erdungsunterschiede zwischen Knoten erhalten, es sei denn, Sie verwenden ein großes, schweres Erdungskabel. Dies sind sich gegenseitig ausschließende Aussagen. Wenn jeder Knoten isoliert ist, kann kein Strom am Boden fließen . Sie haben eine schlechte Versorgung (en) oder die von Ihnen verwendeten Netzteile haben eine enorme Gleichtakt-Rauschleistung.
Connor Wolf
1
Verwenden Sie handelsübliche Ziegel-DC-DCs? Einige davon können schrecklich sein. Setzen Sie Gleichtaktdrosseln auf die Stromanschlüsse zu jedem Knoten und prüfen Sie, ob dies hilfreich ist.
Connor Wolf

Antworten:

3

Sind Sie sicher, dass die Nachrichtenfehler auf den CAN-Bus und nicht auf die Leistung des restlichen Knotens (der PIC-Schaltungen) zurückzuführen sind?

CAN ist differentiell, solange Sie die Gleichtaktspannungsgrenzen des Transceivers nicht überschreiten, sollten die relativen Erdungspegel keine Rolle spielen und es besteht keine Notwendigkeit, eine Erdungsverbindung mit den CAN-Signalen zu senden (möglicherweise eine Abschirmung, aber das ist eine andere Geschichte).

Wenn jedoch isolierte Netzteile vorhanden sind und die Erdungsverbindung vorhanden ist, können einige Erdstromschleifen auftreten, die Probleme mit dem Rest des Stromkreises verursachen.

Kennzeichen
quelle
Die Fehlerrate scheint eine direkte Funktion der GND-Spannungsdifferenz zu sein. Ich kann die Fehlerrate direkt vor meinen Augen erhöhen oder verringern, indem ich einfach die Kupfermenge, die die Erdung verbindet, verringert oder erhöht.
Raketenmagnet
Ja, das ist nicht überraschend, wenn Strom durch die Erdschleifen fließt, wie es sich definitiv anhört. Durch Verringern des Widerstands wird der Spannungsabfall am Boden verringert. Haben Sie versucht, diese Erdung einfach zwischen allen Knoten zu entfernen und einfach zu verlassen? das CAN H / L? Wie bereits erwähnt, wird es für CAN nicht benötigt und es klingt nicht wie ein Teil des Netzteils, sodass es wirklich nichts anderes tut, als eine Stromschleife zu erstellen, die Probleme verursacht.
Mark
Anders ausgedrückt: Wenn Sie die Erdung aller Knoten verbunden haben und dazu 6 Fuß 18-Zoll-Kupfer verwenden. Wenn Sie 150 mV zwischen den beiden Endknoten messen, können zwischen diesen Knoten auf dem Erdungskabel durchaus 3,32 AMPS Strom fließen. Dies ist ein großes Problem und kann alle möglichen Probleme mit der gesamten Schaltung verursachen.
Mark
Markieren Sie, wenn ich die GND-Verbindung zwischen Knoten entferne, steigt die Differenz und damit auch die Fehlerrate. Das Problem ist, dass jede Gruppe von Knoten von ihrer eigenen isolierten Stromversorgung gespeist wird, so dass nichts viel daran hindert, dass der GND-Unterschied über das spezifizierte 7-V-Maximum hinausgeht.
Raketenmagnet
2
@rocketmagnet Woher bekommst du 7V? Das Datenblatt für diesen Transceiver listet + - 42 V für die Gleichtakt-Gleichspannungsgrenze an CANH / CANL auf. Solange Sie ähnliche isolierte Netzteile verwenden und diese auch nur aus der Ferne an dasselbe Stromversorgungssystem angeschlossen sind, sollten Sie im Erdungspotential der Platine keinen großen Unterschied sehen, vielleicht ein paar Volt. Unterschiede in der Bodenhöhe der Platine haben keinen Einfluss auf die Differenzsignalisierung. Dies ist ein wichtiger Grund für die Verwendung der Differenzialsignalisierung. Wenn Sie alle Verbindungen zwischen Knoten außer CANH / CANL entfernen und dennoch Probleme haben, liegt ein weiteres Problem im Design vor.
Mark
2

Vielleicht müssen wir Ihre Schaltkreise ein wenig ändern. Was ich auf RS-232 und RS-422 gesehen habe könnte für CAN funktionieren:

Isolieren Sie die CAN-Transceiver optisch von den Karten. Versorgen Sie sie mit vollständig isolierten DC-DC-Wandlern. Dann schweben die Transceiver-Schaltkreise und sind hoffentlich näher beieinander.

Ich habe dies auch in einem Anwendungshinweis gesehen, in dem eine USB-Schnittstelle (nicht wirklich) "opto-isoliert" wurde, indem sie "außen" gesetzt wurde.

Ich werde interessiert beobachten, wie meine Roboterservokarten alle CAN sprechen und wir ziemlich große Ströme im Chassis bekommen, aber ich habe nicht versucht, die CAN-Schnittstelle im Zorn zu verwenden (wir haben sie in RS-232 mit einem verwendet altes proprietäres Protokoll).

Tim Williscroft
quelle
1

Soweit ich weiß, kann die maximale Datenrate des CAN-Busses von 1 Mbit / s selbst bei einem kurzen Bus eine Herausforderung sein. Haben Sie versucht, die Datenrate auf 500 kbit / s zu senken, um festzustellen, wie sich dies auf Ihre Fehleranzahl auswirkt?

Peter Mortensen
quelle
Leider ist dies keine Option. Wir brauchen die gesamte Bandbreite, die wir bekommen können.
Rocketmagnet