CAN-Bus Ring-Topologie

Gast #626750
Lesenswert?

Hallo,

Ich habe eine Frage in Bezug auf die Ring-Topologie.

Zur Zeit habe ich das CAN-Netzwerk über eine Linien Struktur realisiert.

Ich wollte nun es durch einen doppelten Ring aus design-technischen 
Gründen realisieren.

Hat vielleicht jemand Erfahrung damit gemacht? Was ist denn dort 
besonders zu beachtenß Wie sieht es mit der Terminierung aus?

Beste Grüße

 Fred
Gast #626837
Lesenswert?

Hat niemand eine Erfahrung damit? oder ist die Frage zu elementar?

In einem Ring wird das Signal der Nachricht immer weiter getragen. Somit 
läuft das Signal ständig im Ring und behindert andere Übertragungen, Wie 
also wird ein solches problem behandelt?
(Firma: Promaxx.net) #626908
Lesenswert?

Ich denke mal, CAN ist dafür gar nicht ausgelegt.
Du solltest mal bei den Token-Ring-Leuten (Staffelläufer) vorbeisehen, 
ob die noch ein paar Transceiver haben, die man verwenden kann.

CAN baut zum Teil ja gerade auf Kollision, um Prioritäten zu 
ermöglichen. CAN ist nicht Punkt-zu-Punkt, es können Knoten ausfallen, 
ohne den Bus zu stören, es gibt auch Nachrichten, die niemanden 
erreichen, weil sie niemand interessiert.
Gast #659813
Lesenswert?

Guten Tag,

Ich hänge mich gerade mal hier an, weil es so schön dazu passt:
Ich habe ein CAN System, 200kBits/s, und eine Baum / Stern Topologie:
Twisted pair, die weitesten teilnemer ca. 60m entfernt, etwa 4 Sterne @ 
je 5-8 Zweige von 2-20m. Diese einzelne Sterne sind auf einer Hauptader 
von ca. 20m verteilt.
Wie würdet Ihr da Abschlusswiderstände plazieren?
Jedes Ende?
Mitte jedes Sternes?
Nur an den entferntesten Enden jedes Sternes?

Vielen Dank für eure Unterstützung,
   mfg,
      Alexandre1978
#659992
Lesenswert?

CAN BUS hat nicht ohne Grund BUS im Name.

Baum ist absolut verboten.
Stern ist absolut verboten.

kurz gesagt: Alles ausser Bus ist verboten.

Die einzige Möglichkeit das zu umgehen ist eine Art Hub oder Switch zu 
bauen, welches den CAN Bus in mehrere kleinere Busse aufteilt.
Aber sowas zu bauen ist auch nicht einfach.
Meine Empfehlung: Bau das Netzwerk einfach als Bus auf.
Gast #660056
Lesenswert?

>Baum ist absolut verboten.
>Stern ist absolut verboten.
>kurz gesagt: Alles ausser Bus ist verboten.

Aber was verboten ist, macht ja gerade Spaß... ;-)

Wir bauen hier seit über 10 Jahren Geräte mit >10 CAN-Knoten
und den wildesten Verkabelungen. Auch zusätzlich extern anschließ-
bare Geräte am selben einen "BUS" sind möglich und vorgesehen.
Das ganze zwar "nur" auf 100kbit, weil bisher nie mehr gebraucht.
Funktioniert jedoch absolut einwandfrei.

Also sooo schwarz und weiß darf man das ganze nicht sehen.
#660074
Lesenswert?

Es schweift jetzt vielleicht schon etwas sehr vom Thema ab, aber was ich 
mich immer frage (also es gibt garantiert nen Grund - nur ich kenn ihn 
einfach nicht): Wieso soll z.B. ein Stern oder Ring bei CAN nicht 
funktionieren? Also es sind doch die gleichen Adern. Ob ich nun A mit B 
und B mit C verbinde, oder A mit B und A mit C, also das müsste doch 
egal sein!?

Das Einzige, wie ich mir das erklären könnte wäre, dass es wegen der 
Verzögerung der Elektronen nicht geht, aber ich kann mir irgendwie nicht 
vorstellen, dass die so groß ist, dass die wirklich stören kann. Also 
Abschlusswiderstände dienen ja auch dazu, um Relexionen am Adernende zu 
unterdrücken. Beim Ring würde danach dann der Teilnehmer, der direkt 
neben dem Sender sitzt, das ganze zweimal bekommen - einmal von der 
einen Seite, direkt vom Sender, und einmal verzögert über den Ring. Aber 
hängt das wirklich damit zusammen?
#660094
Lesenswert?

Ich wüste nicht das es einen Ring Transceiver für CAN gibt.
Die einzigste Möglichkeit die ich da sehe ist jeden Knoten mit zwei 
Transceivern auszustatten und dann das ganze ins Protokoll aufzunehmen, 
das die Software es dann weiterschickt. Sobald ein Knoten ausfällt ist 
natürlich Ende für alle dahinter
=> schlechte Idee

Hier eine CAN HUB (Stern/Baum Topologie) Schaltung:
http://oschmid.home.solnet.ch/mt/can-hub/can-hub.php

Ich habe es bisher noch nicht gebraucht, sollte aber funktionieren.
Das diskrete Zeugs sollte sich auch gut per FPGA erledigen lassen, bei 
niedrigen Geschwindigkeiten sogar nur mit einem kleinem µC.
Gast #660109
Lesenswert?

ganz einfach:

Stern und Ring bauen auf P2P (Peer to 
Peer)http://de.wikipedia.org/wiki/Peer-to-Peer
auf.
Dies bedingt elektrisch separate verbindungen.

in den Busssystemen I²C, 1wire, und CAN liegen die Bedingungen ganz 
anders

verschiedenene Sender und Epfänger arbeiten auf eine leitung mit hoher 
Geschwindigkeit die signalausbreitung erfolgt mit Wellencharachter. Dies 
führt an jeder nicht (nichtangepassten)(stör)Stelle zu einer 
Teilreflektion. Offene Enden und Kurzschlüsse stellen insofern das 
gleiche verhalten dar eine Totalreflektion am Strombauch(Kurzschluss), 
offenes Ende Spannungsbauch. Die Folge sind Interferenzen auf der 
Leitung, welche die Pegel bis zur Unkenntlichkeit vermatschen können.

mehere abschlusswiederstände verderben die anpssung ........

Deshalb wenn, von der Line abweisende Topologieen unumgänglich sind, 
Bridges verwenden.

Diese Sache gewinnt mit zunehmender Bussgeschwindigkeit an Bedeutung, da 
dann die Welleneigenschafften der Sprungantwort auf der Leitung 
gegenüber der Quasigleichzeitigkeit zunehmen.
Gast #661452
Lesenswert?

Guten Tag,

Hallo zusammen,

Ich weiss schon das CAN für BUS gedacht ist, und auch nur so die Enden 
Optimal abgeschlossen werden können.
Ich empfehle auch unseren Kunden (wir haben ein Hausautomation Produkt) 
die Geräte Linienförmig anzuschliessen.
So Viel zur Theorie.
In der Praxis ist es aber so, dass es dann nicht mehr Linienförmig ist, 
aber Sterne auftreten ("es sind ja nur "KURZE" Leitungen"), und so die 
verschiedenen Sterne wieder zusammen Zentral miteinander verbunden 
werden.
Für Hubs und so weiter ist leider meistens kein Platz, und auch keine 
Speisung vorhanden (unsere Geräte haben alle eine eigene Speisung).
Nach vielen rumfummeln bekommt mann es auch zum laufen, aber ich hätte 
gerne ein paar Faustregeln wie mann es am besten angeht, um nicht ewig 
lange ze testen.
Hier ein paar Eckdaten:
- 200kBits
- TJA1050 Treiber
Twisted Pair, ungeschirmt (und nur 1 twisted pair, also nicht möglich 
Hin- + Zurück)
- Meistens nur wenig Daten (1 Telegramm alle 40ms, mit 0 DatenBytes), 
darauf evtl. ein paar Geräte (0, 1, 2) die mit 2 Daten-Bytes antworten, 
Worst case 100 Geräte die auf das Telegramm Antworten.
- Max. 100 Geräte (im jetzigen Fall ca. 60)
- Im jetzigen Fall sind die entferntesten Geräte keine 60m weit.

Vielleicht hat ja "ARM-Fan" einpaar tips aus Erfahrung?

Da das Produkt noch nicht richtig vermarkt ist, spiele ich mit dem 
Gedanken die Geschwindigkeit evtl. auf 125k runterzuschrauben. Aber ich 
denke der jetzige Fall gehört zu den "kompliziertesten", und wenn ich 
ihn mit 200k zum laufen bekomme, weiss ich umsobesser dass es in zukunft 
mit 125k eigentlich einfach sein sollte.

Also, wer hat tipps, welche mich da weiterbingen würden?
Vielen Dank im Voraus,
   Alexandre1978

P.S.: Ich werde versuchen demnächst eine Zeichnung der Struktur 
einzuscannen, vielleicht kann es weiterhelfen.
Gast #661754
Lesenswert?

Hi,

Meistens wird nur alle 40ms 1 Telegramm gesendet, wodurch alle anderen 
Geräte abgefragt werden.
Es kann sein, wenn irgendwo etwas gedrückt wird, dass 1-2 Geräte mit 
einem Tel. antworten, im worst case könnten aber theoretisch alle (max. 
100) Geräte antworten. Dies wäre auch der Fall bei einer Visualisierung 
wo über ein spezielles Tel. ALLE abgefragt werden.
Und das ganze sollte fertig sein, bevor das nächste Abfrage Tel. kommt, 
das heisst innerhalb 40ms. Daher der Grund.

Als Anhang noch die aktuelle Struktur. An jedem Knoten oder Ende können 
auch mehrere Teilnehmer sein.

Vielen Dank,
   mfg,
      Alexandre1978
Angehängte Dateien:
Gast #661854
Lesenswert?

Hi,

Es ist nichts Sicherheitrelevantes dahinter.
Wenn 1x pro Monat ich auf eine Taste drücke und das Licht geht nicht 
sofort an, merke ich es nicht da das Telegramm 40ms Später (da ich die 
Taste immer noch drücke) wieder verschickt wird.
Sollte das Telegramm falsch ankommen, passiert auch nichts weil ich 
erwarte das die taste mindestens eine bestimmte Zeit gedrückt bleibt.
Ich bin aber auf der Suche nach dem richtigen Kompromiss 
Geschwindigkeit/Verdrahtung/Effizienz.
Wie würde ich in solch einem Fall die Abschlusswiderstände am besten 
Dimensioniern und platzieren, und bei welcher Geschwindigkeit sollte es 
zuverlässig funktionnieren.
Ich überlege auch evtl. ein Hub in die mitte zu tun, dann wäre alles 
viel besser, aber ich möchte lieber ohne auskommen.

Irgendwelche Tipps?
   Vielen Dank
      Alexandre1978
#662044
Lesenswert?

Alexandre1978 wrote:
> Es ist nichts Sicherheitrelevantes dahinter.

Dann kannst du es so versuchen. Gehen wird es wohl. Nur die 
Zuverlässigkeit wird wahrscheinlich leiden.


> Ich bin aber auf der Suche nach dem richtigen Kompromiss
> Geschwindigkeit/Verdrahtung/Effizienz.
> Wie würde ich in solch einem Fall die Abschlusswiderstände am besten
> Dimensioniern und platzieren, und bei welcher Geschwindigkeit sollte es
> zuverlässig funktionnieren.

Die Frage mit der Geschwindigkeit kann man nur raten, nicht mit 
Sicherheit beantworten. Aber: Je langsamer, desto besser.

Mit den Abschlusswiderständen würde ich an deiner Stelle Experimente 
durchführen.
Wenn möglich schau dir die Signalform an und mach längere Tests bei 
denen du die Errorframes mitloggst.

Ich könnte mir vorstellen, dass es am besten geht, wenn du entweder die 
beiden entferntesten Punkte terminierst (je 120 ohm) oder jedes Ende mit 
einem wesentlich höheren Widerstand terminierst. Du solltest aber in 
Summe immer auf etwa 60 ohm kommen, wenn du in den Bus reinmisst.
Gast #662056
Lesenswert?

Zitat von Willivonbienemaya: CAN BUS hat nicht ohne Grund BUS im Name.

Baum ist absolut verboten.
Stern ist absolut verboten.

kurz gesagt: Alles ausser Bus ist verboten.

Aha, also alles was Bus im Namen hat ist ne Linienstruktur. Ich lache 
mich schlapp!! Mach weiter so
Gast #662086
Lesenswert?

Das Wort "Bus" sagt doch absolut nichts über die Ausführung der 
Datenverbindung aus.

Zitat Wiki:
Der Bus ist ein im Bereich der Datenverarbeitung häufig verwendeter 
Begriff für ein Leitungssystem zum Austausch von Daten und/oder Energie 
zwischen potenziell mehr als zwei Teilnehmern. Ein Bus ist ein 
Leitungssystem mit zugehörigen Steuerungskomponenten, das zum Austausch 
von Daten und/oder Energie zwischen Hardware-Komponenten dient. 
Bussysteme finden Anwendung insbesondere innerhalb von Computern und zur 
Verbindung von Computern mit Peripheriegeräten, aber auch in der 
Ansteuerung von Maschinen (Feldbusse, Bushierarchie) sowie immer 
häufiger in Automobilen zur Verbindung der einzelnen elektronischen 
Systemkomponenten eines Fahrzeugs.
Gast #662180
Lesenswert?

Junge du merkst doch nix mehr.

Wenn ich einen CAN-BUS nutze, sagt das noch gar nix über die Topologie 
aus. In Sternform nutze ich immer noch den CAN-Bus, da als 
Übertragungsmedium ein BUS-Kabel genutzt wird, wie dieses verlegt und 
wie oft es gespleisst wird ist scheissegal. Vergiss es einfach, das sind 
Perlen vor die Säue mit dir.
Gast #4617290
Lesenswert?

Hallo,

der Thread ist zwar schon recht alt, ich möchte aber gern eine Lösung 
für eine redundante CAN-Ring Struktur aufzeigen:

Das geht bei www.eks-engel.de mit optischen Konvertern, die CAN auf 
Glasfaser und zurück wandeln.
Die optische Strecke ist dann ein redundanter Ring, der auch dann noch 
funktioniert, wenn er an einer Stelle unterbrochen wird.
#4992191
Lesenswert?

Ich habe den Thread durch Zufall gefunden und kann die "Diskussion" 
zwischen  Willivonbienemaya und MrYahoo, wenn auch schon einige Jahre 
alt, nicht unkommentiert so offen stehen lassen.

Am Ende liest ein unbedarfter Nutzer das hier und ist danach völlig 
verwirrt, bzw. missinformiert.

Wenn man im CAN Standard ISO 11898-5 liest, ist dort in der Abbildung 1 
auf Seite 2 eindeutig eine Linientopologie mit 2 Abschlusswiderständen 
und der Bildunterschrift "Suggested electrical interconnection" 
abgebildet.

Ähnlich in CiA 102 unter dem Kapitel 6.3: "The wiring topology should be 
as close as possible to a single line structure"

Die Begründung für diese Empfehlung wird auch gleich mitgeliefert: "in 
order to minimize reflections".

Beziehungsweise der Wiki-Artikel zum CAN: 
https://de.wikipedia.org/wiki/Controller_Area_Network#Topologie

Durch den CAN-Standard ist damit eine Linien-/Bustopologie zwar nicht 
vorgeschrieben, sie wird aber aufgrund der Hochfrequenzeffekte wärmstens 
empfohlen. Stiche sind erlaubt, aber nur bis zu einer von der Bitrate 
abhängigen Gesamtlänge.

An sich ist damit auch eine Stern-Struktur möglich, die Berechnung der 
dazu passenden Abschlusswiderstände ist aber aufwendig.

Wenn man das ignoriert, kommt es halt zu Reflexionen im Signal. Diese 
müssen aufgrund einer niedrigen Baudrate und der Fehlertoleranz von CAN 
nicht zu sichtbaren Problemen führen, verschlechtern aber die Qualität 
und damit die Störsicherheit der Übertragung.

Aber die praktische Einsatzmöglichkeit einer Ringtopologie im CAN (ohne 
Wandler auf optisch etc.) würde ich auch ausschließen.
Gast #4992220
Lesenswert?

Bei kurzen Leitungslängen funktionieren schon prinzipiell alle 
Topologien...

VW (VAG) verbaut auch in den Autos wilde Topologien.
Der Abschlusswiderstande sind dann über "viele" Steuergeräte verteilt.

Ist aber streng genommen dann kein CAN nach Spezifikation mehr.
#4992235
Lesenswert?

Wie gesagt: Bei kurzen Leitungslängen, niedrigen Baudraten und durch die 
Fehlertoleranz des CAN können auch wilde Verkabelungen zu einem an sich 
funktionierenden Netzwerk führen.

Die Signalform wird aber kaum einem Rechteck ähneln und die Error 
Counter der Knoten sollte man sich besser nicht angucken...

Die Betriebs-/Störsicherheit des Netzwerks wird damit recht niedrig 
sein. Wenn Bus kurz vor der Kotzgrenze betrieben wird und dann 
unvorhergesehene EMV auftritt oder der Bus einfach vor sich hin altert, 
dann muss man sich nicht wundern, wenn plötzlich gar nichts mehr geht.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren