Forum: Mikrocontroller und Digitale Elektronik RS485 Treiber IC´s


von Spice (Gast)


Lesenswert?

Hallo,

ich wollte mal fragen, wie genau das mit der RS485 läuft. Ich benötige 
ein BUS, wo ich eigentlich nichts umschalten will, um die Datenrichtung 
zu ändern, daher auch 4-Draht. Das soll so laufen wie mit RS232, nur 
dass ich halt noch RS485-Treiber dazwischen habe, um die 
Störempfindlichkeit zu verringern und die Möglichkeit habe, ein BUS 
draus zu stricken. Wie genau werden die RS485-Slaves adressiert? Wird 
das in Firmware implementiert, oder ist das so ähnlich wie bei I2C? 
Welche ICs gibt es? Mein Ziel ist es, 4-5 Geräte über eine längere 
Strecke miteinander zu verbinden. Das Protokoll ist selbst definiert 
aber für RS232, aber wenn ich statt RS232  RS485-Treiber einsetze, 
sollte das doch funktionieren, oder ?
Besten Dank
Spice

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Spice schrieb:
> Ich benötige
> ein BUS, wo ich eigentlich nichts umschalten will, um die Datenrichtung
> zu ändern, daher auch 4-Draht.

Bei zwei angeschlossenen Geräten ist das kein Problem, aber wie stellst 
Du Dir das bei mehr als zweien vor?

von Spice (Gast)


Lesenswert?

Das war ja auch meine Frage :-)
Vielleicht, dass alle Slaves auf dem Bus lauschen und dann entscheiden, 
ob die Message an "ihn" gerichtet ist, oder nicht. So ähnlich wie bei 
CAN-BUS?

von (prx) A. K. (prx)


Lesenswert?

Bei Single-Master geht auch 4-Draht RS485, explizit einschalten muss man 
die Slave-Transmitter trotzdem. Sind natürlich keine 8-Pin-Transceiver 
mehr einsetzbar. Kann man machen, offen bleibt der Vorteil davon.

Und wenn man 2-Draht CAN-Transceiver an Stelle der 4-Draht 
RS485-Transceiver verwendet, dann muss man überhaupt nicht umschalten, 
nur Disziplin beim Senden einhalten.

von Michael M. (Gast)


Lesenswert?

Spice schrieb:
> draus zu stricken. Wie genau werden die RS485-Slaves adressiert? Wird
rs485 beschreibt nur den layer 1 also die PHYsischen 
übertragungsmodalitäten.

> das in Firmware implementiert, oder ist das so ähnlich wie bei I2C?
kommt auf deine hardware an.
es gibt controller, die einen andressen-vergleich in hardware 
übernehmen.

> Welche ICs gibt es? Mein Ziel ist es, 4-5 Geräte über eine längere
sowas gibt es nicht.
das muss der client selbst machen, nicht seine PHY-einheit.

> Strecke miteinander zu verbinden. Das Protokoll ist selbst definiert
na also... wenn es eh selbst-gestrickt ist, bau da den adress-vergleich 
ein oder implementiers auf einem controller, der das selbst macht.

> aber für RS232, aber wenn ich statt RS232  RS485-Treiber einsetze,
> sollte das doch funktionieren, oder ?
rs232 ist p2p, rs485 willst du als bus...
wie passt das zusammen?

von Spice (Gast)


Lesenswert?

Vielen Dank nochmal

>> aber für RS232, aber wenn ich statt RS232  RS485-Treiber einsetze,
>> sollte das doch funktionieren, oder ?
>rs232 ist p2p, rs485 willst du als bus...
>wie passt das zusammen?

vielleicht hätte ich noch erwähnen müssen, dass ich beide Seiten unter 
meiner eigenen Kontrolle (mittels µC mit mehreren UARTs) habe.
So wie in den Bildern beschrieben habe ich mir das gedacht. Per RS232 
quasi kaskadiert mit 2 UARTs pro µC oder über RS485 als Bus mit CAN-like 
Adresserkennung.

von Spice (Gast)


Angehängte Dateien:

Lesenswert?

Anhang vergessen... sorry

von Volker Z. (vza)


Lesenswert?

4-Draht-RS485 nennt man RS422.
RS422 ist der RS232 Ersatz. also auch nur P2P.
Als BUS (so wie in Skitze) kann trotzdem nur ein Slave antworten.

Also 2 Drähte gespart und gleich RS485 genommen.

von Michael M. (Gast)


Lesenswert?

dann suchst du also nur stinknormale rs485 transceiver?
mit deaktivierbarem treiber für den schwarzen fall...

SN75176

von Landwirt (Gast)


Lesenswert?

hmmm jaa ... rs485

Also Du kannst Master-Slave-Verbindungen aufbauen über 4-Draht,
dann darf aber nur ein Busteilnehmer der Master sein, alle
Anderen zwangsläufig Slaves.
Beim Master brauchst Du keine aktive Umschaltung der Datenrichtung,
bei den gängigen RS485 Bausteinen der Slaves (z.B. Max487 MAX485, LTC485 
etc.)
Musst Du die Belegung des Bus, also des zweiten Aderpaares für den 
Rückkanal schon aktiv einschalten, da sonst alle gleichzeitig "senden", 
egal ob das ausgehende Signal nun Low oder high ist. Du bekommst also 
Kollisionen.
Lösen kannste das z.B. über CTS oder RTS vom Slave, den Du dann einfach 
verwendest um deinen 485-Baustein einzuschalten.
Du kannst auch alternativ die Bausteine vom CAN-Bus verwenden, dann 
kannste Dir die Umschaltung schenken, die machen das von sich aus schon.

PCA82C250 / 251 z.B.

von Michael M. (Gast)


Lesenswert?

Landwirt schrieb:
> Also Du kannst Master-Slave-Verbindungen aufbauen über 4-Draht,
> dann darf aber nur ein Busteilnehmer der Master sein, alle
> Anderen zwangsläufig Slaves.
zu einem zeitpunkt.
es gibt viele protokolle, die multi-mastering und master-negotiation 
unterstützen.

> egal ob das ausgehende Signal nun Low oder high ist. Du bekommst also
> Kollisionen.
nein, kurzschlüsse.
kollisionen in der nachrichtentechnik sind was andres.

von Landwirt (Gast)


Lesenswert?

Bei 2-drähtig und halbduplex gebi ch Dir Recht mit Multimaster, aber bei 
4-drähtig ohne Umschaltung wirds nix mit Multimaster.

von Michael M. (Gast)


Lesenswert?

stimmt!

von ttl (Gast)


Lesenswert?

nimm einen CAN Transceiver, da brauchst du die Richtung nicht umschalten

von Robert L. (lrlr)


Lesenswert?

frage eines dau:

unterschied zwischen 2 und 4 draht ist ja "nur" ob ZUGLEICH gesendet 
werden kann ,  oder ?

es kann also ein master daten senden  während zugleich (einen) slave 
"zurück" senden.. kann

(was zwar jetzt im "üblichen" bus-fällen eher nicht benötigt wird..)

nur, warum solle man da nicht trotzdem die master dynamisch bestimmen 
können..

von R. M. (rmax)


Lesenswert?

Robert L. schrieb:

> unterschied zwischen 2 und 4 draht ist ja "nur" ob ZUGLEICH gesendet
> werden kann ,  oder ?

Ein weiterer Unterschied ist, daß bei Vierdraht die Rolle des Masters 
durch die Busanschaltung festgelegt ist. Bei Zweidraht dagegen sind die 
Teilnehmer hardwaremäßig gleichberechtigt (jeder "hört" jeden) und es 
ist nur eine Frage des Protokolls bzw. der Software in den Controllern, 
wer die Rolle des Masters übernimmt.

> nur, warum solle man da nicht trotzdem die master dynamisch
> bestimmen können..

Weil der Master wie gesagt durch die Verdrahtung bestimmt wird. Der 
Ausgang des Masters ist mit den Eingängen aller Slaves verbunden und die 
Ausgänge aller Slaves mit dem Eingang des Masters. Will man die Rolle 
des Masters also auf einen anderen Knoten übertragen, muß man beim alten 
und neuen Master die Ein- und Ausgänge vertauschen.

Hier mal als Beispiel ein Bus mit den Teilnehmern 1..4. E und A stehen 
für die Ein- und Ausgänge des jeweiligen Teilnehmers, === für die 
Busletungen.

Hier ist Teilnehmer 1 der Master:

 A1 === E2 === E3 === E4
 E1 === A2 === A3 === A4

Hier ist es Teilnehmer 3:

 E1 === E2 === A3 === E4
 A1 === A2 === E3 === E4

von Robert L. (lrlr)


Lesenswert?

ok, versteh ich (danke)

d.h. man könnte 2  x 2 draht rs485 machen, für fullduplex multimaster 
rs485 ;-).

von Ben (Gast)


Lesenswert?

du meinst halbduplex und dann 2 leitungen

von Jones (Gast)


Lesenswert?


von Robert L. (lrlr)


Lesenswert?

@ben: ich meine 2 x rs485 (also 4 kabel) (also auch 2 treiber usw)

1. teilnemer wäre master am 1. rs485 und sendet  (slave wäre dann master 
am 2. bus)

wie gesagt eher theoretisch, weil beim klassischem bussystem keiner 
parallel senden will/muss...

von Micha (Gast)


Lesenswert?

@ Spice
Bei der "grünen Version" wirds schon wieder schwierig ohne Umschaltung, 
zumindest wenn die Kommunikation bidirektional sein soll. Außer du 
spendierst jeweils zwischen zwei Teilnehmern 4 Leitungen und nimmst 
reine Transmitter/Receiver statt Transceivern.

Ber der "schwarzen Version" brauchst du eine Zugriffskontrolle für den 
Bus, damit nicht zwei Slaves gleichzeitig senden.

von Jones (Gast)


Lesenswert?

Micha schrieb:
> Ber der "schwarzen Version" brauchst du eine Zugriffskontrolle für den
> Bus, damit nicht zwei Slaves gleichzeitig senden.

Äh, bei Vierdraht Bus ist nur Master/Slave möglich. Und da kein Slave 
unaufgefordert senden darf braucht man auch keine "Zugriffskontrolle"

von Weingut P. (weinbauer)


Lesenswert?

also 2 x 2 Vollduple Multimaster geht schon mit vielen Kunstgriffen.
Zum Einen müsstest Du entweder die RX / TX Pins der UART abwechselnd auf 
den einen oder anderen Transceiver schalten, oder
dann Software-Uart verwenden, dann kannste den jeweiligen Pin frei 
zuordnen, oder Variante 3, Der Teilnehmer am Busende (quasi 
Pseudomaster) müsste, so er die Kontrolle an einen anderen Busteilnehmer 
abgegeben hat die eingehenden Daten einfach auf den Ausgangskanal 
spiegeln, also n Echo geben.

Das ginge dann ... wär aber schon von hinten durchs Knie ins Auge.

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.