Forum: Mikrocontroller und Digitale Elektronik RS485 oder CAN Busleitungen schalten


von Jörg Plitz (Gast)


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

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.