CAN-Übertragungs- und Abschlusswiderstände

8

Ich habe versucht, ein CAN-Netzwerk mit PIC18F25K80-Mikrocontrollern und einem MCP2551 einzurichten, um zwischen ihnen zu kommunizieren. Kann ich zwei einfache Drähte als CAN-Bus verwenden, indem ich nur die CANL, CANH der Transceiver anschließe? Ich konnte nicht einmal Daten mit dem Setup übertragen, das ich mit zwei Drähten gemacht habe! Soll ich sie mit etwas Widerstand beenden?

Arun Shekhar R.
quelle
Versuchen Sie es mit Twisted Pair und vorzugsweise gescreentem Twisted Pair
Andy aka
Wenn die Buslänge klein ist, funktioniert es möglicherweise, aber es ist immer besser, eine Terminierung zu haben.
Swanand
2
@Swanand: Nein. Das Beenden der Leitung ist nur ein Teil des Zwecks der Widerstände. Der andere Teil besteht darin, den passiven Zustand des Busses sicherzustellen. In diesem Sinne sind sie wie der Pullup-Widerstand eines Open-Collector-Busses. Ohne den Widerstand ist der passive Zustand undefiniert.
Olin Lathrop

Antworten:

5

Es wird eine gemeinsame 0 V zwischen den beiden Schaltkreisen oder zumindest eine Differenz zwischen den 0 V der Schaltkreise innerhalb der Gleichtaktdifferenzspannung angenommen.

Für eine korrekte CAN-Übertragung benötigen Sie

  • kontinuierliche Verkabelung zwischen den beiden Knoten CANH zu CANH und CANL zu CANL. Nicht überkreuzt, nicht kurzgeschlossen, nicht offen. Twisted Pair ist bei niedrigeren Datenraten / sehr kurzen Kabeln, z. B. wenigen cm bei 50 kBaud im Labor, nicht unbedingt erforderlich.
  • Mindestens ein Abschlusswiderstand funktioniert ohne einen überhaupt nicht. Wenn die Datenraten / Kabellängen steigen, sollten Sie wirklich an jedem Ende eine mit dem richtigen Wert 120R haben.
  • Mindestens ein Empfänger läuft mit der gleichen Datenrate (und anderen Bit-Timings), um den ACK-Impuls zu senden, andernfalls erhalten Sie vom Sender der ersten Nachricht unendlich viele Wiederholungen.
  • gemeinsame 0V-Referenz zwischen allen Knoten
Martin
quelle
Ich habe festgestellt, dass eine gemeinsame 0V für höhere Geschwindigkeiten sehr wichtig ist. In einem System, das wir hatten, war eine GND-Differenz von nur 0,3 V zwischen den angegebenen ausreichend, um eine signifikante Anzahl von Nachrichtenfehlern zu verursachen. Durch Verringern dieses Unterschieds durch Hinzufügen dickerer Drähte wurde die Anzahl der Fehler verringert.
Raketenmagnet
5

Der CAN-Bus muss mit 120 Ohm abgeschlossen werden.

Geben Sie hier die Bildbeschreibung ein

Ich verwende die Split-Terminierungsmethode mit einem niedrigen (10 nF) Keramikkondensator zum Vref-Pin am letzten Gerät am Bus. Es ist Pin 5 am MCP2551 .

Raaymaan
quelle
1
Die geteilte Terminierung mit Kondensator gegen Masse ist in Ordnung, aber das Anschließen dieses Kondensators an Vref des MCP2551 macht keinen Sinn. Sie suchen eine AC-Masse. Bestenfalls handelt es sich um eine Spannungsquelle, die genauso gut funktioniert wie echte Masse, aber dieser Pin hat eine begrenzte Stromkapazität und ist nicht dazu gedacht, Transienten zu absorbieren.
Olin Lathrop
2
Sie befestigen die Mitte des Split an der Vref und den Kondensator von der Mitte an GND.
Raketenmagnet
Ich habe den Vref-Pin nicht angeschlossen und einen Standardabschluss mit 120 Ohm Auflösung verwendet, konnte aber immer noch nicht zwischen den Karten kommunizieren.
Arun Shekhar R