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
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?
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?
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.
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?
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.
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.
dann suchst du also nur stinknormale rs485 transceiver? mit deaktivierbarem treiber für den schwarzen fall... SN75176
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.
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.
Bei 2-drähtig und halbduplex gebi ch Dir Recht mit Multimaster, aber bei 4-drähtig ohne Umschaltung wirds nix mit Multimaster.
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..
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
ok, versteh ich (danke) d.h. man könnte 2 x 2 draht rs485 machen, für fullduplex multimaster rs485 ;-).
@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...
@ 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.
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"
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.