Physikalisches Ethernet vs. CAN-Bus-Signal

Wenn ich über Controller Area Networks und den Ethernet-Standard lese, kann ich nicht verstehen, warum es einen Unterschied in der Art und Weise gibt, wie das Signal übertragen wird. Beide Protokolle verwenden Twisted-Pair-Kabel zur Kommunikation mit gespiegelten Signalen, wobei der logische Zustand als Funktion der Spannungsdifferenz zwischen den beiden Drähten bestimmt wird.

In CAN-Netzwerken liegt CAN Low im Bereich von 1,5 V bis 2,5 V, während CAN High im Bereich von 2,5 V bis 3,5 V liegt.

CAN-Bus-Pegel

In einem Ethernet-Netzwerk kreuzen sich die Signale jedoch und die Werte sind genau entgegengesetzt zueinander. Wenn also ein Kabel +3 V hat, hat das andere -3 V und umgekehrt.

Physikalisches Signal in einem Ethernet-Kabel

Warum haben sich die Ingenieure für diese spezielle Methode entschieden und warum wird nicht nur eine Methode verwendet? Was sind jeweils die Vor-/Nachteile?

Außerdem werden in einem CAN-Bus die Drähte mit 120-Ohm-Widerständen abgeschlossen, um die Leitungsimpedanz anzupassen und Reflexionen und das Ende des Kabels zu verbessern. Ich glaube nicht, dass Ethernet-Kabel solche Terminierungen haben. Wenn sie verwendet werden, sind sie in den NICs? Wenn ja, wie berücksichtigen sie unterschiedliche Drahtlängen?

Danke schön.

Ethernet-Kabel haben auch eine kontrollierte Impedanz, und die Abschlüsse befinden sich innerhalb der NIC für Twisted-Pair-Ethernet.
Die Standardpraxis für Ethernet-Transformatoren ist die Verwendung der „Bob Smith“-Terminierung. Schau mal unter citeseerx.ist.psu.edu/viewdoc/…
Ethernet ist Punkt-zu-Punkt und CAN ist eine Busarchitektur.
Oldtimer-Pedant ... Ethernet kann über eine Busarchitektur mit gemeinsamem Medium betrieben werden: en.wikipedia.org/wiki/10BASE2 und en.wikipedia.org/wiki/10BASE5

Antworten (2)

Auf Hardwareebene:

  • Der CAN-Bus funktioniert durch eine Spannungsdifferenz zwischen einem Leitungspaar.
  • Der Ethernet-Bus ist strombetrieben und an beiden Enden über Transformatoren gekoppelt , was eine galvanische Isolierung bietet und Erdungsprobleme vermeidet.

Das elektrische Funktionsprinzip ist bei diesen Bussen sehr unterschiedlich. Der Ethernet-Bus ist standardmäßig galvanisch getrennt, was beim CAN-Bus nicht unbedingt der Fall ist (aber sein kann).

DÜRFEN:

schematisch

Simulieren Sie diese Schaltung – Mit CircuitLab erstellter Schaltplan

Ethernet:

schematisch

Simulieren Sie diese Schaltung

Einzelne/mehrere Punkte

Ein großer Unterschied zwischen CAN und Ethernet besteht darin, dass CAN ein Mehrpunkt ist; kein Meister; adressbasierter Bus mit Kollisionsmanagement.

Ethernet ist eine Punkt-zu-Punkt-Verbindung, mehr als 2 Geräte benötigen eine Art Hub.

CAN-Bus basiert auf Hardwareebene auf dem RS485-Bus, CAN umfasst jedoch auch die Protokollschicht, RS485 ist nur ein Standard auf Hardwareebene.

Der CAN-Bus ist im Vergleich zu Ethernet langsam, aber viel billiger zu implementieren und ermöglicht es, mehrere Geräte auf demselben Bus zu haben, ohne dass Hubs oder Switches erforderlich sind. Sie können auch überall im Bus Geräte anschließen. Da es masterlos und kollisionstolerant ist, können alle Geräte nach Belieben aktiv kommunizieren, was in einigen Anwendungen sehr praktisch ist.

Kosten

Der Firmware-Stack ist auf einem CAN-Bus auch viel einfacher, wodurch er in billigen MCUs weit verbreitet ist, während Ethernet oft einen dedizierten Chip oder ein Unix-fähiges System erfordert. Sie können Ethernet auf einer MCU ausführen, aber oft benötigt es viele Ressourcen und erfordert einen ziemlich schweren und komplexen Stack. Meiner Erfahrung nach führt das Ausführen eines Ethernet-Stacks auf einer nackten MCU oft zu gemischten Ergebnissen, und es ist besser, einen UNIX-Stack zu haben, sobald es um Ethernet geht.

Einige MCU verfügen über ein CAN-Hardwaremodul, was bedeutet, dass die CAN-Transaktion ohne Verwendung der CPU abgewickelt werden kann, wodurch der Anwendung mehr Ressourcen zur Verfügung stehen.

Beide haben ihre eigene Verwendung für unterschiedliche Bedürfnisse. CAN wurde ursprünglich für die Automobilindustrie entwickelt, um eine kostengünstige und effektive Möglichkeit zu bieten, alle Sensoren zu verbinden.

Hardwareimplementierung

Busleitungen sind normalerweise verdrillt, um die Empfindlichkeit gegenüber Umgebungsstörungen (EMI) zu verringern, sowohl bei CAN als auch bei Ethernet.

Can ist ein auf Differenzspannung basierender Bus, der Transceiver erfordert. Der Spannungspegel kann unterschiedlich sein, manchmal sind es 5 V, manchmal mehr, es hängt stark vom Treiber und der verfügbaren Stromversorgung Ihres Boards ab. CAN ist standardmäßig nicht isoliert, während einige CAN-Transceiver eine Isolierung haben.

Ethernet hingegen ist ein stromgetriebener Bus, der induktiv gekoppelt ist. Bei Ethernet haben Sie immer kleine Transformatoren auf beiden Seiten der Leitung, sie sind entweder in der RJ45-Buchse oder auf der Platine verlötet. Es ist standardmäßig isoliert. Sie können Ethernet-Kabelpaare als Stromschleife sehen, die an beiden Enden von Transformatoren angetrieben wird.

CAN ist ein Einzelleitungsbus (1 Paar) mit Paketkollisionsbehandlung.

Ethernet ist ein Bus mit mehreren Leitungen, normalerweise mindestens ein RX- und TX-Paar, aber je nach CAT können es auch mehr sein.

CAN erfordert einen Abschlusswiderstand an beiden Busenden. Ethernet nicht.


Wenn also ein Kabel +3 V hat, hat das andere -3 V

Sie sollten eher an den Stromfluss im Ethernet denken als an die Spannung.

Ich glaube nicht, dass Ethernet-Kabel solche Terminierungen haben. Wenn sie verwendet werden, sind sie in den NICs? Wenn ja, wie berücksichtigen sie unterschiedliche Drahtlängen?

Es besteht keine Notwendigkeit, da der Bus strombetrieben ist.

Wenn Sie 10BASE-T1S in Betracht ziehen, ist es CAN ähnlich, da es eine physikalische Multi-Drop-Schicht hat

Abgesehen von den Problemen mit der physischen Verkabelung gibt es einige große Unterschiede auf Protokollebene.

Zunächst einmal hat sogar CAN eine Übertragungsleitung mit kontrollierter Impedanz bei 120 Ohm (tatsächlich ist Ethernet Twisted Pair eines der besten verfügbaren CAN-Kabel), es ist nur viel toleranter.

CAN ist als Stichbussystem ausgelegt, während Ethernet in Sterntopologie ist (zumindest die moderne), daher sind die Abschlusspunkte unterschiedlich: Busende bei CAN (diskrete Terminatoren), Portterminatoren bei Ethernet (im Wesentlichen in die Magnetik integriert ).

CAN hat kein Null-DC-garantiertes Signal: Das ursprüngliche Ethernet war Manchester IIRC, das moderne ändert sich je nach Bitrate, aber es ist ein Signal, das dafür ausgelegt ist, Transformatoren zu passieren. CAN hat nur einen garantierten Übergang alle IIRC 6 Bits für Taktwiederherstellungszwecke (der Fehlerrahmen ist tatsächlich eine große Signalisierungsverletzung), sodass er nicht auf diese Weise gekoppelt werden kann. Normalerweise behalten wir den Transceiver auf der Kabelseite und verwenden digitale Isolatoren auf den TX/RX-Leitungen.

Was die Signalpegel betrifft: Der wichtigste Unterschied besteht darin, dass Ethernet CSMA/CD ist (zumindest in der halbduplex, nicht geschalteten Version), während CAN CSMA/CA ist. Kurz gesagt: Ethernet versucht zu übertragen und wenn ein Konflikt auftritt, versucht es nach einer Weile (bei Vollduplex- oder Switched-Links gibt es kein Problem, es ist wirklich eine Punkt-zu-Punkt-Verbindung mit dem Switch!). CAN hingegen hat eine Regel, um zu entscheiden, welcher Frame abgeschlossen und welcher abgebrochen wird. Es funktioniert genau wie I2C, es gibt ein dominantes und ein rezessives Bitbit (null ist übrigens dominant). Wenn beide auf der Leitung sind, gewinnt der Dominante und überträgt weiter. Im Ethernet gibt es einfach Bitmuster (Manchester oder andere), wenn zwei Stationen senden, ist das Ergebnis ein Durcheinander (eine Kollision) und sie versuchen es später.

Angeblich vereinfacht dies die Verkehrsplanung in einem CAN-Netzwerk, da Sie niedrigere IDs immer mit höheren IDs priorisieren. Ethernet hat keine Priorität auf den MACs, es ist eigentlich eine zufällige Sache ( durch Spezifikation im Wiederholungsalgorithmus).

Habe ich etwas verpasst?