Forum: Mikrocontroller und Digitale Elektronik Drei Motoren über Rs232 ansteuern


von Boogie (Gast)


Angehängte Dateien:

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

von holger (Gast)


Lesenswert?

Nimm einen uC mit genügend freien Pins.

von Max P. (eizo)


Lesenswert?

Mikrocontroller und PC im Ring zusammenschalten mit Adressbit. Jeder 
schickt es solange weiter bis die Daten am Richtigen Controller 
angekommen sind.

von Boogie (Gast)


Lesenswert?

Hallo

nein das will ich nicht. mir gehts ums prinzip ;)
das oben ist nur eine beispielskizze


gruss

von Falk B. (falk)


Lesenswert?

@  Boogie (Gast)

>meine frage ist, wie man sowas hardwaremässig realisieren kann.

Sinnvollerweise mit RS485 und Halbduplextranceivern, z.B. MAX485.
Dann noch ein Mini-Datenpaket zusammenstricken, fertig.
Ist schon millionenfach hier gemacht worden, einfach mal suchen.

MfG
Falk

von Boogie (Gast)


Lesenswert?

Hallo

danke für die antworten. werde danach suchen bzw googlen :)

gruss

von spess53 (Gast)


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

von zaphod (Gast)


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

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.