Beim Vergleich der physikalischen Schicht von CAN und RS485 versuche ich, die Vorteile der einen gegenüber der anderen zu finden. Ich fand heraus, dass sie ziemlich ähnlich sind. Beide sind gut in Bezug auf die Gleichtaktunterdrückung und beide müssen gegen ESD und Überspannung geschützt werden. Ich habe nur einen wesentlichen Vorteil von CAN gegenüber RS485 (in Bezug auf die physikalische Schicht) gefunden, in dem CAN über einen fehlertoleranten Modus verfügt, der es ermöglicht, die Verbindung zwischen CANbus-Knoten über nur eine Datenleitung aufrechtzuerhalten, selbst wenn eine Datenleitung kurzgeschlossen oder geöffnet ist oder Beide Datenleitungen sind miteinander kurzgeschlossen.
Weg von der Kollisionsvermeidung und dem Nachrichtenprioritätssystem, das CAN hat,
1. Hat RS485 denselben fehlertoleranten Mechanismus?
2. Gibt es weitere wichtige Vorteile oder Unterschiede zwischen CAN und RS485 bezüglich der physikalischen Schicht?
Beim Vergleich nur der physikalischen Schicht sind CAN und RS-485 insofern ähnlich, als sie beide differenzielle Signalisierung verwenden. Dies verleiht beiden eine gute Immunität gegen Gleichtaktstörungen.
Der Hauptunterschied besteht darin, dass RS-485 eine symmetrische Signalisierung verwendet. Eine Leitung ist 5 V und die andere 0 V, um einen Zustand zu signalisieren, und wird dann für den anderen Zustand auf 0 V und 5 V gekippt. Dies macht das Erkennen des Zustands sehr einfach (ein einfacher Komparator, vielleicht mit einer kleinen Hysterese), stellt jedoch eine Herausforderung beim Beenden des Busses dar.
Wenn Sie der Meinung sind, dass das verdrillte Paar, das die Signale überträgt, eine charakteristische Impedanz von 120 Ω hat, sollten Sie idealerweise 120 Ω zwischen die beiden Leitungen legen. Das wären insgesamt 60 Ω zwischen den beiden Leitungen. (5 V)/(60 Ω) = 83 mA. Das ist viel Strom für den Bus und würde die ganze Zeit gezogen werden. Das entspricht fast einem halben Watt Ruheleistung. Beachten Sie, dass jeder 120-Ω-Abschlusswiderstand 208 mW verbrauchen würde, was bedeutet, dass es sich um mindestens "¼ W"-Widerstände handeln müsste. 0805 Oberflächenmontage muss beispielsweise nicht angewendet werden.
Wahrscheinlich aufgrund dieser Überlegungen sind die Abschlussanforderungen für RS-485 etwas gelockert. Dies führt zu einer reduzierten nutzbaren Busgeschwindigkeit. Das ist für die meisten RS-485-Anwendungen in Ordnung, da sie normalerweise mit üblichen Baudraten laufen, selten über 115,2 kBaud.
CAN hingegen adressiert die Terminierung richtig. Es wird davon ausgegangen, dass für die verschiedenen Signale ein verdrilltes 120-Ω-Kabelpaar verwendet wird, und es wird ein Abschlusswiderstand von 120 Ω an jedem Ende des Busses angegeben. Es gibt dann zwei wichtige Unterschiede, um die oben beschriebenen Probleme zu vermeiden:
Die Leistung, um einen CAN-Bus im dominanten Zustand zu halten, beträgt nur 54 mW, und überhaupt keine, um ihn im rezessiven (idle) Zustand zu halten. CAN ist für Geschwindigkeiten bis zu 1 MBaud vorgesehen, was durch eine bessere Terminierung als bei RS-485 ermöglicht wird.
Ein weiterer wichtiger Unterschied zwischen CAN und RS-485, auf den bereits hingewiesen wurde, besteht darin, dass RS-485 aktiv in beide Zustände getrieben wird, während CAN immer nur in den dominanten Zustand getrieben wird, während sich der Bus selbst in den rezessiven Zustand entspannt. Dies macht auf höheren Protokollebenen einen signifikanten Unterschied zur Busarbitrierung.
Was also verwenden? CAN ist in den meisten Fällen die klare Wahl für neue Designs, weil:
Im Gegensatz dazu erhalten Sie mit RS-485 einen UART und der Rest ist Ihr Problem. Während es sicherlich möglich ist, ein robustes Protokoll über RS-485 zu implementieren, ist es nicht so einfach, alle Eckfälle richtig zu machen, wie naive Ingenieure denken.
Eine Einschränkung von CAN, die für einige Anwendungen möglicherweise umgangen werden muss, ist die Grenze von 8 Datenbytes pro Paket. Dies ist auch eine gute Sache für den Kollisions-/Wiederholungsmechanismus, aber etwas, das Sie berücksichtigen müssen, wenn Sie beabsichtigen, Streaming-Daten über CAN zu übertragen. Das Gleiche mit RS-485 zu tun, ist jedoch auch nicht so trivial, wie es auf den ersten Blick erscheinen mag.
RS485 verwendet +/- 400 mV, nicht 0-5 V, daher hat der Abschlusswiderstand eine geringere Wattleistung als der CAN-Bus. Es gibt einen Vorteil, den viele (jeder) zu vermissen scheinen. Da RS485 tatsächlich um 0 V herum bidirektional ist, dh es muss eine vollständige H-Brücke sein, bedeutet dies, dass Strom in die eine oder andere Richtung fließt. Es geht nicht um die Spannungspegel, sondern um die tatsächliche Stromrichtung. Dies unterscheidet sich also von CAN, wo Sie effektiv zwei verschiedene Signale relativ zu GND betrachten. Sie möchten sehen, dass es diesen 2,5-V-Pegel RELATIV zu GND gibt und dass diese beiden Leitungen relativ zu GND auf derselben Spannung liegen oder dass eine über und eine unter 2,5 V relativ zu GND liegt.
Das sind zwei sehr unterschiedliche Dinge. CAN funktioniert nur, wenn es einen GND gibt, auf den man sich beziehen kann, also muss GND dem Signal überall folgen. Das bedeutet, dass Sie diese GND-Referenz benötigen, wenn Sie isoliertes CAN verwenden möchten.
Jetzt ist RS485 im Grunde ein Wechselstromantrieb aus einer H-Brücke, die Elektronen fließen in die eine oder andere Richtung, was die Spannung gegenüber GND völlig irrelevant macht. Die Spannung wird nicht mit GND verglichen, es wird die Richtung des Elektronenflusses betrachtet, sodass Sie keinen GND benötigen. Dies bedeutet, dass in Situationen, in denen Sie zwei Systeme miteinander verbinden möchten, die keine gemeinsame Masse haben, oder dies nicht erforderlich ist, dies in Ordnung ist, und in Situationen, in denen die Masse nicht gemeinsam ist, sich jedoch unterscheidet, ist dies in Ordnung, da die Messung nicht relativ zu GND ist und nimmt es out bedeutet, dass Isolation dort vermieden werden kann, wo CAN es erfordern würde.
Der Hauptgrund für die Verwendung von CAN ist, dass, sofern Sie nicht dieselbe ID für zwei Geräte verwenden, kein Gerät etwas über ein anderes Gerät wissen muss und Geräte einfach zum Bus hinzugefügt werden können.
Andi aka
Macit
Lundin
Lundin