Forum: Mikrocontroller und Digitale Elektronik CAN-Bus Verbindung


von Joachim U. (achim1152)


Lesenswert?

Hallo Experten,

ich habe eine wahrscheinlich triviale Frage:
Wenn ich einen CAN-Bus Sender und einen CAN-Bus Empfänger verbinde, 
reichen da die Adern  CANH und CANL oder muss ich zwingend auch die 
Masse verbinden?

Danke.
Joachim

von Simon D. (jamen)


Lesenswert?

Hallo Joachim,

ja, alle Transceiver in einem CAN müssen eine gemeinsame Masse haben.

Die Masse muss nicht zwingend mit den Signalleitungen verlegt sein, wenn 
der Massebezug über eine gemeinsame Stromversorgung hergestellt wird.

LG Simon

von Guido C. (guidoanalog)


Lesenswert?

Hallo,

Simon D. schrieb:
> ja, alle Transceiver in einem CAN müssen eine gemeinsame Masse haben.

Ich verbinde mich oft mit meinem Laptop im Batteriebetrieb mittels 
PCAN-USB Adapter auf unsere Geräte. Die von mir verwendete CAN-Bus 
Leitung ist 2-polig. Hat bisher immer funktioniert. Allerdings ist meine 
Leitung nur ca. 2 m lang.

P.S.: Ich weiß, die Gleichtaktspannung das CAN-Signals darf nicht 
beliebig groß werden.

Mit freundlichen Grüßen
Guido

von Rainer W. (rawi)


Lesenswert?

Joachim U. schrieb:
> Wenn ich einen CAN-Bus Sender und einen CAN-Bus Empfänger verbinde,
> reichen da die Adern  CANH und CANL oder muss ich zwingend auch die
> Masse verbinden?

Das kommt auf deine CAN Transceiver an. Wenn es isolierte sind, brauchst 
du natürlich keine Masseverbindung.
https://www.ti.com/isolation/isolated-interfaces/can-transceivers/overview.html

von Guido C. (guidoanalog)


Lesenswert?

Hallo,

Guido C. schrieb:
> Ich verbinde mich oft mit meinem Laptop im Batteriebetrieb mittels
> PCAN-USB Adapter auf unsere Geräte. Die von mir verwendete CAN-Bus
> Leitung ist 2-polig. Hat bisher immer funktioniert. Allerdings ist meine
> Leitung nur ca. 2 m lang.

ich verwende hierzu den PCAN-USB IPEH-002021. Dieser CAN auf USB-Adaper 
ist ohne "Optoentkopplung".
https://www.peak-system.com/PCAN-USB.199.0.html
Laut Handbuch ist in dem PCAN-USB IPEH-002021 der NXP CAN-Transceiver 
PCA82C251 verbaut. In dessen Datenblatt steht nichts von galvanischer 
Trennung.

@All
Auf den CAN-Bus Leitungen sind immer Spannungspegel vorhanden, d. h. der 
CAN-Bus ist nie "floating". Siehe Spannungspegel im Highspeed-CAN-Bus: 
https://de.wikipedia.org/wiki/Controller_Area_Network#/media/Datei:Canbus_levels.svg
Mir stellt sich daher auch die Frage des Beitragserstellers. Benötige 
ich wirklich Masse/Ground? Ich denke eher nicht. Zumindest die Praxis 
bestätigt dies bisher bei mir. Hatte ich bisher nur Glück?

Mit freundlichen Grüßen
Guido

: Bearbeitet durch User
von Paule M. (martin_mu)


Lesenswert?

Also meinem Verständnis nach, war es nur Glück.
Da die Pegel auf H und L im Grunde ja nur invertiert sind, soweit ich 
das verstanden habe, heben die sich ja, im Grunde, auf-.
Also würde da eigentlich nichts brauchbares bei rauskommen, wenn er 
diese beiden Signale nicht auf irgendetwas beziehen kann.
Daher sage ich mal, ja ohne GND ist es nur Glück, da er das dann 
irgendwo anders her zieht

von Falk B. (falk)


Lesenswert?

Guido C. schrieb:

> Mir stellt sich daher auch die Frage des Beitragserstellers. Benötige
> ich wirklich Masse/Ground?

Wenn es solide sein soll, dann ja. Ebenso wie bei RS485.

> Ich denke eher nicht.

Falsch gedacht.

> Zumindest die Praxis
> bestätigt dies bisher bei mir. Hatte ich bisher nur Glück?

Ja. Das funktioniert zwar oft, aber eben nicht immer und schon gar nicht 
stabil unter allem Umständen. Die meisten haben nur Dusel, daß die 
kritischen Situationen (Gleichtaktstöreinkopplung) in ihrem Sonnenschein 
und Windstille Bastelaufbau nicht eintreten.

Ich kann auch ohne Helm nackig Motorad fahren, das geht meistens gut! 
;-)

von Niklas G. (erlkoenig) Benutzerseite


Lesenswert?

Rainer W. schrieb:
> Das kommt auf deine CAN Transceiver an. Wenn es isolierte sind, brauchst
> du natürlich keine Masseverbindung.

Die haben aber auf CAN-Seite eine separate GND-Leitung und brauchen da 
auch noch eine isolierte Stromversorgung. Vermutlich ist da ein 
Optokoppler drin? Die CAN-Leitung ist hier also keineswegs 
isoliert/floating, es wird nur die lokale Seite vom Leitungspotenzial 
entkoppelt. Selbst wenn man ein Netz nur aus solchen isolierenden 
Transceivern aufbauen würde, müssten deren GND2-Pins alle miteinander 
verbunden werden (über Fahrzeugmasse o.ä.).

Paule M. schrieb:
> Daher sage ich mal, ja ohne GND ist es nur Glück, da er das dann
> irgendwo anders her zieht

Genau so ist es.

Es hängt stark vom Transceiver auf der Gegenseite ab. Bei Ethernet oder 
IsoSPI gibt kein GND, da funktioniert es so: Der Strom fließt auf der 
einen Leitung des Paars zum Empfänger "hin" und auf der anderen zurück 
und bildet einen geschlossenen Stromkreis. Auf Empfängerseite fließt der 
Strom durch die Spule des Transformators. Die andere Seite des 
Transformators ist mit dem GND des Empfängers verbunden. Dadurch 
entstehen negative Spannungen, mit welchen der Transceiver umgehen muss.

Bei CAN gibt es keinen Transformator (nur eine Common-Mode-Choke). Auch 
wenn es eine Spannungsschnittstelle ist, muss natürlich dennoch ein 
(sehr kleiner) Strom durch CANH und CANL fließen um einen Stromkreis zu 
bilden, damit der Empfänger die Spannung feststellen kann. Normalerweise 
fließt sowohl auf CANH als auch auf CANL ein Strom vom Sender zum 
Empfänger "hin" und über GND "zurück" (technische Stromrichtung). D.h. 
der Stromkreis wird über GND geschlossen.

Aber: Ohne GND müsste der Strom ja z.B. über CANH "hin" und über CANL 
"zurück" fließen (beim Senden einer 0), d.h. der empfangende Transceiver 
muss den Strom von CANH nach CANL durchleiten. Genau das können aber 
gängige Transceiver eher nicht (bzw. sind nicht dafür spezifiziert). 
CANH und CANL werden wohl auf die Gates von 2 FETs geführt, und der FET 
vom CANL wird vermutlich nicht so gut damit klarkommen dass dann ein 
Strom von GND zum Gate fließt.

Man könnte theoretisch CAN mit einem Transformator nutzen, müsste dann 
aber auch ein Transceiver-IC haben welches mit den negativen Spannungen 
zurecht kommt. Aufgrund der AC-Kopplung bräuchte man auf Leitungsseite 
ein puls-basiertes Interface wie bei Ethernet. Außerdem müsste man dann 
CSMA/CD statt CSMA/CA verwenden, womit die Priorisierung weg wäre. 
Natürlich müssen beide Seiten das unterstützen. Für so etwas war CAN nie 
gedacht. Da wäre es vielleicht sinnvoller einen SPI-CAN-Controller per 
IsoSPI anzubinden, oder einfach gleich Ethernet zu nutzen 😉

: Bearbeitet durch User
von Falk B. (falk)


Angehängte Dateien:

Lesenswert?

Niklas G. schrieb:
>> Das kommt auf deine CAN Transceiver an. Wenn es isolierte sind, brauchst
>> du natürlich keine Masseverbindung.
>
> Die haben aber auf CAN-Seite eine separate GND-Leitung und brauchen da
> auch noch eine isolierte Stromversorgung. Vermutlich ist da ein
> Optokoppler drin?

Selbst dann geht es ohne Masse.

>> Daher sage ich mal, ja ohne GND ist es nur Glück, da er das dann
>> irgendwo anders her zieht
>
> Genau so ist es.
>
> Es hängt stark vom Transceiver auf der Gegenseite ab.

Jain.

> Bei Ethernet oder
> IsoSPI gibt kein GND, da funktioniert es so: Der Strom fließt auf der
> einen Leitung des Paars zum Empfänger "hin" und auf der anderen zurück
> und bildet einen geschlossenen Stromkreis. Auf Empfängerseite fließt der
> Strom durch die Spule des Transformators. Die andere Seite des
> Transformators ist mit dem GND des Empfängers verbunden.

Ne, meist einer mittleren Spannung zwischen VCC und GND. Ist aber 
HF-mäßig das Gleiche.

> Dadurch
> entstehen negative Spannungen, mit welchen der Transceiver umgehen muss.
>
> Bei CAN gibt es keinen Transformator (nur eine Common-Mode-Choke). Auch
> wenn es eine Spannungsschnittstelle ist, muss natürlich dennoch ein
> (sehr kleiner) Strom durch CANH und CANL fließen um einen Stromkreis zu
> bilden, damit der Empfänger die Spannung feststellen kann.

Das kann er auch, denn dieser Strom, der gar nicht so klein ist, fließt 
durch die zwingend nötigen Terminierungswiderstände. Die braucht man 
nicht nur zur Terminierung des Wellenwiderstands, sondern auch um 
den rezessiven Pegel herzustellen, denn CAN arbeitet mit einem 
differentiellen Open Kollektor Treiber. Damit sind Kurzschlüsse auf dem 
Bus ausgeschlossen, so wie bei I2C.

Das alles bringt es aber nicht auf den Knackpunkt. Die 
Gleichtaktspannung am Empfängereingang. Siehe Anhang. Wenn zwischen den 
Massen von Sender un Empfänger ein nennenswerter Spannungsbafall 
entsteht, meit dynamisch durch Störeinkopplungen, muss der Empfänger das 
mitmachen. Das Modell hier ist nicht 100% real, CAN-Empfänger sind etwas 
anders aufgebaut. Wie genau, weiß ich nicht. Aber man sieht, daß der 
Differenzverstärker bei hohen Gleichtaktspannungen am Eingang die 
verarbeiten muss. Das LTspice modell kann es, das kann auch 1000V 
Gleichtaktspannung verarbeiten. Ein realer Empfänger kann das nicht. Ab 
einer bestimmten Spannung funktionier die Signalübertragung nicht mehr 
(je nach Typ 12-40V), und ab einer bestimmten Überspannung geht er auch 
kaputt (Je nach Typ 100-300V). ESD und Surge sind hier eine andere 
Geschichte, das müssen die Schutzschaltungen im IC oder extern aushalten 
bzw. begrenzen.

Die GND Leitung sorgt dafür, daß die eiongekoppelten Gleichtaktstörungen 
minimier werden, denn daruch wird auch die Leiterschleife zwischen 
CANH/CANL und GND minimiert. Fehlt sie, wird sie irgendwie irgendwo im 
Gerät, Haus oder Anlage geschlossen mit einer Querschnittsfläche von 
Quadratmetern, wo wunderbar Störungen induktiv oder galvanisch 
einkoppeln können.

> Normalerweise
> fließt sowohl auf CANH als auch auf CANL ein Strom vom Sender zum
> Empfänger "hin" und über GND "zurück" (technische Stromrichtung). D.h.
> der Stromkreis wird über GND geschlossen.

Falsch. Der Löwenanteil fließt über CANH und CANL hin- und zurück, über 
GND fließen nur minimale Ströme unterhalb ein Milliampere, welche durch 
den Gleichtaktwiderstand der Empfänger bestimmt werden. Die Werte im 
Modell sind grob realistisch.

> Man könnte theoretisch CAN mit einem Transformator nutzen, müsste dann
> aber auch ein Transceiver-IC haben welches mit den negativen Spannungen
> zurecht kommt.

Das ist das kleinste Problem.

> Aufgrund der AC-Kopplung bräuchte man auf Leitungsseite
> ein puls-basiertes Interface wie bei Ethernet.

Das hat auch CAN. Du meinst eine gleichstromfreie Leitungskodierung.

von Joachim U. (achim1152)


Lesenswert?

Ich danke Euch für die Antworten.
Mein Fazit ist: Für eine sichere CAN-Verbindung brauche ist mindestens 3 
Adern: CANH, CANL und Masse.

Danke Euch für die Erkenntnis.
Joachim

von Thomas F. (igel)


Lesenswert?

Guido C. schrieb:
> Benötige
> ich wirklich Masse/Ground? Ich denke eher nicht. Zumindest die Praxis
> bestätigt dies bisher bei mir.

CAN-Transceiver erzeugen intern einen Massebezug:
https://electronics.stackexchange.com/questions/469940/how-does-a-can-transceiver-work


In der Praxis baut man gerne ein zusätzliches Stütz-Netzwerk ein.
Siehe Abschnitt 2.1.3:
https://www.fh-zwickau.de/fileadmin/hochschule/ftz/docs/publikationen/1999/1999_CAN.pdf

Ist der CAN-Knoten kein Endknoten für den ein Abschlusswiderstand 
benötigt wird so nimmt man für R_Abschluss irgendwas von 3k3 bis 9k2.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.