www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik RS485 Treiber IC´s


Autor: Spice (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Spice (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Michael M. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Spice (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Spice (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Anhang vergessen... sorry

Autor: Volker Zabe (vza)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Michael M. (Gast)
Datum:

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

SN75176

Autor: Landwirt (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Michael M. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Landwirt (Gast)
Datum:

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

Autor: Michael M. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
stimmt!

Autor: ttl (Gast)
Datum:

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

Autor: Robert L. (lrlr)
Datum:

Bewertung
0 lesenswert
nicht 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..

Autor: R. Max (rmax)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Robert L. (lrlr)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ok, versteh ich (danke)

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

Autor: Ben (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
du meinst halbduplex und dann 2 leitungen

Autor: Jones (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Robert L. (lrlr)
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: Micha (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Jones (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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"

Autor: Weingut Pfalz (weinbauer)
Datum:

Bewertung
0 lesenswert
nicht 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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.