RS485 / Modbus Hub ohne Prozessor mit Logikbausteinen

Gast #4179674
Lesenswert?

Hi.

Ich habe eine Schaltung für einen Modbus / RS485 Hub erstellt.
Es ist die erste Vorab-Version.

Ich habe es bewusst ohne Controller realisiert, da die Schaltung einfach 
die Daten, welche auf einem Port rein kommen, an den anderen Ports 
wieder ausgeben soll, aber nicht an dem Port wo es empfangen wurde.

Die Schaltung soll in Abzweigdosen installiert werden und daher viele 
Jahre problemlos und Protokoll-Unabhägig arbeiten und einfach nur 1:1 
durch reichen. Sie soll noch nicht mal eine Kollisionserkennung machen 
und auch keine Fehlererkennung.
Die Baudrate soll auch nicht fix festgelegt sein, sondern die Schaltung 
soll einfach im Rahmen seiner elektrischen Werte alles durch lassen was 
geht.

Funktion der Schaltung:
Wenn an einem Port ein 0 Signal auf dem Bus empfangen wird, wird über 
die Diode der Kondensator schnell entladen, und der invertierende 
Schmitt-Trigger gibt ein 1 Signal aus. Bei einem 1 Signal auf dem Bus 
läd sich der Kondensator langsam auf und schließt irgendwann den Port 
wieder. (Bei einem X Signal auf dem RS485 Port gibt der MAX489 auch ein 
1 Signal aus).
Geplant ist, nach Empfang einer 0 den Port ca 10 ms für Datenfluss offen 
zu halten.

Über den Schmitt-Trigger wird dann der Buffer 74HC126 freigegeben, und 
das Datensignal liegt auf der Hubinternen Datenleitung.
Gleichzeitig wird das Signal auf ein XOR geführt.
Der XOR 74HC86 überprüft, ob die ACT Leitung auf High ist
Außerdem wird über eine Diode die Portübergreifende ACT Leitung auf High 
Pegel gebracht. Hierdurch wird der Sender des Ports, wo empfangen wird, 
nicht freigeschaltet, aber bei den anderen Ports wird der Sender aktiv 
und die empfangenen Daten werden 1:1 durch gereicht.


Habe ich irgendwo einen Denkfehler drin, oder würde die Schaltung so 
funktionieren?

Es geht um die Logik, Kondensator- und Widerstandswerte oder sonstige 
Konkrete Bauteilbezeichungen spielen erst mal keine Rolle.
Anbei ist der Schaltplan angehängt. Vielleicht habt ihr auch noch 
Verbesserungsvorschlöge für mich.

Viele Grüße
Angehängte Dateien:
#4180446
Lesenswert?

Hallo,
ich habe nmir das mal angeshen und versucht zu analysieren.

Im Prinzip sollte es funktionieren, aber ob es wirklich stabil für 
unterschiedliche Baudraten läuft, da bin ich nicht ganz sicher.

Die Richtungsumschaltung würde ich besser mit einem Monoflop machen.

Die Freigabezeit zum Senden sollte dann so eingestellt werden, dass bei 
niedrigster Baudrate eine Bytelänge erreicht wird.
Wenn man nicht unter 1200 Baud geht, wären damit ca. 8...9ms ganz ok.
Das genannte Timeout von 10ms wäre somit ganz ok.

In deiner Schaltung fehlt IMHO noch zumindest ein Pulldown-R an der 
ACT-Leitung für einen def. Low-Pegel.
Gruß Öletronika

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren