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.