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
Wenn alle controller mit demselben clock synchron laufen waere eine synchrone kommunikation geeigneter.
ich würd das ganze als Bussystem (z.B. RS485) abstempeln... Source glaub ich sogar in der code-sammlung
@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.
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 :-)
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
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.
> 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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.