Hi!
Hier noch ein Ansatz:
Die RS232 kann man schon zusammenschalten, mit paar zu beachtenden
Dingen.
RXD kommt an alle 3 µCs. Spendiert man noch 2 Pins pro µC fur eine
Hardwareadressierung kann man das identische Programm in alle 3 µCs
flashen. Alternativ geht auch eine Adresse im EEPROM.
Jetzt braucht man noch ein kleines Protokoll:
Alle 3 µCs empfangen die Daten, welches ein Adressbyte enthält (bzw. an
einer definierten Stelle 2 Bits) und vergleichen dies mit ihrer
HW-Adresse über die Pins bzw. EEP. Somit wissen die µCs, ob sie gemeint
sind.
Für eine Kommunikation in die eine Richtung ist man jetzt fertig. Soll
es auch in die andere Richtung gehen, kein Problem:
TXD bekommt auf 5V-Seite am Transceiver einen Pullup und wird dann mit 3
Dioden entkoppelt. Heißt, der Ruhepegel von 1 kann von jedem µC auf 0
gezogen werden, ohne dass es zu Problemen an den anderen µC-TXD-Pins
kommt, somit eine Art Open Kollektor-Schaltung.
SW-seitig muss man jetzt noch beachten, dass nicht mehrere µC
gleichzeitig senden dürfen. Das heißt, PC ist der Chef und schickt eine
Anfrage mit HW-Adresse. Jetzt darf nur der Gefragte antworten.
Sollen die µCs "ungefragt" an den PC senden können, muss man eine
Busarbitrierung durchführen. Bevor gesendet wird, lauscht ein µC eine
Weile auf der TXD-Leitung ob da jemand anderes sendet bzw. auf Low zieht
(Pin auf I/O-Mode Eingang). Ist das nicht der Fall, kann er in den
UART-Mode schalten und senden. Hier ist noch ein gewisses Restrisiko,
das dies gleichzeitig passiert und dann doch 2 gleichzeitig senden.
Gruß
Roman