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
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?
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.
Welche Vorteile sollte ein Ring gegenüber einem Bus haben?
Der CAN funktioniert nur als Bus, nicht als Ring.
Aber wenn du den Ring einfach durchschneidest und Terminierst, hast du
doch einen Bus, der aussieht wie ein Ring.
Wenn du einen Stern bauen wollen würdest, würde ich das ja noch
verstehen...
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
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.
>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.
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?
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.
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.
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.
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
Wenn ich das richtig sehe hast du da Stichleitungen von über 15m.
Ich hoffe da steckt nix sicherheitsrelevantes dahinter.
Mit CAN Bus hat die Verdrahtung auf jedenfall nichts zu tun.
Möglich, dass es funktoniert, aber verlassen würde ich mich darauf
nicht.
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
MrYahoo wrote:
> @Willivonbienemaya>> Wie kommst du denn darauf, dass der Name BUS = Linienstruktur bedeutet?> Natürlich ist Stern erlaubt und wird auch genutzt.
Du kennst dich aus, das merkt man gleich.
Da macht argumentieren keinen Sinn.
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.
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
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.
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.
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.
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.
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.
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.