Forum: Mikrocontroller und Digitale Elektronik 6 Controller über einen UART Bus


von Danny (Gast)


Lesenswert?

Hay

ich will 6 Controller über einen UART Bus aneinander anschließen.
Es gibt einen Master und 5 Slaves.

Der Master Soll werte zu den anderen Uc´s senden und diese geben jeweils 
einen Wert zurück.
Mein Problem:

Die Slaves senden den Rückgabewert sofort bei empfangen der Werte vom 
Master.
Wie mache ich das die Controller nicht alle auf einmal senden?

von Hans M. (Gast)


Lesenswert?

Zum Beispiel indem der Master immer explizit einen Slave anfragt und 
dann auch nur der gefragte antworten darf.
Also den Slaves Adressen geben und für dein Projekt(Protokoll) 
vereinbaren, das nur reden darf, wer gefragt wurde!!!

MfG Hans

von Danny (Gast)


Lesenswert?

Also der Master Sendet Werte zum Slave 1.
Der Antwortet Sofort.
Erst nach erhalt der Antwort sendet der Master Daten zum Slave 2....
und immer so weiter...

Wäre ne Idee :D
Danke

von amateur (Gast)


Lesenswert?

Was für Teile hast Du in Deiner Weisheit miteinander verbunden.
Wenn Du in eine Gruppe Leute "Hallo" reinrufst, so drehen sich alle 
Köpfe in Deine Richtung. Ist nun mal so.

von amateur (Gast)


Lesenswert?

Übrigens: Das (U) in USART steht für universal. Sprichst Du I²C, RS232 
oder SPI mit deiner Peripherie?

von Erich (Gast)


Lesenswert?

auch Hay

>Wie mache ich das die Controller nicht alle auf einmal senden?

Das wurde bereits erfunden.
Es nennt sich LIN Bus.
http://de.wikipedia.org/wiki/Local_Interconnect_Network

Gruss

von Hans M. (Gast)


Lesenswert?

Aber wenn er schon an etwas so einfachem scheitert, wie und warum soll 
er n ganzen protokollstack implementieren?!
@amateur:
Meine dunkle Vorahnung sagt mir das da 6 Kontroller parallel an Rx und 
Tx verbunden sind :( solange alle Pins genug Strom treiben können, könnt 
das gut gehen ;) aber grenzt halt schon an Käferquälerei :-D

von Frank B. (frank501)


Lesenswert?

Warum nicht alle Controller so verbinden daß Rx von einem mit Tx vom 
nächsten verbunden ist?
Dann muss nur sichergestellt werden, das jeder slave die nicht für ihn 
bestimmten Daten weiter gibt.
Das kann man ja recht einfach und ohne großen Protokollaufwand lösen 
indem man immer 2 Byte schickt. Das erste mit der Nummer des Controllers 
und das zweite mit den Daten.

Frank

von amateur (Gast)


Lesenswert?

@Hans

RxD ist ja noch OK. Aber hoffentlich haben die Dinger bei ihrer Geburt 
aufgepasst und sich ihren Namen gemerkt.
Sonst geht’s denen wie der oben angeführten Gruppe: Einer ruft "Hallo" 
und alle fühlen sich angesprochen;-) Schätze mal dafür braucht’s keinen 
Bus.
Die oberste Maxime bleibt aber: Halt die Fresse! Sonst geht’s heiß her! 
Zumindest auf der TxD Linie wenn alle Quatschen.

Meine Glaskugel zeigt aber, im Moment nur Nebel.

von Hans M. (Gast)


Lesenswert?

Kann man alles machen, nur leider hat sich der TO nicht weiter gerührt. 
Scheinbar hat ihm meine erste Antwort gereicht, was meine Vorahnung 
leider weiter unterstreicht...

von achim (Gast)


Lesenswert?

Bei Atmels AVR gibt es den Multi ProzessorComunication Mode. Dabei 
werden 9 bit verschickt, ist das neunte bit 1, handelt es sich um eine 
Adresse, ist es 0, sind es Daten.

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.