kommunikation µc <-> µc

Gast #654229
Lesenswert?

@Ralph

Das ist meiner Meinung nach keine gute Lösung, da kein Bradcast möglich 
ist und man für jeden µC eine /CS-Leitung benötigt.
Ich würde hier I2C (TWI) einsetzen -> 2 Leitungen, 127 Tln. Broadcast 
möglich usw.
Gast #654248
Lesenswert?

es gibt schon einige schöne Lösungen mit UART.
Z.B. Kannst du das Ganze als Ring aufbauen (Tx an Rx des nächsten), 
jedes Datenpaket bekommt eine ID, für wen es bestimmt ist. Passt die ID 
nicht, wird es weitergeleitet, ansonsten herausgefischt.
Vorteil: jeder kann mit jedem reden, ohne dass eine Bus-Arbitrierung 
erforderlich ist, es können sogar z.T. gleichzeitige Kommunikationen 
ablaufen.
Nachteile: Zeitbelastung von Knoten, die aktuell mit der jeweiligen 
Botschaft gar nichts zu tun haben und Zeitverzögerung (im schlimmsten 
Fall geht eine Botschaft durch alle Knoten).
Auf Protokollebene kann man sich richtig austoben :-)
Gast #654657
Lesenswert?

moin

habe mal schon weiter gearbeitet und evtl. kleine fehler ausgemertzt 
habe es nur simuliert (woche kaum zu hause).
es ist nur zu testzwecken u. in der praxis ist mir die übertragungszeit 
ersmal egal weil ich hauptprogramm einfach den T/RXD manipuliere mal 
frage:
UART ist aktiv PIND=1, DDRD=1 ,PORTD=0 kann PORTD immer umschalten von 
0->1, 1->0????... weil ich quasi dadurch die syn. (CS-Leitung) mache u. 
in den anderen ctrl. einfach dann den TXD abfrage ob gesetzt wenn ja 
dann gehe in empfangsmode.

************************************************************************ 
****
ich würd das ganze als Bussystem (z.B. RS485) abstempeln...

weitere IDEE mit Master wenn z.b. ein andere ctrl. daten hat sende zu 
master u. vom master zu den XXslave is nur sone idee

************************************************************************ 
*****
gibts ne begrenzung an teilnehmer für die R/TXD-kommunikation????

************************************************************************ 
*****
SPI statt UART, das sollte besser und schneller sein

habe mich erstmal nur mit der uart beschäftigt aber vorschlag angenommen
Angehängte Dateien:
#654763
Lesenswert?

christian wrote:
> gibts ne begrenzung an teilnehmer für die R/TXD-kommunikation????
An jede UART darf nur eine Gegenstation angeschlossen werden. Also 
Ringleitung bedeutet für jeden µC zwei UARTs. Besser ist also TWI. An 
TWI kannst du alle Tln. (max. 127) miteinander verknoten.
Persönliche Seite #654810
Lesenswert?

> Also Ringleitung bedeutet für jeden µC zwei UARTs.

Nö, das geht auch mit einer. Rx und Tx gehen an unterschiedliche 
Controller:

                                              +----
  +-------------------------------------------|Tx
  |                                           |    PC
  |  +-----+  +-----+  +-----+  +-----+  +----|Rx
  |  |     |  |     |  |     |  |     |  |    +----
 +----+   +----+   +----+   +----+   +----+
 |R  T|   |R  T|   |R  T|   |R  T|   |R  T|
 |x  x|   |x  x|   |x  x|   |x  x|   |x  x|
 |    |   |    |   |    |   |    |   |    |
 |µC1 |   |µC2 |   |µC3 |   |µC4 |   |µC5 |
 +----+   +----+   +----+   +----+   +----+

Einen etwaigen PC kann man so auch in den Ring hängen.

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