RS485 oder CAN Busleitungen schalten

Gast #274382
Lesenswert?
• ▲
▼
Hallo,

ich suche eine praktisch erprobte Lösung, um die beiden Adern eines
Buskabels zwischen einer Ein- und einer Ausgangsbuchse elektrisch zu
trennen.
Rahmenbedingungen:
-RS485 oder CAN mit bis zu 500kBit/s (1MBit/s wären noch besser)
-nur 2 Adern (zzgl. GND) verfügbar, kein Ring möglich
-kein! Relais (mechanisch)
-Potentialtrennung nicht zwingend
-sehr geringe Schalthäufigkeit
-Abschlusswiderstand zuschaltbar
-bis zu 15 mal kaskadierbar

Master======++S======++S=======++S    S=Schalter
            ||       ||        ||
           Slave    Slave     Slave

Bisher habe ich eine Lösung mit PhotoMOS-Relais (3 Stück) im Auge, es
gibt da ja auch Typen mit niedrigem Ron und geringer Ausgangskapazität.
Allerdings bin ich mir nicht sicher, ob und mit welchen Typen sich die
Anforderungen am günstigsten (Preis, größere Stückzahl) erfüllen
lassen. Hat jemand schon mal so etwas praktisch realisiert?

Zum Hintergrund, ehe Fragen aufkommen, warum ich so etwas machen will.
Gefragt ist eine Lösung für ein propiertäres Bussystem auf der Basis
von RS485 oder CAN mit einem Master und bis zu 15 Slaves. Diese müssen
natürlich entsprechend adressiert werden, um Konflikte zu vermeiden und
(wichtig!) im Master eine eindeutige Zuordnung zwischen Daten und
räumlicher Position im Bus sicherzustellen. Die Adresszuweisung soll
durch den Master im Rahmen eines Scans beim Einschalten der
Versorgungsspannung erfolgen. Eine mechanische Adressierung durch
Schalter o.ä oder eine elektronische vor der Montage ist nicht möglich
bzw. nicht gewollt (plug&play). Der Master weist dem direkt an ihm
angeschlossenen Slave eine Adresse <>0 zu und dieser schaltet nun den
Datenbus zum nächsten Slave weiter usw. (Ich hoffe, es ist
verständlich?)
Oder hat einer noch eine bessere Idee (Versorgungsspannung slave-weise
zuschalten dauert zu lange und ist zu unsicher)?
Bereits verworfen:
-Bei CAN in jedem Slave einen Repeater einschleifen (AMIS-42700) und
diesen freischalten, geht nicht, da Repeater Verzögerungszeiten bei der
Bit-Übertragung verursachen, die bei 15 Slaves und den notwendigen
500kBit/s bereits deutlich über einer Bit-Zeit liegen.
-Bei RS485 für Ein- und Ausgang je einen Bus-Treiber verwenden und
denjenigen auf der Abgangsseite freischalten. Bei RS485 muss die
Datenrichtung expliziet umgeschalten werden, d.h. jeder Slave müsste
permanent mithöhren und ggf. seine beiden Treiber umschalten. Wird bei
diesen Geschwindigkeiten imho zu "anstrengend" für die CPU des
Slaves.

Besten Dank schon mal für eure Bemühungen.

Jörg

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.