Forum: Mikrocontroller und Digitale Elektronik kommunikation µc <-> µc


von christian (Gast)


Angehängte Dateien:

Lesenswert?

nabend

habe mir mal gedacht über uart mehrere µc's zu connecten ist das ne 
optimale oder suboptimale lösung hat da jemand schon mal erfahrung 
gesammelt dat im anhang

christian

von SGP (Gast)


Lesenswert?

Wenn alle controller mit demselben clock synchron laufen waere eine 
synchrone kommunikation geeigneter.

von JÜrgen G. (Firma: 4CKnowLedge) (psicom) Benutzerseite


Lesenswert?

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

Source glaub ich sogar in der code-sammlung

von Ralph (Gast)


Lesenswert?

Verwende SPI statt UART, das sollte besser und schneller sein

von Christian Z. (Gast)


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.

von crazy horse (Gast)


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 :-)

von christian (Gast)


Angehängte Dateien:

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

von Georg C. (citkid)


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.

von Rufus Τ. F. (rufus) Benutzerseite


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.

von crazy horse (Gast)


Lesenswert?

so meinte ich das :-)

von christian (Gast)


Lesenswert?

moin

danke für die infos werde da mal gucken ob ich die kommunikation 
hinkriege werde mich wieder melden wenns klappt oder probleme auftreten

christian

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.