RS232 Multislave Netzwerk

Wie wird ein RS232 Multislave Netzwerk am einfachsten erstellt?

Bild eines RS232 Multislave Netzwerks

Hier die Erklärung zum Schaltbild:
Die Tx-Leitung des Masters ist mit den Rx-Leitungen von allen SLAVES direkt verbunden. Manche Controller benötigen einen externen Pull-Up Widerstand, andere nicht. Daher ist dieser hier mit einem Wert von 10kΩ eingezeichnet. Der Wert ist in weiten Grenzen abhängig von der Leitungslänge, Leitungsquerschnitt, Übertragungsrate, notwendige Flankensteilheit usw. Er stellt jedoch in dieser Größenordnung erst einmal kein Problem dar. Der Wert kann soweit reduziert werden, bis der maximale Strom in den TX-Pin des MASTERS / SLAVES erreicht ist. Dieser kann dem Datenblatt des ausgewählten Bausteins entnommen werden. Je höher die Baudrate oder die Leitungslänge, desto niedriger der Wert des Pull-Up Widerstands.
Die Tx-Leitung aller SLAVES ist in SPERRRICHTUNG mit einer Schottkydiode versehen und im inaktiven Zustand immer auf H-Pegel gelegt. Durch die Diode wird verhindert, dass ein aktiver Pegel vom SLAVE auf die Leitung aufgebracht wird. Um nun jedoch ein Bit zu senden, wird auf der Anodenseite der Diode unbedingt ein Pull-Up Widerstand benötigt.
Sobald nun ein SLAVE einen H-Pegel auf der Tx-Leitung anlegt, wird durch die Diode verhindert, dass der H-Pegel an andere SLAVES weitergegeben wird. Dies übernimmt nun der Pull-Up Widerstand. Der MASTER erkennt in diesem Fall einen H-Pegel.
Sobald nun ein SLAVE einen L-Pegel auf der Tx-Leitung anlegt, tritt ein Strom über den Pull-Up Widerstand durch die Diode in den Tx-Pin des SLAVES auf. Die Leitung wird jetzt nahezu auf Massepotenzial gezogen. Nun ist auch verständlich, wieso eine Schottky-Diode zum Einsatz kommen sollte. Die Flußspannung der Diode und die Abfallspannung am Tx-Pin des SLAVES addieren sich und sorgen somit für den eigentlichen L-Pegel, der an den MASTER übertragen wird. Der resultierende Pegel muss dann unter 0.6V liegen, damit der MASTER dieses L-Potenzial erkennt.
Natürlich kann man ein ähnliches Ergebnis erreichen, wenn eine normale Siliziumdiode benutzt wird und gleichzeitig dafür gesorgt wird, dass die Flußspannung niedrig gehalten wird, indem der Pull-Up Widerstand den maximalen Strom durch die Diode vorgibt. Ein Blick in die Kennlinie der ausgewählten Diode zeigt dann die resultierende Flußspannung.

Theoretisch können so unendlich viele SLAVES verschaltet werden. Praktische Einschränkungen ergeben sich aufgrund von Leitungslänge, Leitungsquerschnitt und Übertragungsgeschwindigkeit. Bei niedrigen Baudraten kann die Leitungslänge höher ausfallen und umgedreht. Somit können schon einmal Längen von ca. 100m bei Baudraten von 9600Baud überbrückt werden.
Werden höhere Anforderungen an die Baudrate und Leitungslänge gestellt, sollte auf ein differentielles Übertragungsverfahren nach RS422/RS485 ausgewichen werden.
Das gezeigte Verfahren birgt jedoch auch ein Problem. Um Daten fehlerfrei übermitteln zu können, muss gewährleistet sein, dass SLAVES nie gleichzeitig senden. Diese Anforderung kann dadurch umgesetzt werden, indem jedem SLAVE softwaretechnisch eine Adresse zugewiesen wird und dieser dann nur nach Aufforderung seine Daten senden darf. Weiterhin ist es notwendig, dass das Massepotenzial von MASTER und SLAVES gleich sind. Dieses kann jedoch durch hohe Leitungslängen verschliffen werden oder sogar störungsbehaftet sein. Dies wiederrum kann Probleme bei der Erkennung eines L-Pegels mit sich bringen.