Drei Motoren über Rs232 ansteuern

Gast #1276862
Lesenswert?

Hallo

ich habe vor über den PC bzw RS232 drei Controller zu steuern.
D.h. ich würde es so programmieren dass je nach 1. byte der 
entsprechende controller reagieren soll, beispiel:

Daten über rs232:

| uC1 | Daten | CS |
| uC2 | Daten | CS |
| uC3 | Daten | CS |

meine frage ist, wie man sowas hardwaremässig realisieren kann. das ist 
ja eine art bus. ich kann ja die RS232 ja nicht einfach schleifen ?
über tipps wäre ich sehr erfreut.

anhang dabei

Grss
Angehängte Dateien:
Gast #1276911
Lesenswert?

Hi

AVRs können Master-Slave: Im 9-Bit-Modus wird eine Adresse verschickt. 
Der adressierte Slave (und der Master) schalten in den 8-Bit-Mode und 
kommunizieren ganz normal. Danach schaltet der Slave wieder in den 
9-Bit-Mode und wartet auf den nächsten Befehl. Geht zwischen AVRs 
wunderbar. Nachteil: der PC kann das nicht. Abhilfe: Zwischen PC und 
Slaves ein weiterer AVR.

MfG Spess
Gast #1278322
Lesenswert?

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

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