Ich habe Probleme damit, die CAN-Bus-Übertragung richtig zum Laufen zu bringen. Ich fahre das Setup mit einem Parallax-Propeller-Board und die Einzelheiten sind in einem anderen Beitrag , aber ich habe eine spezifischere Frage zur CAN-Bus-Verkabelung und -Terminierung:
Jede Quelle, die ich gefunden habe und die die CAN-Bus-Terminierung beschreibt, tut dies mit etwas wie dem oberen Rand des unten gezeigten Diagramms - einem hohen und einem niedrigen Draht mit 120-Ohm-Widerständen an jedem Ende.
In meinem Laboraufbau entspricht das, was ich tatsächlich habe, jedoch dem unteren Teil des gezeigten Diagramms - der Widerstand liegt tatsächlich in der "Mitte" zwischen den beiden Geräten. Ich habe auch versucht, mit diesem Widerstandswert zu spielen, indem ich ihn vollständig abnahm, und um 110 Ohm sowie 220 Ohm herum, und sie alle leiden unter dem gleichen Problem, und der Chip, den ich verwende, meldet einen Übertragungsfehler.
Zwei parallel geschaltete 120-Ohm-Widerstände sollten dem 60-Ohm-Widerstand entsprechen. Aber spielt die tatsächliche Position der Widerstände entlang des Drahtes eine Rolle? Die Geräte sind physisch etwa 6 Fuß Kabel voneinander entfernt und es läuft mit 500 kHz. Ich kenne einige Grundlagen, einschließlich des Ohmschen Gesetzes, und ich verstehe, dass CAN zum Übertragen eine Spannungsdifferenz verwendet, aber wenn die Position der Widerstände falsch ist, verstehe ich definitiv etwas nicht darüber, wie diese Schaltung funktionieren soll.
Simulieren Sie diese Schaltung – Mit CircuitLab erstellter Schaltplan
Der Zweck der Widerstände an jedem Ende des Busses besteht darin, Transienten aufgrund von Zeitverzögerungen zu kontrollieren. Der Bus muss an jedem Ende mit seinem Wellenwiderstand abgeschlossen werden.
Wenn der Bus jedoch nur 6 Fuß lang ist, würde ich erwarten, dass Ihre Implementierung mit einem 60-Ohm-Widerstand in der Mitte funktioniert. Ich nehme an, Sie haben ein anderes Problem.
Sie müssen ein Gerät haben, das so konfiguriert ist, dass es das CAN-Paket empfängt und ein ACK zurücksendet, um keinen Fehler vom Sender zu erhalten - einige CAN-Bus-Monitore tun dies nicht, da von ihnen erwartet wird, dass sie nicht aufdringlich sind. In diesem Fall erhalten Sie eine Fehlermeldung vom Sender, wenn kein anderer Knoten vorhanden ist.
Möglicherweise müssen Sie einen anderen normalen CAN-Knoten in das Netzwerk einfügen, um die richtige Antwort zu erhalten.
Martin
bgp